]> git.proxmox.com Git - mirror_edk2.git/commitdiff
ArmPkg/ArmGicLib: Changed ArmGicSendSgiTo() to allow to send a specific SGI
authoroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 2 May 2012 20:08:03 +0000 (20:08 +0000)
committeroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 2 May 2012 20:08:03 +0000 (20:08 +0000)
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13258 6f19259b-4bc3-4df7-8a09-765794883524

ArmPkg/Drivers/PL390Gic/PL390Gic.c
ArmPkg/Drivers/PL390Gic/PL390GicLib.inf
ArmPkg/Drivers/PL390Gic/PL390GicSecLib.inf
ArmPkg/Include/Library/ArmGicLib.h
ArmPlatformPkg/Library/DebugSecExtraActionLib/DebugSecExtraActionLib.c
ArmPlatformPkg/Library/DebugSecExtraActionLib/DebugSecExtraActionLib.inf
ArmPlatformPkg/PrePeiCore/MainMPCore.c
ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf
ArmPlatformPkg/PrePi/MainMPCore.c
ArmPlatformPkg/PrePi/PeiMPCore.inf

index c559e64a78f4c3bbf9d378c5699c26ebdbb860f9..56c0fd9c4fdda43bf08ef29276086493df1a7df5 100644 (file)
@@ -31,10 +31,11 @@ EFIAPI
 ArmGicSendSgiTo (\r
   IN  INTN          GicDistributorBase,\r
   IN  INTN          TargetListFilter,\r
-  IN  INTN          CPUTargetList\r
+  IN  INTN          CPUTargetList,\r
+  IN  INTN          SgiId\r
   )\r
 {\r
-  MmioWrite32 (GicDistributorBase + ARM_GIC_ICDSGIR, ((TargetListFilter & 0x3) << 24) | ((CPUTargetList & 0xFF) << 16) | PcdGet32(PcdGicSgiIntId));\r
+  MmioWrite32 (GicDistributorBase + ARM_GIC_ICDSGIR, ((TargetListFilter & 0x3) << 24) | ((CPUTargetList & 0xFF) << 16) | SgiId);\r
 }\r
 \r
 UINT32\r
index 805ed4fcc71115ba34467b320d0759b2e687089d..4eb6ffbdbbeb87b4bad31ecc67072bc91dd0aed7 100644 (file)
@@ -1,5 +1,5 @@
 #/* @file\r
-#  Copyright (c) 2011, ARM Limited. All rights reserved.\r
+#  Copyright (c) 2011-2012, ARM Limited. All rights reserved.\r
 #  \r
 #  This program and the accompanying materials                          \r
 #  are licensed and made available under the terms and conditions of the BSD License         \r
@@ -26,6 +26,3 @@
 [Packages]\r
   ArmPkg/ArmPkg.dec\r
   MdePkg/MdePkg.dec\r
-\r
-[FixedPcd]\r
-  gArmTokenSpaceGuid.PcdGicSgiIntId\r
index fbbd38faadf4f39f3c1ce301e6da4da84de4e2a7..b7e53b2976666a001d1d279f6b37de1cb6471a43 100644 (file)
@@ -34,7 +34,5 @@
   PcdLib\r
 \r
 [FixedPcd.common]\r
-  gArmTokenSpaceGuid.PcdGicSgiIntId\r
-\r
   gArmTokenSpaceGuid.PcdArmPrimaryCoreMask\r
   gArmTokenSpaceGuid.PcdArmPrimaryCore\r
index 26bd7c626a40adf76609c6863ab8011b1ed9047a..d6ffc753c79371f8cad888544f8618707c2ecc13 100644 (file)
@@ -113,7 +113,8 @@ EFIAPI
 ArmGicSendSgiTo (\r
   IN  INTN          GicDistributorBase,\r
   IN  INTN          TargetListFilter,\r
-  IN  INTN          CPUTargetList\r
+  IN  INTN          CPUTargetList,\r
+  IN  INTN          SgiId\r
   );\r
 \r
 UINT32\r
