]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmPlatformPkg/PrePi/ModuleEntryPoint.S
ArmPlatformPkg: Introduce Primary core macros
[mirror_edk2.git] / ArmPlatformPkg / PrePi / ModuleEntryPoint.S
index a8c779fba914249191339e5748eec46acd86cb51..4d64aa7e86cb88edaff609fc72891399c957727a 100755 (executable)
 \r
 # Global symbols referenced by this module\r
 GCC_ASM_IMPORT(CEntryPoint)\r
+GCC_ASM_IMPORT(ArmReadMpidr)\r
 GCC_ASM_EXPORT(_ModuleEntryPoint)\r
 \r
 StartupAddr: .word    CEntryPoint\r
 \r
 \r
 ASM_PFX(_ModuleEntryPoint):\r
-  // Identify CPU ID\r
-  mrc   p15, 0, r0, c0, c0, 5\r
-  and   r0, #0xf\r
+  // Get ID of this CPU in Multicore system\r
+  bl    ASM_PFX(ArmReadMpidr)\r
+  LoadConstantToReg (FixedPcdGet32(PcdArmPrimaryCoreMask), r1)\r
+  and   r0, r0, r1\r
 \r
 _SetSVCMode:\r
   // Enter SVC mode\r
@@ -94,7 +96,7 @@ _PrepareArguments:
   ldr   r2, StartupAddr\r
 \r
   // Jump to PrePiCore C code\r
-  //    r0 = core_id\r
+  //    r0 = MpId\r
   //    r1 = UefiMemoryBase\r
   blx   r2\r
 \r