From: "Laszlo Ersek" <lersek@redhat.com>
To: devel@edk2.groups.io, fangying7@yeah.net
Cc: "Ard Biesheuvel (TianoCore)" <ardb+tianocore@kernel.org>
Subject: Re: [edk2-devel] Does EDK2 ArmVirtPkg has support for a virtio-mmio-blk device
Date: Mon, 8 Feb 2021 15:14:17 +0100 [thread overview]
Message-ID: <9534eb95-4167-566a-a825-a97b2e11ce68@redhat.com> (raw)
In-Reply-To: <E3D57F87-0D4E-45A8-9BA3-421FA6E3711A@yeah.net>
(Adding Ard, just in case -- the topic is set by the first quoted
question below)
On 02/08/21 04:24, Ying Fang wrote:
> Hi, Does anybody know whether the EDK2 ArmVirtPkg has support for a virtio-mmio-device ?
virtio-mmio is a virtio transport type, not a particular device.
(1) ArmVirtPkg + OvmfPkg support the following three virtio transports:
(1a) Virtio PCI, virtio spec version 0.9.5,
[OvmfPkg/VirtioPciDeviceDxe]
(1b) Virtio PCI, virtio spec version 1.0,
[OvmfPkg/Virtio10Dxe]
(1c) Virtio MMIO, virtio spec version 0.9.5 *only*
[ArmVirtPkg/VirtioFdtDxe]
[OvmfPkg/Library/VirtioMmioDeviceLib]
(2) Additionally, OvmfPkg offers the following virtio device drivers:
- VirtioBlkDxe
- VirtioFsDxe [1.0 only]
- VirtioGpuDxe [1.0 only]
- VirtioNetDxe
- VirtioRngDxe
- VirtioScsiDxe
(2a) The drivers marked "1.0 only" will only work on top of the
transport mentioned in point (1b).
Put differently, they will only drive the following virtio-1.0 QEMU
device models:
- VirtioFsDxe: "vhost-user-fs-pci"
- VirtioGpuDxe: "virtio-gpu-pci"
(2b) The drivers *not* marked "1.0 only" will work on top of *either*
virtio transport that's noted in (1a), (1b), (1c).
This implies that, using the ArmVirtQemu firmware platform, you can use
the following QEMU device models *too*:
- VirtioBlkDxe: "virtio-blk-device"
- VirtioNetDxe: "virtio-net-device"
- VirtioRngDxe: "virtio-rng-device"
- VirtioScsiDxe: "virtio-scsi-device"
> I am using EDK2 ArmVirtPkg v2.70 as the default UEFI for my devel program.
A commit hash would be more useful (not sure if it matters for now, but
in case it does, a commit hash is best).
> Since we have not implemented the PCI/PCIe suff, a virtio-mmio-blk device is used as the image disk.
There is no such device model ("virtio-mmio-blk") in QEMU, as far as I
can tell.
Do you mean "virtio-blk-device"?
> We can boot the EDK2 ArmVirtPkg into UEFI shell, and the Mapping table message shows
>
> Mapping table:
> BLK0: Alias(s):
> VenHw(xxx, 00)
Do you have an EFI system partition on the virtio block device?
Because, the "map" UEFI shell command (executed automatically at shell
startup) should list such a filesystem as "FS0:" here.
> However when I chose the “Boot From File” menu item, I can not see the virtio-mmio-blk device.
That's not surprising, minimally because the MAP command above does not
list "FS0:".
> So does anybody know whether the EDK2 ArmVirtPkg has support for a virtio-mmio-device ?
The virtio-blk-device is supported, yes, using the virtio-mmio (0.9.5)
transport type. But in order to actually boot from the device, you need
more things. Such as:
- an EFI system partition / FAT filesystem on the device,
- bootable UEFI binaries (matching the guest architecture),
- a correctly populated "bootorder" fw_cfg file, so that the UEFI boot
order be updated as well. This "bootorder" fw_cfg file is created by
QEMU upon use of the "bootindex" device properties, and it is acted upon
by the following components:
ArmVirtPkg/Library/PlatformBootManagerLib
OvmfPkg/Library/QemuBootOrderLib
Thanks
Laszlo
next prev parent reply other threads:[~2021-02-08 14:14 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-08 3:24 Does EDK2 ArmVirtPkg has support for a virtio-mmio-blk device Ying Fang
2021-02-08 14:14 ` Laszlo Ersek [this message]
2021-02-09 2:54 ` [edk2-devel] " Ying Fang
2021-02-09 13:41 ` Laszlo Ersek
2021-02-09 15:28 ` Ard Biesheuvel
2021-02-09 18:32 ` Laszlo Ersek
2021-02-19 2:06 ` Ying Fang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=9534eb95-4167-566a-a825-a97b2e11ce68@redhat.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox