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
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel