[meta-xilinx] [RFC v1 4/4] zcu102: Add support for running Xilinx's QEMU

Nathan Rossi nathan at nathanrossi.com
Mon Jan 16 14:47:19 PST 2017


On 17 January 2017 at 08:34, Alistair Francis
<alistair.francis at xilinx.com> wrote:
> On Mon, Jan 16, 2017 at 2:00 AM, Nathan Rossi <nathan at nathanrossi.com> wrote:
>> On 14 January 2017 at 10:32, Alistair Francis
>> <alistair.francis at xilinx.com> wrote:
>>> Signed-off-by: Alistair Francis <alistair.francis at xilinx.com>
>>> Signed-off-by: Nathan Rossi <nathan at nathanrossi.com>
>>> ---
>>>  conf/machine/zcu102-zynqmp.conf | 15 ++++++++++++++-
>>>  1 file changed, 14 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/conf/machine/zcu102-zynqmp.conf b/conf/machine/zcu102-zynqmp.conf
>>> index a38ac4a..c7780b3 100644
>>> --- a/conf/machine/zcu102-zynqmp.conf
>>> +++ b/conf/machine/zcu102-zynqmp.conf
>>> @@ -8,7 +8,7 @@ require conf/machine/include/machine-xilinx-default.inc
>>>  require conf/machine/include/machine-xilinx-board.inc
>>>  require conf/machine/include/machine-xilinx-qemu.inc
>>>
>>> -MACHINE_FEATURES = "rtc ext2 ext3 vfat usbhost mali"
>>> +MACHINE_FEATURES = "rtc ext2 ext3 vfat usbhost mali qemu-system-xilinx"
>>>
>>>  UBOOT_MACHINE = "xilinx_zynqmp_zcu102_revB_defconfig"
>>>
>>> @@ -30,3 +30,16 @@ QB_OPT_APPEND = "-nographic -serial mon:stdio -serial null"
>>>  QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no -net nic -net nic -net nic -net nic,netdev=net0,macaddr=@MAC@"
>>>  QB_SLIRP_OPT = "-netdev user,id=net0 -net nic -net nic -net nic -net nic,netdev=net0"
>>>
>>> +# Xilinx QEMU options
>>> +QB_OPT_APPEND_append_qemuboot-xilinx = " -hw-dtb ${DEPLOY_DIR_IMAGE}/qemu-hw-devicetrees/zcu102-arm.dtb "
>>> +# Reset and unhalt CPU0
>>> +QB_OPT_APPEND_append_qemuboot-xilinx += " -device loader,addr=0xfd1a0104,data=0x8000000e,data-len=4 "
>>> +# Load the boot media
>>> +QB_OPT_APPEND_append_qemuboot-xilinx += " -device loader,file=${DEPLOY_DIR_IMAGE}/arm-trusted-firmware-${MACHINE}.elf,cpu=0 \
>>
>> No need for the += here since it is already _append, and you already
>> have the spaces in the appended string.
>>
>> Thread here if you are not familiar with why the _append += is undesirable.
>> https://www.mail-archive.com/openembedded-core@lists.openembedded.org/msg84649.html
>
> I didn't realise that, thanks for pointing it out.
>
>>
>>> +               -device loader,file=${DEPLOY_DIR_IMAGE}/u-boot.elf \
>>> +               "
>>> +# Load the kernel image so the user can run 'booti 0x80000 0x74000000 0x73000000' to boot the kernel
>>> +QB_OPT_APPEND_append_qemuboot-xilinx += " -device loader,addr=0x73000000,file=${DEPLOY_DIR_IMAGE}/Image-zynqmp-zcu102-revB.dtb \

Just realized, since there is no reason to override QB_DTB (with
regards to be being set empty for runqemu), you could re-use its value
here. "${DEPLOY_DIR_IMAGE}/${QB_DTB}". That way the dtb name is just
pulled from KERNEL_DEVICETREE.

Regards,
Nathan

>>> +               -device loader,addr=0x74000000,file=${DEPLOY_DIR_IMAGE}/core-image-minimal-zcu102-zynqmp.cpio.gz.u-boot \
>>
>> I think it would be better here to take advantage of the QB_ROOTFS_OPT:
>>
>> QB_DEFAULT_FSTYPE_qemuboot-xilinx = "cpio.gz.u-boot"
>> QB_ROOTFS_OPT_qemuboot-xilinx = "-device loader,addr=...,file=@ROOTFS@"
>>
>> So that you don't have to hardcode the 'core-image-minimal' target
>> image, or the FSTYPE. This means the the "none" fstype set in patch
>> 3/4 is not required.
>>
>> This way 'none' can be used with FIT or kernels with in-built initramfs.
>>
>>> +               -device loader,addr=0x80000,file=${DEPLOY_DIR_IMAGE}/Image \
>>
>> Use "..../${KERNEL_IMAGETYPE}" to avoid hard coding the name, and same
>> above for the device tree path.
>
> Awesome, I have made all of these changes.
>
> Thanks,
>
> Alistair
>
>>
>> Regards,
>> Nathan
>>
>>> +               "
>>> --
>>> 2.7.4
>>>



More information about the meta-xilinx mailing list