mirror of https://github.com/xemu-project/xemu.git
aspeed/wdt: Fix ast2500/ast2600 default reload value
Per ast2500_2520_datasheet_v1.8 and ast2600v11.pdf, the default value of WDT00 and WDT04 is 0x014FB180 for ast2500/ast2600. Add default_status and default_reload_value attributes for storing counter status and reload value as they are different from ast2400. Signed-off-by: Troy Lee <troy_lee@aspeedtech.com> Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com> Signed-off-by: Steven Lee <steven_lee@aspeedtech.com> Reviewed-by: Cédric Le Goater <clg@kaod.org> Message-Id: <20220401083850.15266-4-jamin_lin@aspeedtech.com> Signed-off-by: Cédric Le Goater <clg@kaod.org>
This commit is contained in:
parent
2850df6a81
commit
018134abb2
|
@ -232,8 +232,8 @@ static void aspeed_wdt_reset(DeviceState *dev)
|
|||
AspeedWDTState *s = ASPEED_WDT(dev);
|
||||
AspeedWDTClass *awc = ASPEED_WDT_GET_CLASS(s);
|
||||
|
||||
s->regs[WDT_STATUS] = 0x3EF1480;
|
||||
s->regs[WDT_RELOAD_VALUE] = 0x03EF1480;
|
||||
s->regs[WDT_STATUS] = awc->default_status;
|
||||
s->regs[WDT_RELOAD_VALUE] = awc->default_reload_value;
|
||||
s->regs[WDT_RESTART] = 0;
|
||||
s->regs[WDT_CTRL] = awc->sanitize_ctrl(0);
|
||||
s->regs[WDT_RESET_WIDTH] = 0xFF;
|
||||
|
@ -319,6 +319,8 @@ static void aspeed_2400_wdt_class_init(ObjectClass *klass, void *data)
|
|||
awc->reset_ctrl_reg = SCU_RESET_CONTROL1;
|
||||
awc->wdt_reload = aspeed_wdt_reload;
|
||||
awc->sanitize_ctrl = aspeed_2400_sanitize_ctrl;
|
||||
awc->default_status = 0x03EF1480;
|
||||
awc->default_reload_value = 0x03EF1480;
|
||||
}
|
||||
|
||||
static const TypeInfo aspeed_2400_wdt_info = {
|
||||
|
@ -355,6 +357,8 @@ static void aspeed_2500_wdt_class_init(ObjectClass *klass, void *data)
|
|||
awc->reset_pulse = aspeed_2500_wdt_reset_pulse;
|
||||
awc->wdt_reload = aspeed_wdt_reload_1mhz;
|
||||
awc->sanitize_ctrl = aspeed_2500_sanitize_ctrl;
|
||||
awc->default_status = 0x014FB180;
|
||||
awc->default_reload_value = 0x014FB180;
|
||||
}
|
||||
|
||||
static const TypeInfo aspeed_2500_wdt_info = {
|
||||
|
@ -376,6 +380,8 @@ static void aspeed_2600_wdt_class_init(ObjectClass *klass, void *data)
|
|||
awc->reset_pulse = aspeed_2500_wdt_reset_pulse;
|
||||
awc->wdt_reload = aspeed_wdt_reload_1mhz;
|
||||
awc->sanitize_ctrl = aspeed_2600_sanitize_ctrl;
|
||||
awc->default_status = 0x014FB180;
|
||||
awc->default_reload_value = 0x014FB180;
|
||||
}
|
||||
|
||||
static const TypeInfo aspeed_2600_wdt_info = {
|
||||
|
|
|
@ -45,6 +45,8 @@ struct AspeedWDTClass {
|
|||
void (*reset_pulse)(AspeedWDTState *s, uint32_t property);
|
||||
void (*wdt_reload)(AspeedWDTState *s);
|
||||
uint64_t (*sanitize_ctrl)(uint64_t data);
|
||||
uint32_t default_status;
|
||||
uint32_t default_reload_value;
|
||||
};
|
||||
|
||||
#endif /* WDT_ASPEED_H */
|
||||
|
|
Loading…
Reference in New Issue