index c4d9917c803d0e2ae3ae84e69102f7f9b941c58c..6992b4a609dee0f8ab0de2685430dc59528c88aa 100755 (executable)
@@ -1,6 +1,6 @@
 /** @file\r
 *\r
-*  Copyright (c) 2011, ARM Limited. All rights reserved.\r
+*  Copyright (c) 2011-2012, ARM Limited. All rights reserved.\r
 *\r
 *  This program and the accompanying materials\r
 *  are licensed and made available under the terms and conditions of the BSD License\r
@@ -87,7 +87,7 @@ ArmPlatformSecExtraAction (
   } else if (FeaturePcdGet (PcdSystemMemoryInitializeInSec)) {\r
     if (IS_PRIMARY_CORE(MpId)) {\r
       // Signal the secondary cores they can jump to PEI phase\r
-      ArmGicSendSgiTo (PcdGet32(PcdGicDistributorBase), ARM_GIC_ICDSGIR_FILTER_EVERYONEELSE, 0x0E);\r
+      ArmGicSendSgiTo (PcdGet32(PcdGicDistributorBase), ARM_GIC_ICDSGIR_FILTER_EVERYONEELSE, 0x0E, PcdGet32 (PcdGicSgiIntId));\r
 \r
       // To enter into Non Secure state, we need to make a return from exception\r
       *JumpAddress = PcdGet32(PcdFvBaseAddress);\r
index de813938deb888694cdd65aaaff74cc508f8c4e8..2962ffe5d8510dbf1761008981e17bd9386cbfe7 100755 (executable)
@@ -36,7 +36,7 @@
 [LibraryClasses]
   DebugLib
   PcdLib
-  ArmGicSecLib
+  ArmGicLib
   PrintLib
   SerialPortLib
 
@@ -52,3 +52,4 @@
 
   gArmTokenSpaceGuid.PcdGicDistributorBase
   gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase
+  gArmTokenSpaceGuid.PcdGicSgiIntId
index a98d560133eadd3707551a4984a3bded15347a0a..01cb06f8e55c96368a2b5209261dbfbcf9e66070 100644 (file)
@@ -115,7 +115,7 @@ PrimaryMain (
   // If ArmVe has not been built as Standalone then we need to wake up the secondary cores\r
   if (FeaturePcdGet (PcdSendSgiToBringUpSecondaryCores)) {\r
     // Sending SGI to all the Secondary CPU interfaces\r
-    ArmGicSendSgiTo (PcdGet32(PcdGicDistributorBase), ARM_GIC_ICDSGIR_FILTER_EVERYONEELSE, 0x0E);\r
+    ArmGicSendSgiTo (PcdGet32(PcdGicDistributorBase), ARM_GIC_ICDSGIR_FILTER_EVERYONEELSE, 0x0E, PcdGet32 (PcdGicSgiIntId));\r
   }\r
 \r
   // Adjust the Temporary Ram as the new Ppi List (Common + Platform Ppi Lists) is created at\r
index 8e812199f6a4d10d2e8676906b62799784248873..39dd89e8007c7bab34debc24d9eb11597f83b021 100644 (file)
@@ -1,7 +1,7 @@
 #/** @file\r
 #  Pre PeiCore - Hand-off to PEI Core in Normal World\r
 #  \r
-#  Copyright (c) 2011, ARM Limited. All rights reserved.\r
+#  Copyright (c) 2011-2012, ARM Limited. All rights reserved.\r
 #  \r
 #  This program and the accompanying materials                          \r
 #  are licensed and made available under the terms and conditions of the BSD License         \r
@@ -70,3 +70,4 @@
   \r
   gArmTokenSpaceGuid.PcdGicDistributorBase\r
   gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase\r
+  gArmTokenSpaceGuid.PcdGicSgiIntId\r
index 8e61be1985b82436fca0b295f12286204ad6f818..e9a3ef56a0046572fb0de32e2865ef6ce8abb586 100644 (file)
@@ -1,6 +1,6 @@
 /** @file\r
 *\r
-*  Copyright (c) 2011, ARM Limited. All rights reserved.\r
+*  Copyright (c) 2011-2012, ARM Limited. All rights reserved.\r
 *\r
 *  This program and the accompanying materials\r
 *  are licensed and made available under the terms and conditions of the BSD License\r
@@ -65,7 +65,7 @@ PrimaryMain (
   // In some cases, the secondary cores are waiting for an SGI from the next stage boot loader toresume their initialization\r
   if (!FixedPcdGet32(PcdSendSgiToBringUpSecondaryCores)) {\r
     // Sending SGI to all the Secondary CPU interfaces\r
-    ArmGicSendSgiTo (PcdGet32(PcdGicDistributorBase), ARM_GIC_ICDSGIR_FILTER_EVERYONEELSE, 0x0E);\r
+    ArmGicSendSgiTo (PcdGet32(PcdGicDistributorBase), ARM_GIC_ICDSGIR_FILTER_EVERYONEELSE, 0x0E, PcdGet32 (PcdGicSgiIntId));\r
   }\r
 \r
   PrePiMain (UefiMemoryBase, StacksBase, GlobalVariableBase, StartTimeStamp);\r
index 92c1d81f87f3671ac945c97e178684e5c9255399..6337da13341d8e307247dfd08de34cf37beeb060 100755 (executable)
@@ -1,6 +1,6 @@
 #/** @file\r
 #  \r
-#  Copyright (c) 2011, ARM Ltd. All rights reserved.<BR>\r
+#  Copyright (c) 2011-2012, ARM Ltd. All rights reserved.<BR>\r
 #  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution.  The full text of the license may be found at\r
@@ -85,6 +85,7 @@
 \r
   gArmTokenSpaceGuid.PcdGicDistributorBase\r
   gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase\r
+  gArmTokenSpaceGuid.PcdGicSgiIntId\r
 \r
   gArmTokenSpaceGuid.PcdSystemMemoryBase\r
   gArmTokenSpaceGuid.PcdSystemMemorySize\r