mips: fix broken fulong2e machine
authorPaolo Bonzini <pbonzini@redhat.com>
Thu, 16 Apr 2015 20:11:23 +0000 (21:11 +0100)
committerLeon Alrae <leon.alrae@imgtec.com>
Fri, 17 Apr 2015 11:11:48 +0000 (12:11 +0100)
After commit 5312bd8 the bonito_readl() and bonito_writel() have been
accessing incorrect addresses. Consequently QEMU is crashing when trying
to boot Linux kernel on fulong2e machine.

Cc: qemu-stable@nongnu.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Leon Alrae <leon.alrae@imgtec.com>
hw/pci-host/bonito.c

index 8bdd56922a25567a9ef36179775b240a9ed882ef..8134d0bcd0799f786a1c32e8c5cf507071584918 100644 (file)
@@ -233,7 +233,7 @@ static void bonito_writel(void *opaque, hwaddr addr,
     uint32_t saddr;
     int reset = 0;
 
-    saddr = (addr - BONITO_REGBASE) >> 2;
+    saddr = addr >> 2;
 
     DPRINTF("bonito_writel "TARGET_FMT_plx" val %x saddr %x\n", addr, val, saddr);
     switch (saddr) {
@@ -295,7 +295,7 @@ static uint64_t bonito_readl(void *opaque, hwaddr addr,
     PCIBonitoState *s = opaque;
     uint32_t saddr;
 
-    saddr = (addr - BONITO_REGBASE) >> 2;
+    saddr = addr >> 2;
 
     DPRINTF("bonito_readl "TARGET_FMT_plx"\n", addr);
     switch (saddr) {