]> git.proxmox.com Git - qemu.git/commitdiff
mips_malta: do not raise exceptions when accessing invalid memory
authorAurelien Jarno <aurelien@aurel32.net>
Mon, 12 Aug 2013 19:34:53 +0000 (21:34 +0200)
committerAurelien Jarno <aurelien@aurel32.net>
Wed, 14 Aug 2013 14:47:30 +0000 (16:47 +0200)
Since commit c658b94f6e8c206c59d02aa6fbac285b86b53d2c, MIPS raises
exceptions when accessing invalid memory. This is not the correct
behaviour for MIPS Malta Core LV, as the GT-64120A system controller
just ignore undecoded access. This feature is used by the Linux kernel
to probe for some devices.

Emulate the correct behaviour in QEMU by adding an empty slot covering
the entire memory space decoded by the GT-64120A.

Tested-by: Stefan Weil <sw@weilnetz.de>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
default-configs/mips-softmmu.mak
default-configs/mips64-softmmu.mak
default-configs/mips64el-softmmu.mak
default-configs/mipsel-softmmu.mak
hw/mips/mips_malta.c

index 926709ae52d500875684a93ee461f3d47385899a..71177efdffdc233aba1aa15ad9cfdcab9584e4b5 100644 (file)
@@ -34,3 +34,4 @@ CONFIG_JAZZ_LED=y
 CONFIG_MC146818RTC=y
 CONFIG_VT82C686=y
 CONFIG_ISA_TESTDEV=y
+CONFIG_EMPTY_SLOT=y
index 0ef3f09c77cc14f22214d52e29f21c123f2aa046..617301b753459ac589e87f3b2ba115a41f19c725 100644 (file)
@@ -34,3 +34,4 @@ CONFIG_JAZZ_LED=y
 CONFIG_MC146818RTC=y
 CONFIG_VT82C686=y
 CONFIG_ISA_TESTDEV=y
+CONFIG_EMPTY_SLOT=y
index 60893182b36a3856107d60341b37bc64b287ca21..317b15136139eba358827f54463889b8370269d9 100644 (file)
@@ -36,3 +36,4 @@ CONFIG_JAZZ_LED=y
 CONFIG_MC146818RTC=y
 CONFIG_VT82C686=y
 CONFIG_ISA_TESTDEV=y
+CONFIG_EMPTY_SLOT=y
index cd59e2479a8871db6256bf58a51ccc5be1e03a5e..532a9aefbd4ac4e45c9699ca0657a6636e3370ce 100644 (file)
@@ -34,3 +34,4 @@ CONFIG_JAZZ_LED=y
 CONFIG_MC146818RTC=y
 CONFIG_VT82C686=y
 CONFIG_ISA_TESTDEV=y
+CONFIG_EMPTY_SLOT=y
index 0f5de338fafec6b345d412b20d641d9842ae0410..f8d064cec3cdd0e6db1f67be936eda0849ef6eb2 100644 (file)
@@ -50,6 +50,7 @@
 #include "qemu/host-utils.h"
 #include "sysemu/qtest.h"
 #include "qemu/error-report.h"
+#include "hw/empty_slot.h"
 
 //#define DEBUG_BOARD_INIT
 
@@ -908,6 +909,11 @@ void mips_malta_init(QEMUMachineInitArgs *args)
     DeviceState *dev = qdev_create(NULL, TYPE_MIPS_MALTA);
     MaltaState *s = MIPS_MALTA(dev);
 
+    /* The whole address space decoded by the GT-64120A doesn't generate
+       exception when accessing invalid memory. Create an empty slot to
+       emulate this feature. */
+    empty_slot_init(0, 0x20000000);
+
     qdev_init_nofail(dev);
 
     /* Make sure the first 3 serial ports are associated with a device. */