aboutsummaryrefslogtreecommitdiff
path: root/hw/r2d.c
diff options
context:
space:
mode:
Diffstat (limited to 'hw/r2d.c')
-rw-r--r--hw/r2d.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/hw/r2d.c b/hw/r2d.c
index 855aa414ff..853479375b 100644
--- a/hw/r2d.c
+++ b/hw/r2d.c
@@ -25,12 +25,15 @@
#include "hw.h"
#include "sh.h"
+#include "devices.h"
#include "sysemu.h"
#include "boards.h"
#define SDRAM_BASE 0x0c000000 /* Physical location of SDRAM: Area 3 */
#define SDRAM_SIZE 0x04000000
+#define SM501_VRAM_SIZE 0x800000
+
#define PA_POWOFF 0x30
#define PA_VERREG 0x32
#define PA_OUTPORT 0x36
@@ -133,6 +136,7 @@ static void r2d_init(ram_addr_t ram_size, int vga_ram_size,
{
CPUState *env;
struct SH7750State *s;
+ ram_addr_t sdram_addr, sm501_vga_ram_addr;
if (!cpu_model)
cpu_model = "SH7751R";
@@ -144,10 +148,14 @@ static void r2d_init(ram_addr_t ram_size, int vga_ram_size,
}
/* Allocate memory space */
- cpu_register_physical_memory(SDRAM_BASE, SDRAM_SIZE, 0);
+ sdram_addr = qemu_ram_alloc(SDRAM_SIZE);
+ cpu_register_physical_memory(SDRAM_BASE, SDRAM_SIZE, sdram_addr);
/* Register peripherals */
r2d_fpga_init(0x04000000);
s = sh7750_init(env);
+ sm501_vga_ram_addr = qemu_ram_alloc(SM501_VRAM_SIZE);
+ sm501_init(ds, 0x10000000, sm501_vga_ram_addr, SM501_VRAM_SIZE,
+ serial_hds[2]);
/* Todo: register on board registers */
{
int kernel_size;
@@ -167,5 +175,5 @@ QEMUMachine r2d_machine = {
.name = "r2d",
.desc = "r2d-plus board",
.init = r2d_init,
- .ram_require = SDRAM_SIZE | RAMSIZE_FIXED,
+ .ram_require = (SDRAM_SIZE + SM501_VRAM_SIZE) | RAMSIZE_FIXED,
};