Ejemplo n.º 1
0
static int macio_initfn_ide(MacIOState *s, MACIOIDEState *ide, qemu_irq irq0,
                            qemu_irq irq1, int dmaid)
{
    SysBusDevice *sysbus_dev;

    sysbus_dev = SYS_BUS_DEVICE(ide);
    sysbus_connect_irq(sysbus_dev, 0, irq0);
    sysbus_connect_irq(sysbus_dev, 1, irq1);
    macio_ide_register_dma(ide, s->dbdma, dmaid);
    return qdev_init(DEVICE(ide));
}
Ejemplo n.º 2
0
static void macio_realize_ide(MacIOState *s, MACIOIDEState *ide,
                              qemu_irq irq0, qemu_irq irq1, int dmaid,
                              Error **errp)
{
    SysBusDevice *sysbus_dev;

    sysbus_dev = SYS_BUS_DEVICE(ide);
    sysbus_connect_irq(sysbus_dev, 0, irq0);
    sysbus_connect_irq(sysbus_dev, 1, irq1);
    macio_ide_register_dma(ide, s->dbdma, dmaid);
    object_property_set_bool(OBJECT(ide), true, "realized", errp);
}
Ejemplo n.º 3
0
static int macio_newworld_initfn(PCIDevice *d)
{
    MacIOState *s = MACIO(d);
    NewWorldMacIOState *ns = NEWWORLD_MACIO(d);
    SysBusDevice *sysbus_dev;
    int ret = macio_common_initfn(d);
    if (ret < 0) {
        return ret;
    }

    sysbus_dev = SYS_BUS_DEVICE(&s->cuda);
    sysbus_connect_irq(sysbus_dev, 0, ns->irqs[0]);

    if (s->pic_mem) {
        /* OpenPIC */
        memory_region_add_subregion(&s->bar, 0x40000, s->pic_mem);
    }

    sysbus_dev = SYS_BUS_DEVICE(&ns->ide[0]);
    sysbus_connect_irq(sysbus_dev, 0, ns->irqs[1]);
    sysbus_connect_irq(sysbus_dev, 1, ns->irqs[2]);
    macio_ide_register_dma(&ns->ide[0], s->dbdma, 0x16);
    ret = qdev_init(DEVICE(&ns->ide[0]));
    if (ret < 0) {
        return ret;
    }

    sysbus_dev = SYS_BUS_DEVICE(&ns->ide[1]);
    sysbus_connect_irq(sysbus_dev, 0, ns->irqs[3]);
    sysbus_connect_irq(sysbus_dev, 1, ns->irqs[4]);
    macio_ide_register_dma(&ns->ide[1], s->dbdma, 0x1a);
    ret = qdev_init(DEVICE(&ns->ide[1]));
    if (ret < 0) {
        return ret;
    }

    return 0;
}
Ejemplo n.º 4
0
static int macio_oldworld_initfn(PCIDevice *d)
{
    MacIOState *s = MACIO(d);
    OldWorldMacIOState *os = OLDWORLD_MACIO(d);
    SysBusDevice *sysbus_dev;
    int ret = macio_common_initfn(d);
    if (ret < 0) {
        return ret;
    }

    sysbus_dev = SYS_BUS_DEVICE(&s->cuda);
    sysbus_connect_irq(sysbus_dev, 0, os->irqs[0]);

    ret = qdev_init(DEVICE(&os->nvram));
    if (ret < 0) {
        return ret;
    }
    sysbus_dev = SYS_BUS_DEVICE(&os->nvram);
    memory_region_add_subregion(&s->bar, 0x60000,
                                sysbus_mmio_get_region(sysbus_dev, 0));
    pmac_format_nvram_partition(&os->nvram, os->nvram.size);

    if (s->pic_mem) {
        /* Heathrow PIC */
        memory_region_add_subregion(&s->bar, 0x00000, s->pic_mem);
    }

    sysbus_dev = SYS_BUS_DEVICE(&os->ide);
    sysbus_connect_irq(sysbus_dev, 0, os->irqs[1]);
    sysbus_connect_irq(sysbus_dev, 1, os->irqs[2]);
    macio_ide_register_dma(&os->ide, s->dbdma, 0x16);
    ret = qdev_init(DEVICE(&os->ide));
    if (ret < 0) {
        return ret;
    }

    return 0;
}