I've addressed Jordan's v2 remarks (also noted separately per patch):
- the platform driver is now introduced as an empty driver first,
- replaced the string "PlatformConfig" with "Platform" in many
  filenames,
- folded PlatformConfigLib into PlatformDxe,
- bi-directional compatibility in the config NvVar (should handle fw
  upgrade / downgrade gracefully),
- made Depex section of PlatformDxe explicit about the necessary
  underlying drivers (NvVars, HII),
- dynamic PCDs for GraphicsConsoleDxe are now set in PlatformDxe instead
  of PlatformBdsLib,
- replaced the GOP Depex with a GOP installation callback.

The series builds and is testable at each commit (as usual).

I also tested the end result with -vga none: the form is available, the
current resolution preference is displayed (ie. Unset or
<Width>x<Height>), the commit/discard buttons are active, and the mode
drop-down list is absent. The RouteConfig() protocol member is not
called when leaving the form (with either button), which makes sense
because nothing on the form can be changed.

The patchset can be fetched from

  https://github.com/lersek/edk2/commits/mode_select_v3

Please test and review. And be kind! :)

Thanks,
Laszlo

Laszlo Ersek (13):
  OvmfPkg: non-null PcdLib instance for GraphicsConsoleDxe
  OvmfPkg: introduce gOvmfPlatformConfigGuid
  OvmfPkg: introduce empty PlatformDxe
  OvmfPkg: PlatformDxe: utility functions for saving / loading
    configuration
  OvmfPkg: PlatformDxe: set preferred video resolution from platform
    config
  OvmfPkg: PlatformDxe: add an empty HII form
  OvmfPkg: PlatformDxe: introduce state for the main form
  OvmfPkg: PlatformDxe: add form widgets for video modes
  OvmfPkg: QemuVideoDxe: serialize Start() against callbacks
  OvmfPkg: PlatformDxe: get available resolutions from GOP
  OvmfPkg: PlatformDxe: add save and discard buttons to the form
  OvmfPkg: PlatformDxe: connect ExtractConfig() to platform data
  OvmfPkg: PlatformDxe: connect RouteConfig() to platform data

 OvmfPkg/PlatformDxe/Platform.inf          |  69 +++
 OvmfPkg/Include/Guid/OvmfPlatformConfig.h |  24 +
 OvmfPkg/PlatformDxe/Platform.h            |  43 ++
 OvmfPkg/PlatformDxe/PlatformConfig.h      |  59 ++
 OvmfPkg/PlatformDxe/PlatformForms.vfr     |  74 +++
 OvmfPkg/PlatformDxe/Platform.c            | 869 ++++++++++++++++++++++++++++++
 OvmfPkg/PlatformDxe/PlatformConfig.c      | 131 +++++
 OvmfPkg/QemuVideoDxe/Driver.c             |  10 +-
 OvmfPkg/OvmfPkg.dec                       |   1 +
 OvmfPkg/OvmfPkgIa32.dsc                   |   9 +-
 OvmfPkg/OvmfPkgIa32.fdf                   |   1 +
 OvmfPkg/OvmfPkgIa32X64.dsc                |   9 +-
 OvmfPkg/OvmfPkgIa32X64.fdf                |   1 +
 OvmfPkg/OvmfPkgX64.dsc                    |   9 +-
 OvmfPkg/OvmfPkgX64.fdf                    |   1 +
 OvmfPkg/PlatformDxe/Platform.uni          | Bin 0 -> 3298 bytes
 16 files changed, 1306 insertions(+), 4 deletions(-)
 create mode 100644 OvmfPkg/PlatformDxe/Platform.inf
 create mode 100644 OvmfPkg/Include/Guid/OvmfPlatformConfig.h
 create mode 100644 OvmfPkg/PlatformDxe/Platform.h
 create mode 100644 OvmfPkg/PlatformDxe/PlatformConfig.h
 create mode 100644 OvmfPkg/PlatformDxe/PlatformForms.vfr
 create mode 100644 OvmfPkg/PlatformDxe/Platform.c
 create mode 100644 OvmfPkg/PlatformDxe/PlatformConfig.c
 create mode 100644 OvmfPkg/PlatformDxe/Platform.uni

-- 
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