Skip to content

PCI(e) Bus Drivers ​

PCI(e) bus driver can be found in drivers/pci.

Supported PCI devices ​

PCI QEMU Test Device ​

Test device provided by QEMU and enabled with -device pci-testdev.

PCI QEMU EDU Device ​

Test device provided by QEMU and enabled with -device edu.

Inter-VM share memory Device (ivshmem) ​

Inter-VM shared memory support support can be found in drivers/pci/pci_ivshmem.c.

This implementation is for ivshmem-v1 which is compatible with QEMU and ACRN hypervisor but won't work with Jailhouse hypervisor which uses ivshmem-v2.

16550 Compatible Serial Card ​

UART 16550 compatible PCI serial card support can be found in drivers/serial/uart_pci_16550.c.

Supported devices:

  • AX99100
  • QEMU pci-serial device
  • QEMU pci-serial-2x device
  • QEMU pci-serial-4x device

Intel e1000 ​

Intel e1000 compatible NIC support can be found in drivers/net/e1000.c.

Supported devices:

  • Intel I219
  • Intel 82540EM
  • Intel 82574L
  • Intel 82574L

Intel igc ​

Intel igc compatible NIC support can be found in drivers/net/igc.c.

Supported devices:

  • Intel I225LM
  • Intel I226V

Kvaser PCI CAN card ​

At the moment the card only works with QEMU.

The driver supports both SocketCAN interface and character driver.

The driver requires, vcan to run on the host:

sudo ip link add dev can0 type vcan
sudo ip link set can0 up

An example command to run the driver on x86_64 looks like this:

qemu-system-x86_64 -m 2G -cpu host -enable-kvm -kernel nuttx \
-nographic -serial mon:stdio -object can-bus,id=canbus0 \
-object can-host-socketcan,id=canhost0,if=can0,canbus=canbus0 \
-device kvaser_pci,canbus=canbus0

CTUCANFD PCI CAN card ​

At the moment the card only works with QEMU.

The driver supports both SocketCAN interface and character driver.

The driver requires, vcan to run on the host:

sudo ip link add dev can0 type vcan
sudo ip link set can0 up

An example command to run the driver on x86_64 looks like this:

qemu-system-x86_64 -m 2G -cpu host -enable-kvm -kernel nuttx \
-nographic -serial mon:stdio -object can-bus,id=canbus0-bus \
-object can-host-socketcan,if=can0,canbus=canbus0-bus,id=canbus0-socketcan \
-device ctucan_pci,canbus0=canbus0-bus,canbus1=canbus0-bus