|
@@ -0,0 +1,103 @@
|
|
|
+Introduction
|
|
|
+============
|
|
|
+
|
|
|
+The qemu_aarch64_ebbr_defconfig is meant to illustrate some aspects of the Arm
|
|
|
+EBBR specification[1] and the Arm SystemReady IR[2] compliance program.
|
|
|
+It allows building an AArch64 U-Boot based firmware implementing the subset of
|
|
|
+UEFI defined by EBBR, as well as a Linux OS disk image booting with UEFI, to run
|
|
|
+on Qemu.
|
|
|
+
|
|
|
+Building
|
|
|
+========
|
|
|
+
|
|
|
+ $ make qemu_aarch64_ebbr_defconfig
|
|
|
+ $ make
|
|
|
+
|
|
|
+Generated files under output/images:
|
|
|
+
|
|
|
+* flash.bin: A firmware image comprising TF-A, OP-TEE and the U-Boot bootloader.
|
|
|
+
|
|
|
+* disk.img: An OS disk image comprising the GRUB bootloader, the Linux kernel
|
|
|
+ and the root filesystem.
|
|
|
+
|
|
|
+Running under Qemu
|
|
|
+==================
|
|
|
+
|
|
|
+Run the emulation with:
|
|
|
+
|
|
|
+ qemu-system-aarch64 \
|
|
|
+ -M virt,secure=on \
|
|
|
+ -bios output/images/flash.bin \
|
|
|
+ -cpu cortex-a53 \
|
|
|
+ -device virtio-blk-device,drive=hd0 \
|
|
|
+ -device virtio-net-device,netdev=eth0 \
|
|
|
+ -device virtio-rng-device,rng=rng0 \
|
|
|
+ -drive file=output/images/disk.img,if=none,format=raw,id=hd0 \
|
|
|
+ -m 1024 \
|
|
|
+ -netdev user,id=eth0 \
|
|
|
+ -no-acpi \
|
|
|
+ -nographic \
|
|
|
+ -object rng-random,filename=/dev/urandom,id=rng0 \
|
|
|
+ -rtc base=utc,clock=host \
|
|
|
+ -smp 2 # qemu_aarch64_ebbr_defconfig
|
|
|
+
|
|
|
+The login prompt will appear in the terminal that started Qemu.
|
|
|
+
|
|
|
+Using the EBBR firmware to run another OS under Qemu
|
|
|
+----------------------------------------------------
|
|
|
+
|
|
|
+It is possible to use the generated firmware binary to install or run another OS
|
|
|
+supporting the EBBR specification.
|
|
|
+
|
|
|
+To run another OS on emulation using a live or pre-installed image, use the same
|
|
|
+Qemu command line as for the generated OS but adapt the OS image path in the
|
|
|
+-drive stanza.
|
|
|
+The image generated by the aarch64_efi_defconfig or the Arm ACS-IR images[3] are
|
|
|
+examples of pre-installed OS images.
|
|
|
+
|
|
|
+To install another OS using an installer iso image, prepare a destination disk
|
|
|
+image first with:
|
|
|
+
|
|
|
+ qemu-img create -f qcow2 disk.qcow2 10G
|
|
|
+
|
|
|
+Then run the OS installer iso image on emulation with:
|
|
|
+
|
|
|
+ qemu-system-aarch64 \
|
|
|
+ -M virt,secure=on \
|
|
|
+ -bios output/images/flash.bin \
|
|
|
+ -cpu cortex-a53 \
|
|
|
+ -device virtio-blk-device,drive=hd1 \
|
|
|
+ -device virtio-blk-device,drive=hd0 \
|
|
|
+ -device virtio-net-device,netdev=eth0 \
|
|
|
+ -device virtio-rng-device,rng=rng0 \
|
|
|
+ -drive file=<iso>,if=none,format=raw,readonly=on,id=hd0 \
|
|
|
+ -drive file=disk.qcow2,if=none,id=hd1 \
|
|
|
+ -m 1024 \
|
|
|
+ -netdev user,id=eth0 \
|
|
|
+ -no-acpi \
|
|
|
+ -nographic \
|
|
|
+ -object rng-random,filename=/dev/urandom,id=rng0 \
|
|
|
+ -rtc base=utc,clock=host \
|
|
|
+ -smp 2
|
|
|
+
|
|
|
+The installation medium will show up under the Linux OS installer as /dev/vda
|
|
|
+and the destination disk as /dev/vdb.
|
|
|
+To reboot into the installed OS, use the same Qemu command line as for the
|
|
|
+installation, but without the two stanzas
|
|
|
+referring to hd0.
|
|
|
+Linux distributions such as Debian, Fedora, openSUSE or Ubuntu provide an OS
|
|
|
+installer iso image.
|
|
|
+
|
|
|
+Miscellaneous
|
|
|
+=============
|
|
|
+
|
|
|
+This configuration is inspired by the qemu_aarch64_virt_defconfig, the
|
|
|
+aarch64_efi_defconfig and the Arm SystemReady IR IoT Integration, Test, and
|
|
|
+Certification Guide[4].
|
|
|
+
|
|
|
+Firmware update is currently not supported.
|
|
|
+
|
|
|
+[1]: https://github.com/ARM-software/ebbr
|
|
|
+[2]: https://developer.arm.com/Architectures/Arm%20SystemReady%20IR
|
|
|
+[3]: https://github.com/ARM-software/arm-systemready/tree/main/IR/prebuilt_images
|
|
|
+[4]: https://developer.arm.com/documentation/DUI1101/1-1/?lang=en
|