summaryrefslogtreecommitdiffstats
path: root/UefiCpuPkg/UefiCpuPkg.dec
diff options
context:
space:
mode:
authorJiewen Yao <jiewen.yao@intel.com>2016-10-23 23:21:20 +0800
committerJiewen Yao <jiewen.yao@intel.com>2016-11-17 16:30:05 +0800
commit28b020b5de1e1bee4a44e2536f71fc96c781863c (patch)
tree99065912b0b3dde9f0ac9e31f18b3ec11b005ff7 /UefiCpuPkg/UefiCpuPkg.dec
parent285a682c7870ed907289eba2ccf1bbc49e0acd14 (diff)
downloadedk2-28b020b5de1e1bee4a44e2536f71fc96c781863c.tar.gz
edk2-28b020b5de1e1bee4a44e2536f71fc96c781863c.tar.bz2
edk2-28b020b5de1e1bee4a44e2536f71fc96c781863c.zip
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>
Diffstat (limited to 'UefiCpuPkg/UefiCpuPkg.dec')
-rw-r--r--UefiCpuPkg/UefiCpuPkg.dec8
1 files changed, 8 insertions, 0 deletions
diff --git a/UefiCpuPkg/UefiCpuPkg.dec b/UefiCpuPkg/UefiCpuPkg.dec
index 542704be70..89779c447d 100644
--- a/UefiCpuPkg/UefiCpuPkg.dec
+++ b/UefiCpuPkg/UefiCpuPkg.dec
@@ -206,6 +206,14 @@
# @Prompt The specified AP target C-state for Mwait.
gUefiCpuPkgTokenSpaceGuid.PcdCpuApTargetCstate|0|UINT8|0x00000007
+ ## Indicates if SMM uses static page table.
+ # If enabled, SMM will not use on-demand paging. SMM will build static page table for all memory.<BR><BR>
+ # This flag only impacts X64 build, because SMM alway builds static page table for IA32.
+ # TRUE - SMM uses static page table for all memory.<BR>
+ # FALSE - SMM uses static page table for below 4G memory and use on-demand paging for above 4G memory.<BR>
+ # @Prompt Use static page table for all memory in SMM.
+ gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmStaticPageTable|TRUE|BOOLEAN|0x3213210D
+
[PcdsDynamic, PcdsDynamicEx]
## Contains the pointer to a CPU S3 data buffer of structure ACPI_CPU_DATA.
# @Prompt The pointer to a CPU S3 data buffer.