mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 16:53:55 -06:00
target/mips: Implement CP0.Config7.WII bit support
Some pre-release 6 cores use CP0.Config7.WII bit to indicate that a disabled interrupt should wake up a sleeping CPU. Enable this bit by default for M14K(c) and P5600. There are potentially other cores that support this feature, but I do not have a complete list. Signed-off-by: Marcin Nowakowski <marcin.nowakowski@fungible.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-Id: <20230216051717.3911212-4-marcin.nowakowski@fungible.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
This commit is contained in:
parent
7c00edb9a2
commit
36b84f856e
3 changed files with 7 additions and 1 deletions
|
@ -143,11 +143,13 @@ static bool mips_cpu_has_work(CPUState *cs)
|
|||
/*
|
||||
* Prior to MIPS Release 6 it is implementation dependent if non-enabled
|
||||
* interrupts wake-up the CPU, however most of the implementations only
|
||||
* check for interrupts that can be taken.
|
||||
* check for interrupts that can be taken. For pre-release 6 CPUs,
|
||||
* check for CP0 Config7 'Wait IE ignore' bit.
|
||||
*/
|
||||
if ((cs->interrupt_request & CPU_INTERRUPT_HARD) &&
|
||||
cpu_mips_hw_interrupts_pending(env)) {
|
||||
if (cpu_mips_hw_interrupts_enabled(env) ||
|
||||
(env->CP0_Config7 & (1 << CP0C7_WII)) ||
|
||||
(env->insn_flags & ISA_MIPS_R6)) {
|
||||
has_work = true;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue