[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v1 0/8] Implement PCI device enumeration on Arm part 1
This series adds basic PCI device enumeration in Xen on Arm. This will allow us to not rely on Dom0 enumeration for supported controllers, which will enable PCI passthrough for dom0less setups. Enumeration is disabled by default and can be enabled with "pci-scan" cmdline option. For now the discovered devices are only assigned to HW domain. To achieve this, several things need to be done: 1. A VPCI node is created for HW domain device tree, and the real PCI nodes are hidden from it. 2. Discovered devices BARs are initialized. 3. Register handles for VPCI are updated to change behaviour depending on whether or not the calling domain uses VPCI or HW PCI, instead of relying on is_hardware_domain() 4. PCI physdev ops are disabled for HW domain using VPCI. Edward Pickup (1): arm/pci: Add pci-scan boot argument Luca Fancellu (3): xen/pci: update DT for hwdom when it uses vpci xen/pci: disable pci_device_{add,remove} when hwdom uses vpci on arm xen/pci: assign discovered devices to hwdom Mykyta Poturai (1): arm/pci: enable vpci for hwdom when pci-scan is enabled Stefano Stabellini (1): xen/pci: introduce has_vpci_bridge Stewart Hildebrand (2): xen/dt: pass flags to callback in dt_for_each_range() xen/pci: initialize BARs docs/misc/xen-command-line.pandoc | 9 ++ xen/arch/arm/device.c | 4 +- xen/arch/arm/domain_build.c | 154 +++++++++++++++++++++++- xen/arch/arm/include/asm/domain.h | 3 +- xen/arch/arm/include/asm/domain_build.h | 1 + xen/arch/arm/include/asm/pci.h | 25 ++++ xen/arch/arm/include/asm/setup.h | 2 +- xen/arch/arm/pci/pci-host-common.c | 83 ++++++++++++- xen/arch/arm/pci/pci.c | 24 +++- xen/arch/x86/include/asm/pci.h | 20 +++ xen/common/device-tree/device-tree.c | 5 +- xen/common/rangeset.c | 35 ++++++ xen/drivers/passthrough/arm/iommu.c | 9 ++ xen/drivers/passthrough/pci.c | 119 +++++++++++++++++- xen/drivers/pci/physdev.c | 6 + xen/drivers/vpci/header.c | 14 +-- xen/drivers/vpci/vpci.c | 4 +- xen/include/xen/device_tree.h | 2 +- xen/include/xen/rangeset.h | 6 +- xen/include/xen/vpci.h | 9 ++ 20 files changed, 509 insertions(+), 25 deletions(-) -- 2.34.1
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |