/
QEMU Yocto Flow
QEMU Yocto Flow
Table of Contents
Using Mainline QEMU in Yocto 2.3 (Pyro)
If using meta-xilinx with Pyro you can just use the runqemu command and it will default to using the Xilinx fork of QEMU.
See the help inside runqemu for information on how to run this.
To do this first use bitbake to build the yocto images targeting a QEMU machine. These machines support runninng on QEMU:
An example of builidng a Zynq-7000 iamge is shown below.
To run the new images on QEMU use the runqemu script.
To do this first use bitbake to build the yocto images targeting a QEMU machine. The two QEMU machines supported are: qemumicroblaze and qemuzynq. An example of builidng a Zynq-7000 iamge is shown below.
To run the new images on QEMU use the runqemu script.
Using Xilinx's fork of QEMU is not enabled by default, you can enable it by setting the following settings in your local.conf:
QB_OPT_XILINX_PMU_ROM is only required if XILINX_QEMUBOOT_MULTI is set and is only applicable for ZynqMP targets. For details of how to get the PMU ROM see the documentation on mainline meta-xilinx: http://git.yoctoproject.org/cgit/cgit.cgi/meta-xilinx/tree/README.qemu.md. Note that on the Xilinx fork you can specify where the PMU ROM is and it doesn't have to be inside the deploy directory.
XILINX_QEMUBOOT_MULTI is also only applicable for ZynqMP targets.
Once that is set follow the Morty steps above to build the images for the applicable board. In the example below we are targetting the ZynqMP architecture and the ZCU102 board.
Now instead of using the default runqemu script use the script in meta-xilinx/scripts/runqemu the same way as before.
This will start Xilinx's fork of QEMU with the appripriote commmand line arguments.
This command will boot into u-boot, where the user can then boot into an appripriote kernel.
NOTE: That u-boot uses some hardcoded filenames which might not match the output of bitbake. If this is the case rename, copy or link the original file to the name that u-boot expects.
Follow the Krogoth steps above to build the images for the applicable board. In the example below we are targetting the ZynqMP architecture and the ZCU102 board.
Now instead of using the default runqemu script use the script in meta-xilinx/scripts/runqemu the same way as before.
This will start Xilinx's fork of QEMU with the appripriote commmand line arguments.
This command will boot into u-boot, where the user can then boot into an appripriote kernel.
NOTE: That u-boot uses some hardcoded filenames which might not match the output of bitbake. If this is the case rename, copy or link the original file to the name that u-boot expects.
For more information on using the runqemu command just run the script without any arguments and a help text will be printed.
See the help inside runqemu for information on how to run this.
Using Mainline QEMU in Yocto 2.2 (Morty)
To do this first use bitbake to build the yocto images targeting a QEMU machine. These machines support runninng on QEMU:
- zcu102-zynqmp
- ep108-zynqmp
- qemu-zynq7
- ml605-qemu-microblazeel
- s3adsp1800-qemu-microblazee
An example of builidng a Zynq-7000 iamge is shown below.
$ MACHINE=qemu-zynq7 bitbake core-image-minimal
$ runqemu qemu-zynq7
Using Mainline QEMU in Yocto 2.1 (Krogoth)
As of Yocto release 2.1 meta-xilinx and open-embedded support running MicroBlaze and Zynq-7000 machines on mainline QEMU.To do this first use bitbake to build the yocto images targeting a QEMU machine. The two QEMU machines supported are: qemumicroblaze and qemuzynq. An example of builidng a Zynq-7000 iamge is shown below.
$ MACHINE=qemuzynq bitbake core-image-minimal
$ runqemu qemuzynq
Using Xilinx's Fork of QEMU with Xilinx's Yocto 2017.1 Release
As of Xilinx's meta-xilinx release 2017.1 meta-xilinx also supports using the Xilinx fork of QEMU in the Yocto flow. This includes more features compared to the mainline QEMU as we are still working on upstreaming these features.Using Xilinx's fork of QEMU is not enabled by default, you can enable it by setting the following settings in your local.conf:
#Using Xilinx QEMU, need to enable QEMUBOOT and provide path to PMU ROM XILINX_QEMUBOOT = "1" XILINX_QEMUBOOT_MULTI = "1" QB_OPT_XILINX_PMU_ROM = "/<path-to-rom>/pmu_rom_qemu_sha3.elf"
XILINX_QEMUBOOT_MULTI is also only applicable for ZynqMP targets.
Once that is set follow the Morty steps above to build the images for the applicable board. In the example below we are targetting the ZynqMP architecture and the ZCU102 board.
$ MACHINE=zcu102-zynqmp bitbake core-image-minimal
$ runqemu zcu102-zynqmp
This command will boot into u-boot, where the user can then boot into an appripriote kernel.
NOTE: That u-boot uses some hardcoded filenames which might not match the output of bitbake. If this is the case rename, copy or link the original file to the name that u-boot expects.
Using Xilinx's Fork of QEMU with Xilinx's Yocto 2016.3 Release
As of Xilinx's meta-xilinx release 2016.3 meta-xilinx also supports using the Xilinx fork of QEMU in the Yocto flow. This includes more features compared to the mainline QEMU as we are still working on upstreaming these features.Follow the Krogoth steps above to build the images for the applicable board. In the example below we are targetting the ZynqMP architecture and the ZCU102 board.
$ MACHINE=qemuzynqmp bitbake core-image-minimal # On Xilinx's meta-xilinx layer the qemuzynqmp machine is based on the ZCU102
$ ../sources/meta-xilinx/scripts/runqemu qemuzynqmp
This command will boot into u-boot, where the user can then boot into an appripriote kernel.
NOTE: That u-boot uses some hardcoded filenames which might not match the output of bitbake. If this is the case rename, copy or link the original file to the name that u-boot expects.
For more information on using the runqemu command just run the script without any arguments and a help text will be printed.
Related pages
© Copyright 2019 - 2022 Xilinx Inc. Privacy Policy