mbox series

[v9,00/16] PCI devices passthrough on Arm, part 3

Message ID 20230829231912.4091958-1-volodymyr_babchuk@epam.com (mailing list archive)
Headers show
Series PCI devices passthrough on Arm, part 3 | expand

Message

Volodymyr Babchuk Aug. 29, 2023, 11:19 p.m. UTC
Hello all,

This is next version of vPCI rework. Aim of this series is to prepare
ground for introducing PCI support on ARM platform.

This vesion includes addressed commentes from a previous one. Also it
introduces a couple patches from Stewart. This patches are related to
vPCI use on ARM. Patch "vpci/header: rework exit path in init_bars"
was factored-out from "vpci/header: handle p2m range sets per BAR".

Changes from previous versions are described in each separate patch.

Oleksandr Andrushchenko (12):
  vpci: use per-domain PCI lock to protect vpci structure
  vpci: restrict unhandled read/write operations for guests
  vpci: add hooks for PCI device assign/de-assign
  vpci/header: implement guest BAR register handlers
  rangeset: add RANGESETF_no_print flag
  vpci/header: handle p2m range sets per BAR
  vpci/header: program p2m with guest BAR view
  vpci/header: emulate PCI_COMMAND register for guests
  vpci/header: reset the command register when adding devices
  vpci: add initial support for virtual PCI bus topology
  xen/arm: translate virtual PCI bus topology for guests
  xen/arm: account IO handlers for emulated PCI MSI-X

Stewart Hildebrand (2):
  xen/arm: vpci: check guest range
  xen/arm: vpci: permit access to guest vpci space

Volodymyr Babchuk (2):
  pci: introduce per-domain PCI rwlock
  vpci/header: rework exit path in init_bars

 xen/arch/arm/vpci.c                         |  71 ++-
 xen/arch/x86/hvm/vmsi.c                     |  24 +-
 xen/arch/x86/hvm/vmx/vmx.c                  |   2 -
 xen/arch/x86/irq.c                          |  15 +-
 xen/arch/x86/msi.c                          |   8 +-
 xen/common/domain.c                         |   5 +-
 xen/common/rangeset.c                       |   5 +-
 xen/drivers/Kconfig                         |   4 +
 xen/drivers/passthrough/amd/pci_amd_iommu.c |   9 +-
 xen/drivers/passthrough/pci.c               | 103 +++-
 xen/drivers/passthrough/vtd/iommu.c         |   9 +-
 xen/drivers/vpci/header.c                   | 497 ++++++++++++++++----
 xen/drivers/vpci/msi.c                      |  32 +-
 xen/drivers/vpci/msix.c                     |  56 ++-
 xen/drivers/vpci/vpci.c                     | 158 ++++++-
 xen/include/xen/rangeset.h                  |   5 +-
 xen/include/xen/sched.h                     |   9 +
 xen/include/xen/vpci.h                      |  39 +-
 18 files changed, 868 insertions(+), 183 deletions(-)