[ipxe-devel] [PATCH 0/4] Implement virtio 1.0 support

Michael S. Tsirkin mst at redhat.com
Wed Mar 9 20:25:44 UTC 2016


Thanks a lot for looking into this!
I'll review early next week.

On Wed, Mar 09, 2016 at 07:19:59PM +0100, Ladi Prosek wrote:
> The goal here is to support booting from modern only (non-transitional)
> virtio-net devices.

Side-note: it is preferable to use transitional
devices through the modern interface, as well.

Some advantages include:
	- ability to work without enabling IO space (or even memory space)
	- ability to reduce ring size, and generally lower memory consumption

> The code strives to comply with the virtio 1.0 spec
> and is heavily inspired by the Linux kernel implementation.
> 
> One notable divergence from Linux is the explicit differentiation
> between port I/O and memory I/O due to the lack of __iomem in iPXE. See
> struct virtio_pci_region for details.
> 
>  src/drivers/bus/pciextra.c     |  54 ++++++---
>  src/drivers/bus/virtio-pci.c   | 213 ++++++++++++++++++++++++++++++++-
>  src/drivers/bus/virtio-ring.c  |  12 +-
>  src/drivers/net/virtio-net.c   | 259 +++++++++++++++++++++++++++++++++++++++--
>  src/drivers/net/virtio-net.h   |  18 +++
>  src/include/ipxe/errfile.h     |   1 +
>  src/include/ipxe/pci.h         |   2 +
>  src/include/ipxe/virtio-pci.h  | 231 ++++++++++++++++++++++++++++++++++++
>  src/include/ipxe/virtio-ring.h |   9 ++
>  9 files changed, 769 insertions(+), 30 deletions(-)
> 
> [PATCH 1/4] [pci] Add pci_find_next_capability
> [PATCH 2/4] [virtio] Add virtio 1.0 constants and data structures
> [PATCH 3/4] [virtio] Add virtio 1.0 PCI support
> [PATCH 4/4] [virtio] Add virtio-net 1.0 support



More information about the ipxe-devel mailing list