mirror of https://github.com/acidanthera/audk.git
When creating smm page table, limit maximum supported physical addresses bits returned by CalculateMaximumSupportAddress() to 47 if 5-Level Paging is disabled. This commit is to avoid issue that more than 47-bit physical addresses are requested in smm page table when 5-level paging is disabled. 4-level paging supports translating 48-bit linear addresses to 52-bit physical addresses. Since linear addresses are sign-extended, linear-address space of 4-level paging is: [0, 2^47-1] and [0xffff8000_00000000, 0xffffffff_ffffffff]. So only [0, 2^47-1] linear-address range maps to the identical physical-address range when 5-Level paging is disabled. Signed-off-by: Dun Tan <dun.tan@intel.com> Reviewed-by: Ray Ni <ray.ni@intel.com> Reviewed-by: Gerd Hoffmann <kraxel@redhat.com> Cc: Laszlo Ersek <lersek@redhat.com> Cc: Rahul Kumar <rahul1.kumar@intel.com> |
||
---|---|---|
.. | ||
Ia32 | ||
X64 | ||
Cet.inc | ||
CpuS3.c | ||
CpuService.c | ||
CpuService.h | ||
MpService.c | ||
PiSmmCpuDxeSmm.c | ||
PiSmmCpuDxeSmm.h | ||
PiSmmCpuDxeSmm.inf | ||
PiSmmCpuDxeSmm.uni | ||
PiSmmCpuDxeSmmExtra.uni | ||
SmmCpuMemoryManagement.c | ||
SmmMp.c | ||
SmmMp.h | ||
SmmMpPerf.c | ||
SmmMpPerf.h | ||
SmmProfile.c | ||
SmmProfile.h | ||
SmmProfileInternal.h | ||
SmramSaveState.c | ||
SyncTimer.c |