f4d1414a93
The OpenRISC architecture has the Power Management Register (PMR) special purpose register to manage cpu power states. The interesting modes are: * Doze Mode (DME) - Stop cpu except timer & pic - wake on interrupt * Sleep Mode (SME) - Stop cpu and all units - wake on interrupt * Suspend Model (SUME) - Stop cpu and all units - wake on reset The linux kernel will set DME when idle. This patch implements the PMR SPR and halts the qemu cpu when there is a change to DME or SME. This means that openrisc qemu in no longer peggs a host cpu at 100%. In order for this to work we need to kick the CPU when timers are expired. Update the cpu timer to kick the cpu upon each timer event. Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Stafford Horne <shorne@gmail.com> |
||
---|---|---|
.. | ||
cpu.c | ||
cpu.h | ||
exception_helper.c | ||
exception.c | ||
exception.h | ||
fpu_helper.c | ||
gdbstub.c | ||
helper.h | ||
interrupt_helper.c | ||
interrupt.c | ||
machine.c | ||
Makefile.objs | ||
mmu_helper.c | ||
mmu.c | ||
sys_helper.c | ||
translate.c |