Commonly a platform will have a PlatformDxe driver. It has kind of
surprised me how long OVMF has lived without one. One of the main
things that lived in the PlatformDxe driver is the setup form data.

So, rather than PlatformConfigDxe, could you add PlatformDxe?

PlatformDxe can also look at the setup variable and set the resolution
PCDs. (Rather than PlatformBds.)

At that point, I think we could (at least for now) fold
PlatformConfigLib into PlatformDxe.

These two:
OvmfPkg: non-null PcdLib instance for GraphicsConsoleDxe
OvmfPkg: introduce gOvmfPlatformConfigGuid
Reviewed-by: Jordan Justen <[email protected]>

On Fri, Feb 21, 2014 at 3:58 PM, Laszlo Ersek <[email protected]> wrote:
> 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

------------------------------------------------------------------------------
Flow-based real-time traffic analytics software. Cisco certified tool.
Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer
Customize your own dashboards, set traffic alerts and generate reports.
Network behavioral analysis & security monitoring. All-in-one tool.
http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to