aboutsummaryrefslogtreecommitdiffstats
path: root/target
diff options
context:
space:
mode:
authorMathew McBride <matt@traverse.com.au>2022-01-19 03:24:45 +0000
committerPetr Štetiar <ynezz@true.cz>2023-06-13 14:12:25 +0200
commit649d3a75e2d29a999aabb80d9a4d63cc4cfb7c56 (patch)
treedfd71afdf9ad9b3c15b21dc051886e2e6143f380 /target
parent3f72d24a04f28c3e7bdf625dc4a9d6771ff0a2dd (diff)
downloadupstream-649d3a75e2d29a999aabb80d9a4d63cc4cfb7c56.tar.gz
upstream-649d3a75e2d29a999aabb80d9a4d63cc4cfb7c56.tar.bz2
upstream-649d3a75e2d29a999aabb80d9a4d63cc4cfb7c56.zip
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 <matt@traverse.com.au> (cherry picked from commit 97c5d317f59e071c9f691add5748a74a75665038)
Diffstat (limited to 'target')
-rw-r--r--target/linux/armvirt/README48
1 files changed, 40 insertions, 8 deletions
diff --git a/target/linux/armvirt/README b/target/linux/armvirt/README
index b870fe19f7..b4409f8f11 100644
--- a/target/linux/armvirt/README
+++ b/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
# 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
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
- 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
- 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 \
-device virtio-9p-pci,fsdev=rootdev,mount_tag=/dev/root \
-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:
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/