Qemu 3.1.0 risc-v mie.MEIE

Bug #1815078 reported by RTOS Pharos
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
QEMU
Fix Released
Undecided
Palmer Dabbelt

Bug Description

Hello all,

There is a bug in qemu for Risc-v, related to the mie register: when we try to set the MEIE bit (11) nothing is done, even when we are running at machine mode.

Li a0 , 1 << 11
Csrs mie , a0

And when we read mie it is as though nothing was done.

Going through the qemu source code I was able to correct it: on file op_helper.c, line 94, the variable all_ints should be initialized with:

uint64_t all_ints = delegable_ints | MIP_MSIP | MIP_MTIP | MIP_MEIP;

That is, the MIP_MEIP was missing.

I've successfully triggered uart interrupts with this patch (virt machine).

All the best,
Pharos team

Revision history for this message
Palmer Dabbelt (palmerdabbelt) wrote :

It looks like this is fixed as of c7b951718815 ("RISC-V: Implement modular CSR helper interface"), which was merged on January 14th.

Revision history for this message
RTOS Pharos (rtos.pharos) wrote :

Good news,

Thanks

Revision history for this message
Palmer Dabbelt (palmerdabbelt) wrote :

LMK if that patch doesn't fix your issue. QEMU master is pretty stable for RISC-V right now and since there's a handful of intertwined patches the best bet is probably just to use the commit hash above.

This should be fixed in the 4.0 release, which is targeted for the middle of April.

Changed in qemu:
assignee: nobody → Palmer Dabbelt (palmerdabbelt)
status: New → Fix Committed
Revision history for this message
RTOS Pharos (rtos.pharos) wrote :

OK, I'll give it a try and give you some feedback.

Thanks

Revision history for this message
RTOS Pharos (rtos.pharos) wrote :

So I tried it but got the error:

ERROR: missing file ../qemu-3.1.0/ui/keycodemapdb/README

This is not a GIT checkout but module content appears to
be missing. Do not use 'git archive' or GitHub download links
to acquire QEMU source archives. Non-GIT builds are only
supported with source archives linked from:

  https://www.qemu.org/download/

Developers working with GIT can use scripts/archive-source.sh
if they need to create valid source archives.

Makefile.cross-compiler:259: recipe for target 'qemu-3.1' failed
make: *** [qemu-3.1] Error 1

Get this is standard error, but I don't have time now to see how to work around it. Maybe later I can

Thomas Huth (th-huth)
Changed in qemu:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.