On 6 April 2016 at 18:14, Ard Biesheuvel <[email protected]> wrote: > This is the first step towards getting rid of the kludge which is VirtFdtDxe. > > 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 available here https://git.linaro.org/people/ard.biesheuvel/uefi-next.git/shortlog/refs/heads/virt-fdt-refactor > Ard Biesheuvel (21): > ArmVirtPkg: introduce FdtClientProtocol > ArmVirtPkg: drop dependency on DxePcdLib for DXE Pcd.inf > ArmVirtPkg: drop dependency on PeiPcdLib for PEI Pcd.inf > 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/PciHostBridgeDxe: move to FDT client protocol > ArmVirtPkg/BaseCachingPciExpressLib: construct at first invocation > 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/ArmVirtPkg.dec | > 21 +- > ArmVirtPkg/ArmVirtQemu.dsc | > 35 +- > ArmVirtPkg/ArmVirtQemu.fdf | > 8 +- > ArmVirtPkg/ArmVirtQemuKernel.dsc | > 30 +- > ArmVirtPkg/ArmVirtQemuKernel.fdf | > 5 +- > ArmVirtPkg/ArmVirtXen.dsc | > 25 +- > ArmVirtPkg/ArmVirtXen.fdf | > 5 +- > ArmVirtPkg/FdtClientDxe/FdtClientDxe.c | > 236 ++++++++++++ > ArmVirtPkg/FdtClientDxe/FdtClientDxe.inf | > 48 +++ > ArmVirtPkg/Include/Protocol/FdtClient.h | > 89 +++++ > ArmVirtPkg/Library/ArmVirtGicArchLib/ArmVirtGicArchLib.c | > 84 ++++- > ArmVirtPkg/Library/ArmVirtGicArchLib/ArmVirtGicArchLib.inf | > 15 +- > ArmVirtPkg/Library/ArmVirtPsciResetSystemLib/ArmVirtPsciResetSystemLib.c | > 38 +- > ArmVirtPkg/Library/ArmVirtPsciResetSystemLib/ArmVirtPsciResetSystemLib.inf | > 11 +- > ArmVirtPkg/Library/ArmVirtRtcFdtClientLib/ArmVirtRtcFdtClientLib.c | > 69 ++++ > ArmVirtPkg/Library/ArmVirtRtcFdtClientLib/ArmVirtRtcFdtClientLib.inf | > 48 +++ > ArmVirtPkg/Library/ArmVirtTimerFdtClientLib/ArmVirtTimerFdtClientLib.c | > 90 +++++ > ArmVirtPkg/Library/ArmVirtTimerFdtClientLib/ArmVirtTimerFdtClientLib.inf | > 50 +++ > ArmVirtPkg/Library/BaseCachingPciExpressLib/BaseCachingPciExpressLib.inf | > 1 - > ArmVirtPkg/Library/BaseCachingPciExpressLib/PciExpressLib.c | > 16 +- > ArmVirtPkg/Library/QemuFwCfgLib/QemuFwCfgLib.c | > 73 +++- > ArmVirtPkg/Library/QemuFwCfgLib/QemuFwCfgLib.inf | > 12 +- > ArmVirtPkg/PciHostBridgeDxe/PciHostBridge.c | > 233 +++++++++++- > ArmVirtPkg/PciHostBridgeDxe/PciHostBridge.h | > 2 + > ArmVirtPkg/PciHostBridgeDxe/PciHostBridgeDxe.inf | > 16 +- > ArmVirtPkg/VirtFdtDxe/VirtFdtDxe.c | > 395 +------------------- > ArmVirtPkg/VirtFdtDxe/VirtFdtDxe.inf | > 27 -- > 27 files changed, 1112 insertions(+), 570 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 > > -- > 2.5.0 > _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

