]> git.proxmox.com Git - mirror_edk2.git/blobdiff - UefiCpuPkg/Include/Library/MtrrLib.h
1, Remove comma after year
[mirror_edk2.git] / UefiCpuPkg / Include / Library / MtrrLib.h
index e3ad1cde316a7445ffa1886b5a397d5fa790fb1a..e2f2491eee1a231b36bc61331246bf8257799786 100644 (file)
 // According to IA32 SDM, MTRRs number and msr offset are always consistent\r
 // for IA32 processor family\r
 //\r
-#define  MTRR_NUMBER_OF_VARIABLE_MTRR   8\r
+\r
+//\r
+// The semantics of below macro is MAX_MTRR_NUMBER_OF_VARIABLE_MTRR, the real number can be read out from MTRR_CAP register.\r
+//\r
+#define  MTRR_NUMBER_OF_VARIABLE_MTRR  32\r
+//\r
+// Firmware need reserve 2 MTRR for OS\r
+//\r
+#define  RESERVED_FIRMWARE_VARIABLE_MTRR_NUMBER  2\r
+\r
 #define  MTRR_NUMBER_OF_FIXED_MTRR      11\r
+//\r
+// Below macro is deprecated, and should not be used.\r
+//\r
 #define  FIRMWARE_VARIABLE_MTRR_NUMBER  6\r
+#define  MTRR_LIB_IA32_MTRR_CAP                      0x0FE\r
+#define  MTRR_LIB_IA32_MTRR_CAP_VCNT_MASK            0x0FF\r
 #define  MTRR_LIB_IA32_MTRR_FIX64K_00000             0x250\r
 #define  MTRR_LIB_IA32_MTRR_FIX16K_80000             0x258\r
 #define  MTRR_LIB_IA32_MTRR_FIX16K_A0000             0x259\r
@@ -34,6 +48,9 @@
 #define  MTRR_LIB_IA32_MTRR_FIX4K_F0000              0x26E\r
 #define  MTRR_LIB_IA32_MTRR_FIX4K_F8000              0x26F\r
 #define  MTRR_LIB_IA32_VARIABLE_MTRR_BASE            0x200\r
+//\r
+// Below macro is deprecated, and should not be used.\r
+//\r
 #define  MTRR_LIB_IA32_VARIABLE_MTRR_END             0x20F\r
 #define  MTRR_LIB_IA32_MTRR_DEF_TYPE                 0x2FF\r
 #define  MTRR_LIB_MSR_VALID_MASK                     0xFFFFFFFFFULL\r
@@ -111,6 +128,28 @@ typedef enum {
 #define  MTRR_CACHE_WRITE_BACK       6\r
 #define  MTRR_CACHE_INVALID_TYPE     7\r
 \r
+/**\r
+  Returns the variable MTRR count for the CPU.\r
+\r
+  @return Variable MTRR count\r
+\r
+**/\r
+UINT32\r
+GetVariableMtrrCount (\r
+  VOID\r
+  );\r
+\r
+/**\r
+  Returns the firmware usable variable MTRR count for the CPU.\r
+\r
+  @return Firmware usable variable MTRR count\r
+\r
+**/\r
+UINT32\r
+GetFirmwareVariableMtrrCount (\r
+  VOID\r
+  );\r
+\r
 /**\r
   This function attempts to set the attributes for a memory range.\r
 \r