Qemu for ultra96
Kinsey Moore
kinsey.moore at oarcorp.com
Fri Apr 23 13:38:17 UTC 2021
Yes, the ultra96 BSP generates a 32-bit executable. QEMU starts its CPUs
in 64-bit mode. You would need a small piece of 64-bit AArch64 assembly
to start on the CPU which would jump into the 32-bit executable. It
could even theoretically be inlined into start.S as raw machine code.
Kinsey
On 4/23/2021 03:56, Alireza Banejad wrote:
> thank you for your response,
> i understood your second option but I somewhat haven't understood your
> first option. isn't the code written for the ultra96 BSP already meant
> to be 32-bit?
> would you give me a further explanation?
>
> On Thu, Apr 22, 2021 at 8:29 PM Kinsey Moore <kinsey.moore at oarcorp.com
> <mailto:kinsey.moore at oarcorp.com>> wrote:
>
> On 4/22/2021 08:47, Alireza Banejad wrote:
> > Hello
> > I want to know could I run applications for the ultra96 bsp in qemu?
> > I tried the qemu-system-arm with the virt machine and cpu
> specified as
> > cortex-a7 yet I don't get anything
> > I also tried the qemu-system-aarch64 specifying the machine as
> > xlnx-zcu102 and it still couldn't run the application.
> > BTW the application is just the hello sample from the testsuite
> > In reality I actually could run applications that were built
> with the
> > xilinx_zynqmp_ultra96 on a actual zcu102 board
> > But I don't understand why this doesn't happen in qemu
> > I don't have the board right now that why I need to test my
> > applications in qemu
> > Long story short, how can I run my applications built for
> > xilinx_zynqmp_ultra96 in qemu??
> >
> The issue that you're having is that the ARM xilinx_zynqmp_ultra96
> BSP
> is designed to run on the Ultrascale+ ZynqMP chip in 32-bit mode
> instead
> of 64-bit mode. qemu-system-aarch64 is the correct QEMU to use,
> but it
> starts in EL1/AArch64 mode by default. I haven't seen a way to
> directly
> start AArch32/ARMv7 code on the virtualized Cortex-A53 CPU, but on
> real
> hardware it would be controlled by the AA64nAA32 signal line. From
> what
> I can find, similar discussions have happened around the Raspberry Pi
> platform and as of 2019 there was no way to configure direct boot to
> AArch32.
>
> Two viable options:
>
> Write a piece of shim code to drop from EL1 to 32-bit mode based
> on the
> ARMv8 bare metal boot code (what you need is there, almost verbatim).
>
> Recompile QEMU to get the functionality you want (the relevant
> code is
> in hw/arm/boot.c, look for EM_AARCH64).
>
>
> Kinsey
>
> _______________________________________________
> devel mailing list
> devel at rtems.org <mailto:devel at rtems.org>
> http://lists.rtems.org/mailman/listinfo/devel
> <http://lists.rtems.org/mailman/listinfo/devel>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20210423/be7e4f73/attachment.html>
More information about the devel
mailing list