From: oliviermartin Date: Wed, 2 May 2012 20:05:36 +0000 (+0000) Subject: ArmPkg/ArmLib: Fixed MpCore macros X-Git-Tag: edk2-stable201903~13443 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=9133aa80a977fcd764a4237af3e9e21afb67881d ArmPkg/ArmLib: Fixed MpCore macros Signed-off-by: Olivier Martin git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13256 6f19259b-4bc3-4df7-8a09-765794883524 --- diff --git a/ArmPkg/Include/Library/ArmLib.h b/ArmPkg/Include/Library/ArmLib.h index f34ab42ced..6bce7fb739 100644 --- a/ArmPkg/Include/Library/ArmLib.h +++ b/ArmPkg/Include/Library/ArmLib.h @@ -89,13 +89,19 @@ typedef enum { ARM_PROCESSOR_MODE_MASK = 0x1F } ARM_PROCESSOR_MODE; + +// +// ARM MP Core IDs +// #define IS_PRIMARY_CORE(MpId) (((MpId) & PcdGet32(PcdArmPrimaryCoreMask)) == PcdGet32(PcdArmPrimaryCore)) -#define GET_CORE_ID(MpId) ((MpId) & 0xFF) -#define GET_CLUSTER_ID(MpId) (((MpId) >> 8) & 0xFF) +#define ARM_CORE_MASK 0xFF +#define ARM_CLUSTER_MASK (0xFF << 8) +#define GET_CORE_ID(MpId) ((MpId) & ARM_CORE_MASK) +#define GET_CLUSTER_ID(MpId) (((MpId) & ARM_CLUSTER_MASK) >> 8) // Get the position of the core for the Stack Offset (4 Core per Cluster) // Position = (ClusterId * 4) + CoreId -#define GET_CORE_POS(MpId) ((((MpId) >> 6) & 0xFF) + ((MpId) & 0xFF)) -#define PRIMARY_CORE_ID (PcdGet32(PcdArmPrimaryCore) & 0xFF) +#define GET_CORE_POS(MpId) ((((MpId) & ARM_CLUSTER_MASK) >> 6) + ((MpId) & ARM_CORE_MASK)) +#define PRIMARY_CORE_ID (PcdGet32(PcdArmPrimaryCore) & ARM_CORE_MASK) ARM_CACHE_TYPE EFIAPI