summaryrefslogtreecommitdiffstats
path: root/EmulatorPkg
diff options
context:
space:
mode:
authorJiaxin Wu <jiaxin.wu@intel.com>2024-07-15 11:56:43 +0800
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2024-08-02 05:13:42 +0000
commit24f8b97a9d5b5189dd0e2acf96b4920f54ddcb7d (patch)
tree143ba1f62fad4ab00e54fe6711923398763b1a2a /EmulatorPkg
parentf73b97fe7f3ff12f021ea786235ec25d69d8c23c (diff)
downloadedk2-24f8b97a9d5b5189dd0e2acf96b4920f54ddcb7d.tar.gz
UefiCpuPkg/PiSmmCpuDxeSmm: Remove assert check for PDE entry not exist
If 2MB-page is selected, PDE entry might exist, it's incorrect to assert it's not exist. Detailed see blow case analysis (it's similar case if address exceeds 4G): Assume the Default Page table has covered below 6M size range: [0000000000001000, 0000000000601000) Then, with PageTableMap API, below Page table entry will be created if 1G-page or 2M-page mode is selected: [0000000000001000, 0000000000002000) --> 4K [0000000000002000, 0000000000003000) --> 4K ... [00000000001FF000, 0000000000200000) --> 4k [0000000000200000, 0000000000400000) --> 2M [0000000000400000, 0000000000600000) --> 2M [0000000000600000, 0000000000601000) --> 4K Above will cover 2M aligned address (0000000000600000) in page table. If Page Fault happen by accessing 0000000000602000, need create the page entry: [0000000000602000, 0000000000603000) --> 4K But PDE entry has been created/existed in page table with 0 PS bit. So, this patch removes the assert check. The page table entry created will be the platform-specified PageSize granularity. Signed-off-by: Jiaxin Wu <jiaxin.wu@intel.com>
Diffstat (limited to 'EmulatorPkg')
0 files changed, 0 insertions, 0 deletions