On 03/04/14 09:20, Jordan Justen wrote:
> Laszlo,
> 
> I committed the last chunk of your S3 support for OVMF
> in as r15290-15308.

That's "our" S3 support :)

> 
> Thanks to you and Red Hat for the great contribution
> to OVMF.
> 
> I know it required quite a lot of debug, rework and
> code review on your part. Thanks for all your time and
> diligence on this!

Thank you for taking it over after v3. Your improvements are very
important and we ended up with a much cleaner state of affairs (memory
layout, memory consumption, fewer open-coded magic constants, avoiding
decompression at resume, etc) thanks to them.

(1) I tested S3 suspend/resume with a 8GB RHEL-7 guest. QXL (qxldrmfb)
works (as before), but the console performance is quite sluggish (as
before).

(2) In reference to

http://thread.gmane.org/gmane.comp.bios.tianocore.devel/5461/focus=5495

I've learned that Gerd recently implemented S3 support for bochs drm and
cirrus drm in the guest Linux kernel.

https://bugzilla.redhat.com/show_bug.cgi?id=1043379
http://lists.freedesktop.org/archives/dri-devel/2014-February/054549.html
http://lists.freedesktop.org/archives/dri-devel/2014-February/054550.html

I tested standard VGA (bochsdrmfb, with backports of the above patches);
it works, and the console performance is nice.

Alas, cirrusdrmfb still doesn't work. The VM comes up but the screen
remains blank.

(3) I also tested S3 suspend/resume with my Windows 2008 R2 guest that I
had originally installed with the SeaBIOS CSM, and then moved to the QXL
XDDM drivers (so that it hasn't been using the CSM for a while). S3
works nicely with it too.

(4) The S3 drivers have increased the image size sufficiently that now
the break builds for me under some circumstances, with my
work-in-progress patches (eg. platform driver).

I'm attaching a patch that I need in at least two situations to build OVMF:
- when building a debug + secure boot image with gcc-4.4,
- when building a debug + secure boot + CSM image with gcc-4.8.

(I did all of the above testing with this patch applied.)

I can repost this patch with git-send-email separetely if necessary.

Thanks!
Laszlo
From bccfd2a8e02d82e427b9be7574e6d4e38024db6f Mon Sep 17 00:00:00 2001
From: Laszlo Ersek <ler...@redhat.com>
Date: Tue, 4 Mar 2014 11:14:06 +0100
Subject: [PATCH] OvmfPkg: raise DXEFV size to 8 MB

This fixes build errors like:

  GenFds.py...
    the required fv image size 0x71b118 exceeds the set fv image size
    0x700000

which is reported at least for:
(a) -b DEBUG -D SECURE_BOOT_ENABLE -t GCC44,
(b) -b DEBUG -D SECURE_BOOT_ENABLE -t GCC48 -D CSM_ENABLE

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <ler...@redhat.com>
---
 OvmfPkg/OvmfPkgIa32.fdf    | 6 +++---
 OvmfPkg/OvmfPkgIa32X64.fdf | 6 +++---
 OvmfPkg/OvmfPkgX64.fdf     | 6 +++---
 3 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf
index 00de317..1735396 100644
--- a/OvmfPkg/OvmfPkgIa32.fdf
+++ b/OvmfPkg/OvmfPkgIa32.fdf
@@ -130,10 +130,10 @@ FV = SECFV
 
 [FD.MEMFD]
 BaseAddress   = 0x800000
-Size          = 0x800000
+Size          = 0x900000
 ErasePolarity = 1
 BlockSize     = 0x10000
-NumBlocks     = 0x80
+NumBlocks     = 0x90
 
 0x000000|0x006000
 
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesSize
@@ -151,7 +151,7 @@ 
gUefiOvmfPkgTokenSpaceGuid.PcdS3AcpiReservedMemoryBase|gEfiIntelFrameworkModuleP
 
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvSize
 FV = PEIFV
 
-0x100000|0x700000
+0x100000|0x800000
 
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvSize
 FV = DXEFV
 
diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/OvmfPkgIa32X64.fdf
index 49c2807..9a7cf3e 100644
--- a/OvmfPkg/OvmfPkgIa32X64.fdf
+++ b/OvmfPkg/OvmfPkgIa32X64.fdf
@@ -130,10 +130,10 @@ FV = SECFV
 
 [FD.MEMFD]
 BaseAddress   = 0x800000
-Size          = 0x800000
+Size          = 0x900000
 ErasePolarity = 1
 BlockSize     = 0x10000
-NumBlocks     = 0x80
+NumBlocks     = 0x90
 
 0x000000|0x006000
 
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesSize
@@ -151,7 +151,7 @@ 
gUefiOvmfPkgTokenSpaceGuid.PcdS3AcpiReservedMemoryBase|gEfiIntelFrameworkModuleP
 
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvSize
 FV = PEIFV
 
-0x100000|0x700000
+0x100000|0x800000
 
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvSize
 FV = DXEFV
 
diff --git a/OvmfPkg/OvmfPkgX64.fdf b/OvmfPkg/OvmfPkgX64.fdf
index 592ca91..47bec31 100644
--- a/OvmfPkg/OvmfPkgX64.fdf
+++ b/OvmfPkg/OvmfPkgX64.fdf
@@ -130,10 +130,10 @@ FV = SECFV
 
 [FD.MEMFD]
 BaseAddress   = 0x800000
-Size          = 0x800000
+Size          = 0x900000
 ErasePolarity = 1
 BlockSize     = 0x10000
-NumBlocks     = 0x80
+NumBlocks     = 0x90
 
 0x000000|0x006000
 
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesSize
@@ -151,7 +151,7 @@ 
gUefiOvmfPkgTokenSpaceGuid.PcdS3AcpiReservedMemoryBase|gEfiIntelFrameworkModuleP
 
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvSize
 FV = PEIFV
 
-0x100000|0x700000
+0x100000|0x800000
 
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvSize
 FV = DXEFV
 
-- 
1.8.3.1

------------------------------------------------------------------------------
Subversion Kills Productivity. Get off Subversion & Make the Move to Perforce.
With Perforce, you get hassle-free workflows. Merge that actually works. 
Faster operations. Version large binaries.  Built-in WAN optimization and the
freedom to use Git, Perforce or both. Make the move to Perforce.
http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to