diff options
author | Robert Phelps <robert@ami.com> | 2020-05-12 04:24:13 +0800 |
---|---|---|
committer | mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> | 2020-05-15 08:06:09 +0000 |
commit | 15ac284815b1e1d5fe8dbc737129f82c9a92649b (patch) | |
tree | f626c784b4ec4ff0e8e3e6b16c0af36e63e04b9f /MdePkg | |
parent | 4ac245767341d9203b5b35b26d091a7f5e8534f9 (diff) | |
download | edk2-15ac284815b1e1d5fe8dbc737129f82c9a92649b.zip edk2-15ac284815b1e1d5fe8dbc737129f82c9a92649b.tar.gz edk2-15ac284815b1e1d5fe8dbc737129f82c9a92649b.tar.bz2 |
MdePkg: Update structures for MpServices Protocol
Added EXTENDED_PROCESSOR_INFORMATION structure and supporting
structures and definitions. The intent is to support updated
topology layout for CPUs. (PI 1.7a Mantis 2071)
Signed-off-by: Robert Phelps <robert@ami.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Diffstat (limited to 'MdePkg')
-rw-r--r-- | MdePkg/Include/Protocol/MpService.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/MdePkg/Include/Protocol/MpService.h b/MdePkg/Include/Protocol/MpService.h index 10e2405..9445c55 100644 --- a/MdePkg/Include/Protocol/MpService.h +++ b/MdePkg/Include/Protocol/MpService.h @@ -48,6 +48,11 @@ SPDX-License-Identifier: BSD-2-Clause-Patent }
///
+/// Value used in the NumberProcessors parameter of the GetProcessorInfo function
+///
+#define CPU_V2_EXTENDED_TOPOLOGY BIT24
+
+///
/// Forward declaration for the EFI_MP_SERVICES_PROTOCOL.
///
typedef struct _EFI_MP_SERVICES_PROTOCOL EFI_MP_SERVICES_PROTOCOL;
@@ -97,6 +102,47 @@ typedef struct { } EFI_CPU_PHYSICAL_LOCATION;
///
+/// Structure that defines the 6-level physical location of the processor
+///
+typedef struct {
+///
+/// Package Zero-based physical package number that identifies the cartridge of the processor.
+///
+UINT32 Package;
+///
+/// Module Zero-based physical module number within package of the processor.
+///
+UINT32 Module;
+///
+/// Tile Zero-based physical tile number within module of the processor.
+///
+UINT32 Tile;
+///
+/// Die Zero-based physical die number within tile of the processor.
+///
+UINT32 Die;
+///
+/// Core Zero-based physical core number within die of the processor.
+///
+UINT32 Core;
+///
+/// Thread Zero-based logical thread number within core of the processor.
+///
+UINT32 Thread;
+} EFI_CPU_PHYSICAL_LOCATION2;
+
+
+typedef union {
+ /// The 6-level physical location of the processor, including the
+ /// physical package number that identifies the cartridge, the physical
+ /// module number within package, the physical tile number within the module,
+ /// the physical die number within the tile, the physical core number within
+ /// package, and logical thread number within core.
+ EFI_CPU_PHYSICAL_LOCATION2 Location2;
+} EXTENDED_PROCESSOR_INFORMATION;
+
+
+///
/// Structure that describes information about a logical CPU.
///
typedef struct {
@@ -132,6 +178,10 @@ typedef struct { /// logical thread number within core.
///
EFI_CPU_PHYSICAL_LOCATION Location;
+ ///
+ /// The extended information of the processor. This field is filled only when
+ /// CPU_V2_EXTENDED_TOPOLOGY is set in parameter ProcessorNumber.
+ EXTENDED_PROCESSOR_INFORMATION ExtendedInformation;
} EFI_PROCESSOR_INFORMATION;
/**
|