arm: sbsa-gwdt: add 'wdat' option

it will be used by arm/virt board, to pick WDAT compatible watchdog impl.
and act as switch over to WDAT ACPI table vesus default GTDT ACPI table.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Message-ID: <20260702145856.1539572-6-imammedo@redhat.com>
This commit is contained in:
Igor Mammedov
2026-07-02 16:58:48 +02:00
committed by Michael S. Tsirkin
parent 2f27572eb5
commit 51011f7f36
2 changed files with 10 additions and 0 deletions

View File

@@ -265,6 +265,14 @@ static void wdt_sbsa_gwdt_realize(DeviceState *dev, Error **errp)
sysbus_init_irq(sbd, &s->irq);
/*
* WDAT spec: "The clock interval that the WDT uses must be
* greater than or equal to 1 millisecond."
*/
if (s->wdat) {
s->freq = 1000;
}
s->timer = timer_new_ns(QEMU_CLOCK_VIRTUAL, sbsa_gwdt_timer_sysinterrupt,
dev);
}
@@ -276,6 +284,7 @@ static const Property wdt_sbsa_gwdt_props[] = {
*/
DEFINE_PROP_UINT64("clock-frequency", struct SBSA_GWDTState, freq,
1000000000),
DEFINE_PROP_BOOL("wdat", struct SBSA_GWDTState, wdat, false),
};
static void wdt_sbsa_gwdt_class_init(ObjectClass *klass, const void *data)

View File

@@ -73,6 +73,7 @@ typedef struct SBSA_GWDTState {
uint32_t woru;
uint32_t wcvl;
uint32_t wcvu;
bool wdat;
} SBSA_GWDTState;
#endif /* WDT_SBSA_GWDT_H */