How to run RISC-V test applications using qemu?

Jan.Sommer at Jan.Sommer at
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,


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

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

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


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:

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.


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

Best regards,


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<mailto:users at>


users mailing list

users at<mailto:users at>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the users mailing list