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