ArmPlatformPkg: Introduce Primary core macros

On MpCore system, the primary core can now be any core of the system.

To identify the primary core, you can use 'gArmTokenSpaceGuid.PcdArmPrimaryCoreMask'
and 'gArmTokenSpaceGuid.PcdArmPrimaryCore'.
These PCDs by default use the ClusterId and CoreId to identify the core. And the
primary core is defined as the ClusetrId=0 and CoreId=0.

The helper macros are: IS_PRIMARY_CORE(MpId), GET_CORE_ID(MpId), GET_CLUSTER_ID(MpId),
GET_CORE_POS(MpId), PRIMARY_CORE_ID.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12412 6f19259b-4bc3-4df7-8a09-765794883524
diff --git a/ArmPkg/ArmPkg.dec b/ArmPkg/ArmPkg.dec
index 7801b98..65a9757 100644
--- a/ArmPkg/ArmPkg.dec
+++ b/ArmPkg/ArmPkg.dec
@@ -97,6 +97,11 @@
   gArmTokenSpaceGuid.PcdSystemMemoryBase|0|UINT32|0x00000029

   gArmTokenSpaceGuid.PcdSystemMemorySize|0|UINT32|0x0000002A

 

+  # Use ClusterId + CoreId to identify the PrimaryCore

+  gArmTokenSpaceGuid.PcdArmPrimaryCoreMask|0xF03|UINT32|0x00000031

+  # The Primary Core is ClusterId[0] & CoreId[0] 

+  gArmTokenSpaceGuid.PcdArmPrimaryCore|0|UINT32|0x00000037

+

   #

   # ARM MPCore MailBox PCDs

   #