]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmPlatformPkg/Library/ArmPlatformLibNull/Arm/ArmPlatformHelper.asm
ArmPlatformPkg/ArmPlatformLib: Added support for ArmPlatformIsPrimaryCore()
[mirror_edk2.git] / ArmPlatformPkg / Library / ArmPlatformLibNull / Arm / ArmPlatformHelper.asm
index 620562136ed6a20c8ed5b9ff02ec919d5fdc4c10..6d35182a275ccc03c7cf775493f1f14c61f81670 100644 (file)
   INCLUDE AsmMacroIoLib.inc\r
 \r
   EXPORT  ArmPlatformGetCorePosition\r
+  EXPORT  ArmPlatformIsPrimaryCore\r
 \r
+  IMPORT  _gPcd_FixedAtBuild_PcdArmPrimaryCore\r
+  IMPORT  _gPcd_FixedAtBuild_PcdArmPrimaryCoreMask\r
+  \r
   PRESERVE8\r
   AREA    ArmPlatformNullHelper, CODE, READONLY\r
 \r
@@ -32,5 +36,21 @@ ArmPlatformGetCorePosition FUNCTION
   bx   lr\r
   ENDFUNC\r
 \r
+//UINTN\r
+//ArmPlatformIsPrimaryCore (\r
+//  IN UINTN MpId\r
+//  );\r
+ArmPlatformIsPrimaryCore FUNCTION\r
+  LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCoreMask, r1)\r
+  ldr   r1, [r1]\r
+  and   r0, r0, r1\r
+  LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCore, r1)\r
+  ldr   r1, [r1]\r
+  cmp   r0, r1\r
+  moveq r0, #1\r
+  movne r0, #0\r
+  bx    lr\r
+  ENDFUNC\r
+\r
   END\r
 \r