Adds SM501 usb host emulation feature.
[qemu] / hw / r2d.c
index 0f70d16..950576c 100644 (file)
--- a/hw/r2d.c
+++ b/hw/r2d.c
@@ -200,7 +200,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;
+    ram_addr_t sdram_addr;
     qemu_irq *irq;
     PCIBus *pci;
     int i;
@@ -215,7 +215,6 @@ static void r2d_init(ram_addr_t ram_size, int vga_ram_size,
     }
 
     /* Allocate memory space */
-    qemu_ram_alloc(SDRAM_BASE); /* to adjust the offset */
     sdram_addr = qemu_ram_alloc(SDRAM_SIZE);
     cpu_register_physical_memory(SDRAM_BASE, SDRAM_SIZE, sdram_addr);
     /* Register peripherals */
@@ -223,9 +222,7 @@ static void r2d_init(ram_addr_t ram_size, int vga_ram_size,
     irq = r2d_fpga_init(0x04000000, sh7750_irl(s));
     pci = sh_pci_register_bus(r2d_pci_set_irq, r2d_pci_map_irq, irq, 0, 4);
 
-    sm501_vga_ram_addr = qemu_ram_alloc(SM501_VRAM_SIZE);
-    sm501_init(0x10000000, sm501_vga_ram_addr, SM501_VRAM_SIZE,
-              serial_hds[2]);
+    sm501_init(0x10000000, SM501_VRAM_SIZE, irq[SM501], serial_hds[2]);
 
     /* onboard CF (True IDE mode, Master only). */
     if ((i = drive_get_index(IF_IDE, 0, 0)) != -1)
@@ -250,7 +247,7 @@ static void r2d_init(ram_addr_t ram_size, int vga_ram_size,
           env->pc = (SDRAM_BASE + LINUX_LOAD_OFFSET) | 0xa0000000;
           pstrcpy_targphys(SDRAM_BASE + 0x10100, 256, kernel_cmdline);
       } else {
-          kernel_size = load_image(kernel_filename, SDRAM_BASE);
+          kernel_size = load_image_targphys(kernel_filename, SDRAM_BASE, SDRAM_SIZE);
           env->pc = SDRAM_BASE | 0xa0000000; /* Start from P2 area */
       }
 
@@ -265,5 +262,4 @@ QEMUMachine r2d_machine = {
     .name = "r2d",
     .desc = "r2d-plus board",
     .init = r2d_init,
-    .ram_require = (SDRAM_BASE + SDRAM_SIZE + SM501_VRAM_SIZE) | RAMSIZE_FIXED,
 };