]> git.proxmox.com Git - mirror_edk2.git/commit - UefiCpuPkg/UefiCpuPkg.dec
UefiCpuPkg/dec: Add PcdCpuSmmStaticPageTable.
authorJiewen Yao <jiewen.yao@intel.com>
Sun, 23 Oct 2016 15:21:20 +0000 (23:21 +0800)
committerJiewen Yao <jiewen.yao@intel.com>
Thu, 17 Nov 2016 08:30:05 +0000 (16:30 +0800)
commit28b020b5de1e1bee4a44e2536f71fc96c781863c
tree99065912b0b3dde9f0ac9e31f18b3ec11b005ff7
parent285a682c7870ed907289eba2ccf1bbc49e0acd14
UefiCpuPkg/dec: Add PcdCpuSmmStaticPageTable.

If enabled, SMM will not use on-demand paging.
SMM will build static page table for all memory.

The page table size depend on 2 things:
1) The 1G paging capability.
2) The whole system memory/MMIO addressing capability.

A) If the system only supports 2M paging,
When the whole memory/MMIO is 32bit, we only need 1+1+4=6 pages for 4G.
When the whole memory/MMIO is 39bit, we need 1+1+256 pages (~ 1M)
When the whole memory/MMIO is 48bit, we need 1+256+256*256 pages (~ 257M)

B) If the system supports 1G paging.
When the whole memory/MMIO is 32bit, we only need 1+1+4=6 pages for 4G.
(We still generate 2M page for maintenance consideration.)
When the whole memory/MMIO is 39bit, we still need 6 pages.
(We setup 1G paging for >1G.)
When the whole memory/MMIO is 48bit, we need 1+256 pages (~ 1M).

Cc: Jeff Fan <jeff.fan@intel.com>
Cc: Feng Tian <feng.tian@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiewen Yao <jiewen.yao@intel.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com>
UefiCpuPkg/UefiCpuPkg.dec