On Renesas R-Car platforms, the Region ID (RGID) feature encodes an
identifier into the upper bits of the physical address for every CPU memory
access. This address manipulations can mostly be done via system and domain
congirutaion, but for PCI bar it is not possible as some BARs are 32bit only.
This series introduces a platform hook that lets the PCI host
bridge driver rewrite BAR addresses at vPCI init time, and provides the
R-Car Gen4 implementation that adds the configured RGID into each
address.
This is sent as RFC to get early feedback on the approach:
- Is a pci_ops callback the right place for this kind of address fixup?
- Is platform Kconfig a good place for RGID related options or is it better to
put them in some other place.
Mykyta Poturai (2):
pci: Allow platforms to modify BAR adresses
plat/rcar: Add region id support for PCI
xen/arch/arm/include/asm/pci.h | 3 +++
xen/arch/arm/include/asm/vpci.h | 9 +++++++++
xen/arch/arm/pci/pci-host-rcar4.c | 15 +++++++++++++++
xen/arch/arm/platforms/Kconfig | 21 +++++++++++++++++++++
xen/arch/arm/vpci.c | 12 ++++++++++++
xen/arch/x86/include/asm/vpci.h | 6 ++++++
xen/drivers/vpci/header.c | 2 ++
7 files changed, 68 insertions(+)
--
2.51.2