]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmPlatformPkg/PrePi/ModuleEntryPoint.asm
ArmPlatformPkg: Introduce Primary core macros
[mirror_edk2.git] / ArmPlatformPkg / PrePi / ModuleEntryPoint.asm
index 00abcb304af1861ffa67fa3afe977dc536dc46b3..881871d34e67ac88eefdf30244fb04feaa8a5680 100644 (file)
@@ -19,6 +19,7 @@
   INCLUDE AsmMacroIoLib.inc\r
   \r
   IMPORT  CEntryPoint\r
+  IMPORT  ArmReadMpidr\r
   EXPORT  _ModuleEntryPoint\r
 \r
   PRESERVE8\r
 StartupAddr        DCD      CEntryPoint\r
 \r
 _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    ArmReadMpidr\r
+  LoadConstantToReg (FixedPcdGet32(PcdArmPrimaryCoreMask), r1)\r
+  and   r5, 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