aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpbrook <pbrook@c046a42c-6fe2-441c-8c8c-71466251a162>2006-10-29 15:38:28 +0000
committerpbrook <pbrook@c046a42c-6fe2-441c-8c8c-71466251a162>2006-10-29 15:38:28 +0000
commit58126404f5d8ccb53ab7a385ad0230dd7c4cc130 (patch)
tree674720a81d694a6d25d3315d03fed3e1a4380d9f
parent569f5d668c071487a31bdc51b27bbedaa46cb01a (diff)
Mips IDE support. (Aurelien Jarno)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2206 c046a42c-6fe2-441c-8c8c-71466251a162
-rw-r--r--Makefile.target4
-rw-r--r--hw/mips_r4k.c9
2 files changed, 11 insertions, 2 deletions
diff --git a/Makefile.target b/Makefile.target
index 57f9498918..bdc365908c 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 075b16cb47..6c838ac31d 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 = {