serenity icon indicating copy to clipboard operation
serenity copied to clipboard

Kernel/VirtIO: Introduce the concept of transport options

Open supercomputer7 opened this issue 2 years ago • 2 comments

The VirtIO specification defines many types of devices with different purposes, and it also defines 3 possible transport mediums where devices could be connected to the host machine.

We only care about the PCIe transport, but this commit puts the actual foundations for supporting the lean MMIO transport too in the future.

To ensure things are kept abstracted but still functional, the VirtIO transport code is responsible for what is deemed as related to an actual transport type - allocation of interrupt handlers and tinkering with low level transport-related registers, etc.


Side note - This is some groundwork before I can work on the actual support for VirtIO MMIO transport too. We will have that support completely usable when device tree parsing is usable (as the virt machine defines virtio-mmio transports there), but we could leverage a special kernel commandline argument to enable probing of a QEMU virtio-mmio range as well :)

supercomputer7 avatar Jun 10 '23 11:06 supercomputer7

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed in 7 days if no further activity occurs. Thank you for your contributions!

stale[bot] avatar Jul 09 '23 06:07 stale[bot]

This is not stale.

supercomputer7 avatar Jul 10 '23 17:07 supercomputer7

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed in 7 days if no further activity occurs. Thank you for your contributions!

stale[bot] avatar Aug 01 '23 04:08 stale[bot]

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed in 7 days if no further activity occurs. Thank you for your contributions!

stale[bot] avatar Sep 03 '23 20:09 stale[bot]

I think this change set is fine, but needs a rebase -- the commits are pretty old :)

ADKaster avatar Sep 09 '23 17:09 ADKaster