audk/MdeModulePkg/Universal
Star Zeng c6368abcf0 MdeModulePkg BootScriptExecutorDxe: Reduce reserved memory consumption
We are going to reduce reserved memory consumption by page table buffer,
then OS can have more available memory to use.
Take PhysicalAddressBits = 48 and 2MB page granularity as example,
1:1 Virtual to Physical identity mapping page table buffer needs to be
((512 + 1) * 512 + 1) * 4096 = 1075843072 bytes = 0x40201000 bytes.

Current BootScriptExecutorDxe handles > 4G request by page fault because
S3ResumePeim only builds 4G page table when long mode waking vector is
not needed, but BootScriptExecutorDxe still assume the page table buffer for
page table is at 1:1 Virtual to Physical identity mapping.

To reduce reserved memory consumption, the code is updated to only use
8 extra pages to handles > 4G request by page fault.
Another, when both BIOS and OS wants long mode waking vector,
S3ResumePei should have established 1:1 Virtual to Physical identity mapping
page table for ACPI spec requirement, so no need to hook page fault handler.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18067 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-27 03:03:25 +00:00
..
Acpi MdeModulePkg BootScriptExecutorDxe: Reduce reserved memory consumption 2015-07-27 03:03:25 +00:00
BdsDxe MdeModulePkg: Add UNI file for BdsDxe driver. 2015-05-15 08:45:35 +00:00
BootManagerPolicyDxe MdeModulePkg: Add UNI files for BootManagerPolicyDxe driver. 2015-05-15 08:46:06 +00:00
CapsulePei MdeModulePkg/Universal/CapsulePei: Use safe string functions to refine code. 2015-07-01 08:22:31 +00:00
CapsuleRuntimeDxe MdeModulePkg/Universal/CapsuleRuntimeDxe: Use safe string functions to refine code. 2015-07-01 08:23:30 +00:00
Console MdeModulePkg/TerminalDxe: Some improvements 2015-07-16 08:50:43 +00:00
DebugPortDxe MdeModulePkg: Convert non DOS format files to DOS format and remove unused module UNI files. 2014-09-03 08:39:12 +00:00
DebugSupportDxe MdeModulePkg DebugSupportDxe: Fix build error with GNU assembler 2014-12-17 05:16:48 +00:00
DevicePathDxe MdeModulePkg: Convert non DOS format files to DOS format and remove unused module UNI files. 2014-09-03 08:39:12 +00:00
Disk MdeModulePkg/PartitionDxe: Fix media probe 2015-07-07 11:26:27 +00:00
DisplayEngineDxe MdeModulePkg: Check the case caused by mismatch 2015-07-26 08:03:44 +00:00
DriverHealthManagerDxe MdeModulePkg: Add UNI files for DriverHealthManagerDxe driver. 2015-05-15 08:46:34 +00:00
DriverSampleDxe MdeModulePkg: Correct the parameter order in match2 sample opcode 2015-07-26 08:03:40 +00:00
EbcDxe Fix X64 native function call prolog. Prepare space for at least 4 arguments, 2014-09-22 05:54:41 +00:00
EsrtDxe MdeModulePkg: Update coding style 2015-05-20 02:19:17 +00:00
FaultTolerantWriteDxe MdeModulePkg: Cleanup gEfiSmmAccess2ProtocolGuid reference. 2015-02-05 00:59:56 +00:00
FaultTolerantWritePei MdeModulePkg: Convert non DOS format files to DOS format and remove unused module UNI files. 2014-09-03 08:39:12 +00:00
FvSimpleFileSystemDxe MdeModulePkg/FvSimpleFileSystemDxe: Support file opening with no '.efi' 2015-07-09 10:34:27 +00:00
HiiDatabaseDxe MdeModulePkg:Modify the incorrect DestStr length in safe string functions 2015-07-07 04:37:07 +00:00
HiiResourcesSampleDxe MdeModulePkg: Convert non DOS format files to DOS format and remove unused module UNI files. 2014-09-03 08:39:12 +00:00
LegacyRegion2Dxe MdeModulePkg: Convert non DOS format files to DOS format and remove unused module UNI files. 2014-09-03 08:39:12 +00:00
LockBox/SmmLockBox MdeModulePkg: Cleanup gEfiSmmAccess2ProtocolGuid reference. 2015-02-05 00:59:56 +00:00
MemoryTest MdeModulePkg: Convert non DOS format files to DOS format and remove unused module UNI files. 2014-09-03 08:39:12 +00:00
Metronome MdeModulePkg: Convert non DOS format files to DOS format and remove unused module UNI files. 2014-09-03 08:39:12 +00:00
MonotonicCounterRuntimeDxe MdeModulePkg: Convert non DOS format files to DOS format and remove unused module UNI files. 2014-09-03 08:39:12 +00:00
Network MdeModulePkg: Add old IPv4_DEVICE_PATH support for new IScsiDxe 2015-07-26 08:04:04 +00:00
PCD MdeModulePkg/Universal/PCD: Use safe string functions to refine code. 2015-07-01 08:27:03 +00:00
PcatSingleSegmentPciCfg2Pei MdeModulePkg: Convert non DOS format files to DOS format and remove unused module UNI files. 2014-09-03 08:39:12 +00:00
PlatformDriOverrideDxe MdeModulePkg/Universal/PlatformDriOverrideDxe: Use safe string functions to refine code. 2015-07-01 08:28:13 +00:00
PrintDxe MdeModulePkg: Convert non DOS format files to DOS format and remove unused module UNI files. 2014-09-03 08:39:12 +00:00
PropertiesTableAttributesDxe MdeModulePkg: Refine code to make it more readable. 2015-07-03 01:39:06 +00:00
ReportStatusCodeRouter MdeModulePkg: Convert non DOS format files to DOS format and remove unused module UNI files. 2014-09-03 08:39:12 +00:00
ResetSystemRuntimeDxe MdeModulePkg: Convert non DOS format files to DOS format and remove unused module UNI files. 2014-09-03 08:39:12 +00:00
SectionExtractionDxe MdeModulePkg: Convert non DOS format files to DOS format and remove unused module UNI files. 2014-09-03 08:39:12 +00:00
SectionExtractionPei MdeModulePkg: Convert non DOS format files to DOS format and remove unused module UNI files. 2014-09-03 08:39:12 +00:00
SecurityStubDxe MdeModulePkg: Convert non DOS format files to DOS format and remove unused module UNI files. 2014-09-03 08:39:12 +00:00
SetupBrowserDxe MdeModulePkg: Remove gZeroGuid definition in SetupBrowserDxe 2015-07-07 02:55:34 +00:00
SmbiosDxe MdeModulePkg: SmbiosDxe: ARM and AARCH64 are VALID_ARCHITECTURES 2015-07-26 08:02:45 +00:00
StatusCodeHandler MdeModulePkg: Convert non DOS format files to DOS format and remove unused module UNI files. 2014-09-03 08:39:12 +00:00
TimestampDxe MdeModulePkg: Convert non DOS format files to DOS format and remove unused module UNI files. 2014-09-03 08:39:12 +00:00
Variable MdeModulePkg Variable: Read MonotonicCount by ReadUnaligned64() 2015-07-27 00:49:00 +00:00
WatchdogTimerDxe MdeModulePkg: Convert non DOS format files to DOS format and remove unused module UNI files. 2014-09-03 08:39:12 +00:00