diff options
author | Jeff Fan <jeff.fan@intel.com> | 2017-03-23 13:19:49 +0800 |
---|---|---|
committer | Jeff Fan <jeff.fan@intel.com> | 2017-03-27 16:18:04 +0800 |
commit | 30b7a50bacee2a33cf9c708169f7c872a6ef00b2 (patch) | |
tree | 54e0c8abfb7cad8f648114b8b345cd5a88f75ff6 /UefiCpuPkg/PiSmmCpuDxeSmm | |
parent | 98387f54ae7fcdc2badb90e39be0e9d8b37855c9 (diff) | |
download | edk2-30b7a50bacee2a33cf9c708169f7c872a6ef00b2.tar.gz edk2-30b7a50bacee2a33cf9c708169f7c872a6ef00b2.tar.bz2 edk2-30b7a50bacee2a33cf9c708169f7c872a6ef00b2.zip |
UefiCpuPkg/AcpiCpuData.h: Support >4GB MMIO address
The current CPU_REGISTER_TABLE_ENTRY structure only defined UINT32 Index to
indicate MSR/MMIO address. It's ok for MSR because MSR address is UINT32 type
actually. But for MMIO address, UINT32 limits MMIO address exceeds 4GB.
This update on CPU_REGISTER_TABLE_ENTRY is to add additional UINT32 field
HighIndex to indicate the high 32bit MMIO address and original Index still
indicate the low 32bit MMIO address.
This update makes use of original padding space between ValidBitLength and
Value to add HighIndex.
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>
Reviewed-by: Feng Tian <feng.tian@intel.com>
Diffstat (limited to 'UefiCpuPkg/PiSmmCpuDxeSmm')
-rw-r--r-- | UefiCpuPkg/PiSmmCpuDxeSmm/CpuS3.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/CpuS3.c b/UefiCpuPkg/PiSmmCpuDxeSmm/CpuS3.c index c3280b8879..9404501498 100644 --- a/UefiCpuPkg/PiSmmCpuDxeSmm/CpuS3.c +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/CpuS3.c @@ -315,7 +315,7 @@ SetProcessorRegister ( case MemoryMapped:
AcquireSpinLock (mMemoryMappedLock);
MmioBitFieldWrite32 (
- RegisterTableEntry->Index,
+ (UINTN)(RegisterTableEntry->Index | LShiftU64 (RegisterTableEntry->HighIndex, 32)),
RegisterTableEntry->ValidBitStart,
RegisterTableEntry->ValidBitStart + RegisterTableEntry->ValidBitLength - 1,
(UINT32)RegisterTableEntry->Value
|