summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
9253410)
By default this PCD is set to use SGI #0.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13123
6f19259b-4bc3-4df7-8a09-
765794883524
gArmTokenSpaceGuid.PcdGicDistributorBase|0|UINT32|0x0000000C\r
gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0|UINT32|0x0000000D\r
gArmTokenSpaceGuid.PcdGicNumInterrupts|96|UINT32|0x00000023\r
gArmTokenSpaceGuid.PcdGicDistributorBase|0|UINT32|0x0000000C\r
gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0|UINT32|0x0000000D\r
gArmTokenSpaceGuid.PcdGicNumInterrupts|96|UINT32|0x00000023\r
+ gArmTokenSpaceGuid.PcdGicSgiIntId|0|UINT32|0x00000025\r
\r
#\r
# ARM Secure Firmware PCDs\r
\r
#\r
# ARM Secure Firmware PCDs\r
#include <Uefi.h>\r
#include <Library/IoLib.h>\r
#include <Library/ArmGicLib.h>\r
#include <Uefi.h>\r
#include <Library/IoLib.h>\r
#include <Library/ArmGicLib.h>\r
+#include <Library/PcdLib.h>\r
IN INTN CPUTargetList\r
)\r
{\r
IN INTN CPUTargetList\r
)\r
{\r
- MmioWrite32 (GicDistributorBase + ARM_GIC_ICDSGIR, ((TargetListFilter & 0x3) << 24) | ((CPUTargetList & 0xFF) << 16));\r
+ MmioWrite32 (GicDistributorBase + ARM_GIC_ICDSGIR, ((TargetListFilter & 0x3) << 24) | ((CPUTargetList & 0xFF) << 16) | PcdGet32(PcdGicSgiIntId));\r
InterruptId = MmioRead32 (GicInterruptInterfaceBase + ARM_GIC_ICCIAR);\r
\r
// Check if the Interrupt ID is valid, The read from Interrupt Ack register returns CPU ID and Interrupt ID\r
InterruptId = MmioRead32 (GicInterruptInterfaceBase + ARM_GIC_ICCIAR);\r
\r
// Check if the Interrupt ID is valid, The read from Interrupt Ack register returns CPU ID and Interrupt ID\r
- if (((CoreId & 0x7) << 10) == (InterruptId & 0x1C00)) {\r
+ if ((((CoreId & 0x7) << 10) | PcdGet32(PcdGicSgiIntId)) == InterruptId) {\r
// Got SGI number 0 hence signal End of Interrupt by writing to ICCEOIR\r
MmioWrite32 (GicInterruptInterfaceBase + ARM_GIC_ICCEIOR, InterruptId);\r
return 1;\r
// Got SGI number 0 hence signal End of Interrupt by writing to ICCEOIR\r
MmioWrite32 (GicInterruptInterfaceBase + ARM_GIC_ICCEIOR, InterruptId);\r
return 1;\r
[Packages]\r
ArmPkg/ArmPkg.dec\r
MdePkg/MdePkg.dec\r
[Packages]\r
ArmPkg/ArmPkg.dec\r
MdePkg/MdePkg.dec\r
+\r
+[FixedPcd]\r
+ gArmTokenSpaceGuid.PcdGicSgiIntId\r
\r
[FixedPcd.common]\r
gArmTokenSpaceGuid.PcdGicNumInterrupts\r
\r
[FixedPcd.common]\r
gArmTokenSpaceGuid.PcdGicNumInterrupts\r
+ gArmTokenSpaceGuid.PcdGicSgiIntId\r