Commit 4b48bf05 authored by Blue Swirl's avatar Blue Swirl
Browse files

Sparc32: move device instantiation to sun4m.c



Signed-off-by: default avatarBlue Swirl <blauwirbel@gmail.com>
parent 7204ff9c
Loading
Loading
Loading
Loading
+0 −16
Original line number Diff line number Diff line
@@ -335,22 +335,6 @@ static void ecc_init1(SysBusDevice *dev)
    ecc_reset(s);
}

void ecc_init(target_phys_addr_t base, qemu_irq irq, uint32_t version)
{
    DeviceState *dev;
    SysBusDevice *s;

    dev = qdev_create(NULL, "eccmemctl");
    qdev_prop_set_uint32(dev, "version", version);
    qdev_init(dev);
    s = sysbus_from_qdev(dev);
    sysbus_connect_irq(s, 0, irq);
    sysbus_mmio_map(s, 0, base);
    if (version == ECC_MCC) { // SS-600MP only
        sysbus_mmio_map(s, 1, base + 0x1000);
    }
}

static SysBusDeviceInfo ecc_info = {
    .init = ecc_init1,
    .qdev.name  = "eccmemctl",
+0 −18
Original line number Diff line number Diff line
@@ -366,24 +366,6 @@ static void iommu_reset(void *opaque)
    s->regs[IOMMU_MASK_ID] = IOMMU_TS_MASK;
}

void *iommu_init(target_phys_addr_t addr, uint32_t version, qemu_irq irq)
{
    DeviceState *dev;
    SysBusDevice *s;
    IOMMUState *d;

    dev = qdev_create(NULL, "iommu");
    qdev_prop_set_uint32(dev, "version", version);
    qdev_init(dev);
    s = sysbus_from_qdev(dev);
    sysbus_connect_irq(s, 0, irq);
    sysbus_mmio_map(s, 0, addr);

    d = FROM_SYSBUS(IOMMUState, s);

    return d;
}

static void iommu_init1(SysBusDevice *dev)
{
    IOMMUState *s = FROM_SYSBUS(IOMMUState, dev);
+0 −20
Original line number Diff line number Diff line
@@ -131,26 +131,6 @@ static void sbi_reset(void *opaque)
    }
}

DeviceState *sbi_init(target_phys_addr_t addr, qemu_irq **parent_irq)
{
    DeviceState *dev;
    SysBusDevice *s;
    unsigned int i;

    dev = qdev_create(NULL, "sbi");
    qdev_init(dev);

    s = sysbus_from_qdev(dev);

    for (i = 0; i < MAX_CPUS; i++) {
        sysbus_connect_irq(s, i, *parent_irq[i]);
    }

    sysbus_mmio_map(s, 0, addr);

    return dev;
}

static void sbi_init1(SysBusDevice *dev)
{
    SBIState *s = FROM_SYSBUS(SBIState, dev);
+0 −29
Original line number Diff line number Diff line
@@ -416,35 +416,6 @@ static void slavio_intctl_init1(SysBusDevice *dev)
    slavio_intctl_reset(s);
}

DeviceState *slavio_intctl_init(target_phys_addr_t addr,
                                target_phys_addr_t addrg,
                                const uint32_t *intbit_to_level,
                                qemu_irq **parent_irq, unsigned int cputimer)
{
    DeviceState *dev;
    SysBusDevice *s;
    unsigned int i, j;

    dev = qdev_create(NULL, "slavio_intctl");
    qdev_prop_set_ptr(dev, "intbit_to_level", (void *)intbit_to_level);
    qdev_prop_set_uint32(dev, "cputimer_bit", cputimer);
    qdev_init(dev);

    s = sysbus_from_qdev(dev);

    for (i = 0; i < MAX_CPUS; i++) {
        for (j = 0; j < MAX_PILS; j++) {
            sysbus_connect_irq(s, i * MAX_PILS + j, parent_irq[i][j]);
        }
    }
    sysbus_mmio_map(s, 0, addrg);
    for (i = 0; i < MAX_CPUS; i++) {
        sysbus_mmio_map(s, i + 1, addr + i * TARGET_PAGE_SIZE);
    }

    return dev;
}

static SysBusDeviceInfo slavio_intctl_info = {
    .init = slavio_intctl_init1,
    .qdev.name  = "slavio_intctl",
+0 −62
Original line number Diff line number Diff line
@@ -63,12 +63,6 @@ typedef struct APCState {
#define MISC_SIZE 1
#define SYSCTRL_SIZE 4

#define MISC_LEDS 0x01600000
#define MISC_CFG  0x01800000
#define MISC_DIAG 0x01a00000
#define MISC_MDM  0x01b00000
#define MISC_SYS  0x01f00000

#define AUX1_TC        0x02

#define AUX2_PWROFF    0x01
@@ -440,49 +434,6 @@ static int slavio_misc_load(QEMUFile *f, void *opaque, int version_id)
    return 0;
}

void *slavio_misc_init(target_phys_addr_t base,
                       target_phys_addr_t aux1_base,
                       target_phys_addr_t aux2_base, qemu_irq irq,
                       qemu_irq fdc_tc)
{
    DeviceState *dev;
    SysBusDevice *s;
    MiscState *d;

    dev = qdev_create(NULL, "slavio_misc");
    qdev_init(dev);
    s = sysbus_from_qdev(dev);
    if (base) {
        /* 8 bit registers */
        /* Slavio control */
        sysbus_mmio_map(s, 0, base + MISC_CFG);
        /* Diagnostics */
        sysbus_mmio_map(s, 1, base + MISC_DIAG);
        /* Modem control */
        sysbus_mmio_map(s, 2, base + MISC_MDM);
        /* 16 bit registers */
        /* ss600mp diag LEDs */
        sysbus_mmio_map(s, 3, base + MISC_LEDS);
        /* 32 bit registers */
        /* System control */
        sysbus_mmio_map(s, 4, base + MISC_SYS);
    }
    if (aux1_base) {
        /* AUX 1 (Misc System Functions) */
        sysbus_mmio_map(s, 5, aux1_base);
    }
    if (aux2_base) {
        /* AUX 2 (Software Powerdown Control) */
        sysbus_mmio_map(s, 6, aux2_base);
    }
    sysbus_connect_irq(s, 0, irq);
    sysbus_connect_irq(s, 1, fdc_tc);

    d = FROM_SYSBUS(MiscState, s);

    return d;
}

static void apc_init1(SysBusDevice *dev)
{
    APCState *s = FROM_SYSBUS(APCState, dev);
@@ -495,19 +446,6 @@ static void apc_init1(SysBusDevice *dev)
    sysbus_init_mmio(dev, MISC_SIZE, io);
}

void apc_init(target_phys_addr_t power_base, qemu_irq cpu_halt)
{
    DeviceState *dev;
    SysBusDevice *s;

    dev = qdev_create(NULL, "apc");
    qdev_init(dev);
    s = sysbus_from_qdev(dev);
    /* Power management (APC) XXX: not a Slavio device */
    sysbus_mmio_map(s, 0, power_base);
    sysbus_connect_irq(s, 0, cpu_halt);
}

static void slavio_misc_init1(SysBusDevice *dev)
{
    MiscState *s = FROM_SYSBUS(MiscState, dev);
Loading