v1 posting:
- http://thread.gmane.org/gmane.comp.bios.tianocore.devel/5461

additional v1 test results:
- http://thread.gmane.org/gmane.comp.bios.tianocore.devel/5461/focus=5495
- http://thread.gmane.org/gmane.comp.bios.tianocore.devel/5461/focus=5501
- http://thread.gmane.org/gmane.comp.bios.tianocore.devel/5461/focus=5613
- http://thread.gmane.org/gmane.comp.bios.tianocore.devel/5461/focus=5639

changes in v2:
- new patch at the beginning provides documentation in advance:
  [PATCH v2 01/32] OvmfPkg: PlatformPei: document ranges to be reserved
                   manually

- fixed a comment typo ("disbled" -> "disabled") in
  [PATCH v2 02/32] OvmfPkg: introduce EmuNvramLib

- new patch reserves one additional memory range (lack of reservation
  did not cause problems in practice):
  [PATCH v2 10/32] OvmfPkg: PlatformPei: reserve early page tables on
                   X64

- the following RFC/v1 patch has been applied, so dropping it here:
  [PATCH 20/22] UefiCpuPkg: S3Resume2Pei: align return stacks explicitly

- new v2 patches 24 to 28 extend QemuFwCfgLib with the ability to query
  S3 support (ie. qemu configuration) directly, also offering the
  library to SEC client code (which runs from read-only memory):

  [PATCH v2 24/32] OvmfPkg: QemuFwCfgLib: drop bogus dependency on
                   UefiBootServicesTableLib
  [PATCH v2 25/32] OvmfPkg: QemuFwCfgLib: determine if S3 support is
                   explicitly disabled
  [PATCH v2 26/32] OvmfPkg: QemuFwCfgLib: introduce
                   InternalQemuFwCfgIsAvailable()
  [PATCH v2 27/32] OvmfPkg: QemuFwCfgLib: extract stateful
                   implementation
  [PATCH v2 28/32] OvmfPkg: QemuFwCfgLib: implement for SEC

- new v2 patches 29 to 32 avoid reserving memory for S3 purposes if S3
  support has been explicitly disabled in qemu, saving guest RAM:

  [PATCH v2 29/32] OvmfPkg: PlatformPei: "S3 Resume Boot Path" implies
                   "S3 was Enabled"
  [PATCH v2 30/32] OvmfPkg: AcpiS3SaveDxe: depend on SmmLockBox
                   explicitly
  [PATCH v2 31/32] OvmfPkg: turn off NVRAM emulation when S3 is
                   explicitly disabled
  [PATCH v2 32/32] OvmfPkg: PlatformPei: don't reserve early-use ranges
                   with S3 disabled

The series can be fetched from
<https://github.com/lersek/edk2/commits/s3_v2>.

Please test and/or review... and Happy Christmas! :)

Thanks,
Laszlo

