diff options
-rw-r--r-- | Makefile.target | 4 | ||||
-rw-r--r-- | hw/mips_r4k.c | 9 |
2 files changed, 11 insertions, 2 deletions
diff --git a/Makefile.target b/Makefile.target index 57f9498..bdc3659 100644 --- a/Makefile.target +++ b/Makefile.target @@ -357,8 +357,8 @@ VL_OBJS+= grackle_pci.o prep_pci.o unin_pci.o DEFINES += -DHAS_AUDIO endif ifeq ($(TARGET_ARCH), mips) -VL_OBJS+= mips_r4k.o dma.o vga.o serial.o i8254.o i8259.o -#VL_OBJS+= #ide.o pckbd.o fdc.o m48t59.o +VL_OBJS+= mips_r4k.o dma.o vga.o serial.o i8254.o i8259.o ide.o +#VL_OBJS+= #pckbd.o fdc.o m48t59.o endif ifeq ($(TARGET_BASE_ARCH), sparc) ifeq ($(TARGET_ARCH), sparc64) diff --git a/hw/mips_r4k.c b/hw/mips_r4k.c index 075b16c..6c838ac 100644 --- a/hw/mips_r4k.c +++ b/hw/mips_r4k.c @@ -7,6 +7,10 @@ #define VIRT_TO_PHYS_ADDEND (-0x80000000LL) +static const int ide_iobase[2] = { 0x1f0, 0x170 }; +static const int ide_iobase2[2] = { 0x3f6, 0x376 }; +static const int ide_irq[2] = { 14, 15 }; + extern FILE *logfile; static PITState *pit; @@ -118,6 +122,7 @@ void mips_r4k_init (int ram_size, int vga_ram_size, int boot_device, int ret; CPUState *env; long kernel_size; + int i; env = cpu_init(); register_savevm("cpu", 0, 3, cpu_save, cpu_load, env); @@ -198,6 +203,10 @@ void mips_r4k_init (int ram_size, int vga_ram_size, int boot_device, exit (1); } } + + for(i = 0; i < 2; i++) + isa_ide_init(ide_iobase[i], ide_iobase2[i], ide_irq[i], + bs_table[2 * i], bs_table[2 * i + 1]); } QEMUMachine mips_machine = { |