• Oleksandr Andrushchenko's avatar
    xen-pciback: allow compiling on other archs than x86 · a67efff2
    Oleksandr Andrushchenko authored
    Xen-pciback driver was designed to be built for x86 only. But it
    can also be used by other architectures, e.g. Arm.
    
    Currently PCI backend implements multiple functionalities at a time,
    such as:
    1. It is used as a database for assignable PCI devices, e.g. xl
       pci-assignable-{add|remove|list} manipulates that list. So, whenever
       the toolstack needs to know which PCI devices can be passed through
       it reads that from the relevant sysfs entries of the pciback.
    2. It is used to hold the unbound PCI devices list, e.g. when passing
       through a PCI device it needs to be unbound from the relevant device
       driver and bound to pciback (strictly speaking it is not required
       that the device is bound to pciback, but pciback is again used as a
       database of the passed through PCI devices, so we can re-bind the
       devices back to their original drivers when guest domain shuts down)
    3. Device reset for the devices being passed through
    4. Para-virtualised use-cases support
    
    The para-virtualised part of the driver is not always needed as some
    architectures, e.g. Arm or x86 PVH Dom0, are not using backend-frontend
    model for PCI device passthrough.
    
    For such use-cases make the very first step in splitting the
    xen-pciback driver into two parts: Xen PCI stub and PCI PV backend
    drivers.
    
    For that add new configuration options CONFIG_XEN_PCI_STUB and
    CONFIG_XEN_PCIDEV_STUB, so the driver can be limited in its
    functionality, e.g. no support for para-virtualised scenario.
    x86 platform will continue using CONFIG_XEN_PCIDEV_BACKEND for the
    fully featured backend driver.
    Signed-off-by: default avatarOleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
    Signed-off-by: default avatarAnastasiia Lukianenko <anastasiia_lukianenko@epam.com>
    Reviewed-by: default avatarStefano Stabellini <sstabellini@kernel.org>
    Reviewed-by: default avatarJuergen Gross <jgross@suse.com>
    Link: https://lore.kernel.org/r/20211028143620.144936-1-andr2000@gmail.comSigned-off-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
    a67efff2
xen.c 14.5 KB