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 as a part of the pci-passthrough patches[1] and
build-tested standalone with enabled HAS_PCI and HAS_VPCI.
[1] https://github.com/Deedone/xen/tree/pci_passthrough_wip
v1->v2:
* see individual patches
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 | 2 +
xen/arch/arm/pci/ecam.c | 17 +-
xen/arch/arm/pci/pci-access.c | 37 ++-
xen/arch/arm/pci/pci-designware.c | 422 ++++++++++++++++++++++++++++
xen/arch/arm/pci/pci-designware.h | 105 +++++++
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 | 104 +++++++
xen/arch/arm/pci/pci-host-zynqmp.c | 2 +-
xen/arch/arm/vpci.c | 83 ++++--
11 files changed, 846 insertions(+), 50 deletions(-)
create mode 100644 xen/arch/arm/pci/pci-designware.c
create mode 100644 xen/arch/arm/pci/pci-designware.h
create mode 100644 xen/arch/arm/pci/pci-host-rcar4.c
--
2.34.1