This is v2 of the vidmode selection series (codenamed "be careful what
you ask for" :)), with v1 comments addressed, a whole lot of
QemuVideoDxe cleanups, and -- in the "bells and whistles" category -- an
HII form.

Recap from the v1 blurb:

> The series is mainly motivated by the Windows 2012 R2 / Windows 8
> guest: the QXL WDDM driver (0.3) depends on VGABIOS services and
> doesn't work with OVMF. The series allows the guest admin to configure
> the GOP through the PreferredResolution global variable, and Windows
> 2012 R2 simply inherits the GOP resolution and framebuffer.

Anatomy of the patchset -- Laszlo Ersek (19):

#01 enables the PCD-level configuration of the graphics console in OVMF:

  OvmfPkg: non-null PcdLib instance for GraphicsConsoleDxe

#02-#03 introduce a simple library that abstracts out Platform
Configuration knobs on top of one binary NvVar (the wire format can be
changed later if needed):

  OvmfPkg: introduce gOvmfPlatformConfigGuid
  OvmfPkg: introduce PlatformConfigLib

#04 makes OVMF's BDS shovel the resolution preference from the Platform
Config to the graphics console:

  OvmfPkg: BDS: set preferred video resolution from platform
    configuration

#05-#10 constitute a fearless cleanup of QemuVideoDxe:

  OvmfPkg: QemuVideoDxe: tidy up error checking/handling in & under
    Start()
  OvmfPkg: QemuVideoDxe: simplify UEFI driver model use in Supported() /
    Start()
  OvmfPkg: QemuVideoDxe: disentangle UEFI driver model use in Stop()
  OvmfPkg: QemuVideoDxe: plug remaining leaks in Stop()
  OvmfPkg: QemuVideoDxe: eliminate useless
    Private->HardwareNeedsStarting
  OvmfPkg: QemuVideoDxe: clarify QEMU_VIDEO_MODE_DATA.ModeNumber

#11-#12 add a bunch of video modes for QXL:

  OvmfPkg: QemuVideoDxe: filter BOCHS modes vs. available frame buffer
    size
  OvmfPkg: QemuVideoDxe: add further BOCHS modes

#13-19 develop an HII driver for interactively massaging Platform Config
knobs -- at the end of the series, the preferred resolution can be
specified (to be effective from next boot) under Device Manager.

  OvmfPkg: introduce PlatformConfigDxe
  OvmfPkg: PlatformConfigDxe: introduce state for the main form
  OvmfPkg: PlatformConfigDxe: add form widgets for video modes
  OvmfPkg: PlatformConfigDxe: get available resolutions from GOP
  OvmfPkg: PlatformConfigDxe: add save and discard buttons to the form
  OvmfPkg: PlatformConfigDxe: connect ExtractConfig() to platform data
  OvmfPkg: PlatformConfigDxe: connect RouteConfig() to platform data

The patchset can be fetched from

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

Please test and review.

(
  For reviewing and generally working with .uni (UCS-2) files in the
  tree, see this thread:

    http://thread.gmane.org/gmane.comp.bios.tianocore.devel/6351

  The "Notes:" sections have been prepared with git-notes(1).
)

Thanks!
Laszlo

 OvmfPkg/Library/PlatformBdsLib/PlatformBdsLib.inf  |   3 +
 .../PlatformConfigLib/PlatformConfigLib.inf        |  36 +
 OvmfPkg/PlatformConfigDxe/PlatformConfig.inf       |  59 ++
 OvmfPkg/Include/Guid/OvmfPlatformConfig.h          |  24 +
 OvmfPkg/Include/Library/PlatformConfigLib.h        |  54 ++
 OvmfPkg/PlatformConfigDxe/PlatformConfig.h         |  42 ++
 OvmfPkg/QemuVideoDxe/Qemu.h                        |  12 +-
 OvmfPkg/PlatformConfigDxe/PlatformConfigForms.vfr  |  74 +++
 OvmfPkg/Library/PlatformBdsLib/BdsPlatform.c       |  32 +
 .../Library/PlatformConfigLib/PlatformConfigLib.c  | 106 +++
 OvmfPkg/PlatformConfigDxe/PlatformConfig.c         | 730 +++++++++++++++++++++
 OvmfPkg/QemuVideoDxe/Driver.c                      | 291 ++++----
 OvmfPkg/QemuVideoDxe/Gop.c                         |  34 +-
 OvmfPkg/QemuVideoDxe/Initialize.c                  | 102 ++-
 OvmfPkg/OvmfPkg.dec                                |   1 +
 OvmfPkg/OvmfPkgIa32.dsc                            |  11 +-
 OvmfPkg/OvmfPkgIa32.fdf                            |   1 +
 OvmfPkg/OvmfPkgIa32X64.dsc                         |  11 +-
 OvmfPkg/OvmfPkgIa32X64.fdf                         |   1 +
 OvmfPkg/OvmfPkgX64.dsc                             |  11 +-
 OvmfPkg/OvmfPkgX64.fdf                             |   1 +
 OvmfPkg/PlatformConfigDxe/PlatformConfig.uni       | Bin 0 -> 3322 bytes
 22 files changed, 1437 insertions(+), 199 deletions(-)
 create mode 100644 OvmfPkg/Library/PlatformConfigLib/PlatformConfigLib.inf
 create mode 100644 OvmfPkg/PlatformConfigDxe/PlatformConfig.inf
 create mode 100644 OvmfPkg/Include/Guid/OvmfPlatformConfig.h
 create mode 100644 OvmfPkg/Include/Library/PlatformConfigLib.h
 create mode 100644 OvmfPkg/PlatformConfigDxe/PlatformConfig.h
 create mode 100644 OvmfPkg/PlatformConfigDxe/PlatformConfigForms.vfr
 create mode 100644 OvmfPkg/Library/PlatformConfigLib/PlatformConfigLib.c
 create mode 100644 OvmfPkg/PlatformConfigDxe/PlatformConfig.c
 create mode 100644 OvmfPkg/PlatformConfigDxe/PlatformConfig.uni

-- 
1.8.3.1


------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121054471&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