Browse Source

doc: qemu: fix and update documentation

The current URL for QEMU_EFI.fd is not found. Update the link to
point to the new one.

If you run the shell command as instructed, you will see this error:
  qemu-system-aarch64: keep_bootcon: Could not open 'keep_bootcon': No such file or directory

The part "console=ttyAMA0,38400 keep_bootcon root=/dev/vda2" is the
kernel parameter, so it must be quoted.

As of writing, QEMU v4.2.0 is the latest, but it does not work for
TF-A (It has been fixed in the mainline.) QEMU v4.1.0 works fine.

With those issues addressed, I succeeded in booting the latest kernel.

Tested with QEMU v4.1.0 and Linux 5.5 (defconfig with no modification).
Update the tested versions.

Change-Id: Ic85db0e688d67b1803ff890047d37de3f3db2daa
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
pull/1938/head
Masahiro Yamada 5 years ago
parent
commit
62038be731
  1. 10
      docs/plat/qemu.rst

10
docs/plat/qemu.rst

@ -14,7 +14,7 @@ If ``ARM_LINUX_KERNEL_AS_BL33`` is set to 1 then this FDT will be passed to BL33
via register x0, as expected by a Linux kernel. This allows a Linux kernel image via register x0, as expected by a Linux kernel. This allows a Linux kernel image
to be booted directly as BL33 rather than using a bootloader. to be booted directly as BL33 rather than using a bootloader.
An ARM64 defconfig v4.5 Linux kernel is known to boot, FDT doesn't need to be An ARM64 defconfig v5.5 Linux kernel is known to boot, FDT doesn't need to be
provided as it's generated by QEMU. provided as it's generated by QEMU.
Current limitations: Current limitations:
@ -24,7 +24,7 @@ Current limitations:
- No instructions for how to load a BL32 (Secure Payload) - No instructions for how to load a BL32 (Secure Payload)
``QEMU_EFI.fd`` can be dowloaded from ``QEMU_EFI.fd`` can be dowloaded from
http://snapshots.linaro.org/components/kernel/leg-virt-tianocore-edk2-upstream/latest/QEMU-KERNEL-AARCH64/RELEASE_GCC49/QEMU_EFI.fd http://snapshots.linaro.org/components/kernel/leg-virt-tianocore-edk2-upstream/latest/QEMU-KERNEL-AARCH64/RELEASE_GCC5/QEMU_EFI.fd
Boot binaries, except BL1, are primarily loaded via semi-hosting so all Boot binaries, except BL1, are primarily loaded via semi-hosting so all
binaries has to reside in the same directory as QEMU is started from. This binaries has to reside in the same directory as QEMU is started from. This
@ -33,7 +33,7 @@ is conveniently achieved with symlinks the local names as:
- ``bl2.bin`` -> BL2 - ``bl2.bin`` -> BL2
- ``bl31.bin`` -> BL31 - ``bl31.bin`` -> BL31
- ``bl33.bin`` -> BL33 (``QEMU_EFI.fd``) - ``bl33.bin`` -> BL33 (``QEMU_EFI.fd``)
- ``Image`` -> linux/Image - ``Image`` -> linux/arch/arm64/boot/Image
To build: To build:
@ -41,12 +41,12 @@ To build:
make CROSS_COMPILE=aarch64-none-elf- PLAT=qemu make CROSS_COMPILE=aarch64-none-elf- PLAT=qemu
To start (QEMU v2.6.0): To start (QEMU v4.1.0):
.. code:: shell .. code:: shell
qemu-system-aarch64 -nographic -machine virt,secure=on -cpu cortex-a57 \ qemu-system-aarch64 -nographic -machine virt,secure=on -cpu cortex-a57 \
-kernel Image \ -kernel Image \
-append console=ttyAMA0,38400 keep_bootcon root=/dev/vda2 \ -append "console=ttyAMA0,38400 keep_bootcon root=/dev/vda2" \
-initrd rootfs-arm64.cpio.gz -smp 2 -m 1024 -bios bl1.bin \ -initrd rootfs-arm64.cpio.gz -smp 2 -m 1024 -bios bl1.bin \
-d unimp -semihosting-config enable,target=native -d unimp -semihosting-config enable,target=native

Loading…
Cancel
Save