[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 2/5] aspeed: Initialize the watchdog device models before the
From: |
Cédric Le Goater |
Subject: |
[PATCH v2 2/5] aspeed: Initialize the watchdog device models before the FMC models |
Date: |
Mon, 18 Oct 2021 15:26:06 +0200 |
Next changes will map the WDT2 registers in the AST2600 FMC memory
region. Make sure the MemoryRegion pointers are correctly initialized
before setting the object links.
Do the same in the Aspeed AST2400 and AST2500 SoC models for
consistency.
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
hw/arm/aspeed_ast2600.c | 36 ++++++++++++++++++------------------
hw/arm/aspeed_soc.c | 36 ++++++++++++++++++------------------
2 files changed, 36 insertions(+), 36 deletions(-)
diff --git a/hw/arm/aspeed_ast2600.c b/hw/arm/aspeed_ast2600.c
index 0384357a9510..3a7aa910b157 100644
--- a/hw/arm/aspeed_ast2600.c
+++ b/hw/arm/aspeed_ast2600.c
@@ -148,6 +148,11 @@ static void aspeed_soc_ast2600_init(Object *obj)
snprintf(typename, sizeof(typename), "aspeed.timer-%s", socname);
object_initialize_child(obj, "timerctrl", &s->timerctrl, typename);
+ for (i = 0; i < sc->wdts_num; i++) {
+ snprintf(typename, sizeof(typename), "aspeed.wdt-%s", socname);
+ object_initialize_child(obj, "wdt[*]", &s->wdt[i], typename);
+ }
+
snprintf(typename, sizeof(typename), "aspeed.adc-%s", socname);
object_initialize_child(obj, "adc", &s->adc, typename);
@@ -175,11 +180,6 @@ static void aspeed_soc_ast2600_init(Object *obj)
object_property_add_alias(obj, "max-ram-size", OBJECT(&s->sdmc),
"max-ram-size");
- for (i = 0; i < sc->wdts_num; i++) {
- snprintf(typename, sizeof(typename), "aspeed.wdt-%s", socname);
- object_initialize_child(obj, "wdt[*]", &s->wdt[i], typename);
- }
-
for (i = 0; i < sc->macs_num; i++) {
object_initialize_child(obj, "ftgmac100[*]", &s->ftgmac100[i],
TYPE_FTGMAC100);
@@ -325,6 +325,19 @@ static void aspeed_soc_ast2600_realize(DeviceState *dev,
Error **errp)
sysbus_connect_irq(SYS_BUS_DEVICE(&s->timerctrl), i, irq);
}
+ /* Watch dog */
+ for (i = 0; i < sc->wdts_num; i++) {
+ AspeedWDTClass *awc = ASPEED_WDT_GET_CLASS(&s->wdt[i]);
+
+ object_property_set_link(OBJECT(&s->wdt[i]), "scu", OBJECT(&s->scu),
+ &error_abort);
+ if (!sysbus_realize(SYS_BUS_DEVICE(&s->wdt[i]), errp)) {
+ return;
+ }
+ sysbus_mmio_map(SYS_BUS_DEVICE(&s->wdt[i]), 0,
+ sc->memmap[ASPEED_DEV_WDT] + i * awc->offset);
+ }
+
/* ADC */
if (!sysbus_realize(SYS_BUS_DEVICE(&s->adc), errp)) {
return;
@@ -395,19 +408,6 @@ static void aspeed_soc_ast2600_realize(DeviceState *dev,
Error **errp)
}
sysbus_mmio_map(SYS_BUS_DEVICE(&s->sdmc), 0, sc->memmap[ASPEED_DEV_SDMC]);
- /* Watch dog */
- for (i = 0; i < sc->wdts_num; i++) {
- AspeedWDTClass *awc = ASPEED_WDT_GET_CLASS(&s->wdt[i]);
-
- object_property_set_link(OBJECT(&s->wdt[i]), "scu", OBJECT(&s->scu),
- &error_abort);
- if (!sysbus_realize(SYS_BUS_DEVICE(&s->wdt[i]), errp)) {
- return;
- }
- sysbus_mmio_map(SYS_BUS_DEVICE(&s->wdt[i]), 0,
- sc->memmap[ASPEED_DEV_WDT] + i * awc->offset);
- }
-
/* Net */
for (i = 0; i < sc->macs_num; i++) {
object_property_set_bool(OBJECT(&s->ftgmac100[i]), "aspeed", true,
diff --git a/hw/arm/aspeed_soc.c b/hw/arm/aspeed_soc.c
index 7d53cf2f5133..2eb30d14cf94 100644
--- a/hw/arm/aspeed_soc.c
+++ b/hw/arm/aspeed_soc.c
@@ -162,6 +162,11 @@ static void aspeed_soc_init(Object *obj)
snprintf(typename, sizeof(typename), "aspeed.timer-%s", socname);
object_initialize_child(obj, "timerctrl", &s->timerctrl, typename);
+ for (i = 0; i < sc->wdts_num; i++) {
+ snprintf(typename, sizeof(typename), "aspeed.wdt-%s", socname);
+ object_initialize_child(obj, "wdt[*]", &s->wdt[i], typename);
+ }
+
snprintf(typename, sizeof(typename), "aspeed.adc-%s", socname);
object_initialize_child(obj, "adc", &s->adc, typename);
@@ -189,11 +194,6 @@ static void aspeed_soc_init(Object *obj)
object_property_add_alias(obj, "max-ram-size", OBJECT(&s->sdmc),
"max-ram-size");
- for (i = 0; i < sc->wdts_num; i++) {
- snprintf(typename, sizeof(typename), "aspeed.wdt-%s", socname);
- object_initialize_child(obj, "wdt[*]", &s->wdt[i], typename);
- }
-
for (i = 0; i < sc->macs_num; i++) {
object_initialize_child(obj, "ftgmac100[*]", &s->ftgmac100[i],
TYPE_FTGMAC100);
@@ -290,6 +290,19 @@ static void aspeed_soc_realize(DeviceState *dev, Error
**errp)
sysbus_connect_irq(SYS_BUS_DEVICE(&s->timerctrl), i, irq);
}
+ /* Watch dog */
+ for (i = 0; i < sc->wdts_num; i++) {
+ AspeedWDTClass *awc = ASPEED_WDT_GET_CLASS(&s->wdt[i]);
+
+ object_property_set_link(OBJECT(&s->wdt[i]), "scu", OBJECT(&s->scu),
+ &error_abort);
+ if (!sysbus_realize(SYS_BUS_DEVICE(&s->wdt[i]), errp)) {
+ return;
+ }
+ sysbus_mmio_map(SYS_BUS_DEVICE(&s->wdt[i]), 0,
+ sc->memmap[ASPEED_DEV_WDT] + i * awc->offset);
+ }
+
/* ADC */
if (!sysbus_realize(SYS_BUS_DEVICE(&s->adc), errp)) {
return;
@@ -354,19 +367,6 @@ static void aspeed_soc_realize(DeviceState *dev, Error
**errp)
}
sysbus_mmio_map(SYS_BUS_DEVICE(&s->sdmc), 0, sc->memmap[ASPEED_DEV_SDMC]);
- /* Watch dog */
- for (i = 0; i < sc->wdts_num; i++) {
- AspeedWDTClass *awc = ASPEED_WDT_GET_CLASS(&s->wdt[i]);
-
- object_property_set_link(OBJECT(&s->wdt[i]), "scu", OBJECT(&s->scu),
- &error_abort);
- if (!sysbus_realize(SYS_BUS_DEVICE(&s->wdt[i]), errp)) {
- return;
- }
- sysbus_mmio_map(SYS_BUS_DEVICE(&s->wdt[i]), 0,
- sc->memmap[ASPEED_DEV_WDT] + i * awc->offset);
- }
-
/* Net */
for (i = 0; i < sc->macs_num; i++) {
object_property_set_bool(OBJECT(&s->ftgmac100[i]), "aspeed", true,
--
2.31.1
- [PATCH v2 0/5] aspeed/smc: Improve support for the alternate boot function, Cédric Le Goater, 2021/10/18
- [PATCH v2 1/5] aspeed/wdt: Introduce a container for the MMIO region, Cédric Le Goater, 2021/10/18
- [PATCH v2 4/5] aspeed/smc: Use a container for the flash mmio address space, Cédric Le Goater, 2021/10/18
- [PATCH v2 2/5] aspeed: Initialize the watchdog device models before the FMC models,
Cédric Le Goater <=
- [PATCH v2 5/5] speed/sdhci: Add trace events, Cédric Le Goater, 2021/10/18
- [PATCH v2 3/5] aspeed/smc: Improve support for the alternate boot function, Cédric Le Goater, 2021/10/18
- Re: [PATCH v2 0/5] aspeed/smc: Improve support for the alternate boot function, Peter Delevoryas, 2021/10/20