@@ -779,6 +779,8 @@ static void ibm_40p_init(ram_addr_t ram_size,
DeviceState *dev;
PCIBus *pci_bus;
PCIDevice *pci;
+ ISADevice *isa;
+ DriveInfo *drive;
// IBM E15 graphic adapter (S3 Vision864)
// PowerPC 601
@@ -831,6 +833,21 @@ static void ibm_40p_init(ram_addr_t ram_size,
cpu_exit_irq = qemu_allocate_irqs(cpu_request_exit, NULL, 1);
qdev_connect_gpio_out(&pci->qdev, 0, env->irq_inputs[PPC6xx_INPUT_INT]);
qdev_connect_gpio_out(&pci->qdev, 1, *cpu_exit_irq);
+
+ /* Super I/O (parallel + serial ports) */
+ isa = isa_create("isa-pc87312");
+ qdev_prop_set_chr(&isa->qdev, "parallel", parallel_hds[0]);
+ qdev_prop_set_chr(&isa->qdev, "uart1", serial_hds[0]);
+ qdev_prop_set_chr(&isa->qdev, "uart2", serial_hds[1]);
+ drive = drive_get(IF_FLOPPY, 0, 0);
+ if (drive) {
+ qdev_prop_set(&isa->qdev, "floppyA", drive->bdrv, PROP_TYPE_DRIVE);
+ }
+ drive = drive_get(IF_FLOPPY, 0, 1);
+ if (drive) {
+ qdev_prop_set(&isa->qdev, "floppyB", drive->bdrv, PROP_TYPE_DRIVE);
+ }
+ qdev_init_nofail(&isa->qdev);
}
static QEMUMachine prep_machine = {