20#define MTRR_NUMBER_OF_VARIABLE_MTRR 32
25#define RESERVED_FIRMWARE_VARIABLE_MTRR_NUMBER 2
27#define MTRR_NUMBER_OF_FIXED_MTRR 11
69 UINT64 Mtrr[MTRR_NUMBER_OF_FIXED_MTRR];
86 CacheWriteCombining = 1,
87 CacheWriteThrough = 4,
88 CacheWriteProtected = 5,
91} MTRR_MEMORY_CACHE_TYPE;
93#define MTRR_CACHE_UNCACHEABLE 0
94#define MTRR_CACHE_WRITE_COMBINING 1
95#define MTRR_CACHE_WRITE_THROUGH 4
96#define MTRR_CACHE_WRITE_PROTECTED 5
97#define MTRR_CACHE_WRITE_BACK 6
98#define MTRR_CACHE_INVALID_TYPE 7
103 MTRR_MEMORY_CACHE_TYPE Type;
166 IN PHYSICAL_ADDRESS BaseAddress,
168 IN MTRR_MEMORY_CACHE_TYPE Attribute
180MTRR_MEMORY_CACHE_TYPE
183 IN PHYSICAL_ADDRESS Address
246 IN UINT64 MtrrValidBitsMask,
247 IN UINT64 MtrrValidAddressMask,
279MTRR_MEMORY_CACHE_TYPE
318 IN PHYSICAL_ADDRESS BaseAddress,
320 IN MTRR_MEMORY_CACHE_TYPE Attribute
UINT32 EFIAPI MtrrGetMemoryAttributeInVariableMtrr(IN UINT64 MtrrValidBitsMask, IN UINT64 MtrrValidAddressMask, OUT VARIABLE_MTRR *VariableMtrr)
MTRR_MEMORY_CACHE_TYPE EFIAPI MtrrGetMemoryAttribute(IN PHYSICAL_ADDRESS Address)
VOID EFIAPI MtrrDebugPrintAllMtrrs(VOID)
MTRR_SETTINGS *EFIAPI MtrrSetAllMtrrs(IN MTRR_SETTINGS *MtrrSetting)
RETURN_STATUS EFIAPI MtrrSetMemoryAttributeInMtrrSettings(IN OUT MTRR_SETTINGS *MtrrSetting, IN PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length, IN MTRR_MEMORY_CACHE_TYPE Attribute)
UINT32 EFIAPI GetVariableMtrrCount(VOID)
UINT32 EFIAPI GetFirmwareVariableMtrrCount(VOID)
BOOLEAN EFIAPI IsMtrrSupported(VOID)
RETURN_STATUS EFIAPI MtrrSetMemoryAttribute(IN PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length, IN MTRR_MEMORY_CACHE_TYPE Attribute)
MTRR_FIXED_SETTINGS *EFIAPI MtrrGetFixedMtrr(OUT MTRR_FIXED_SETTINGS *FixedSettings)
MTRR_MEMORY_CACHE_TYPE EFIAPI MtrrGetDefaultMemoryType(VOID)
RETURN_STATUS EFIAPI MtrrSetMemoryAttributesInMtrrSettings(IN OUT MTRR_SETTINGS *MtrrSetting, IN VOID *Scratch, IN OUT UINTN *ScratchSize, IN CONST MTRR_MEMORY_RANGE *Ranges, IN UINTN RangeCount)
MTRR_SETTINGS *EFIAPI MtrrGetAllMtrrs(OUT MTRR_SETTINGS *MtrrSetting)