[edk2] [PATCH 1/2] UefiCpuPkg/RegisterCpuFeaturesLib: Define Index to UINT64

Jeff Fan posted 2 patches 7 years, 7 months ago
[edk2] [PATCH 1/2] UefiCpuPkg/RegisterCpuFeaturesLib: Define Index to UINT64
Posted by Jeff Fan 7 years, 7 months ago
The input parameter Index of PreSmmCpuRegisterTableWrite() and
CpuRegisterTableWrite() is defined as UINT32. Index is MSR/MMIO address that
will be saved in CPU register table. UINT32 blocks the MMIO address > 4GB.

This fix is to define Index to UINT64 instead of UINT32.

Cc: Feng Tian <feng.tian@intel.com>
Cc: Michael Kinney <michael.d.kinney@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com>
---
 UefiCpuPkg/Include/Library/RegisterCpuFeaturesLib.h               | 4 ++--
 .../Library/RegisterCpuFeaturesLib/RegisterCpuFeaturesLib.c       | 8 ++++----
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/UefiCpuPkg/Include/Library/RegisterCpuFeaturesLib.h b/UefiCpuPkg/Include/Library/RegisterCpuFeaturesLib.h
index 42eb3b2..3fb8209 100644
--- a/UefiCpuPkg/Include/Library/RegisterCpuFeaturesLib.h
+++ b/UefiCpuPkg/Include/Library/RegisterCpuFeaturesLib.h
@@ -366,7 +366,7 @@ EFIAPI
 CpuRegisterTableWrite (
   IN UINTN               ProcessorNumber,
   IN REGISTER_TYPE       RegisterType,
-  IN UINT32              Index,
+  IN UINT64              Index,
   IN UINT64              ValueMask,
   IN UINT64              Value
   );
@@ -390,7 +390,7 @@ EFIAPI
 PreSmmCpuRegisterTableWrite (
   IN UINTN               ProcessorNumber,
   IN REGISTER_TYPE       RegisterType,
-  IN UINT32              Index,
+  IN UINT64              Index,
   IN UINT64              ValueMask,
   IN UINT64              Value
   );
diff --git a/UefiCpuPkg/Library/RegisterCpuFeaturesLib/RegisterCpuFeaturesLib.c b/UefiCpuPkg/Library/RegisterCpuFeaturesLib/RegisterCpuFeaturesLib.c
index 396618b..32189cb 100644
--- a/UefiCpuPkg/Library/RegisterCpuFeaturesLib/RegisterCpuFeaturesLib.c
+++ b/UefiCpuPkg/Library/RegisterCpuFeaturesLib/RegisterCpuFeaturesLib.c
@@ -506,7 +506,7 @@ CpuRegisterTableWriteWorker (
   IN BOOLEAN                 PreSmmFlag,
   IN UINTN                   ProcessorNumber,
   IN REGISTER_TYPE           RegisterType,
-  IN UINT32                  Index,
+  IN UINT64                  Index,
   IN UINT8                   ValidBitStart,
   IN UINT8                   ValidBitLength,
   IN UINT64                  Value
@@ -550,7 +550,7 @@ CpuRegisterTableWriteWorker (
   //
   RegisterTableEntry = (CPU_REGISTER_TABLE_ENTRY *) (UINTN) RegisterTable->RegisterTableEntry;
   RegisterTableEntry[RegisterTable->TableLength].RegisterType   = RegisterType;
-  RegisterTableEntry[RegisterTable->TableLength].Index          = Index;
+  RegisterTableEntry[RegisterTable->TableLength].Index          = (UINT32) Index;
   RegisterTableEntry[RegisterTable->TableLength].ValidBitStart  = ValidBitStart;
   RegisterTableEntry[RegisterTable->TableLength].ValidBitLength = ValidBitLength;
   RegisterTableEntry[RegisterTable->TableLength].Value          = Value;
@@ -577,7 +577,7 @@ EFIAPI
 CpuRegisterTableWrite (
   IN UINTN               ProcessorNumber,
   IN REGISTER_TYPE       RegisterType,
-  IN UINT32              Index,
+  IN UINT64              Index,
   IN UINT64              ValueMask,
   IN UINT64              Value
   )
@@ -611,7 +611,7 @@ EFIAPI
 PreSmmCpuRegisterTableWrite (
   IN UINTN               ProcessorNumber,
   IN REGISTER_TYPE       RegisterType,
-  IN UINT32              Index,
+  IN UINT64              Index,
   IN UINT64              ValueMask,
   IN UINT64              Value
   )
-- 
2.9.3.windows.2

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel