This series adds PCI IDs and QEMU models for the Cnuas virtual network
adapter and CnuasGPU AI/ML accelerator. The models provide compact interfaces
for guest-driver, RDMA, device-memory, and accelerator-fabric development.
The CnuasNIC model exposes a register-driven DMA interface and transports
complete frames over a Linux SOCK_SEQPACKET endpoint. CnuasGPU provides an
MMIO control BAR, a configurable device-memory BAR, and an optional link
transport.
Both models include reset and migration state, MSI and INTx support,
specifications, and qtests. The transport tests exercise host-to-device and
device-to-host data movement rather than only PCI enumeration.
Changes since v1:
- submit the PCI ID allocations with the corresponding device models
- use 1b36:0015 for CnuasNIC and 1b36:0016 for CnuasGPU
The complete QEMU device implementation is included in this patch series.
Regards,
Weqaar Janjua
Packet Five Networks Ltd.
Dublin, Ireland
https://www.packetfive.com
Weqaar Janjua (6):
pci: Add device ID for CnuasNIC
hw/net: Add Cnuas virtual network adapter
tests/qtest: Add Cnuas virtual network adapter tests
pci: Add device ID for CnuasGPU
hw/misc: Add CnuasGPU virtual accelerator
tests/qtest: Add CnuasGPU tests
MAINTAINERS | 10 +
docs/specs/cnuas-vnic.rst | 78 +++++
docs/specs/cnuasgpu.rst | 91 ++++++
docs/specs/index.rst | 2 +
docs/specs/pci-ids.rst | 4 +
hw/misc/Kconfig | 5 +
hw/misc/cnuasgpu.c | 557 ++++++++++++++++++++++++++++++++++
hw/misc/meson.build | 1 +
hw/net/Kconfig | 5 +
hw/net/cnuas_vnic.c | 508 +++++++++++++++++++++++++++++++
hw/net/meson.build | 1 +
include/hw/pci/pci.h | 2 +
tests/qtest/cnuas-vnic-test.c | 233 ++++++++++++++
tests/qtest/cnuasgpu-test.c | 274 +++++++++++++++++
tests/qtest/meson.build | 2 +
15 files changed, 1773 insertions(+)
create mode 100644 docs/specs/cnuas-vnic.rst
create mode 100644 docs/specs/cnuasgpu.rst
create mode 100644 hw/misc/cnuasgpu.c
create mode 100644 hw/net/cnuas_vnic.c
create mode 100644 tests/qtest/cnuas-vnic-test.c
create mode 100644 tests/qtest/cnuasgpu-test.c
--
2.43.0