readme.txt 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. Introduction
  2. ============
  3. The qemu_arm_ebbr_defconfig is meant to illustrate some aspects of the Arm
  4. EBBR specification[1] and the Arm SystemReady IR[2] compliance program.
  5. It allows building a 32b ARMv7-A U-Boot based firmware implementing the subset
  6. of UEFI defined by EBBR, as well as a Linux OS disk image booting with UEFI, to
  7. run on Qemu.
  8. Building
  9. ========
  10. $ make qemu_arm_ebbr_defconfig
  11. $ make
  12. Generated files under output/images:
  13. * flash.bin: A firmware image comprising TF-A, OP-TEE and the U-Boot bootloader.
  14. * disk.img: An OS disk image comprising the GRUB bootloader, the Linux kernel
  15. and the root filesystem.
  16. Running under Qemu
  17. ==================
  18. Run the emulation with:
  19. qemu-system-arm \
  20. -M virt,secure=on,acpi=off \
  21. -bios output/images/flash.bin \
  22. -cpu cortex-a15 \
  23. -device virtio-blk-device,drive=hd0 \
  24. -device virtio-net-device,netdev=eth0 \
  25. -device virtio-rng-device,rng=rng0 \
  26. -drive file=output/images/disk.img,if=none,format=raw,id=hd0 \
  27. -m 1024 \
  28. -netdev user,id=eth0 \
  29. -nographic \
  30. -object rng-random,filename=/dev/urandom,id=rng0 \
  31. -rtc base=utc,clock=host \
  32. -smp 2 # qemu_arm_ebbr_defconfig
  33. The login prompt will appear in the terminal that started Qemu.
  34. Using the EBBR firmware to run another OS under Qemu
  35. ----------------------------------------------------
  36. It is possible to use the generated firmware binary to run another OS
  37. supporting the EBBR specification.
  38. To run another OS on emulation using a live or pre-installed image, use the same
  39. Qemu command line as for the generated OS but adapt the OS image path in the
  40. -drive stanza.
  41. The 32b Arm ACS-IR image[3] is an example of a pre-installed OS image.
  42. Linux distributions such as Debian or openSUSE provide a pre-installed OS
  43. image.
  44. Miscellaneous
  45. =============
  46. This configuration is inspired by the qemu_arm_vexpress_tz_defconfig, the
  47. qemu_aarch64_ebbr_defconfig and the Arm SystemReady IR IoT Integration, Test,
  48. and Certification Guide[4].
  49. Firmware update is currently not supported.
  50. [1]: https://github.com/ARM-software/ebbr
  51. [2]: https://developer.arm.com/Architectures/Arm%20SystemReady%20IR
  52. [3]: https://github.com/ARM-software/arm-systemready/tree/main/IR/prebuilt_images
  53. [4]: https://developer.arm.com/documentation/DUI1101/latest/