This is meant to be a v4 of Laszlo's S3 series. (I hope
my changes are not too unwelcome! And, appologies for
anything I may have broken!)
The main improvements I made:
* Consolodate 'fixed' RAM usage at 8MB
* Declare fixed memory usage in PCDs & FDF files
* Don't decompress FVs on S3 resume
* Reduce runtime S3 RAM usage overhead to < 1MB
* Remove EmuNvramLib
I retained many of Laszlo's patches, but some were
modified.
I'm still not too happy with Ovmf/AcpiS3SaveDxe.
It would be nice to fixup the main AcpiS3SaveDxe so
we could use it directly rather than having a custom
version in OVMF.
I dropped the portion of the series that saves memory
when S3 is disabled in QEMU. I'd like to push it out,
and look at it as a follow-up to this series.
One other small change that I wanted to make, but I did
not get to is that I wanted to look at the PIIX4 sleep
register rather than CMOS for detecting an S3 resume.
This series is available at:
git://github.com/jljusten/edk2.git ovmf-s3-v4
Jordan Justen (15):
OvmfPkg: Carve 128KB out of MAINFV in MEMFD
OvmfPkg/Sec/SecMain.c: Convert to CRLF (dos) text
OvmfPkg X64 ResetVector: Move page tables from 512KB to 8MB
OvmfPkg: Move SEC/PEI Temporary RAM from 0x70000 to 0x810000
OvmfPkg/Sec: Cleanup debug messages
OvmfPkg/Sec: Remove EFIAPI from functions that don't require it
OvmfPkg/Sec: Add FindFfsSectionInstance
OvmfPkg: Split MAINFV into a separate PEI and DXE FVs
OvmfPkg/PlatformPei: Move BootMode detection before mem-init
OvmfPkg/PlatformPei: Add mBootMode driver variable
OvmfPkg/PlatformPei: Call PublishPeiMemory in one place
OvmfPkg: Add section of memory to use for PEI on S3 resume
OvmfPkg/PlatformPei: Skip various items for S3 resume
OvmfPkg/Sec: Don't decompress the FV on S3 resume
OvmfPkg: Add DebugAgentLib for Library class mapping for DXE_DRIVER
Laszlo Ersek (11):
OvmfPkg: PlatformPei: detect S3 Resume in CMOS and set boot mode
accordingly
OvmfPkg: PlatformPei: reserve SEC/PEI temp RAM for S3 resume
OvmfPkg: PlatformPei: reserve early page tables on X64
OvmfPkg: S3 Resume: pull in PEIM orchestrating S3 Resume
OvmfPkg: implement LockBoxLib
OvmfPkg: S3 Suspend: import specialized copy of AcpiS3SaveDxe
OvmfPkg: S3 Suspend: save ACPI context
OvmfPkg: S3 Suspend: enable creation/saving of an S3 Boot Script
OvmfPkg: S3 Suspend: save boot script after ACPI context
OvmfPkg: S3 Resume: fake LockBox protocol for BootScriptExecutorDxe
OvmfPkg: S3 Resume: pull in BootScriptExecutorDxe
OvmfPkg/AcpiS3SaveDxe/AcpiS3Save.c | 606 +++++++++
OvmfPkg/AcpiS3SaveDxe/AcpiS3Save.h | 59 +
OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf | 79 ++
OvmfPkg/Library/LockBoxLib/LockBoxBase.c | 42 +
OvmfPkg/Library/LockBoxLib/LockBoxBaseLib.inf | 44 +
OvmfPkg/Library/LockBoxLib/LockBoxDxe.c | 62 +
OvmfPkg/Library/LockBoxLib/LockBoxDxeLib.inf | 45 +
OvmfPkg/Library/LockBoxLib/LockBoxLib.c | 358 ++++++
OvmfPkg/Library/LockBoxLib/LockBoxLib.h | 47 +
OvmfPkg/OvmfPkg.dec | 13 +-
OvmfPkg/OvmfPkgIa32.dsc | 18 +-
OvmfPkg/OvmfPkgIa32.fdf | 42 +-
OvmfPkg/OvmfPkgIa32X64.dsc | 18 +-
OvmfPkg/OvmfPkgIa32X64.fdf | 42 +-
OvmfPkg/OvmfPkgX64.dsc | 18 +-
OvmfPkg/OvmfPkgX64.fdf | 42 +-
OvmfPkg/PlatformPei/Fv.c | 46 +-
OvmfPkg/PlatformPei/MemDetect.c | 98 +-
OvmfPkg/PlatformPei/Platform.c | 39 +-
OvmfPkg/PlatformPei/Platform.h | 188 +--
OvmfPkg/PlatformPei/PlatformPei.inf | 17 +-
OvmfPkg/ResetVector/Bin/ResetVector.x64.raw | Bin 628 -> 628 bytes
OvmfPkg/ResetVector/Ia32/PageTables64.asm | 22 +-
OvmfPkg/Sec/Ia32/SecEntry.S | 14 +-
OvmfPkg/Sec/Ia32/SecEntry.asm | 14 +-
OvmfPkg/Sec/SecMain.c | 1656 +++++++++++++------------
OvmfPkg/Sec/SecMain.inf | 11 +-
OvmfPkg/Sec/X64/SecEntry.S | 6 +-
OvmfPkg/Sec/X64/SecEntry.asm | 9 +-
29 files changed, 2670 insertions(+), 985 deletions(-)
create mode 100644 OvmfPkg/AcpiS3SaveDxe/AcpiS3Save.c
create mode 100644 OvmfPkg/AcpiS3SaveDxe/AcpiS3Save.h
create mode 100644 OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf
create mode 100644 OvmfPkg/Library/LockBoxLib/LockBoxBase.c
create mode 100644 OvmfPkg/Library/LockBoxLib/LockBoxBaseLib.inf
create mode 100644 OvmfPkg/Library/LockBoxLib/LockBoxDxe.c
create mode 100644 OvmfPkg/Library/LockBoxLib/LockBoxDxeLib.inf
create mode 100644 OvmfPkg/Library/LockBoxLib/LockBoxLib.c
create mode 100644 OvmfPkg/Library/LockBoxLib/LockBoxLib.h
--
1.8.5.2
------------------------------------------------------------------------------
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today.
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel