Browse Source

armvirt: update README with new image names

The introduction of EFI support has changed how armvirt
images are generated. The kernel and filesystem binaries
can still be used as before with QEMU directly.

Signed-off-by: Mathew McBride <[email protected]>
Mathew McBride 3 years ago
parent
commit
97c5d317f5
1 changed files with 40 additions and 8 deletions
  1. 40 8
      target/linux/armvirt/README

+ 40 - 8
target/linux/armvirt/README

@@ -1,21 +1,23 @@
-This is intended to be used with OpenWrt project to provide image for use with
-QEMU ARM virt machine.
+This target generates images that can be used on ARM machines with EFI
+support (e.g EDKII/TianoCore or U-Boot with bootefi).
+
+The kernel and filesystem images can also be used directly by QEMU:
 
 
 Run with qemu-system-arm
 Run with qemu-system-arm
 
 
 	# boot with initramfs embedded in
 	# boot with initramfs embedded in
-	qemu-system-arm -nographic -M virt -m 64 -kernel openwrt-armvirt-32-zImage-initramfs
+	qemu-system-arm -nographic -M virt -m 64 -kernel openwrt-armvirt-32-generic-initramfs-kernel.bin
 
 
 	# boot with accel=kvm
 	# boot with accel=kvm
 	qemu-system-arm -nographic -M virt,accel=kvm -cpu host -m 64 -kernel
 	qemu-system-arm -nographic -M virt,accel=kvm -cpu host -m 64 -kernel
-	openwrt-armvirt-32-zImage-initramfs
+	openwrt-armvirt-32-generic-initramfs-kernel.bin
 
 
 	# boot with a separate rootfs
 	# boot with a separate rootfs
-	qemu-system-arm -nographic -M virt -m 64 -kernel openwrt-armvirt-32-zImage \
-	  -drive file=openwrt-armvirt-32-root.ext4,format=raw,if=virtio -append 'root=/dev/vda rootwait'
+	qemu-system-arm -nographic -M virt -m 64 -kernel openwrt-armvirt-32-generic-kernel.bin \
+	  -drive file=openwrt-armvirt-32-generic-ext4-rootfs.img,format=raw,if=virtio -append 'root=/dev/vda rootwait'
 
 
 	# boot with local dir as rootfs
 	# boot with local dir as rootfs
-	qemu-system-arm -nographic -M virt -m 64 -kernel openwrt-armvirt-32-zImage \
+	qemu-system-arm -nographic -M virt -m 64 -kernel openwrt-armvirt-32-generic-kernel.bin \
 	  -fsdev local,id=rootdev,path=root-armvirt/,security_model=none \
 	  -fsdev local,id=rootdev,path=root-armvirt/,security_model=none \
 	  -device virtio-9p-pci,fsdev=rootdev,mount_tag=/dev/root \
 	  -device virtio-9p-pci,fsdev=rootdev,mount_tag=/dev/root \
 	  -append 'rootflags=trans=virtio,version=9p2000.L,cache=loose rootfstype=9p'
 	  -append 'rootflags=trans=virtio,version=9p2000.L,cache=loose rootfstype=9p'
@@ -37,4 +39,34 @@ Run with kvmtool
 The multi-platform ARMv8 target can be used with QEMU:
 The multi-platform ARMv8 target can be used with QEMU:
 
 
 	qemu-system-aarch64 -machine virt -cpu cortex-a57 -nographic \
 	qemu-system-aarch64 -machine virt -cpu cortex-a57 -nographic \
-		-kernel openwrt-armvirt-64-Image-initramfs \
+		-kernel openwrt-armvirt-64-generic-initramfs-kernel.bin \
+
+With a EDKII or U-Boot binary for the QEMU ARM virtual machines, you can use these
+images in EFI mode:
+
+32-bit:
+gunzip -c bin/targets/armvirt/32/openwrt-armvirt-32-generic-ext4-combined.img.gz > openwrt-arm-32.img
+qemu-system-arm -nographic \
+    -cpu cortex-a15 -machine virt \
+    -bios QEMU_EFI_32.fd \
+    -smp 1 -m 1024 \
+    -device virtio-rng-pci \
+    -drive file=openwrt-arm-32.img,format=raw,index=0,media=disk \
+    -netdev user,id=testlan -net nic,netdev=testlan \
+    -netdev user,id=testwan -net nic,netdev=testwan
+
+64-bit:
+gunzip -c bin/targets/armvirt/64/openwrt-armvirt-64-generic-ext4-combined.img.gz > openwrt-arm-64.img
+qemu-system-aarch64 -nographic \
+    -cpu cortex-a53 -machine virt \
+    -bios QEMU_EFI_64.fd \
+    -smp 1 -m 1024 \
+    -device virtio-rng-pci \
+    -drive file=openwrt-arm-64.img,format=raw,index=0,media=disk \
+    -netdev user,id=testlan -net nic,netdev=testlan \
+    -netdev user,id=testwan -net nic,netdev=testwan
+
+One can find EFI/BIOS binaries from:
+- Compile mainline U-Boot for the QEMU ARM virtual machine (qemu_arm_defconfig/qemu_arm64_defconfig)
+- From distribution packages (such as qemu-efi-arm and qemu-efi-aarch64 in Debian)
+- Community builds, like retrage/edk2-nightly: https://retrage.github.io/edk2-nightly/