Commit c7107fc4 authored by Jakub Michalski's avatar Jakub Michalski Committed by Benjamin Cabé
Browse files

virtio: add API for VIRTIO devices and add VIRTIO PCI driver

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: default avatarJakub Michalski <jmichalski@antmicro.com>
Signed-off-by: default avatarFilip Kokosinski <fkokosinski@antmicro.com>
parent 6e7756a5
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -2197,6 +2197,20 @@ Release Notes:
  tests:
    - drivers.video

"Drivers: VIRTIO":
  status: maintained
  maintainers:
    - fkokosinski
    - tgorochowik
  collaborators:
    - kgugala
  files:
    - drivers/virtio/
    - dts/bindings/virtio/
    - include/zephyr/virtio/
  labels:
    - "area: VIRTIO"

"Drivers: W1":
  status: maintained
  maintainers:
+1 −0
Original line number Diff line number Diff line
@@ -89,6 +89,7 @@ add_subdirectory_ifdef(CONFIG_SYSCON syscon)
add_subdirectory_ifdef(CONFIG_SYS_CLOCK_EXISTS timer)
add_subdirectory_ifdef(CONFIG_TEE tee)
add_subdirectory_ifdef(CONFIG_VIDEO video)
add_subdirectory_ifdef(CONFIG_VIRTIO virtio)
add_subdirectory_ifdef(CONFIG_VIRTUALIZATION virtualization)
add_subdirectory_ifdef(CONFIG_W1 w1)
add_subdirectory_ifdef(CONFIG_WATCHDOG watchdog)
+1 −0
Original line number Diff line number Diff line
@@ -88,6 +88,7 @@ source "drivers/timer/Kconfig"
source "drivers/usb/Kconfig"
source "drivers/usb_c/Kconfig"
source "drivers/video/Kconfig"
source "drivers/virtio/Kconfig"
source "drivers/virtualization/Kconfig"
source "drivers/w1/Kconfig"
source "drivers/watchdog/Kconfig"
+7 −0
Original line number Diff line number Diff line
# Copyright (c) 2024 Antmicro <www.antmicro.com>
# SPDX-License-Identifier: Apache-2.0

zephyr_library()

zephyr_library_sources_ifdef(CONFIG_VIRTIO virtqueue.c virtio_common.c)
zephyr_library_sources_ifdef(CONFIG_VIRTIO_PCI virtio_pci.c)

drivers/virtio/Kconfig

0 → 100644
+22 −0
Original line number Diff line number Diff line
# Copyright (c) 2024 Antmicro <www.antmicro.com>
# SPDX-License-Identifier: Apache-2.0

config VIRTIO
	bool "support for VIRTIO"
	help
	  Enable options for VIRTIO

if VIRTIO

config VIRTIO_PCI
	bool "support for VIRTIO over PCI"
	default y
	depends on DT_HAS_VIRTIO_PCI_ENABLED
	help
	  Enable options for VIRTIO over PCI

endif # VIRTIO

module = VIRTIO
module-str = VIRTIO
source "subsys/logging/Kconfig.template.log_config"
Loading