How to run RISC-V test applications using qemu?

Jan.Sommer at dlr.de Jan.Sommer at dlr.de
Thu Nov 26 08:45:07 UTC 2020


Thanks, Jiri.

Qemu worked fine for the rv32imafdc test binaries.
For the record, both qemu command lines worked well:
qemu-system-riscv32 -nographic -machine virt -m 2G -nographic -net none -serial mon:stdio  -bios ticker.exe

qemu-system-riscv32 -nographic -machine virt -m 2G -nographic -net none -serial mon:stdio  -bios none -kernel ticker.exe

I tried with qemu-4.2, qemu-5.1 and qemu-5.2-rc. It worked on all three.

@Karel: Thanks for the tip with Ctrl+a. Worked fine with that as well.

Best regards,

    Jan

From: users <users-bounces at rtems.org> On Behalf Of Jiri Gaisler
Sent: Wednesday, November 25, 2020 4:57 PM
To: users at rtems.org
Subject: Re: How to run RISC-V test applications using qemu?



On 11/25/20 4:18 PM, Jan.Sommer at dlr.de<mailto:Jan.Sommer at dlr.de> wrote:

On Wed, 25 Nov 2020 at 15:41, <Jan.Sommer at dlr.de><mailto:Jan.Sommer at dlr.de> wrote:

Hello,



I tried to experiment a bit with the riscv BSPs.

I could run them using the SIS simulator, but failed with qemu.

Regarding qemu I found this ticket:

https://devel.rtems.org/ticket/3608



In one mailinglist thread (from 2018) someone said it worked with a current master version of qemu.

I have compiled qemu-5.1 and qemu-5.2-rc2. Does anyone know if those version have the necessary patches included?



Then another source of error could be the command line parameters I used:

qemu-system-riscv32 -nographic -machine virt -m 2G -bios none -nographic -net none -serial stdio -monitor none -kernel ticker.exe



Does someone have an example for a working set of command line options?

Which BSP did you build and how did you build it? Can you try with -bios ticker.exe and discard the -kernel option? Did you try RV64?



I used the griscv BSP. If I read it correctly, it should be a rv32imafd processor. I built the BSP from current master and used the waf build system to build it.

I also just tried (with qemu-5.2.0-rc2) the following command using bios instead of kernel:



qemu-system-riscv32 -nographic -machine virt -m 2G -nographic -net none -serial stdio -monitor none -bios /tmp/riscv/rtems/build/riscv/griscv/testsuites/samples/ticker.exe



I still don't get any output. It might very well be that the serial or monitor configuration is not correct. These options are always a bit mysterious to me.

FWIW if I use "-serial stdio -monitor none" I can close qemu with Ctrl+C. If I use "-serial mon:stdio" Ctrl+C does not work.

Using qemu-system-riscv64 doesn't change anything.



The griscv bsp only works with sis, as it uses leon3/grlib peripherals. To run on qemu, you need to use the riscv/riscv bsps, e.g. rv32imafdc or any other in rtems/bsp/riscv/riscv/config.

Jiri.

PS. I plan to add "pure" riscv support to sis, once I find the proper device-tree definitions for the bsps ...









Best regards,



    Jan



Deutsches Zentrum für Luft- und Raumfahrt e. V. (DLR)

German Aerospace Center

Institute for Software Technology | Software for Space Systems and Interactive Visualization | Lilienthalplatz 7 | 38108 Braunschweig | Germany



Jan Sommer



_______________________________________________

users mailing list

users at rtems.org<mailto:users at rtems.org>

http://lists.rtems.org/mailman/listinfo/users



_______________________________________________

users mailing list

users at rtems.org<mailto:users at rtems.org>

http://lists.rtems.org/mailman/listinfo/users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/users/attachments/20201126/eb9edafd/attachment.html>


More information about the users mailing list