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

