[PATCH v8 0/5] PCI devices passthrough on Arm

Bertrand Marquis posted 5 patches 3 years, 1 month ago
Failed in applying to current master (apply log)
tools/libs/light/libxl_arch.h   |   2 +-
tools/libs/light/libxl_arm.c    | 111 +++++++++++++++++++++++++++++++-
tools/libs/light/libxl_create.c |   5 ++
tools/libs/light/libxl_dom.c    |   2 +-
tools/libs/light/libxl_x86.c    |   2 +-
xen/arch/arm/Makefile           |   1 +
xen/arch/arm/domain.c           |   4 ++
xen/arch/arm/vpci.c             |  77 ++++++++++++++++++++++
xen/arch/arm/vpci.h             |  36 +++++++++++
xen/arch/x86/hvm/io.c           |  46 ++-----------
xen/drivers/passthrough/pci.c   |  13 ++++
xen/drivers/vpci/header.c       |   2 +-
xen/drivers/vpci/vpci.c         |  64 ++++++++++++++++++
xen/include/asm-arm/domain.h    |   1 +
xen/include/asm-x86/pci.h       |   2 -
xen/include/public/arch-arm.h   |  17 +++++
xen/include/xen/pci.h           |   2 +
xen/include/xen/vpci.h          |  12 ++++
18 files changed, 349 insertions(+), 50 deletions(-)
create mode 100644 xen/arch/arm/vpci.c
create mode 100644 xen/arch/arm/vpci.h
[PATCH v8 0/5] PCI devices passthrough on Arm
Posted by Bertrand Marquis 3 years, 1 month ago
Hello All,

This serie is a follow up on Rahul serie where we included various fixes
required after review on the mailing list and a new patch to move some
of the x86 ecam related code to the common vpci code.

Most of the patches of the original serie have been merged and this
serie includes only 2 of the original patches reworked and 3 new patches:

Move some ECAM related functions from x86 to generic vpci
implementation:
- move vcpi mmcfg_{read/write} and vpci_access_allowed to common vpci.c.
- use ecam instead of mmcfg in common code.

Enable the existing x86 virtual PCI support for ARM:
- Add VPCI trap handler for each of the PCI device added for config
  space access.
- Register the trap handler in XEN for each of the host bridge PCI ECAM
  config space access.

Modify libxl function to take the whole domain config as argument:
- libxl__arch_domain_init_hw_description
- libxl__prepare_dt

Emulated PCI device tree node in libxl:
- Create a virtual PCI device tree node in libxl to enable the guest OS
  to discover the virtual PCI during guest boot.

The patch modifying xc_domain_ioport_permission has been removed from
the serie.

Bertrand Marquis (1):
  xen/vpci: Move ecam access functions to common code

Michal Orzel (2):
  tools/libxl: Modify libxl__arch_domain_init_hw_description...
  tools/libxl_arm: Modify libxl__prepare_dtb...

Rahul Singh (2):
  xen/arm: Enable the existing x86 virtual PCI support for ARM
  arm/libxl: Emulated PCI device tree node in libxl

 tools/libs/light/libxl_arch.h   |   2 +-
 tools/libs/light/libxl_arm.c    | 111 +++++++++++++++++++++++++++++++-
 tools/libs/light/libxl_create.c |   5 ++
 tools/libs/light/libxl_dom.c    |   2 +-
 tools/libs/light/libxl_x86.c    |   2 +-
 xen/arch/arm/Makefile           |   1 +
 xen/arch/arm/domain.c           |   4 ++
 xen/arch/arm/vpci.c             |  77 ++++++++++++++++++++++
 xen/arch/arm/vpci.h             |  36 +++++++++++
 xen/arch/x86/hvm/io.c           |  46 ++-----------
 xen/drivers/passthrough/pci.c   |  13 ++++
 xen/drivers/vpci/header.c       |   2 +-
 xen/drivers/vpci/vpci.c         |  64 ++++++++++++++++++
 xen/include/asm-arm/domain.h    |   1 +
 xen/include/asm-x86/pci.h       |   2 -
 xen/include/public/arch-arm.h   |  17 +++++
 xen/include/xen/pci.h           |   2 +
 xen/include/xen/vpci.h          |  12 ++++
 18 files changed, 349 insertions(+), 50 deletions(-)
 create mode 100644 xen/arch/arm/vpci.c
 create mode 100644 xen/arch/arm/vpci.h

-- 
2.25.1