TianoCore Community Design Meeting Minutes


Ni, Ray
 

Ray presented how to enhance EFI_MP_SERVICES_PROTOCOL to support V2 extended topology in last week's meeting.



Meeting agreed the protocol enhancement proposal (details in slides and summary in below).

Ray is asking for directly pushing these changes to edk2 repo, though they require PI spec changes.

Mike K suggested to push to edk2-staging repo first. He will send out a RFC to propose a code first process for code changes that require UEFI/PI spec changes.



Please reply to devel@edk2.groups.io<mailto:devel@edk2.groups.io> for comments and concerns.



Ray Ni (Intel) - CPU V2 Extended Topology Support

Slides: https://edk2.groups.io/g/devel/files/Designs/2019/0613/CPU%20V2%20Extended%20Topology%20Support%20-%20public.pdf



3-level topology: Package, Core, SMT (Simultaneous Multiple Threading)

Reported by CPUID.0BH leaf function.



PI spec defines EFI_MP_SERVICES_PROTOCOL.GetProcessorInfo (IN UINTN ProcessorIndex, OUT EFI_PROCESSOR_INFORMATION *Info)

EFI_PROCESSOR_INFORMATION

UINT64 ProcessorId;

UINT32 StatusFlag;

EFI_CPU_PHYSICAL_LOCATION Location;

UINT32 Package;

UINT32 Core;

UINT32 Thread;



6-level topology: Package, Die, Tile, Module, Core, SMT

Reported by CPUID.1FH leaf function



Enhance EFI_MP_SERVICES_PROTOCOL.GetProcessorInfo() so when ProcessorIndex has CPU_V2_EXTENDED_TOPOLOGY set,
EFI_CPU_PHYSICAL_LOCATION2 information is returned.

#define CPU_V2_EXTENDED_TOPOLOGY BIT24

EFI_PROCESSOR_RINFORMATION

UINT64 ProcessorId;
UINT32 StatusFlag;

EFI_CPU_PHYSICAL_LOCATION Location;
EXTENDED_PROCESSOR_INFORMATION ExtendedInformation;



typedef union {
EFI_CPU_PHYSICAL_LOCATION2 Location2;
} EXTENDED_PROCESSOR_INFORMATION;



EFI_CPU_PHYSICAL_LOCATION2

UINT32 Package;
UINT32 Module;
UINT32 Tile;
UINT32 Die;
UINT32 Core;
UINT32 Thread;

Thanks,

Ray