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