On 8 April 2016 at 11:44, Ard Biesheuvel <[email protected]> wrote:
> This v2 now fully gets rid of the VirtFdtDxe kludge, by moving its
> functionality to its various clients that access PCDs or protocols supplied
> by it.
>
> Changes since v1:
> - merged two patches related to Pcd.inf's dependency on itself
> - incorporated early feedback from Laszlo
> - tweaked the protocol to support virtio,mmio DT node discovery
> - split the remaining VirtFdtDxe functionality into XenioFdtDxe and
>   VirtioFdtDxe
> - updated commit messages (where appropriate) to justify the conversion from
>   a A PRIORI DXE driver to a protocol dependency on the FDT client protocol
>
> ------ v1 blurb -------
> This series addresses the cases where other DXE drivers rely on dynamic PCDs
> populated by VirtFdtDxe, which requires it to execute first using an A PRIORI
> declaration. Instead, this series moves the DT node parsing to the respective
> users, using a new FDT client protocol which can be used in the various
> depexes.
>
> The next step is to split the remaining handling performed by VirtFdtDxe into
> drivers appropriate for the platforms, i.e., virtio for QEMU and xeniommio for
> Xen domU.
>
> This is somewhat rough around the edges, but is mostly intended to elicit
> discussion, and I fully expect these changes to make it into the tree looking
> a lot different from this v1.
>

Branch can be found here
https://git.linaro.org/people/ard.biesheuvel/uefi-next.git/shortlog/refs/heads/virt-fdt-refactor-v2

