The GUTS device is used by system software to find out about hardware details of the current system.
We only emulate the bare minimum to be able to reboot a guest which is not sufficient to make u-boot happy. Add a few more registers to our portfolio with dummy values. Signed-off-by: Alexander Graf <ag...@suse.de> --- hw/ppc/mpc8544_guts.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/hw/ppc/mpc8544_guts.c b/hw/ppc/mpc8544_guts.c index a10abe9..af8c742 100644 --- a/hw/ppc/mpc8544_guts.c +++ b/hw/ppc/mpc8544_guts.c @@ -25,6 +25,8 @@ #define MPC8544_GUTS_RSTCR_RESET 0x02 #define MPC8544_GUTS_ADDR_PORPLLSR 0x00 +#define PORPLLSR_SYS_RATIO_MAX 0x3e +#define PORPLLSR_CPU0_RATIO_MAX (0x3f << 16) #define MPC8544_GUTS_ADDR_PORBMSR 0x04 #define MPC8544_GUTS_ADDR_PORIMPSCR 0x08 #define MPC8544_GUTS_ADDR_PORDEVSR 0x0C @@ -36,6 +38,7 @@ #define MPC8544_GUTS_ADDR_GPINDR 0x50 #define MPC8544_GUTS_ADDR_PMUXCR 0x60 #define MPC8544_GUTS_ADDR_DEVDISR 0x70 +#define DEVDISR_DISABLED_NONE 0x0 #define MPC8544_GUTS_ADDR_POWMGTCSR 0x80 #define MPC8544_GUTS_ADDR_MCPSUMR 0x90 #define MPC8544_GUTS_ADDR_RSTRSCR 0x94 @@ -73,6 +76,15 @@ static uint64_t mpc8544_guts_read(void *opaque, hwaddr addr, addr &= MPC8544_GUTS_MMIO_SIZE - 1; switch (addr) { + case MPC8544_GUTS_ADDR_PORPLLSR: + value = PORPLLSR_SYS_RATIO_MAX | PORPLLSR_CPU0_RATIO_MAX; + break; + case MPC8544_GUTS_ADDR_PORDEVSR: + value = 0; + break; + case MPC8544_GUTS_ADDR_DEVDISR: + value = DEVDISR_DISABLED_NONE; + break; case MPC8544_GUTS_ADDR_PVR: value = env->spr[SPR_PVR]; break; -- 1.8.1.4