diff options
author | jyao1 <jyao1@6f19259b-4bc3-4df7-8a09-765794883524> | 2010-02-05 22:27:07 +0000 |
---|---|---|
committer | jyao1 <jyao1@6f19259b-4bc3-4df7-8a09-765794883524> | 2010-02-05 22:27:07 +0000 |
commit | 3ba736f39cdb1d587089885dcde4b501eea9962e (patch) | |
tree | f2b6d17cd217ab0e4c05d6acb208ce07a92f5c6d /UefiCpuPkg/Include | |
parent | 3aa4215f72528d6f2ac3fc5830c68d5105491d71 (diff) | |
download | edk2-3ba736f39cdb1d587089885dcde4b501eea9962e.tar.gz edk2-3ba736f39cdb1d587089885dcde4b501eea9962e.tar.bz2 edk2-3ba736f39cdb1d587089885dcde4b501eea9962e.zip |
Revert incompatible change:
1) No API change from old version.
2) Change MACRO:
#define MTRR_NUMBER_OF_VARIABLE_MTRR 32 // the semantics are changed from NUMBER to MAX_NUMBER.
#define FIRMWARE_VARIABLE_MTRR_NUMBER 6 // wrong and deprecated
#define MTRR_LIB_IA32_VARIABLE_MTRR_END 0x20F // wrong and deprecated
#define RESERVED_FIRMWARE_VARIABLE_MTRR_NUMBER 2 // add new one.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9941 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'UefiCpuPkg/Include')
-rw-r--r-- | UefiCpuPkg/Include/Library/MtrrLib.h | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/UefiCpuPkg/Include/Library/MtrrLib.h b/UefiCpuPkg/Include/Library/MtrrLib.h index 14453719bf..e2f2491eee 100644 --- a/UefiCpuPkg/Include/Library/MtrrLib.h +++ b/UefiCpuPkg/Include/Library/MtrrLib.h @@ -21,15 +21,19 @@ //
//
-// We can not use Pcd as macro to define structure, so we have to define MAX_MTRR_NUMBER_OF_VARIABLE_MTRR
+// The semantics of below macro is MAX_MTRR_NUMBER_OF_VARIABLE_MTRR, the real number can be read out from MTRR_CAP register.
//
-#define MAX_MTRR_NUMBER_OF_VARIABLE_MTRR 32
+#define MTRR_NUMBER_OF_VARIABLE_MTRR 32
//
// Firmware need reserve 2 MTRR for OS
//
#define RESERVED_FIRMWARE_VARIABLE_MTRR_NUMBER 2
#define MTRR_NUMBER_OF_FIXED_MTRR 11
+//
+// Below macro is deprecated, and should not be used.
+//
+#define FIRMWARE_VARIABLE_MTRR_NUMBER 6
#define MTRR_LIB_IA32_MTRR_CAP 0x0FE
#define MTRR_LIB_IA32_MTRR_CAP_VCNT_MASK 0x0FF
#define MTRR_LIB_IA32_MTRR_FIX64K_00000 0x250
@@ -44,6 +48,10 @@ #define MTRR_LIB_IA32_MTRR_FIX4K_F0000 0x26E
#define MTRR_LIB_IA32_MTRR_FIX4K_F8000 0x26F
#define MTRR_LIB_IA32_VARIABLE_MTRR_BASE 0x200
+//
+// Below macro is deprecated, and should not be used.
+//
+#define MTRR_LIB_IA32_VARIABLE_MTRR_END 0x20F
#define MTRR_LIB_IA32_MTRR_DEF_TYPE 0x2FF
#define MTRR_LIB_MSR_VALID_MASK 0xFFFFFFFFFULL
#define MTRR_LIB_CACHE_VALID_ADDRESS 0xFFFFFF000ULL
@@ -83,7 +91,7 @@ typedef struct _MTRR_VARIABLE_SETTING_ { // Array for variable MTRRs
//
typedef struct _MTRR_VARIABLE_SETTINGS_ {
- MTRR_VARIABLE_SETTING Mtrr[MAX_MTRR_NUMBER_OF_VARIABLE_MTRR];
+ MTRR_VARIABLE_SETTING Mtrr[MTRR_NUMBER_OF_VARIABLE_MTRR];
} MTRR_VARIABLE_SETTINGS;
//
@@ -282,25 +290,19 @@ MtrrSetAllMtrrs ( This function shadows the content of variable MTRRs into
an internal array: VariableMtrr
- @param MtrrValidBitsMask The mask for the valid bit of the MTRR
- @param MtrrValidAddressMask The valid address mask for MTRR since the base address in
- MTRR must align to 4K, so valid address mask equal to
- MtrrValidBitsMask & 0xfffffffffffff000ULL
- @param VariableMtrrCount On input, it means the array number of variable MTRRs passed in.
- On output, it means the number of MTRRs which has been used if EFI_SUCCESS,
- or the number of MTRR required if BUFFER_TOO_SMALL.
- @param VariableMtrr The array to shadow variable MTRRs content
-
- @retval RETURN_SUCCESS The variable MTRRs are returned.
- @retval RETURN_BUFFER_TOO_SMALL The input buffer is too small to hold the variable MTRRs.
-
+ @param MtrrValidBitsMask The mask for the valid bit of the MTRR
+ @param MtrrValidAddressMask The valid address mask for MTRR since the base address in
+ MTRR must align to 4K, so valid address mask equal to
+ MtrrValidBitsMask & 0xfffffffffffff000ULL
+ @param VariableMtrr The array to shadow variable MTRRs content
+ @return The ruturn value of this paramter indicates the number of
+ MTRRs which has been used.
**/
-RETURN_STATUS
+UINT32
EFIAPI
MtrrGetMemoryAttributeInVariableMtrr (
IN UINT64 MtrrValidBitsMask,
IN UINT64 MtrrValidAddressMask,
- IN OUT UINT32 *VariableMtrrCount,
OUT VARIABLE_MTRR *VariableMtrr
);
|