[PATCH v5 00/10] PCI devices passthrough on Arm, part 2

Oleksandr Andrushchenko posted 10 patches 2 weeks ago
tools/libs/light/Makefile          |  4 ++
tools/libs/light/libxl_pci.c       | 15 ++++-
xen/arch/arm/domain.c              | 11 +++-
xen/arch/arm/domain_build.c        | 57 ++++++++++--------
xen/arch/arm/pci/ecam.c            | 14 +++++
xen/arch/arm/pci/pci-host-common.c | 93 ++++++++++++++++++++++++++++++
xen/arch/arm/pci/pci-host-zynqmp.c |  1 +
xen/arch/arm/pci/pci.c             | 12 ++++
xen/arch/arm/traps.c               | 13 +++++
xen/arch/arm/vpci.c                | 34 +++++++++++
xen/arch/arm/vpci.h                |  6 ++
xen/arch/x86/hvm/hvm.c             |  6 ++
xen/common/device_tree.c           |  2 +-
xen/common/ioreq.c                 |  9 ---
xen/drivers/passthrough/pci.c      |  2 +
xen/include/asm-arm/device.h       |  4 +-
xen/include/asm-arm/pci.h          | 30 ++++++++++
xen/include/asm-arm/setup.h        | 13 +++++
xen/include/asm-x86/pci.h          |  2 +
xen/include/xen/device_tree.h      |  2 +
20 files changed, 292 insertions(+), 38 deletions(-)

[PATCH v5 00/10] PCI devices passthrough on Arm, part 2

Posted by Oleksandr Andrushchenko 2 weeks ago
From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Hi, all!

This is an assorted series of patches which aim is to make some further
basis for PCI passthrough on Arm support. The series continues the work
published earlier by Arm [1] and adds new helpers and clears the way for
vPCI changes which will follow.

RFC is at [2], [3]. Design presentation can be found at [4].

Thank you,
Oleksandr

[1] https://patchwork.kernel.org/project/xen-devel/list/?series=558681
[2] https://lists.xenproject.org/archives/html/xen-devel/2020-07/msg01184.html
[3] https://lists.xenproject.org/archives/html/xen-devel/2020-07/threads.html#01184
[4] https://static.sched.com/hosted_files/xen2021/e4/PCI_Device_Passthrough_On_Arm.pdf

Oleksandr Andrushchenko (9):
  xen/arm: Add new device type for PCI
  xen/arm: Introduce pci_find_host_bridge_node helper
  xen/device-tree: Make dt_find_node_by_phandle global
  xen/arm: Mark device as PCI while creating one
  libxl: Allow removing PCI devices for all types of domains
  libxl: Only map legacy PCI IRQs if they are supported
  xen/arm: Setup MMIO range trap handlers for hardware domain
  xen/arm: Do not map PCI ECAM and MMIO space to Domain-0's p2m
  xen/arm: Process pending vPCI map/unmap operations

Oleksandr Tyshchenko (1):
  xen/domain: Call pci_release_devices() when releasing domain resources

 tools/libs/light/Makefile          |  4 ++
 tools/libs/light/libxl_pci.c       | 15 ++++-
 xen/arch/arm/domain.c              | 11 +++-
 xen/arch/arm/domain_build.c        | 57 ++++++++++--------
 xen/arch/arm/pci/ecam.c            | 14 +++++
 xen/arch/arm/pci/pci-host-common.c | 93 ++++++++++++++++++++++++++++++
 xen/arch/arm/pci/pci-host-zynqmp.c |  1 +
 xen/arch/arm/pci/pci.c             | 12 ++++
 xen/arch/arm/traps.c               | 13 +++++
 xen/arch/arm/vpci.c                | 34 +++++++++++
 xen/arch/arm/vpci.h                |  6 ++
 xen/arch/x86/hvm/hvm.c             |  6 ++
 xen/common/device_tree.c           |  2 +-
 xen/common/ioreq.c                 |  9 ---
 xen/drivers/passthrough/pci.c      |  2 +
 xen/include/asm-arm/device.h       |  4 +-
 xen/include/asm-arm/pci.h          | 30 ++++++++++
 xen/include/asm-arm/setup.h        | 13 +++++
 xen/include/asm-x86/pci.h          |  2 +
 xen/include/xen/device_tree.h      |  2 +
 20 files changed, 292 insertions(+), 38 deletions(-)

-- 
2.25.1


Re: [PATCH v5 00/10] PCI devices passthrough on Arm, part 2

Posted by Stefano Stabellini 1 week, 6 days ago
Hi Oleksandr,

I committed patches #1-#5


On Fri, 8 Oct 2021, Oleksandr Andrushchenko wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> 
> Hi, all!
> 
> This is an assorted series of patches which aim is to make some further
> basis for PCI passthrough on Arm support. The series continues the work
> published earlier by Arm [1] and adds new helpers and clears the way for
> vPCI changes which will follow.
> 
> RFC is at [2], [3]. Design presentation can be found at [4].
> 
> Thank you,
> Oleksandr
> 
> [1] https://patchwork.kernel.org/project/xen-devel/list/?series=558681
> [2] https://lists.xenproject.org/archives/html/xen-devel/2020-07/msg01184.html
> [3] https://lists.xenproject.org/archives/html/xen-devel/2020-07/threads.html#01184
> [4] https://static.sched.com/hosted_files/xen2021/e4/PCI_Device_Passthrough_On_Arm.pdf
> 
> Oleksandr Andrushchenko (9):
>   xen/arm: Add new device type for PCI
>   xen/arm: Introduce pci_find_host_bridge_node helper
>   xen/device-tree: Make dt_find_node_by_phandle global
>   xen/arm: Mark device as PCI while creating one
>   libxl: Allow removing PCI devices for all types of domains
>   libxl: Only map legacy PCI IRQs if they are supported
>   xen/arm: Setup MMIO range trap handlers for hardware domain
>   xen/arm: Do not map PCI ECAM and MMIO space to Domain-0's p2m
>   xen/arm: Process pending vPCI map/unmap operations
> 
> Oleksandr Tyshchenko (1):
>   xen/domain: Call pci_release_devices() when releasing domain resources
> 
>  tools/libs/light/Makefile          |  4 ++
>  tools/libs/light/libxl_pci.c       | 15 ++++-
>  xen/arch/arm/domain.c              | 11 +++-
>  xen/arch/arm/domain_build.c        | 57 ++++++++++--------
>  xen/arch/arm/pci/ecam.c            | 14 +++++
>  xen/arch/arm/pci/pci-host-common.c | 93 ++++++++++++++++++++++++++++++
>  xen/arch/arm/pci/pci-host-zynqmp.c |  1 +
>  xen/arch/arm/pci/pci.c             | 12 ++++
>  xen/arch/arm/traps.c               | 13 +++++
>  xen/arch/arm/vpci.c                | 34 +++++++++++
>  xen/arch/arm/vpci.h                |  6 ++
>  xen/arch/x86/hvm/hvm.c             |  6 ++
>  xen/common/device_tree.c           |  2 +-
>  xen/common/ioreq.c                 |  9 ---
>  xen/drivers/passthrough/pci.c      |  2 +
>  xen/include/asm-arm/device.h       |  4 +-
>  xen/include/asm-arm/pci.h          | 30 ++++++++++
>  xen/include/asm-arm/setup.h        | 13 +++++
>  xen/include/asm-x86/pci.h          |  2 +
>  xen/include/xen/device_tree.h      |  2 +
>  20 files changed, 292 insertions(+), 38 deletions(-)
> 
> -- 
> 2.25.1
>