<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body lang="EN-GB" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">Hi Adrian,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">I think the mailing list discussions here should be sufficient.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">However, it would be great if you can test that the earlier patch works and reply with a tested-by.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">Regards,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">Sami Mujawar<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal" style="margin-bottom:12.0pt"><b><span style="font-size:12.0pt;color:black">From:
</span></b><span style="font-size:12.0pt;color:black">Adrián Herrera Arcila <adr.her.arc.95@gmail.com><br>
<b>Date: </b>Tuesday, 27 April 2021 at 10:48<br>
<b>To: </b>Sami Mujawar <Sami.Mujawar@arm.com><br>
<b>Cc: </b>devel@edk2.groups.io <devel@edk2.groups.io>, Joey Gouly <Joey.Gouly@arm.com>, Ard Biesheuvel <ardb+tianocore@kernel.org>, leif@nuviainc.com <leif@nuviainc.com>, nd <nd@arm.com><br>
<b>Subject: </b>Re: [edk2-devel] [PATCH] ArmPkg/ArmGicLib: fix maximum interrupts supported<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal">Hi Sami,<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">That patch provides the same solution. I'll be sure to check the mailing list before sending the next time.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Any benefit on marking this as duplicate? If so, how could I do it?<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Thank you,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Adrián.<o:p></o:p></p>
</div>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">On Mon, 26 Apr 2021 at 08:56, Sami Mujawar <<a href="mailto:Sami.Mujawar@arm.com">Sami.Mujawar@arm.com</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Hi Adrian,<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">I believe there is already a similar patch on the mailing list at
<a href="https://edk2.groups.io/g/devel/message/72596" target="_blank">https://edk2.groups.io/g/devel/message/72596</a>. This patch is pending review and tested-by.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Can you check if this patch covers the problems you describe, please?<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Regards,<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Sami Mujawar<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal" style="mso-margin-top-alt:auto;margin-bottom:12.0pt"><b><span style="font-size:12.0pt;color:black">From:
</span></b><span style="font-size:12.0pt;color:black"><a href="mailto:devel@edk2.groups.io" target="_blank">devel@edk2.groups.io</a> <<a href="mailto:devel@edk2.groups.io" target="_blank">devel@edk2.groups.io</a>> on behalf of Adrián Herrera via
<a href="http://groups.io" target="_blank">groups.io</a> <adr.her.arc.95=<a href="mailto:gmail.com@groups.io" target="_blank">gmail.com@groups.io</a>><br>
<b>Date: </b>Saturday, 24 April 2021 at 03:57<br>
<b>To: </b><a href="mailto:devel@edk2.groups.io" target="_blank">devel@edk2.groups.io</a> <<a href="mailto:devel@edk2.groups.io" target="_blank">devel@edk2.groups.io</a>><br>
<b>Cc: </b>Adrián Herrera <<a href="mailto:adr.her.arc.95@gmail.com" target="_blank">adr.her.arc.95@gmail.com</a>><br>
<b>Subject: </b>[edk2-devel] [PATCH] ArmPkg/ArmGicLib: fix maximum interrupts supported</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;margin-bottom:12.0pt">The maximum number of interrupts supported is determined as<br>
32 * (GICD_TYPER.ITLinesNumber + 1).<br>
<br>
When GICD_TYPER.ITLinesNumber = 0b11111, the maximum number of<br>
interrupts supported is 1024. However, both GICv2 and GICv3 reserve<br>
INTIDs 1020-1023 for special purposes.<br>
<br>
This results in runtime crashes because:<br>
  (1) ArmGicLib functions do not guard against special interrupts.<br>
  (2) ArmGicGetMaxNumInterrupts number includes special interrupts.<br>
  (2) ArmGicV*Dxe relies on ArmGicGetMaxNumInterrupts, and thus<br>
      programs special interrupts through ArmGicLib.<br>
<br>
ArmGicGetMaxNumInterrupts now does not include special interrupts, that<br>
is, it reports 1020 instead of 1024 when GICD_TYPER.ITLinesNumber = 0b11111.<br>
This avoids the overhead of guarding ArmGicLib functions while not<br>
requiring to modify the drivers code.<br>
<br>
Signed-off-by: Adrián Herrera <<a href="mailto:adr.her.arc.95@gmail.com" target="_blank">adr.her.arc.95@gmail.com</a>><br>
---<br>
 ArmPkg/Drivers/ArmGic/ArmGicLib.c | 5 ++++-<br>
 1 file changed, 4 insertions(+), 1 deletion(-)<br>
<br>
diff --git a/ArmPkg/Drivers/ArmGic/ArmGicLib.c b/ArmPkg/Drivers/ArmGic/ArmGicLib.c<br>
index 6b01c88206..dff1401e9c 100644<br>
--- a/ArmPkg/Drivers/ArmGic/ArmGicLib.c<br>
+++ b/ArmPkg/Drivers/ArmGic/ArmGicLib.c<br>
@@ -120,7 +120,10 @@ ArmGicGetMaxNumInterrupts (<br>
   IN  INTN          GicDistributorBase<br>
<br>
<br>
   )<br>
<br>
<br>
 {<br>
<br>
<br>
-  return 32 * ((MmioRead32 (GicDistributorBase + ARM_GIC_ICDICTR) & 0x1F) + 1);<br>
<br>
<br>
+  UINT32 ITLinesNumber;<br>
<br>
<br>
+<br>
<br>
<br>
+  ITLinesNumber = MmioRead32 (GicDistributorBase + ARM_GIC_ICDICTR) & 0x1F;<br>
<br>
<br>
+  return MIN (32 * (ITLinesNumber+ 1), 1020);<br>
<br>
<br>
 }<br>
<br>
<br>
 <br>
<br>
<br>
 VOID<br>
<br>
<br>
-- <br>
2.30.0<br>
<br>
<br>
<br>
<o:p></o:p></p>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</body>
</html>


 <div width="1" style="color:white;clear:both">_._,_._,_</div> <hr>   Groups.io Links:<p>   You receive all messages sent to this group.    <p> <a target="_blank" href="https://edk2.groups.io/g/devel/message/74448">View/Reply Online (#74448)</a> |    |  <a target="_blank" href="https://groups.io/mt/82327316/1813853">Mute This Topic</a>  | <a href="https://edk2.groups.io/g/devel/post">New Topic</a><br>    <a href="https://edk2.groups.io/g/devel/editsub/1813853">Your Subscription</a> | <a href="mailto:devel+owner@edk2.groups.io">Contact Group Owner</a> |  <a href="https://edk2.groups.io/g/devel/unsub">Unsubscribe</a>  [edk2-devel-archive@redhat.com]<br> <div width="1" style="color:white;clear:both">_._,_._,_</div>