From 676d9b9b883691cf99e298291dbc2ad7956516b9 Mon Sep 17 00:00:00 2001
From: Artyom Tarasenko <atar4qemu@googlemail.com>
Date: Sun, 18 Apr 2010 00:34:03 +0200
Subject: [PATCH] sparc32 use empty_slot for missing RAM v1

use empty_slot device for the RAM which is not installed

Models without ECC don't trap when missing ram is accessed.

v0->v1 compile only once and fix indentation

Signed-off-by: Artyom Tarasenko <atar4qemu@gmail.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
---
 Makefile.objs                     | 1 +
 default-configs/sparc-softmmu.mak | 1 +
 hw/sun4m.c                        | 5 +++++
 3 files changed, 7 insertions(+)

diff --git a/Makefile.objs b/Makefile.objs
index ab1af88af2..f4d2faf06c 100644
--- a/Makefile.objs
+++ b/Makefile.objs
@@ -140,6 +140,7 @@ hw-obj-$(CONFIG_PFLASH_CFI02) += pflash_cfi02.o
 
 hw-obj-$(CONFIG_M48T59) += m48t59.o
 hw-obj-$(CONFIG_ESCC) += escc.o
+hw-obj-$(CONFIG_EMPTY_SLOT) += empty_slot.o
 
 hw-obj-$(CONFIG_SERIAL) += serial.o
 hw-obj-$(CONFIG_PARALLEL) += parallel.o
diff --git a/default-configs/sparc-softmmu.mak b/default-configs/sparc-softmmu.mak
index 54899ffc58..becf88096c 100644
--- a/default-configs/sparc-softmmu.mak
+++ b/default-configs/sparc-softmmu.mak
@@ -7,3 +7,4 @@ CONFIG_M48T59=y
 CONFIG_PTIMER=y
 CONFIG_FDC=y
 CONFIG_VIRTIO_PCI=y
+CONFIG_EMPTY_SLOT=y
diff --git a/hw/sun4m.c b/hw/sun4m.c
index 90e661d5c2..9a79120b1d 100644
--- a/hw/sun4m.c
+++ b/hw/sun4m.c
@@ -36,6 +36,7 @@
 #include "isa.h"
 #include "fw_cfg.h"
 #include "escc.h"
+#include "empty_slot.h"
 #include "qdev-addr.h"
 #include "loader.h"
 #include "elf.h"
@@ -820,6 +821,10 @@ static void sun4m_hw_init(const struct sun4m_hwdef *hwdef, ram_addr_t RAM_size,
 
     /* set up devices */
     ram_init(0, RAM_size, hwdef->max_mem);
+    /* models without ECC don't trap when missing ram is accessed */
+    if (!hwdef->ecc_base) {
+        empty_slot_init(RAM_size, hwdef->max_mem - RAM_size);
+    }
 
     prom_init(hwdef->slavio_base, bios_name);