nuttx/drivers/vhost
Ulaş Sertan Kemeç fa935ecae1 drivers/vhost: Add vhost-net, a device-role virtio network driver.
Implements the device end of virtio-net, so a peer running the stock
virtio-net driver sees this side as a network card, and registers a netdev
lowerhalf.

Ring layout follows the peer's numbering: vq[0] is its RX queue, which we fill
to transmit, and vq[1] its TX queue, which we harvest.  No features are
negotiated, so every frame carries the zeroed legacy virtio_net_hdr.

Peer buffers are reached by raw 64-bit address through an arch-provided
translation window -- the AM67 RAT, identity mapping elsewhere -- splitting
copies that straddle it.

Also gives DRIVERS_VHOST a prompt; it was promptless and so unselectable
without a driver forcing it.

Verified on t3-gem-o1 against an unmodified Linux virtio_net: eth0 registers,
ifup brings it to RUNNING, and the peer pings it 5/5 at 0.27 ms and 60/60 with
0% loss.

Assisted-by: Claude Code:claude-fable-5
Signed-off-by: Ulaş Sertan Kemeç <sertan.usk@gmail.com>
2026-09-21 10:40:13 -03:00
..
CMakeLists.txt drivers/vhost: Add vhost-net, a device-role virtio network driver. 2026-09-21 10:40:13 -03:00
Kconfig drivers/vhost: Add vhost-net, a device-role virtio network driver. 2026-09-21 10:40:13 -03:00
Make.defs drivers/vhost: Add vhost-net, a device-role virtio network driver. 2026-09-21 10:40:13 -03:00
vhost-net.c drivers/vhost: Add vhost-net, a device-role virtio network driver. 2026-09-21 10:40:13 -03:00
vhost-net.h drivers/vhost: Add vhost-net, a device-role virtio network driver. 2026-09-21 10:40:13 -03:00
vhost-rng.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
vhost-rng.h drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
vhost-rpmsg.c virtio and vhost-rpmsg: add virtio and vhost rpmsg device support 2026-01-19 14:18:27 +08:00
vhost-rpmsg.h virtio and vhost-rpmsg: add virtio and vhost rpmsg device support 2026-01-19 14:18:27 +08:00
vhost.c drivers/vhost: Add vhost_get_vq_buffers_pa(). 2026-09-21 10:40:13 -03:00