/*
- * QEMU Malta board support
+ * QEMU Acer Pica Machine support
*
* Copyright (c) 2007 Hervé Poussineau
*
* THE SOFTWARE.
*/
-#include "vl.h"
+#include "hw.h"
+#include "mips.h"
+#include "isa.h"
+#include "pc.h"
+#include "fdc.h"
+#include "sysemu.h"
+#include "boards.h"
#ifdef TARGET_WORDS_BIGENDIAN
#define BIOS_FILENAME "mips_bios.bin"
}
static
-void mips_pica61_init (int ram_size, int vga_ram_size, int boot_device,
+void mips_pica61_init (int ram_size, int vga_ram_size, const char *boot_device,
DisplayState *ds, const char **fd_filename, int snapshot,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
int bios_size;
CPUState *env;
int i;
- mips_def_t *def;
int available_ram;
qemu_irq *i8259;
#ifdef TARGET_MIPS64
cpu_model = "R4000";
#else
- cpu_model = "4KEc";
+ /* FIXME: All wrong, this maybe should be R3000 for the older PICAs. */
+ cpu_model = "24Kf";
#endif
}
- if (mips_find_by_name(cpu_model, &def) != 0)
- def = NULL;
- env = cpu_init();
- cpu_mips_register(env, def);
+ env = cpu_init(cpu_model);
+ if (!env) {
+ fprintf(stderr, "Unable to find CPU definition\n");
+ exit(1);
+ }
register_savevm("cpu", 0, 3, cpu_save, cpu_load, env);
qemu_register_reset(main_cpu_reset, env);
/* load a BIOS image */
bios_offset = ram_size + vga_ram_size;
- snprintf(buf, sizeof(buf), "%s/%s", bios_dir, BIOS_FILENAME);
+ if (bios_name == NULL)
+ bios_name = BIOS_FILENAME;
+ snprintf(buf, sizeof(buf), "%s/%s", bios_dir, bios_name);
bios_size = load_image(buf, phys_ram_base + bios_offset);
if ((bios_size <= 0) || (bios_size > BIOS_SIZE)) {
/* fatal */
serial_mm_init(serial_base[i], 0, i8259[serial_irq[i]], serial_hds[i], 1);
}
}
- for (i = 0; i < MAX_PARALLEL_PORTS; i++) {
- if (parallel_hds[i]) {
- /* FIXME: memory mapped! parallel_init(0x80008000, i8259[17], parallel_hds[i]); */
- }
- }
+ /* Parallel port */
+ if (parallel_hds[0]) parallel_mm_init(0x80008000, 0, i8259[1], parallel_hds[0]);
/* Sound card */
/* FIXME: missing Jazz sound, IRQ 18 */
ds1225y_init(0x80009000, "nvram");
/* Video card */
- //isa_vga_init(ds, phys_ram_base + ram_size, ram_size, vga_ram_size);
+ /* FIXME: This card is not the real one which was in the original PICA,
+ * but let's do with what Qemu currenly emulates... */
+ isa_vga_mm_init(ds, phys_ram_base + ram_size, ram_size, vga_ram_size,
+ 0x40000000, 0x60000000, 0);
+
+ /* LED indicator */
+ jazz_led_init(ds, 0x8000f000);
}
QEMUMachine mips_pica61_machine = {