The PL031 model doesn't seem to raise alarm interrupts

Bug #931940 reported by Daniel Forsgren
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Linaro QEMU
Fix Released
Low
Unassigned

Bug Description

qemu-linaro-1.0.50-2012.02:

In pl031_interrupt (pl031.c), the mask (s->im) is set. However, that doesn't raise the interrupt (s->is & s->im in pl031_update).

I assume that pl031_interrupt should set s->is instead?

Revision history for this message
Daniel Forsgren (daniel-forsgren) wrote :

Something like this?

--- original/qemu-linaro-1.0.50-2012.02/hw/pl031.c 2012-02-08 23:35:33.000000000 +0100
+++ qemu-linaro-1.0.50-2012.02/hw/pl031.c 2012-02-14 10:01:39.722727211 +0100
@@ -76,7 +76,7 @@
 {
     pl031_state *s = (pl031_state *)opaque;

- s->im = 1;
+ s->is = 1;
     DPRINTF("Alarm raised\n");
     pl031_update(s);
 }

Revision history for this message
Peter Maydell (pmaydell) wrote :

Yes, it looks like you're right. Do you have a test case that is affected by this bug?

Revision history for this message
Daniel Forsgren (daniel-forsgren) wrote :

Yes, the very simple RTC example from kernel.org will trigger this problem.

See code example in:

http://kernel.org/doc/Documentation/rtc.txt

Revision history for this message
Peter Maydell (pmaydell) wrote :

Patch submitted upstream (and I'll put it into the next qemu-linaro release):
http://patchwork.ozlabs.org/patch/141164/

Changed in qemu-linaro:
status: New → In Progress
milestone: none → 2012.03
importance: Undecided → Low
Peter Maydell (pmaydell)
Changed in qemu-linaro:
status: In Progress → Fix Committed
Peter Maydell (pmaydell)
Changed in qemu-linaro:
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.