linux/arch/um/kernel
Johannes Berg 68f5d3f3b6 um: add PCI over virtio emulation driver
To support testing of PCI/PCIe drivers in UML, add a PCI bus
support driver. This driver uses virtio, which in UML is really
just vhost-user, to talk to devices, and adds the devices to
the virtual PCI bus in the system.

Since virtio already allows DMA/bus mastering this really isn't
all that hard, of course we need the logic_iomem infrastructure
that was added by a previous patch.

The protocol to talk to the device is has a few fairly simple
messages for reading to/writing from config and IO spaces, and
messages for the device to send the various interrupts (INT#,
MSI/MSI-X and while suspended PME#).

Note that currently no offical virtio device ID is assigned for
this protocol, as a consequence this patch requires defining it
in the Kconfig, with a default that makes the driver refuse to
work at all.

Finally, in order to add support for MSI/MSI-X interrupts, some
small changes are needed in the UML IRQ code, it needs to have
more interrupts, changing NR_IRQS from 64 to 128 if this driver
is enabled, but not actually use them for anything so that the
generic IRQ domain/MSI infrastructure can allocate IRQ numbers.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
2021-06-17 21:45:43 +02:00
..
skas um: remove process stub VMA 2021-02-12 21:37:38 +01:00
asm-offsets.c um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
config.c.in um: Add SPDX headers to files in arch/um/kernel/ 2019-09-15 21:37:17 +02:00
dyn.lds.S um: Mark all kernel symbols as local 2021-04-15 23:10:29 +02:00
early_printk.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
exec.c um: remove process stub VMA 2021-02-12 21:37:38 +01:00
exitcode.c proc: convert everything to "struct proc_ops" 2020-02-04 03:05:26 +00:00
gprof_syms.c um: Add SPDX headers to files in arch/um/kernel/ 2019-09-15 21:37:17 +02:00
initrd.c um: Add SPDX headers to files in arch/um/kernel/ 2019-09-15 21:37:17 +02:00
ioport.c um: add PCI over virtio emulation driver 2021-06-17 21:45:43 +02:00
irq.c um: add PCI over virtio emulation driver 2021-06-17 21:45:43 +02:00
kmsg_dump.c printk: introduce a kmsg_dump iterator 2021-03-08 11:43:27 +01:00
ksyms.c um: export signals_enabled directly 2021-06-17 21:44:51 +02:00
maccess.c maccess: rename probe_kernel_{read,write} to copy_{from,to}_kernel_nofault 2020-06-17 10:57:41 -07:00
Makefile um: add PCI over virtio emulation driver 2021-06-17 21:45:43 +02:00
mem.c This pull request contains the following changes for UML: 2021-05-04 18:15:10 -07:00
physmem.c um: Add SPDX headers to files in arch/um/kernel/ 2019-09-15 21:37:17 +02:00
process.c arch: setup PF_IO_WORKER threads like PF_KTHREAD 2021-02-21 17:25:22 -07:00
ptrace.c um: Add SPDX headers to files in arch/um/kernel/ 2019-09-15 21:37:17 +02:00
reboot.c um: Add SPDX headers to files in arch/um/kernel/ 2019-09-15 21:37:17 +02:00
sigio.c um: Support dynamic IRQ allocation 2020-12-13 22:22:08 +01:00
signal.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
stacktrace.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
syscall.c um: Add SPDX headers to files in arch/um/kernel/ 2019-09-15 21:37:17 +02:00
sysrq.c um: Clean up stacktrace dump 2020-10-11 23:25:07 +02:00
time.c um: time-travel/signals: fix ndelay() in interrupt 2021-06-17 21:44:52 +02:00
tlb.c um: remove process stub VMA 2021-02-12 21:37:38 +01:00
trap.c mm: clean up the last pieces of page fault accountings 2020-08-12 10:58:04 -07:00
um_arch.c um: remove process stub VMA 2021-02-12 21:37:38 +01:00
umid.c um: Add SPDX headers to files in arch/um/kernel/ 2019-09-15 21:37:17 +02:00
uml.lds.S um: Mark all kernel symbols as local 2021-04-15 23:10:29 +02:00
vmlinux.lds.S