Laszlo Ersek (32):
  OvmfPkg: PlatformPei: document ranges to be reserved manually
  OvmfPkg: introduce EmuNvramLib
  OvmfPkg: Sec: forbid overlap between decompressed fw image and
    EmuNvram
  OvmfPkg: PlatformPei: simplify memory range expressions in MemDetect()
  OvmfPkg: PlatformPei: reuse PublishPeiMemory() in MemDetect()
  OvmfPkg: PlatformPei: reserve / install PEI core memory dependent on
    S3
  OvmfPkg: PlatformPei: reserve decompressed firmware area from the OS
  OvmfPkg: PlatformPei: reserve fw decompression scratch space from the
    OS
  OvmfPkg: PlatformPei: reserve initial (pre-migr.) SEC/PEI stack and
    PEI heap
  OvmfPkg: PlatformPei: reserve early page tables on X64
  OvmfPkg: S3 Suspend: introduce EmuSmmDxe for exposing SMRAM
  OvmfPkg: S3 Suspend: pull in DXE driver for
    EFI_SMM_COMMUNICATION_PROTOCOL
  OvmfPkg: S3 Suspend: pull in SmmLockBox driver
  OvmfPkg: S3 Suspend: use SMM instances for LockBoxLib library class
  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 Suspend: introduce DiscloseSmstSmm driver
  OvmfPkg: S3 Resume: introduce EmuSmmPei for exposing SMRAM in PEI
  OvmfPkg: S3 Resume: pull in BootScriptExecutorDxe
  OvmfPkg: S3 Resume: pull in PEIM orchestrating S3 Resume
  OvmfPkg: PlatformPei: detect S3 Resume in CMOS and set boot mode
    accordingly
  OvmfPkg: QemuFwCfgLib: drop bogus dependency on
    UefiBootServicesTableLib
  OvmfPkg: QemuFwCfgLib: determine if S3 support is explicitly disabled
  OvmfPkg: QemuFwCfgLib: introduce InternalQemuFwCfgIsAvailable()
  OvmfPkg: QemuFwCfgLib: extract stateful implementation
  OvmfPkg: QemuFwCfgLib: implement for SEC
  OvmfPkg: PlatformPei: "S3 Resume Boot Path" implies "S3 was Enabled"
  OvmfPkg: AcpiS3SaveDxe: depend on SmmLockBox explicitly
  OvmfPkg: turn off NVRAM emulation when S3 is explicitly disabled
  OvmfPkg: PlatformPei: don't reserve early-use ranges with S3 disabled

 OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf          |  78 +++
 OvmfPkg/DiscloseSmstSmm/DiscloseSmstSmm.inf      |  50 ++
 OvmfPkg/EmuSmmDxe/EmuSmmDxe.inf                  |  54 ++
 OvmfPkg/EmuSmmPei/EmuSmmPei.inf                  |  57 +++
 OvmfPkg/Library/EmuNvramLib/EmuNvramLib.inf      |  43 ++
 OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLib.inf    |   7 +-
 OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgSecLib.inf |  54 ++
 OvmfPkg/PlatformPei/PlatformPei.inf              |   2 +
 OvmfPkg/Sec/SecMain.inf                          |   1 +
 OvmfPkg/AcpiS3SaveDxe/AcpiS3Save.h               |  59 +++
 OvmfPkg/Include/Library/EmuNvramLib.h            |  32 ++
 OvmfPkg/Include/Library/QemuFwCfgLib.h           |  33 ++
 OvmfPkg/PlatformPei/Platform.h                   |   6 +-
 OvmfPkg/AcpiS3SaveDxe/AcpiS3Save.c               | 605 +++++++++++++++++++++++
 OvmfPkg/DiscloseSmstSmm/DiscloseSmstSmm.c        |  36 ++
 OvmfPkg/EmuSmmDxe/EmuSmmDxe.c                    | 277 +++++++++++
 OvmfPkg/EmuSmmPei/EmuSmmPei.c                    | 280 +++++++++++
 OvmfPkg/Library/EmuNvramLib/EmuNvramLib.c        | 173 +++++++
 OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLib.c      |  88 ++--
 OvmfPkg/Library/QemuFwCfgLib/StatefulImpl.c      |  92 ++++
 OvmfPkg/Library/QemuFwCfgLib/StatelessImpl.c     |  76 +++
 OvmfPkg/PlatformPei/Fv.c                         |  68 ++-
 OvmfPkg/PlatformPei/MemDetect.c                  |  55 +--
 OvmfPkg/PlatformPei/Platform.c                   |  23 +-
 OvmfPkg/Sec/SecMain.c                            |   6 +
 OvmfPkg/OvmfPkg.dec                              |   8 +
 OvmfPkg/OvmfPkgIa32.dsc                          |  46 +-
 OvmfPkg/OvmfPkgIa32.fdf                          |  26 +
 OvmfPkg/OvmfPkgIa32X64.dsc                       |  46 +-
 OvmfPkg/OvmfPkgIa32X64.fdf                       |  26 +
 OvmfPkg/OvmfPkgX64.dsc                           |  46 +-
 OvmfPkg/OvmfPkgX64.fdf                           |  26 +
 OvmfPkg/PlatformPei/MemoryMap.txt                | 120 +++++
 33 files changed, 2496 insertions(+), 103 deletions(-)
 create mode 100644 OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf
 create mode 100644 OvmfPkg/DiscloseSmstSmm/DiscloseSmstSmm.inf
 create mode 100644 OvmfPkg/EmuSmmDxe/EmuSmmDxe.inf
 create mode 100644 OvmfPkg/EmuSmmPei/EmuSmmPei.inf
 create mode 100644 OvmfPkg/Library/EmuNvramLib/EmuNvramLib.inf
 create mode 100644 OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgSecLib.inf
 create mode 100644 OvmfPkg/AcpiS3SaveDxe/AcpiS3Save.h
 create mode 100644 OvmfPkg/Include/Library/EmuNvramLib.h
 create mode 100644 OvmfPkg/AcpiS3SaveDxe/AcpiS3Save.c
 create mode 100644 OvmfPkg/DiscloseSmstSmm/DiscloseSmstSmm.c
 create mode 100644 OvmfPkg/EmuSmmDxe/EmuSmmDxe.c
 create mode 100644 OvmfPkg/EmuSmmPei/EmuSmmPei.c
 create mode 100644 OvmfPkg/Library/EmuNvramLib/EmuNvramLib.c
 create mode 100644 OvmfPkg/Library/QemuFwCfgLib/StatefulImpl.c
 create mode 100644 OvmfPkg/Library/QemuFwCfgLib/StatelessImpl.c
 create mode 100644 OvmfPkg/PlatformPei/MemoryMap.txt

-- 
1.8.3.1


------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to