mirror of
https://github.com/xemu-project/xemu.git
synced 2025-02-10 14:24:15 +00:00
target/openrisc: Fix writes to interrupt mask register
The interrupt controller mask register (PICMR) allows writing any value to any of the 32 interrupt mask bits. Writing a 0 masks the interrupt writing a 1 unmasks (enables) the the interrupt. For some reason the old code was or'ing the write values to the PICMR meaning it was not possible to ever mask a interrupt once it was enabled. I have tested this by running linux 4.18 and my regular checks, I don't see any issues. Reported-by: Davidson Francis <davidsondfgl@gmail.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Stafford Horne <shorne@gmail.com>
This commit is contained in:
parent
9f6e8afad7
commit
dfc84745bb
@ -142,7 +142,7 @@ void HELPER(mtspr)(CPUOpenRISCState *env, target_ulong spr, target_ulong rb)
|
||||
}
|
||||
break;
|
||||
case TO_SPR(9, 0): /* PICMR */
|
||||
env->picmr |= rb;
|
||||
env->picmr = rb;
|
||||
break;
|
||||
case TO_SPR(9, 2): /* PICSR */
|
||||
env->picsr &= ~rb;
|
||||
|
Loading…
x
Reference in New Issue
Block a user