On Tue, Jan 31, 2023 at 13:35:50 +0700, Nhi Pham via groups.io wrote: > Hi Rebecca, > > ++ Harb who can give more insights on this. FYI, the original concern is > https://edk2.groups.io/g/devel/message/98482 > > On 1/18/2023 1:21 AM, Rebecca Cran wrote: > > On 1/17/23 09:40, Ard Biesheuvel wrote: > > > On Tue, 17 Jan 2023 at 13:55, Rebecca Cran<rebe...@quicinc.com> wrote: > > > > I was under the impression that this is becoming a more standard format? > > > > > > > If this is not defined in an ARM spec somewhere, we shouldn't add it > > > to ArmPkg at this point. > > > > From what I've found, the ARM specs such as the Arm Architecture > > Reference Manual for A-profile architecture don't define the meaning of > > the affinity fields? That appears to be left up to the individual Arm > > core TRMs. > > I think so. This might be silicon specific implementation. > > Per Arm Armv8-A Architecture Registers > (https://developer.arm.com/documentation/ddi0595/2021-12/AArch64-Registers/MPIDR-EL1--Multiprocessor-Affinity-Register), > if I interpret correctly, the AFF0 will give core ID or thread ID based on > the MT bit in the MPIDR register. > > I think we should remove the following definitions particularly for getting > core id and cluster in ArmPkg/Include/Library/ArmLib.h to avoid the > confusion to others > > #define ARM_CORE_MASK ARM_CORE_AFF0 > #define ARM_CLUSTER_MASK ARM_CORE_AFF1 > #define GET_CORE_ID(MpId) ((MpId) & ARM_CORE_MASK) > #define GET_CLUSTER_ID(MpId) (((MpId) & ARM_CLUSTER_MASK) >> 8) > #define GET_MPID(ClusterId, CoreId) (((ClusterId) << 8) | (CoreId)) > #define PRIMARY_CORE_ID (PcdGet32(PcdArmPrimaryCore) & ARM_CORE_MASK) > > And, should support GET_AFFx like > > #define ARM_MPIDR_GET_AFF0(Mpid) ((Mpid) & ARM_CORE_AFF0) > > For silicon specific usage, it can abstract them to proper IDs like > > #define XXX_GET_CORE_ID(Mpid) ARM_MPIDR_GET_AFF0(Mpid)
And we could hide that selection behind a Pcd. Then we'd not need anything platform-specific other than overriding the default Pcd value. / Leif -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#100236): https://edk2.groups.io/g/devel/message/100236 Mute This Topic: https://groups.io/mt/96240088/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/leave/9847357/21656/1706620634/xyzzy [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-