[PATCH 00/13] virtio: Sandbox emulator plus an assortment of fixes
Simon Glass
sjg at chromium.org
Wed May 27 18:10:10 CEST 2026
At present sandbox testing of virtio is fairly limited. This series
expands this. It provides a small MMIO helper along with a virtio
emulator that sits in front of the existing MMIO driver. Then a
block-device emulator is added on top. With this in place, sandbox can
exercise virtio end-to-end.
The series also includes various small clean-ups and fixes that pair
naturally with the emulator work: hex blk indices, a probe-ordering fix
for acknowledge, a legacy-PCI rename, log-category for the remaining
drivers, and three resource-cleanup fixes on device removal that the new
emulator makes easy to verify.
Simon Glass (13):
sandbox: Move memory-related functions to a separate file
alist: Allow inclusion from OS headers
sandbox: Support memory-mapped I/O
blk: Use hex indices for the device name
virtio: Export a few things from virtio_mmio.c
virtio: Implement a proper sandbox emulator
virtio: Implement a simple block-device emulator
virtio: Acknowledge devices only when probed
virtio: Rename a few legacy-PCI functions
virtio: Set the log-category for all drivers
virtio: emul_blk: Free disk data on remove
virtio: Delete vqs when removing a device
virtio: Free mmio base when removing sandbox virtio emul
arch/Kconfig | 1 +
arch/sandbox/cpu/Makefile | 2 +-
arch/sandbox/cpu/cpu.c | 274 +----------------------
arch/sandbox/cpu/mem.c | 337 +++++++++++++++++++++++++++++
arch/sandbox/cpu/state.c | 2 +
arch/sandbox/include/asm/io.h | 15 ++
arch/sandbox/include/asm/state.h | 67 ++++++
configs/sandbox_defconfig | 1 +
configs/tools-only_defconfig | 1 +
drivers/block/blk-uclass.c | 2 +-
drivers/virtio/Kconfig | 8 +
drivers/virtio/Makefile | 1 +
drivers/virtio/emul_blk.c | 186 ++++++++++++++++
drivers/virtio/sandbox_emul.c | 328 ++++++++++++++++++++++++++++
drivers/virtio/sandbox_emul.h | 160 ++++++++++++++
drivers/virtio/virtio-uclass.c | 21 +-
drivers/virtio/virtio_blk.c | 2 +-
drivers/virtio/virtio_blk.h | 3 +
drivers/virtio/virtio_internal.h | 19 ++
drivers/virtio/virtio_mmio.c | 9 +-
drivers/virtio/virtio_net.c | 4 +-
drivers/virtio/virtio_pci_legacy.c | 10 +-
drivers/virtio/virtio_pci_modern.c | 2 +
drivers/virtio/virtio_ring.c | 2 +
drivers/virtio/virtio_rng.c | 2 +-
drivers/virtio/virtio_sandbox.c | 2 +
include/alist.h | 16 +-
include/dm/uclass-id.h | 1 +
include/virtio.h | 8 +
lib/alist.c | 1 +
test/dm/virtio_device.c | 2 +-
31 files changed, 1188 insertions(+), 301 deletions(-)
create mode 100644 arch/sandbox/cpu/mem.c
create mode 100644 drivers/virtio/emul_blk.c
create mode 100644 drivers/virtio/sandbox_emul.c
create mode 100644 drivers/virtio/sandbox_emul.h
create mode 100644 drivers/virtio/virtio_internal.h
---
base-commit: 8d5f30b52f7c800c2177188fc4d331fb7af2c46a
branch: qema-us
--
2.43.0
More information about the U-Boot
mailing list