| History log of /src/sys/dev/pci/virtioreg.h |
| Revision | | Date | Author | Comments |
| 1.14 |
| 26-Jul-2025 |
martin | PR 58681: add a port of the OpenBSD viogpu(4) driver written by Joshua Stein <jcs@openbsd.org>. Port by George Matsumura with help from Jiaxun Yang.
|
| 1.13 |
| 19-Nov-2023 |
thorpej | branches: 1.13.2; Define the VIRTIO_F_ACCESS_PLATFORM, VIRTIO_F_RING_PACKED, VIRTIO_F_ORDER_PLATFORM, and VIRTIO_F_SR_IOV feature bits.
|
| 1.12 |
| 29-Mar-2023 |
riastradh | virtio(4): Use flexible array members, not zero-length arrays.
This enables the compiler to detect sizeof mistakes like PR kern/57304.
|
| 1.11 |
| 15-Oct-2022 |
riastradh | branches: 1.11.2; virtio(4): Use __BIT, not inline shift.
Reduces need for cast.
|
| 1.10 |
| 13-Apr-2022 |
uwe | virtio: Use UINT64_C() instead of explicit ULL suffix.
|
| 1.9 |
| 13-Apr-2022 |
uwe | virtio: G/c accidentally committed comment in previous.
The format spec for the V1 bit was to be committed as a separate followup commit, but I forgot to take it out. Sorry...
|
| 1.8 |
| 13-Apr-2022 |
uwe | virtio: use the new syntax for snprintb(3) format strings.
The old syntax is limited to 32 bits only (and has 1-based bit numbers which is rather incovenient too).
|
| 1.7 |
| 20-Jan-2021 |
reinoud | Add VirtIO PCI v1.0 attachments and fix the drivers affected.
The vioif, ld, scsi, viornd and viomb devices were adjusted when needed and tested both in legacy 0.9 and v1.0 attachments trough PCI on amd64, sparc64, aarch64 and aarch64-eb. ACPI/FDT attachments also tested on aarch64/aarch64-eb.
Known issues
* viomb on aarch64 works only with ACPI/FDT attachment but not with PCI attachment. PCI and ACPI/FDT attachment works on aarch64-eb.
* virtio on sparc64 attaches but is it not functioning though not a regression.
|
| 1.6 |
| 29-Oct-2015 |
christos | branches: 1.6.32; Add vioscsi, compile tested only (toxic)
|
| 1.5 |
| 27-Oct-2015 |
christos | add the common flag bits
|
| 1.4 |
| 26-Oct-2015 |
ozaki-r | Support MSI-X in virtio
Currently only vioif(4) uses the feature.
knakahara@ helped to migrate to pci_intr_alloc(9). Thanks!
|
| 1.3 |
| 04-May-2015 |
ozaki-r | Fix configuration offset when MSI is enabled
24 is correct.
|
| 1.2 |
| 06-Dec-2013 |
yamt | branches: 1.2.4; 1.2.6; 1.2.10; virtio: move a comment to a more appropriate place
no functional changes.
|
| 1.1 |
| 30-Oct-2011 |
hannken | branches: 1.1.2; 1.1.8; 1.1.14; 1.1.18; Import of the virtio driver written by MINOURA Makoto <minoura@netbsd.org> with minor changes to make it compile an run on -current. This driver speeds up disk and network access in virtual environments like KVM.
Enabled on i386 and amd64. Tested with a CentOS 5.7 x86_64 host.
See http://ozlabs.org/~rusty/virtio-spec/virtio.pdf for the specification.
|
| 1.1.18.1 |
| 18-May-2014 |
rmind | sync with head
|
| 1.1.14.2 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
| 1.1.14.1 |
| 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
| 1.1.8.2 |
| 25-Jan-2012 |
riz | Pull up following revision(s) (requested by hannken in ticket #1715): - Be robust against an invalid timer period value. sys/dev/ic/hpetreg.h Rev. 1.4 sys/dev/ic/hpet.c Rev. 1.8
- Fix wrong definition of LAPIC_LEVEL_ASSERT / _MASK sys/arch/x86/include/i82489reg.h Rev. 1.11
- Add virtio driver - speed up disk and network access in virtual environments sys/arch/i386/conf/GENERIC Rev. 1.1055 sys/arch/i386/conf/ALL Rev. 1.325 sys/arch/amd64/conf/GENERIC Rev. 1.338 sys/dev/pci/files.pci Rev. 1.350 sys/dev/pci/if_vioif.c Rev. 0-1.2 sys/dev/pci/ld_virtio.c Rev. 0-1.4 sys/dev/pci/viomb.c Rev. 0-1.1 sys/dev/pci/virtio.c Rev. 0-1.3 sys/dev/pci/virtioreg.h Rev. 0-1.1 sys/dev/pci/virtiovar.h Rev. 0-1.1 distrib/sets/lists/man/mi Rev. 1.1352 and 1.1358 share/man/man4/Makefile Rev. 1.573 and 1.575 share/man/man4/ld.4 Rev. 1.19 share/man/man4/virtio.4 Rev. 0-1.4 share/man/man4/vioif.4 Rev. 0-1.2 share/man/man4/viomb.4 Rev. 0-1.2
Allow NetBSD to run unmodified under Linux/kvm.
|
| 1.1.8.1 |
| 30-Oct-2011 |
riz | file virtioreg.h was added on branch netbsd-5 on 2012-01-25 21:18:15 +0000
|
| 1.1.2.1 |
| 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
| 1.2.10.1 |
| 18-Jan-2017 |
skrll | Sync with netbsd-5
|
| 1.2.6.2 |
| 27-Dec-2015 |
skrll | Sync with HEAD (as of 26th Dec)
|
| 1.2.6.1 |
| 06-Jun-2015 |
skrll | Sync with HEAD
|
| 1.2.4.1 |
| 23-Dec-2016 |
snj | Pull up following revision(s) (requested by bsiegert in ticket #1338): sys/arch/amd64/conf/GENERIC: revision 1.418 sys/dev/pci/files.pci: revision 1.379 sys/dev/pci/vioscsi.c: revisions 1.1-1.8 sys/dev/pci/vioscsireg.h: revision 1.1 sys/dev/pci/virtioreg.h: revisions 1.5, 1.6 add the common flag bits -- Add vioscsi, compile tested only (toxic) -- this is working now, remove debugging. -- add vioscsi -- kill some more debugging. -- Fake mode sense data for illegal targets. qemu reports 256 targets... -- fix the status return. -- Use SCSIPI_CHAN_NOSETTLE. -- vioscsi_req_get()/virtio_enqueue_prep() failing is actually perfectly normal - observed failures included 10, 27, 61 in-flight commands, so probably depends on particular command mix; return with XS_RESOURCE_SHORTAGE rather then panic do vioscsi_req_put() when initial bus_dmamap_load() fails, as suggested by the XXX; the vq_done hook is called by virtio, but in that case we never get to commit the request to it -- react on ADAPTER_REQ_SET_XFER_MODE so that we set tagged queuing pass tag type and set id
|
| 1.6.32.1 |
| 03-Apr-2021 |
thorpej | Sync with HEAD.
|
| 1.11.2.2 |
| 31-Dec-2024 |
snj | Pull up following revision(s) (requested by martin in ticket #1032): sys/dev/pci/virtioreg.h: 1.13 sys/dev/pci/virtio_pci.c: 1.44 Define the VIRTIO_F_ACCESS_PLATFORM, VIRTIO_F_RING_PACKED, VIRTIO_F_ORDER_PLATFORM, and VIRTIO_F_SR_IOV feature bits. -- On alpha and sparc64, use VirtIO 1.0 and VIRTIO_F_ACCESS_PLATFORM so that DMA to PCI-attached VirtIO devices works properly. This is needed for Qemu to select the appropriate address space for PCI DMA.
|
| 1.11.2.1 |
| 13-May-2023 |
martin | Pull up following revision(s) (requested by yamaguchi in ticket #139):
sys/dev/pci/vioscsi.c: revision 1.31 sys/dev/pci/vio9p.c: revision 1.10 sys/dev/pci/vioscsi.c: revision 1.32 sys/dev/pci/vio9p.c: revision 1.11 sys/dev/pci/vioscsi.c: revision 1.33 sys/dev/pci/ld_virtio.c: revision 1.31 sys/dev/virtio/viocon.c: revision 1.6 sys/dev/pci/vioscsi.c: revision 1.34 sys/dev/pci/ld_virtio.c: revision 1.32 sys/dev/virtio/viocon.c: revision 1.7 sys/dev/virtio/viocon.c: revision 1.8 sys/dev/pci/vioscsi.c: revision 1.36 sys/dev/pci/virtioreg.h: revision 1.12 sys/dev/pci/viornd.c: revision 1.19 sys/dev/pci/virtio.c: revision 1.66 sys/dev/pci/virtio.c: revision 1.67 sys/dev/pci/virtio.c: revision 1.68 sys/dev/pci/if_vioif.c: revision 1.103 sys/dev/pci/virtio.c: revision 1.69 sys/dev/pci/if_vioif.c: revision 1.104 sys/dev/pci/virtio_pci.c: revision 1.40 sys/dev/virtio/virtio_mmio.c: revision 1.8 sys/dev/virtio/virtio_mmio.c: revision 1.9 sys/dev/pci/viomb.c: revision 1.14 sys/dev/pci/viomb.c: revision 1.15 sys/dev/pci/viomb.c: revision 1.17 sys/dev/pci/viornd.c: revision 1.20 sys/dev/pci/viornd.c: revision 1.21 sys/dev/pci/virtiovar.h: revision 1.25 sys/dev/pci/virtiovar.h: revision 1.26 sys/dev/pci/virtiovar.h: revision 1.27 sys/dev/pci/virtiovar.h: revision 1.28 sys/dev/pci/virtio.c: revision 1.70 sys/dev/pci/virtio.c: revision 1.71 sys/dev/pci/virtio.c: revision 1.72 sys/dev/pci/virtio.c: revision 1.73 sys/dev/pci/virtio.c: revision 1.74 sys/dev/pci/virtio_pci.c: revision 1.39
Set virtqueues in virtio_child_attach_finish
The number of virtqueue maybe change in a part of VirtIO devices (e.g. vioif(4)). And it is fixed after negotiation of features. So the configuration is moved into the function.
viocon(4): fix not to allocate unused virtqueue
viocon(4) allocates 4 virtqueues but it only uses 2 (0 and 1) queues.
Added functions to set interrupt handler and index into virtqueue
Added check of pointer for allocated memory before release of resource
Setup virtqueues after registering them to virtio_softc restore fetch of qsize.
Mark as MPSAFE.
virtio(4): Avoid name collision with global intrhand on sparc64.
Pacifies -Werror=shadow. No functional change intended.
Use PRIuBUSSIZE to print bus_size_t variables.
virtio(4): Fix sizing of virtqueue allocation. vq->vq_avail[0].ring is a zero-length array, and thus sizeof is zero; likewise vq->vq_used[0].ring. Use vq->vq_avail[0].ring[0] and vq->vq_used[0].ring[0] to fix this and restore the previous allocation sizing logic. XXX We shouldn't use zero-length arrays here -- they are asking for trouble like this, and C99 has a standard way to express what we're actually trying to get at it, flexible array members. PR kern/57304
virtio(4): Use flexible array members, not zero-length arrays. This enables the compiler to detect sizeof mistakes like PR kern/57304.
Use descriptor chain for free slots instead of vq_entry list Descriptors can be chained by themself. And descriptors added to avail ring or used ring are already chained. But it was not used for unused descriptors and another linked list structure named vq_entry was used.
The chain is also used for unused descriptors to make virtio(4) simpler.
Added flags to store status of attaching a virtio device
This prevents a panic on reboot after a virtio device had called virtio_child_attach_failed().
Fix wrong variable names This fixes build errors in virtio_mmio.c
|
| 1.13.2.1 |
| 02-Aug-2025 |
perseant | Sync with HEAD
|