-
Notifications
You must be signed in to change notification settings - Fork 7.6k
drivers: add API for VIRTIO devices and add VIRTIO PCI driver #83892
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
7bf7785
to
d673dab
Compare
@fkokosinski Will you be available for presenting this addition of a new device class to the Architecture WG? /CC @carlescufi |
Hey @henrikbrixandersen, would February 11th work for you guys? |
Yes, that would work. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks pretty great to me other than some minor refinements.
Would be good for @ycsin or @luchnikov to take a look too (at fence operations, among other things).
d673dab
to
6e3ffde
Compare
Architecture WG meeting:
|
6e3ffde
to
8d78418
Compare
8d78418
to
4361ac6
Compare
4361ac6
to
c5b6e6a
Compare
Draft PR that uses the VIRTIO PCI driver can be found here: #86768
RFC issue can be found here: #86561 FYI @cfriedt, @carlescufi |
c6d4bf8
to
4946df2
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR introduces an API for accessing VIRTIO devices and a corresponding VIRTIO PCI driver along with supporting tests and documentation.
- Introduces API definitions and implementations in include/zephyr/virtio/virtqueue.h and virtio.h.
- Adds a new VIRTIO PCI driver, updated device bindings, and build/test support via CMake and DTS overlays.
- Updates documentation and maintainers information for the new VIRTIO functionality.
Reviewed Changes
Copilot reviewed 19 out of 19 changed files in this pull request and generated 2 comments.
Show a summary per file
File | Description |
---|---|
tests/drivers/build_all/virtio/* | Added build test case and configuration files for VIRTIO testing |
include/zephyr/virtio/*.h | New API header files defining virtqueue and virtio interfaces |
drivers/virtio/virtqueue.c | Implements virtqueue creation and buffer chain handling |
drivers/virtio/Kconfig, drivers/virtio/CMakeLists.txt | Added configuration and build system support for VIRTIO drivers |
dts/bindings/virtio/virtio,pci.yaml | Introduces device tree binding for VIRTIO over PCI |
doc/hardware/virtualization/virtio.rst | Documents VIRTIO concepts and API usage |
... (others) | Minor updates for integration into the overall virtualization framework |
This commit adds the API for accessing VIRTIO devices, and adds a driver for a VIRTIO PCIE device based on the newly added API. This commit is based on the Virtual I/O Device (VIRTIO) Version 1.3 specification: https://docs.oasis-open.org/virtio/virtio/v1.3/csd01/virtio-v1.3-csd01.pdf Signed-off-by: Jakub Michalski <jmichalski@antmicro.com> Signed-off-by: Filip Kokosinski <fkokosinski@antmicro.com>
This commit adds virtio section in documentation, describing virtio-related concepts Signed-off-by: Jakub Michalski <jmichalski@antmicro.com> Signed-off-by: Filip Kokosinski <fkokosinski@antmicro.com>
This commit adds a build test for the VIRTIO PCI device. Signed-off-by: Jakub Michalski <jmichalski@antmicro.com> Signed-off-by: Filip Kokosinski <fkokosinski@antmicro.com>
4946df2
to
0f19e62
Compare
|
@soburi we've separated ISR handling into |
@carlescufi - is there any additional need to keep this In Progress in Arch Review, or can it be moved to Done? This was discussed at the arch review meeting 3 months ago. Most requested changes have been made, tests and docs have been added. An RFC issue was made. |
@nashif @MaureenHelm - have you had a chance to (re-)review? |
This PR adds the API for accessing VIRTIO devices, and adds a driver for a VIRTIO PCI device based on the newly added API, and adds a build test for the newly added VIRTIO PCI device. This PR is first of many, and more VIRTIO-related PRs will be submitted when this PR gets merged.
This PR is based on the Virtual I/O Device (VIRTIO) Version 1.3 specification: https://docs.oasis-open.org/virtio/virtio/v1.3/csd01/virtio-v1.3-csd01.pdf.