[OpenBIOS] [PATCH v3 0/4] Add virtio-blk driver support

Mark Cave-Ayland mark.cave-ayland at ilande.co.uk
Fri Aug 31 12:31:55 CEST 2018


On 26/08/18 16:14, Mark Cave-Ayland wrote:

> These patches add support for booting from virtio-blk (PCI) devices as
> used by QEMU.
> 
> Patches 1 and 2 add bootindex support which is the new way for passing
> boot order information from QEMU to OpenBIOS. Note that there are also
> corresponding patches for QEMU required, without which the generated
> device paths will be incorrect and cause virtio boot to fail.
> 
> Patch 3 adds the virtio-1.0 compliant virtio-blk PCI driver.
> 
> Patch 4 enables the new driver for both PPC and SPARC64 architectures
> so that virtio-blk-pci devices will be usable out-of-the-box with QEMU.
> 
> Once these patches have been applied to OpenBIOS (along with the
> corresponding fw path fixes for QEMU) it is possible to boot from
> virtio-blk-pci devices like this:
> 
> PPC:
> 
> ./qemu-system-ppc -drive file=debian-9.0-powerpc-NETINST.iso,if=none,index=0,id=cd,media=cdrom \
>     -device virtio-blk-pci,drive=cd,bootindex=0 -m 256 -boot d
> 
> SPARC:
> 
> ./qemu-system-sparc64 -drive debian-9.0-sparc64-NETINST.iso,if=none,index=0,id=cd,media=cdrom \
>     -device virtio-blk-pci,bus=pciB,drive=cd,bootindex=0 -m 256 -boot d -nographic
> 
> 
> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland at ilande.co.uk>
> 
> v3:
> - Rebase onto master
> - Convert from legacy driver to virtio-1.0 driver
> 
> v2:
> - Switch over to using dma-* words to allocate rings and descriptors
> - Fix up some minor whitespace issues
> 
> 
> Mark Cave-Ayland (4):
>   ppc: add bootindex support
>   SPARC64: add bootindex support
>   drivers: add virtio-1.0 virtio-blk driver
>   config: enable virtio-blk driver for default PPC and SPARC64 builds
> 
>  arch/ppc/qemu/init.c               |  55 +++-
>  arch/sparc64/boot.c                |   2 +-
>  arch/sparc64/boot.h                |   2 +-
>  arch/sparc64/openbios.c            |  38 ++-
>  config/examples/ppc_config.xml     |   1 +
>  config/examples/sparc64_config.xml |   1 +
>  drivers/build.xml                  |   1 +
>  drivers/pci.c                      |  63 +++++
>  drivers/pci_database.c             |  14 +-
>  drivers/pci_database.h             |   1 +
>  drivers/virtio.c                   | 555 +++++++++++++++++++++++++++++++++++++
>  drivers/virtio.h                   | 370 +++++++++++++++++++++++++
>  include/drivers/drivers.h          |   5 +
>  include/drivers/pci.h              |   6 +
>  14 files changed, 1093 insertions(+), 21 deletions(-)
>  create mode 100644 drivers/virtio.c
>  create mode 100644 drivers/virtio.h

Applied to master.


ATB,

Mark.



More information about the OpenBIOS mailing list