> Ard Biesheuvel (24):
>   ArmVirtPkg: introduce FdtClientProtocol
>   ArmVirtPkg/FdtClientDxe: implement new driver
>   ArmVirtPkg: add FdtClientDxe to the ArmVirtPkg platforms
>   ArmVirtPkg/ArmGicArchLib: move to FdtClient protocol
>   ArmVirtPkg/VirtFdtDxe: remove GIC discovery
>   ArmVirtPkg/ArmVirtPsciResetSystemLib: move to FDT client protocol
>   ArmVirtPkg/VirtFdtDxe: drop detection of PSCI method
>   ArmVirtPkg: implement ArmVirtTimerFdtClientLib
>   ArmVirtPkg: move TimerDxe to FDT client library
>   ArmVirtPkg/VirtFdtDxe: remove timer DT node handling
>   ArmVirtPkg/QemuFwCfgLib: move to FDT client protocol
>   ArmVirtPkg/VirtFdtDxe: remove handling of fw_cfg DT node
>   ArmVirtPkg/BaseCachingPciExpressLib: construct at first invocation
>   ArmVirtPkg/PciHostBridgeDxe: move to FDT client protocol
>   ArmVirtPkg/VirtFdtDxe: drop PCI host bridge handling
>   ArmVirtPkg: implement ArmVirtRtcFdtClientLib
>   ArmVirtPkg: move QEMU based platforms to ArmVirtRtcFdtClientLib
>   ArmVirtPkg/VirtFdtDxe: drop RTC handling
>   ArmVirtPkg: get rid of A PRIORI DXE declarations for VirtFdtDxe
>   ArmVirtPkg/VirtFdtDxe: remove unused PL011 DT node type
>   ArmVirtPkg/VirtFdtDxe: move FDT config table installation to
>     FdtClientDxe
>   OvmfPkg/XenIoMmioLib: add missing MemoryAllocationLib dependency to
>     INF
>   ArmVirtPkg/ArmVirtXen: move from VirtFdtDxe to new XenioFdtDxe driver
>   ArmVirtPkg/VirtFdtDxe: remove Xenio handling and rename to
>     VirtioFdtDxe
>
>  ArmVirtPkg/ArmVirtPkg.dec                                                  | 
>  21 +-
>  ArmVirtPkg/ArmVirtQemu.dsc                                                 | 
>  27 +-
>  ArmVirtPkg/ArmVirtQemu.fdf                                                 | 
>   7 +-
>  ArmVirtPkg/ArmVirtQemuKernel.dsc                                           | 
>  27 +-
>  ArmVirtPkg/ArmVirtQemuKernel.fdf                                           | 
>   7 +-
>  ArmVirtPkg/ArmVirtXen.dsc                                                  | 
>  22 +-
>  ArmVirtPkg/ArmVirtXen.fdf                                                  | 
>   7 +-
>  ArmVirtPkg/FdtClientDxe/FdtClientDxe.c                                     | 
> 267 +++++++++
>  ArmVirtPkg/FdtClientDxe/FdtClientDxe.inf                                   | 
>  52 ++
>  ArmVirtPkg/Include/Protocol/FdtClient.h                                    | 
> 108 ++++
>  ArmVirtPkg/Library/ArmVirtGicArchLib/ArmVirtGicArchLib.c                   | 
>  75 ++-
>  ArmVirtPkg/Library/ArmVirtGicArchLib/ArmVirtGicArchLib.inf                 | 
>  18 +-
>  ArmVirtPkg/Library/ArmVirtPsciResetSystemLib/ArmVirtPsciResetSystemLib.c   | 
>  31 +-
>  ArmVirtPkg/Library/ArmVirtPsciResetSystemLib/ArmVirtPsciResetSystemLib.inf | 
>   9 +-
>  ArmVirtPkg/Library/ArmVirtRtcFdtClientLib/ArmVirtRtcFdtClientLib.c         | 
>  69 +++
>  ArmVirtPkg/Library/ArmVirtRtcFdtClientLib/ArmVirtRtcFdtClientLib.inf       | 
>  46 ++
>  ArmVirtPkg/Library/ArmVirtTimerFdtClientLib/ArmVirtTimerFdtClientLib.c     | 
>  86 +++
>  ArmVirtPkg/Library/ArmVirtTimerFdtClientLib/ArmVirtTimerFdtClientLib.inf   | 
>  48 ++
>  ArmVirtPkg/Library/BaseCachingPciExpressLib/BaseCachingPciExpressLib.inf   | 
>   1 -
>  ArmVirtPkg/Library/BaseCachingPciExpressLib/PciExpressLib.c                | 
>  16 +-
>  ArmVirtPkg/Library/QemuFwCfgLib/QemuFwCfgLib.c                             | 
>  63 +-
>  ArmVirtPkg/Library/QemuFwCfgLib/QemuFwCfgLib.inf                           | 
>  10 +-
>  ArmVirtPkg/PciHostBridgeDxe/PciHostBridge.c                                | 
> 234 +++++++-
>  ArmVirtPkg/PciHostBridgeDxe/PciHostBridge.h                                | 
>   1 +
>  ArmVirtPkg/PciHostBridgeDxe/PciHostBridgeDxe.inf                           | 
>  14 +-
>  ArmVirtPkg/VirtFdtDxe/VirtFdtDxe.c                                         | 
> 614 --------------------
>  ArmVirtPkg/VirtFdtDxe/VirtFdtDxe.inf                                       | 
>  83 ---
>  ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.c                                     | 
> 127 ++++
>  ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.inf                                   | 
>  47 ++
>  ArmVirtPkg/XenioFdtDxe/XenioFdtDxe.c                                       | 
>  63 ++
>  ArmVirtPkg/XenioFdtDxe/XenioFdtDxe.inf                                     | 
>  45 ++
>  OvmfPkg/Library/XenIoMmioLib/XenIoMmioLib.inf                              | 
>   1 +
>  32 files changed, 1406 insertions(+), 840 deletions(-)
>  create mode 100644 ArmVirtPkg/FdtClientDxe/FdtClientDxe.c
>  create mode 100644 ArmVirtPkg/FdtClientDxe/FdtClientDxe.inf
>  create mode 100644 ArmVirtPkg/Include/Protocol/FdtClient.h
>  create mode 100644 
> ArmVirtPkg/Library/ArmVirtRtcFdtClientLib/ArmVirtRtcFdtClientLib.c
>  create mode 100644 
> ArmVirtPkg/Library/ArmVirtRtcFdtClientLib/ArmVirtRtcFdtClientLib.inf
>  create mode 100644 
> ArmVirtPkg/Library/ArmVirtTimerFdtClientLib/ArmVirtTimerFdtClientLib.c
>  create mode 100644 
> ArmVirtPkg/Library/ArmVirtTimerFdtClientLib/ArmVirtTimerFdtClientLib.inf
>  delete mode 100644 ArmVirtPkg/VirtFdtDxe/VirtFdtDxe.c
>  delete mode 100644 ArmVirtPkg/VirtFdtDxe/VirtFdtDxe.inf
>  create mode 100644 ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.c
>  create mode 100644 ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.inf
>  create mode 100644 ArmVirtPkg/XenioFdtDxe/XenioFdtDxe.c
>  create mode 100644 ArmVirtPkg/XenioFdtDxe/XenioFdtDxe.inf
>
> --
> 2.5.0
>
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to