VIRTIO_MMIO(4)
β¨ NAME β¨
virtio_mmio β VirtIO over memory mapped device. Okay bestie, this is the VIRTIO_MMIO(4) page from the Kernel Interfaces Manual, and it's literally about VirtIO over a memory mapped device. Slay. π
π¦ SYNOPSIS π¦
pv* at pvbus?
virtio* at pv?
acpi0 at mainbus0
virtio* at acpi?
π DESCRIPTION π
Here's the setup, bestie: virtual environments without pci(4) support β a common situation in embedded devices models β might use a simple memory mapped device (virtio_mmio) instead of the pci(4) device, and virtio_mmio can be used there. Iconic. β¨
The memory mapped virtio(4) device behavior is based on the pci(4) device specification. Therefore most operations including device initialization, queues configuration and buffer transfers are nearly identical. The way that is so convenient fr fr. π₯
Unlike pci(4), virtio_mmio provides no generic device discovery mechanism. Not me expecting autodiscovery π. For each device, the guest OS will need to know the location of the registers and interrupt(s) used.
Device location can be read from either acpi(4) or via kernel command line parameters, implemented as a pv(4) virtual device. So it's giving ACPI vibes or kernel command line vibes, with pv(4) as the virtual device doing its thing. πΈ
π SEE ALSO π
virtio(4)- Virtual I/O Device (VIRTIO) Version 1.2,
https://docs.oasis-open.org/virtio/virtio/v1.2/virtio-v1.2.html.
That's the whole page, bestie β no cap. This one came from Debian, dated January 15, 2025, and the page tag is VIRTIO_MMIO(4). π«Ά
π¦ where this page comes from
- nixpkgs unstable: netbsd-source 11.0
- Copyright (c) 2024 The NetBSD Foundation, Inc
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms