Commit db873cc5 authored by Markus Armbruster's avatar Markus Armbruster
Browse files

sysbus: Convert qdev_set_parent_bus() use with Coccinelle, part 2



This is the same transformation as in the previous commit, except
sysbus_init_child_obj() and realize are too separated for the commit's
Coccinelle script to handle, typically because sysbus_init_child_obj()
is in a device's instance_init() method, and the matching realize is
in its realize() method.

Perhaps a Coccinelle wizard could make it transform that pattern, but
I'm just a bungler, and the best I can do is transforming the two
separate parts separately:

    @@
    expression errp;
    expression child;
    symbol true;
    @@
    -    object_property_set_bool(OBJECT(child), true, "realized", errp);
    +    sysbus_realize(SYS_BUS_DEVICE(child), errp);
    // only correct with a matching sysbus_init_child_obj() transformation!

    @@
    expression errp;
    expression child;
    symbol true;
    @@
    -    object_property_set_bool(child, true, "realized", errp);
    +    sysbus_realize(SYS_BUS_DEVICE(child), errp);
    // only correct with a matching sysbus_init_child_obj() transformation!

    @@
    expression child;
    @@
    -    qdev_init_nofail(DEVICE(child));
    +    sysbus_realize(SYS_BUS_DEVICE(child), &error_fatal);
    // only correct with a matching sysbus_init_child_obj() transformation!

    @@
    expression child;
    expression dev;
    @@
         dev = DEVICE(child);
         ...
    -    qdev_init_nofail(dev);
    +    sysbus_realize(SYS_BUS_DEVICE(dev), &error_fatal);
    // only correct with a matching sysbus_init_child_obj() transformation!

    @@
    expression child;
    identifier dev;
    @@
         DeviceState *dev = DEVICE(child);
         ...
    -    qdev_init_nofail(dev);
    +    sysbus_realize(SYS_BUS_DEVICE(dev), &error_fatal);
    // only correct with a matching sysbus_init_child_obj() transformation!

    @@
    expression parent, name, size, type;
    expression child;
    symbol true;
    @@
    -    sysbus_init_child_obj(parent, name, child, size, type);
    +    sysbus_init_child_XXX(parent, name, child, size, type);

    @@
    expression parent, propname, type;
    expression child;
    @@
    -    sysbus_init_child_XXX(parent, propname, child, sizeof(*child), type)
    +    object_initialize_child(parent, propname, child, type)

    @@
    expression parent, propname, type;
    expression child;
    @@
    -    sysbus_init_child_XXX(parent, propname, &child, sizeof(child), type)
    +    object_initialize_child(parent, propname, &child, type)

This script is *unsound*: we need to manually verify init and realize
conversions are properly paired.

This commit has only the pairs where object_initialize_child()'s
@child and sysbus_realize()'s @dev argument text match exactly within
the same source file.

Note that Coccinelle chokes on ARMSSE typedef vs. macro in
hw/arm/armsse.c.  Worked around by temporarily renaming the macro for
the spatch run.

Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
Acked-by: default avatarAlistair Francis <alistair.francis@wdc.com>
Reviewed-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
Message-Id: <20200610053247.1583243-49-armbru@redhat.com>
parent 0074fce6
Loading
Loading
Loading
Loading
+18 −25
Original line number Diff line number Diff line
@@ -44,33 +44,28 @@ static void aw_a10_init(Object *obj)
    object_initialize_child(obj, "cpu", &s->cpu,
                            ARM_CPU_TYPE_NAME("cortex-a8"));

    sysbus_init_child_obj(obj, "intc", &s->intc, sizeof(s->intc),
                          TYPE_AW_A10_PIC);
    object_initialize_child(obj, "intc", &s->intc, TYPE_AW_A10_PIC);

    sysbus_init_child_obj(obj, "timer", &s->timer, sizeof(s->timer),
                          TYPE_AW_A10_PIT);
    object_initialize_child(obj, "timer", &s->timer, TYPE_AW_A10_PIT);

    sysbus_init_child_obj(obj, "emac", &s->emac, sizeof(s->emac), TYPE_AW_EMAC);
    object_initialize_child(obj, "emac", &s->emac, TYPE_AW_EMAC);

    sysbus_init_child_obj(obj, "sata", &s->sata, sizeof(s->sata),
                          TYPE_ALLWINNER_AHCI);
    object_initialize_child(obj, "sata", &s->sata, TYPE_ALLWINNER_AHCI);

    if (machine_usb(current_machine)) {
        int i;

        for (i = 0; i < AW_A10_NUM_USB; i++) {
            sysbus_init_child_obj(obj, "ehci[*]", &s->ehci[i],
                                  sizeof(s->ehci[i]), TYPE_PLATFORM_EHCI);
            sysbus_init_child_obj(obj, "ohci[*]", &s->ohci[i],
                                  sizeof(s->ohci[i]), TYPE_SYSBUS_OHCI);
            object_initialize_child(obj, "ehci[*]", &s->ehci[i],
                                    TYPE_PLATFORM_EHCI);
            object_initialize_child(obj, "ohci[*]", &s->ohci[i],
                                    TYPE_SYSBUS_OHCI);
        }
    }

    sysbus_init_child_obj(obj, "mmc0", &s->mmc0, sizeof(s->mmc0),
                          TYPE_AW_SDHOST_SUN4I);
    object_initialize_child(obj, "mmc0", &s->mmc0, TYPE_AW_SDHOST_SUN4I);

    sysbus_init_child_obj(obj, "rtc", &s->rtc, sizeof(s->rtc),
                          TYPE_AW_RTC_SUN4I);
    object_initialize_child(obj, "rtc", &s->rtc, TYPE_AW_RTC_SUN4I);
}

static void aw_a10_realize(DeviceState *dev, Error **errp)
@@ -85,7 +80,7 @@ static void aw_a10_realize(DeviceState *dev, Error **errp)
        return;
    }

    object_property_set_bool(OBJECT(&s->intc), true, "realized", &err);
    sysbus_realize(SYS_BUS_DEVICE(&s->intc), &err);
    if (err != NULL) {
        error_propagate(errp, err);
        return;
@@ -98,7 +93,7 @@ static void aw_a10_realize(DeviceState *dev, Error **errp)
                       qdev_get_gpio_in(DEVICE(&s->cpu), ARM_CPU_FIQ));
    qdev_pass_gpios(DEVICE(&s->intc), dev, NULL);

    object_property_set_bool(OBJECT(&s->timer), true, "realized", &err);
    sysbus_realize(SYS_BUS_DEVICE(&s->timer), &err);
    if (err != NULL) {
        error_propagate(errp, err);
        return;
@@ -122,7 +117,7 @@ static void aw_a10_realize(DeviceState *dev, Error **errp)
        qemu_check_nic_model(&nd_table[0], TYPE_AW_EMAC);
        qdev_set_nic_properties(DEVICE(&s->emac), &nd_table[0]);
    }
    object_property_set_bool(OBJECT(&s->emac), true, "realized", &err);
    sysbus_realize(SYS_BUS_DEVICE(&s->emac), &err);
    if (err != NULL) {
        error_propagate(errp, err);
        return;
@@ -131,7 +126,7 @@ static void aw_a10_realize(DeviceState *dev, Error **errp)
    sysbus_mmio_map(sysbusdev, 0, AW_A10_EMAC_BASE);
    sysbus_connect_irq(sysbusdev, 0, qdev_get_gpio_in(dev, 55));

    object_property_set_bool(OBJECT(&s->sata), true, "realized", &err);
    sysbus_realize(SYS_BUS_DEVICE(&s->sata), &err);
    if (err) {
        error_propagate(errp, err);
        return;
@@ -154,8 +149,7 @@ static void aw_a10_realize(DeviceState *dev, Error **errp)

            object_property_set_bool(OBJECT(&s->ehci[i]), true,
                                     "companion-enable", &error_fatal);
            object_property_set_bool(OBJECT(&s->ehci[i]), true, "realized",
                                     &error_fatal);
            sysbus_realize(SYS_BUS_DEVICE(&s->ehci[i]), &error_fatal);
            sysbus_mmio_map(SYS_BUS_DEVICE(&s->ehci[i]), 0,
                            AW_A10_EHCI_BASE + i * 0x8000);
            sysbus_connect_irq(SYS_BUS_DEVICE(&s->ehci[i]), 0,
@@ -163,8 +157,7 @@ static void aw_a10_realize(DeviceState *dev, Error **errp)

            object_property_set_str(OBJECT(&s->ohci[i]), bus, "masterbus",
                                    &error_fatal);
            object_property_set_bool(OBJECT(&s->ohci[i]), true, "realized",
                                     &error_fatal);
            sysbus_realize(SYS_BUS_DEVICE(&s->ohci[i]), &error_fatal);
            sysbus_mmio_map(SYS_BUS_DEVICE(&s->ohci[i]), 0,
                            AW_A10_OHCI_BASE + i * 0x8000);
            sysbus_connect_irq(SYS_BUS_DEVICE(&s->ohci[i]), 0,
@@ -173,14 +166,14 @@ static void aw_a10_realize(DeviceState *dev, Error **errp)
    }

    /* SD/MMC */
    qdev_init_nofail(DEVICE(&s->mmc0));
    sysbus_realize(SYS_BUS_DEVICE(&s->mmc0), &error_fatal);
    sysbus_mmio_map(SYS_BUS_DEVICE(&s->mmc0), 0, AW_A10_MMC0_BASE);
    sysbus_connect_irq(SYS_BUS_DEVICE(&s->mmc0), 0, qdev_get_gpio_in(dev, 32));
    object_property_add_alias(OBJECT(s), "sd-bus", OBJECT(&s->mmc0),
                              "sd-bus");

    /* RTC */
    qdev_init_nofail(DEVICE(&s->rtc));
    sysbus_realize(SYS_BUS_DEVICE(&s->rtc), &error_fatal);
    sysbus_mmio_map_overlap(SYS_BUS_DEVICE(&s->rtc), 0, AW_A10_RTC_BASE, 10);
}

+20 −30
Original line number Diff line number Diff line
@@ -198,45 +198,35 @@ static void allwinner_h3_init(Object *obj)
                                ARM_CPU_TYPE_NAME("cortex-a7"));
    }

    sysbus_init_child_obj(obj, "gic", &s->gic, sizeof(s->gic),
                          TYPE_ARM_GIC);
    object_initialize_child(obj, "gic", &s->gic, TYPE_ARM_GIC);

    sysbus_init_child_obj(obj, "timer", &s->timer, sizeof(s->timer),
                          TYPE_AW_A10_PIT);
    object_initialize_child(obj, "timer", &s->timer, TYPE_AW_A10_PIT);
    object_property_add_alias(obj, "clk0-freq", OBJECT(&s->timer),
                              "clk0-freq");
    object_property_add_alias(obj, "clk1-freq", OBJECT(&s->timer),
                              "clk1-freq");

    sysbus_init_child_obj(obj, "ccu", &s->ccu, sizeof(s->ccu),
                          TYPE_AW_H3_CCU);
    object_initialize_child(obj, "ccu", &s->ccu, TYPE_AW_H3_CCU);

    sysbus_init_child_obj(obj, "sysctrl", &s->sysctrl, sizeof(s->sysctrl),
                          TYPE_AW_H3_SYSCTRL);
    object_initialize_child(obj, "sysctrl", &s->sysctrl, TYPE_AW_H3_SYSCTRL);

    sysbus_init_child_obj(obj, "cpucfg", &s->cpucfg, sizeof(s->cpucfg),
                          TYPE_AW_CPUCFG);
    object_initialize_child(obj, "cpucfg", &s->cpucfg, TYPE_AW_CPUCFG);

    sysbus_init_child_obj(obj, "sid", &s->sid, sizeof(s->sid),
                          TYPE_AW_SID);
    object_initialize_child(obj, "sid", &s->sid, TYPE_AW_SID);
    object_property_add_alias(obj, "identifier", OBJECT(&s->sid),
                              "identifier");

    sysbus_init_child_obj(obj, "mmc0", &s->mmc0, sizeof(s->mmc0),
                          TYPE_AW_SDHOST_SUN5I);
    object_initialize_child(obj, "mmc0", &s->mmc0, TYPE_AW_SDHOST_SUN5I);

    sysbus_init_child_obj(obj, "emac", &s->emac, sizeof(s->emac),
                          TYPE_AW_SUN8I_EMAC);
    object_initialize_child(obj, "emac", &s->emac, TYPE_AW_SUN8I_EMAC);

    sysbus_init_child_obj(obj, "dramc", &s->dramc, sizeof(s->dramc),
                          TYPE_AW_H3_DRAMC);
    object_initialize_child(obj, "dramc", &s->dramc, TYPE_AW_H3_DRAMC);
    object_property_add_alias(obj, "ram-addr", OBJECT(&s->dramc),
                             "ram-addr");
    object_property_add_alias(obj, "ram-size", OBJECT(&s->dramc),
                              "ram-size");

    sysbus_init_child_obj(obj, "rtc", &s->rtc, sizeof(s->rtc),
                          TYPE_AW_RTC_SUN6I);
    object_initialize_child(obj, "rtc", &s->rtc, TYPE_AW_RTC_SUN6I);
}

static void allwinner_h3_realize(DeviceState *dev, Error **errp)
@@ -270,7 +260,7 @@ static void allwinner_h3_realize(DeviceState *dev, Error **errp)
    qdev_prop_set_uint32(DEVICE(&s->gic), "num-cpu", AW_H3_NUM_CPUS);
    qdev_prop_set_bit(DEVICE(&s->gic), "has-security-extensions", false);
    qdev_prop_set_bit(DEVICE(&s->gic), "has-virtualization-extensions", true);
    qdev_init_nofail(DEVICE(&s->gic));
    sysbus_realize(SYS_BUS_DEVICE(&s->gic), &error_fatal);

    sysbus_mmio_map(SYS_BUS_DEVICE(&s->gic), 0, s->memmap[AW_H3_GIC_DIST]);
    sysbus_mmio_map(SYS_BUS_DEVICE(&s->gic), 1, s->memmap[AW_H3_GIC_CPU]);
@@ -321,7 +311,7 @@ static void allwinner_h3_realize(DeviceState *dev, Error **errp)
    }

    /* Timer */
    qdev_init_nofail(DEVICE(&s->timer));
    sysbus_realize(SYS_BUS_DEVICE(&s->timer), &error_fatal);
    sysbus_mmio_map(SYS_BUS_DEVICE(&s->timer), 0, s->memmap[AW_H3_PIT]);
    sysbus_connect_irq(SYS_BUS_DEVICE(&s->timer), 0,
                       qdev_get_gpio_in(DEVICE(&s->gic), AW_H3_GIC_SPI_TIMER0));
@@ -343,23 +333,23 @@ static void allwinner_h3_realize(DeviceState *dev, Error **errp)
                                &s->sram_c);

    /* Clock Control Unit */
    qdev_init_nofail(DEVICE(&s->ccu));
    sysbus_realize(SYS_BUS_DEVICE(&s->ccu), &error_fatal);
    sysbus_mmio_map(SYS_BUS_DEVICE(&s->ccu), 0, s->memmap[AW_H3_CCU]);

    /* System Control */
    qdev_init_nofail(DEVICE(&s->sysctrl));
    sysbus_realize(SYS_BUS_DEVICE(&s->sysctrl), &error_fatal);
    sysbus_mmio_map(SYS_BUS_DEVICE(&s->sysctrl), 0, s->memmap[AW_H3_SYSCTRL]);

    /* CPU Configuration */
    qdev_init_nofail(DEVICE(&s->cpucfg));
    sysbus_realize(SYS_BUS_DEVICE(&s->cpucfg), &error_fatal);
    sysbus_mmio_map(SYS_BUS_DEVICE(&s->cpucfg), 0, s->memmap[AW_H3_CPUCFG]);

    /* Security Identifier */
    qdev_init_nofail(DEVICE(&s->sid));
    sysbus_realize(SYS_BUS_DEVICE(&s->sid), &error_fatal);
    sysbus_mmio_map(SYS_BUS_DEVICE(&s->sid), 0, s->memmap[AW_H3_SID]);

    /* SD/MMC */
    qdev_init_nofail(DEVICE(&s->mmc0));
    sysbus_realize(SYS_BUS_DEVICE(&s->mmc0), &error_fatal);
    sysbus_mmio_map(SYS_BUS_DEVICE(&s->mmc0), 0, s->memmap[AW_H3_MMC0]);
    sysbus_connect_irq(SYS_BUS_DEVICE(&s->mmc0), 0,
                       qdev_get_gpio_in(DEVICE(&s->gic), AW_H3_GIC_SPI_MMC0));
@@ -372,7 +362,7 @@ static void allwinner_h3_realize(DeviceState *dev, Error **errp)
        qemu_check_nic_model(&nd_table[0], TYPE_AW_SUN8I_EMAC);
        qdev_set_nic_properties(DEVICE(&s->emac), &nd_table[0]);
    }
    qdev_init_nofail(DEVICE(&s->emac));
    sysbus_realize(SYS_BUS_DEVICE(&s->emac), &error_fatal);
    sysbus_mmio_map(SYS_BUS_DEVICE(&s->emac), 0, s->memmap[AW_H3_EMAC]);
    sysbus_connect_irq(SYS_BUS_DEVICE(&s->emac), 0,
                       qdev_get_gpio_in(DEVICE(&s->gic), AW_H3_GIC_SPI_EMAC));
@@ -422,13 +412,13 @@ static void allwinner_h3_realize(DeviceState *dev, Error **errp)
                   115200, serial_hd(3), DEVICE_NATIVE_ENDIAN);

    /* DRAMC */
    qdev_init_nofail(DEVICE(&s->dramc));
    sysbus_realize(SYS_BUS_DEVICE(&s->dramc), &error_fatal);
    sysbus_mmio_map(SYS_BUS_DEVICE(&s->dramc), 0, s->memmap[AW_H3_DRAMCOM]);
    sysbus_mmio_map(SYS_BUS_DEVICE(&s->dramc), 1, s->memmap[AW_H3_DRAMCTL]);
    sysbus_mmio_map(SYS_BUS_DEVICE(&s->dramc), 2, s->memmap[AW_H3_DRAMPHY]);

    /* RTC */
    qdev_init_nofail(DEVICE(&s->rtc));
    sysbus_realize(SYS_BUS_DEVICE(&s->rtc), &error_fatal);
    sysbus_mmio_map(SYS_BUS_DEVICE(&s->rtc), 0, s->memmap[AW_H3_RTC]);

    /* Unimplemented devices */
+42 −54
Original line number Diff line number Diff line
@@ -273,16 +273,12 @@ static void armsse_init(Object *obj)
        }
    }

    sysbus_init_child_obj(obj, "secctl", &s->secctl, sizeof(s->secctl),
                          TYPE_IOTKIT_SECCTL);
    sysbus_init_child_obj(obj, "apb-ppc0", &s->apb_ppc0, sizeof(s->apb_ppc0),
                          TYPE_TZ_PPC);
    sysbus_init_child_obj(obj, "apb-ppc1", &s->apb_ppc1, sizeof(s->apb_ppc1),
                          TYPE_TZ_PPC);
    object_initialize_child(obj, "secctl", &s->secctl, TYPE_IOTKIT_SECCTL);
    object_initialize_child(obj, "apb-ppc0", &s->apb_ppc0, TYPE_TZ_PPC);
    object_initialize_child(obj, "apb-ppc1", &s->apb_ppc1, TYPE_TZ_PPC);
    for (i = 0; i < info->sram_banks; i++) {
        char *name = g_strdup_printf("mpc%d", i);
        sysbus_init_child_obj(obj, name, &s->mpc[i],
                              sizeof(s->mpc[i]), TYPE_TZ_MPC);
        object_initialize_child(obj, name, &s->mpc[i], TYPE_TZ_MPC);
        g_free(name);
    }
    object_initialize_child(obj, "mpc-irq-orgate", &s->mpc_irq_orgate,
@@ -295,24 +291,22 @@ static void armsse_init(Object *obj)
        object_initialize_child(obj, name, splitter, TYPE_SPLIT_IRQ);
        g_free(name);
    }
    sysbus_init_child_obj(obj, "timer0", &s->timer0, sizeof(s->timer0),
    object_initialize_child(obj, "timer0", &s->timer0, TYPE_CMSDK_APB_TIMER);
    object_initialize_child(obj, "timer1", &s->timer1, TYPE_CMSDK_APB_TIMER);
    object_initialize_child(obj, "s32ktimer", &s->s32ktimer,
                            TYPE_CMSDK_APB_TIMER);
    sysbus_init_child_obj(obj, "timer1", &s->timer1, sizeof(s->timer1),
                          TYPE_CMSDK_APB_TIMER);
    sysbus_init_child_obj(obj, "s32ktimer", &s->s32ktimer, sizeof(s->s32ktimer),
                          TYPE_CMSDK_APB_TIMER);
    sysbus_init_child_obj(obj, "dualtimer", &s->dualtimer, sizeof(s->dualtimer),
    object_initialize_child(obj, "dualtimer", &s->dualtimer,
                            TYPE_CMSDK_APB_DUALTIMER);
    sysbus_init_child_obj(obj, "s32kwatchdog", &s->s32kwatchdog,
                          sizeof(s->s32kwatchdog), TYPE_CMSDK_APB_WATCHDOG);
    sysbus_init_child_obj(obj, "nswatchdog", &s->nswatchdog,
                          sizeof(s->nswatchdog), TYPE_CMSDK_APB_WATCHDOG);
    sysbus_init_child_obj(obj, "swatchdog", &s->swatchdog,
                          sizeof(s->swatchdog), TYPE_CMSDK_APB_WATCHDOG);
    sysbus_init_child_obj(obj, "armsse-sysctl", &s->sysctl,
                          sizeof(s->sysctl), TYPE_IOTKIT_SYSCTL);
    sysbus_init_child_obj(obj, "armsse-sysinfo", &s->sysinfo,
                          sizeof(s->sysinfo), TYPE_IOTKIT_SYSINFO);
    object_initialize_child(obj, "s32kwatchdog", &s->s32kwatchdog,
                            TYPE_CMSDK_APB_WATCHDOG);
    object_initialize_child(obj, "nswatchdog", &s->nswatchdog,
                            TYPE_CMSDK_APB_WATCHDOG);
    object_initialize_child(obj, "swatchdog", &s->swatchdog,
                            TYPE_CMSDK_APB_WATCHDOG);
    object_initialize_child(obj, "armsse-sysctl", &s->sysctl,
                            TYPE_IOTKIT_SYSCTL);
    object_initialize_child(obj, "armsse-sysinfo", &s->sysinfo,
                            TYPE_IOTKIT_SYSINFO);
    if (info->has_mhus) {
        sysbus_init_child_obj(obj, "mhu0", &s->mhu[0], sizeof(s->mhu[0]),
                              TYPE_ARMSSE_MHU);
@@ -346,8 +340,7 @@ static void armsse_init(Object *obj)
        for (i = 0; i < info->num_cpus; i++) {
            char *name = g_strdup_printf("cachectrl%d", i);

            sysbus_init_child_obj(obj, name, &s->cachectrl[i],
                                  sizeof(s->cachectrl[i]),
            object_initialize_child(obj, name, &s->cachectrl[i],
                                    TYPE_UNIMPLEMENTED_DEVICE);
            g_free(name);
        }
@@ -356,8 +349,7 @@ static void armsse_init(Object *obj)
        for (i = 0; i < info->num_cpus; i++) {
            char *name = g_strdup_printf("cpusecctrl%d", i);

            sysbus_init_child_obj(obj, name, &s->cpusecctrl[i],
                                  sizeof(s->cpusecctrl[i]),
            object_initialize_child(obj, name, &s->cpusecctrl[i],
                                    TYPE_UNIMPLEMENTED_DEVICE);
            g_free(name);
        }
@@ -366,8 +358,7 @@ static void armsse_init(Object *obj)
        for (i = 0; i < info->num_cpus; i++) {
            char *name = g_strdup_printf("cpuid%d", i);

            sysbus_init_child_obj(obj, name, &s->cpuid[i],
                                  sizeof(s->cpuid[i]),
            object_initialize_child(obj, name, &s->cpuid[i],
                                    TYPE_ARMSSE_CPUID);
            g_free(name);
        }
@@ -669,7 +660,7 @@ static void armsse_realize(DeviceState *dev, Error **errp)
    }

    /* Security controller */
    object_property_set_bool(OBJECT(&s->secctl), true, "realized", &err);
    sysbus_realize(SYS_BUS_DEVICE(&s->secctl), &err);
    if (err) {
        error_propagate(errp, err);
        return;
@@ -721,7 +712,7 @@ static void armsse_realize(DeviceState *dev, Error **errp)
            error_propagate(errp, err);
            return;
        }
        object_property_set_bool(OBJECT(&s->mpc[i]), true, "realized", &err);
        sysbus_realize(SYS_BUS_DEVICE(&s->mpc[i]), &err);
        if (err) {
            error_propagate(errp, err);
            return;
@@ -764,7 +755,7 @@ static void armsse_realize(DeviceState *dev, Error **errp)
     * map its upstream ends to the right place in the container.
     */
    qdev_prop_set_uint32(DEVICE(&s->timer0), "pclk-frq", s->mainclk_frq);
    object_property_set_bool(OBJECT(&s->timer0), true, "realized", &err);
    sysbus_realize(SYS_BUS_DEVICE(&s->timer0), &err);
    if (err) {
        error_propagate(errp, err);
        return;
@@ -779,7 +770,7 @@ static void armsse_realize(DeviceState *dev, Error **errp)
    }

    qdev_prop_set_uint32(DEVICE(&s->timer1), "pclk-frq", s->mainclk_frq);
    object_property_set_bool(OBJECT(&s->timer1), true, "realized", &err);
    sysbus_realize(SYS_BUS_DEVICE(&s->timer1), &err);
    if (err) {
        error_propagate(errp, err);
        return;
@@ -795,7 +786,7 @@ static void armsse_realize(DeviceState *dev, Error **errp)


    qdev_prop_set_uint32(DEVICE(&s->dualtimer), "pclk-frq", s->mainclk_frq);
    object_property_set_bool(OBJECT(&s->dualtimer), true, "realized", &err);
    sysbus_realize(SYS_BUS_DEVICE(&s->dualtimer), &err);
    if (err) {
        error_propagate(errp, err);
        return;
@@ -856,7 +847,7 @@ static void armsse_realize(DeviceState *dev, Error **errp)
        }
    }

    object_property_set_bool(OBJECT(&s->apb_ppc0), true, "realized", &err);
    sysbus_realize(SYS_BUS_DEVICE(&s->apb_ppc0), &err);
    if (err) {
        error_propagate(errp, err);
        return;
@@ -929,8 +920,7 @@ static void armsse_realize(DeviceState *dev, Error **errp)
            qdev_prop_set_string(DEVICE(&s->cachectrl[i]), "name", name);
            g_free(name);
            qdev_prop_set_uint64(DEVICE(&s->cachectrl[i]), "size", 0x1000);
            object_property_set_bool(OBJECT(&s->cachectrl[i]), true,
                                     "realized", &err);
            sysbus_realize(SYS_BUS_DEVICE(&s->cachectrl[i]), &err);
            if (err) {
                error_propagate(errp, err);
                return;
@@ -948,8 +938,7 @@ static void armsse_realize(DeviceState *dev, Error **errp)
            qdev_prop_set_string(DEVICE(&s->cpusecctrl[i]), "name", name);
            g_free(name);
            qdev_prop_set_uint64(DEVICE(&s->cpusecctrl[i]), "size", 0x1000);
            object_property_set_bool(OBJECT(&s->cpusecctrl[i]), true,
                                     "realized", &err);
            sysbus_realize(SYS_BUS_DEVICE(&s->cpusecctrl[i]), &err);
            if (err) {
                error_propagate(errp, err);
                return;
@@ -964,8 +953,7 @@ static void armsse_realize(DeviceState *dev, Error **errp)
            MemoryRegion *mr;

            qdev_prop_set_uint32(DEVICE(&s->cpuid[i]), "CPUID", i);
            object_property_set_bool(OBJECT(&s->cpuid[i]), true,
                                     "realized", &err);
            sysbus_realize(SYS_BUS_DEVICE(&s->cpuid[i]), &err);
            if (err) {
                error_propagate(errp, err);
                return;
@@ -981,7 +969,7 @@ static void armsse_realize(DeviceState *dev, Error **errp)
     *   0x4002f000: S32K timer
     */
    qdev_prop_set_uint32(DEVICE(&s->s32ktimer), "pclk-frq", S32KCLK);
    object_property_set_bool(OBJECT(&s->s32ktimer), true, "realized", &err);
    sysbus_realize(SYS_BUS_DEVICE(&s->s32ktimer), &err);
    if (err) {
        error_propagate(errp, err);
        return;
@@ -995,7 +983,7 @@ static void armsse_realize(DeviceState *dev, Error **errp)
        return;
    }

    object_property_set_bool(OBJECT(&s->apb_ppc1), true, "realized", &err);
    sysbus_realize(SYS_BUS_DEVICE(&s->apb_ppc1), &err);
    if (err) {
        error_propagate(errp, err);
        return;
@@ -1033,7 +1021,7 @@ static void armsse_realize(DeviceState *dev, Error **errp)
        error_propagate(errp, err);
        return;
    }
    object_property_set_bool(OBJECT(&s->sysinfo), true, "realized", &err);
    sysbus_realize(SYS_BUS_DEVICE(&s->sysinfo), &err);
    if (err) {
        error_propagate(errp, err);
        return;
@@ -1049,7 +1037,7 @@ static void armsse_realize(DeviceState *dev, Error **errp)
                            "INITSVTOR0_RST", &err);
    object_property_set_int(OBJECT(&s->sysctl), s->init_svtor,
                            "INITSVTOR1_RST", &err);
    object_property_set_bool(OBJECT(&s->sysctl), true, "realized", &err);
    sysbus_realize(SYS_BUS_DEVICE(&s->sysctl), &err);
    if (err) {
        error_propagate(errp, err);
        return;
@@ -1093,7 +1081,7 @@ static void armsse_realize(DeviceState *dev, Error **errp)
                          qdev_get_gpio_in_named(DEVICE(&s->armv7m), "NMI", 0));

    qdev_prop_set_uint32(DEVICE(&s->s32kwatchdog), "wdogclk-frq", S32KCLK);
    object_property_set_bool(OBJECT(&s->s32kwatchdog), true, "realized", &err);
    sysbus_realize(SYS_BUS_DEVICE(&s->s32kwatchdog), &err);
    if (err) {
        error_propagate(errp, err);
        return;
@@ -1105,7 +1093,7 @@ static void armsse_realize(DeviceState *dev, Error **errp)
    /* 0x40080000 .. 0x4008ffff : ARMSSE second Base peripheral region */

    qdev_prop_set_uint32(DEVICE(&s->nswatchdog), "wdogclk-frq", s->mainclk_frq);
    object_property_set_bool(OBJECT(&s->nswatchdog), true, "realized", &err);
    sysbus_realize(SYS_BUS_DEVICE(&s->nswatchdog), &err);
    if (err) {
        error_propagate(errp, err);
        return;
@@ -1115,7 +1103,7 @@ static void armsse_realize(DeviceState *dev, Error **errp)
    sysbus_mmio_map(SYS_BUS_DEVICE(&s->nswatchdog), 0, 0x40081000);

    qdev_prop_set_uint32(DEVICE(&s->swatchdog), "wdogclk-frq", s->mainclk_frq);
    object_property_set_bool(OBJECT(&s->swatchdog), true, "realized", &err);
    sysbus_realize(SYS_BUS_DEVICE(&s->swatchdog), &err);
    if (err) {
        error_propagate(errp, err);
        return;
+2 −2
Original line number Diff line number Diff line
@@ -136,7 +136,7 @@ static void armv7m_instance_init(Object *obj)

    memory_region_init(&s->container, obj, "armv7m-container", UINT64_MAX);

    sysbus_init_child_obj(obj, "nvnic", &s->nvic, sizeof(s->nvic), TYPE_NVIC);
    object_initialize_child(obj, "nvnic", &s->nvic, TYPE_NVIC);
    object_property_add_alias(obj, "num-irq",
                              OBJECT(&s->nvic), "num-irq");

@@ -223,7 +223,7 @@ static void armv7m_realize(DeviceState *dev, Error **errp)
    }

    /* Note that we must realize the NVIC after the CPU */
    object_property_set_bool(OBJECT(&s->nvic), true, "realized", &err);
    sysbus_realize(SYS_BUS_DEVICE(&s->nvic), &err);
    if (err != NULL) {
        error_propagate(errp, err);
        return;
+39 −50

File changed.

Preview size limit exceeded, changes collapsed.

Loading