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]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to