This series adds support for R-Car Gen4 PCI host controller. To fully support the controller, the following changes were made: - Generic mechanism to support PCI child buses is added. - Private data for PCI host bridge and means to access it are added.
The series also includes a workaround for proper ATU propramming and optimizations to lessen the performance impact of that workaround. The series was tested both as a part of the pci-passthrough patches[1] and standalone on S4 and V4H boards. [1] https://github.com/Deedone/xen/tree/pci_passthrough_wip Oleksandr Andrushchenko (4): xen/arm: allow PCI host bridge to have private data xen/arm: make pci_host_common_probe return the bridge xen/arm: add support for PCI child bus xen/arm: add support for R-Car Gen4 PCI host controller Volodymyr Babchuk (3): xen/arm: rcar4: add delay after programming ATU xen/arm: rcar4: add simple optimization to avoid ATU reprogramming xen/arm: rcar4: program ATU to accesses to all functions xen/arch/arm/include/asm/pci.h | 16 +- xen/arch/arm/pci/Makefile | 1 + xen/arch/arm/pci/ecam.c | 17 +- xen/arch/arm/pci/pci-access.c | 37 +- xen/arch/arm/pci/pci-host-common.c | 106 +++++- xen/arch/arm/pci/pci-host-generic.c | 2 +- xen/arch/arm/pci/pci-host-rcar4.c | 542 ++++++++++++++++++++++++++++ xen/arch/arm/pci/pci-host-zynqmp.c | 2 +- xen/arch/arm/vpci.c | 91 ++++- 9 files changed, 764 insertions(+), 50 deletions(-) create mode 100644 xen/arch/arm/pci/pci-host-rcar4.c -- 2.34.1