]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Register/Intel/Cpuid.h
MdePkg: Update Cpuid.h for Tdx
[mirror_edk2.git] / MdePkg / Include / Register / Intel / Cpuid.h
index bd6349d7940d00d1e4ae97177351dfb43ad8c9b4..350bf60252e1f78ee77d003bdf12ef9c65d9871a 100644 (file)
@@ -12,6 +12,8 @@
   @par Specification Reference:\r
   Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 2A,\r
   November 2018, CPUID instruction.\r
+  Architecture Specification: Intel(R) Trust Domain Extensions Module, Chap 10.2\r
+  344425-003US, August 2021\r
 \r
 **/\r
 \r
@@ -321,9 +323,9 @@ typedef union {
     ///\r
     UINT32    RDRAND              : 1;\r
     ///\r
-    /// [Bit 31] Always returns 0.\r
+    /// [Bit 31] A value of 1 indicates that processor is in Para-Virtualized.\r
     ///\r
-    UINT32    NotUsed             : 1;\r
+    UINT32    ParaVirtualized     : 1;\r
   } Bits;\r
   ///\r
   /// All bit fields as a 32-bit value\r
@@ -3689,6 +3691,35 @@ typedef union {
 /// @}\r
 ///\r
 \r
+/**\r
+  CPUID Guest TD Run Time Environment Enumeration Leaf\r
+\r
+  @note\r
+  Guest software can be designed to run either as a TD, as a legacy virtual machine,\r
+  or directly on the CPU, based on enumeration of its run-time environment.\r
+  CPUID leaf 21H emulation is done by the Intel TDX module. Sub-leaf 0 returns the values\r
+  shown below. Other sub-leaves return 0 in EAX/EBX/ECX/EDX.\r
+    EAX: 0x00000000\r
+    EBX: 0x65746E49 "Inte"\r
+    ECX: 0x20202020 "    "\r
+    EDX: 0x5844546C "lTDX"\r
+\r
+  @param   EAX  CPUID_GUESTTD_RUNTIME_ENVIRONMENT                        (0x21)\r
+  @param   ECX  Level number\r
+\r
+**/\r
+#define CPUID_GUESTTD_RUNTIME_ENVIRONMENT  0x21\r
+\r
+///\r
+/// @{ CPUID Guest TD signature values returned by Intel processors\r
+///\r
+#define CPUID_GUESTTD_SIGNATURE_GENUINE_INTEL_EBX  SIGNATURE_32 ('I', 'n', 't', 'e')\r
+#define CPUID_GUESTTD_SIGNATURE_GENUINE_INTEL_ECX  SIGNATURE_32 (' ', ' ', ' ', ' ')\r
+#define CPUID_GUESTTD_SIGNATURE_GENUINE_INTEL_EDX  SIGNATURE_32 ('l', 'T', 'D', 'X')\r
+///\r
+/// @}\r
+///\r
+\r
 /**\r
   CPUID Extended Function\r
 \r