--- qemu/hw/mips_jazz.c 2018/04/24 17:24:12 1.1.1.2 +++ qemu/hw/mips_jazz.c 2018/04/24 17:38:29 1.1.1.3 @@ -31,8 +31,9 @@ #include "audio/audio.h" #include "boards.h" #include "net.h" -#include "scsi.h" +#include "esp.h" #include "mips-bios.h" +#include "loader.h" enum jazz_model_e { @@ -48,23 +49,21 @@ static void main_cpu_reset(void *opaque) static uint32_t rtc_readb(void *opaque, target_phys_addr_t addr) { - CPUState *env = opaque; - return cpu_inw(env, 0x71); + return cpu_inw(0x71); } static void rtc_writeb(void *opaque, target_phys_addr_t addr, uint32_t val) { - CPUState *env = opaque; - cpu_outw(env, 0x71, val & 0xff); + cpu_outw(0x71, val & 0xff); } -static CPUReadMemoryFunc *rtc_read[3] = { +static CPUReadMemoryFunc * const rtc_read[3] = { rtc_readb, rtc_readb, rtc_readb, }; -static CPUWriteMemoryFunc *rtc_write[3] = { +static CPUWriteMemoryFunc * const rtc_write[3] = { rtc_writeb, rtc_writeb, rtc_writeb, @@ -76,13 +75,13 @@ static void dma_dummy_writeb(void *opaqu * the current DMA acknowledge cycle is completed. */ } -static CPUReadMemoryFunc *dma_dummy_read[3] = { +static CPUReadMemoryFunc * const dma_dummy_read[3] = { NULL, NULL, NULL, }; -static CPUWriteMemoryFunc *dma_dummy_write[3] = { +static CPUWriteMemoryFunc * const dma_dummy_write[3] = { dma_dummy_writeb, dma_dummy_writeb, dma_dummy_writeb, @@ -127,7 +126,7 @@ void mips_jazz_init (ram_addr_t ram_size int s_rtc, s_dma_dummy; NICInfo *nd; PITState *pit; - BlockDriverState *fds[MAX_FD]; + DriveInfo *fds[MAX_FD]; qemu_irq esp_reset; ram_addr_t ram_offset; ram_addr_t bios_offset; @@ -186,6 +185,8 @@ void mips_jazz_init (ram_addr_t ram_size /* ISA devices */ i8259 = i8259_init(env->irq[4]); + isa_bus_new(NULL); + isa_bus_irqs(i8259); DMA_init(0); pit = pit_init(0x40, i8259[0]); pcspk_init(pit); @@ -210,7 +211,7 @@ void mips_jazz_init (ram_addr_t ram_size for (n = 0; n < nb_nics; n++) { nd = &nd_table[n]; if (!nd->model) - nd->model = "dp83932"; + nd->model = qemu_strdup("dp83932"); if (strcmp(nd->model, "dp83932") == 0) { dp83932_init(nd, 0x80001000, 2, rc4030[4], rc4030_opaque, rc4030_dma_memory_rw); @@ -235,17 +236,13 @@ void mips_jazz_init (ram_addr_t ram_size exit(1); } for (n = 0; n < MAX_FD; n++) { - int fd = drive_get_index(IF_FLOPPY, 0, n); - if (fd != -1) - fds[n] = drives_table[fd].bdrv; - else - fds[n] = NULL; + fds[n] = drive_get(IF_FLOPPY, 0, n); } - fdctrl_init(rc4030[1], 0, 1, 0x80003000, fds); + fdctrl_init_sysbus(rc4030[1], 0, 0x80003000, fds); /* Real time clock */ - rtc_init(0x70, i8259[8], 1980); - s_rtc = cpu_register_io_memory(rtc_read, rtc_write, env); + rtc_init(1980); + s_rtc = cpu_register_io_memory(rtc_read, rtc_write, NULL); cpu_register_physical_memory(0x80004000, 0x00001000, s_rtc); /* Keyboard (i8042) */