Skip to content

Extend qemu_cortex_r5 test coverage #20217

@stephanosio

Description

@stephanosio

At the time of writing, the qemu_cortex_r5 board based on xilinx_zynqmp SoC is only able to run very basic non-multitasking samples and tests (e.g. hello_world sample).

In order to improve test coverage on the qemu_cortex_r5 platform and facilitate CI testing of the ARM Cortex-R port, QEMU needs to be patched to provide a better emulation of the RPU of the Xilinx ZynqMP SoC; at the same time, incorrect xilinx_zynqmp SoC implementation on Zephyr needs to be fixed.

QEMU Tasks

A pull request incorporating the above patches is to be made on zephyr_rtos/qemu. As for the new patch(es), a pull request will be made on Xilinx/qemu and, hopefully, Xilinx will submit an upstream patch.

It seems the hard-coded qemu machine type -machine xlnx-zcu102 (currently being used as the default "run" environment by qemu_cortex_r5 board) is simply obsolete. Both RPU GIC and TTCs are properly mapped when emulating with -machine arm-generic-fdt using the latest zcu102-arm.dts from Xilinx/qemu-devicetrees.

Zephyr Tasks

Note

  • Since the current Zephyr architecture cannot support AMP of Zynq APUs and RPUs in one project, we should consider the APU and RPU to be different hardware platforms (i.e. consider renaming xilinx_zynqmp to xilinx_zynqmp_rpu; when Cortex-A support is added in the future, add xilinx_zynqmp_apu; qemu_cortex_a53 should then utilise xilinx_zynqmp_apu). -> This has been addressed in the PR Refactor and fix xilinx_zynqmp SoC definition #20267.
  • Implement tickless capability for xlnx_psttc_timer #19869 was withdrawn from this issue due to the severe timing instability in the Xilinx QEMU that makes it impossible to emulate tickless mode operation.

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions