(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 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#71464): https://edk2.groups.io/g/devel/message/71464 Mute This Topic: https://groups.io/mt/80471199/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-