]> git.proxmox.com Git - mirror_edk2.git/commitdiff
MdePkg: Update structures for MpServices Protocol
authorRobert Phelps <robert@ami.com>
Mon, 11 May 2020 20:24:13 +0000 (04:24 +0800)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Fri, 15 May 2020 08:06:09 +0000 (08:06 +0000)
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>
MdePkg/Include/Protocol/MpService.h

index 10e2405daf455710fc8d342d934a1394240662c6..9445c5567ffb3fb905db4f012db87f4eb6ff81ed 100644 (file)
@@ -47,6 +47,11 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
     0x3fdda605, 0xa76e, 0x4f46, {0xad, 0x29, 0x12, 0xf4, 0x53, 0x1b, 0x3d, 0x08} \\r
   }\r
 \r
+///\r
+/// Value used in the NumberProcessors parameter of the GetProcessorInfo function\r
+///\r
+#define CPU_V2_EXTENDED_TOPOLOGY BIT24\r
+\r
 ///\r
 /// Forward declaration for the EFI_MP_SERVICES_PROTOCOL.\r
 ///\r
@@ -96,6 +101,47 @@ typedef struct {
   UINT32  Thread;\r
 } EFI_CPU_PHYSICAL_LOCATION;\r
 \r
+///\r
+///  Structure that defines the 6-level physical location of the processor\r
+///\r
+typedef struct {\r
+///\r
+///    Package     Zero-based physical package number that identifies the cartridge of the processor.\r
+///\r
+UINT32  Package;\r
+///\r
+///    Module      Zero-based physical module number within package of the processor.\r
+///\r
+UINT32  Module;\r
+///\r
+///    Tile        Zero-based physical tile number within module of the processor.\r
+///\r
+UINT32  Tile;\r
+///\r
+///    Die         Zero-based physical die number within tile of the processor.\r
+///\r
+UINT32  Die;\r
+///\r
+///     Core        Zero-based physical core number within die of the processor.\r
+///\r
+UINT32  Core;\r
+///\r
+///     Thread      Zero-based logical thread number within core of the processor.\r
+///\r
+UINT32  Thread;\r
+} EFI_CPU_PHYSICAL_LOCATION2;\r
+\r
+\r
+typedef union {\r
+  /// The 6-level physical location of the processor, including the\r
+  /// physical package number that identifies the cartridge, the physical\r
+  /// module number within package, the physical tile number within the module,\r
+  /// the physical die number within the tile, the physical core number within\r
+  /// package, and logical thread number within core.\r
+  EFI_CPU_PHYSICAL_LOCATION2  Location2;\r
+} EXTENDED_PROCESSOR_INFORMATION;\r
+\r
+\r
 ///\r
 /// Structure that describes information about a logical CPU.\r
 ///\r
@@ -132,6 +178,10 @@ typedef struct {
   /// logical thread number within core.\r
   ///\r
   EFI_CPU_PHYSICAL_LOCATION  Location;\r
+  ///\r
+  /// The extended information of the processor. This field is filled only when\r
+  /// CPU_V2_EXTENDED_TOPOLOGY is set in parameter ProcessorNumber.\r
+  EXTENDED_PROCESSOR_INFORMATION ExtendedInformation;\r
 } EFI_PROCESSOR_INFORMATION;\r
 \r
 /**\r