On 3/3/26 10:25 AM, Igor Mammedov wrote:
> 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 <[email protected]>
> ---
> include/hw/watchdog/sbsa_gwdt.h | 1 +
> hw/watchdog/sbsa_gwdt.c | 8 ++++++++
> 2 files changed, 9 insertions(+)
>
> diff --git a/include/hw/watchdog/sbsa_gwdt.h b/include/hw/watchdog/sbsa_gwdt.h
> index 307a4f291a..dc77e6be60 100644
> --- a/include/hw/watchdog/sbsa_gwdt.h
> +++ b/include/hw/watchdog/sbsa_gwdt.h
> @@ -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 */
> diff --git a/hw/watchdog/sbsa_gwdt.c b/hw/watchdog/sbsa_gwdt.c
> index c4dd8005b7..40d80f7f2b 100644
> --- a/hw/watchdog/sbsa_gwdt.c
> +++ b/hw/watchdog/sbsa_gwdt.c
> @@ -265,6 +265,13 @@ static void wdt_sbsa_gwdt_realize(DeviceState *dev,
> Error **errp)
>
> sysbus_init_irq(sbd, &s->irq);
>
> + /*
> + * WDAT supports only upto 1KHz resolution,
> + */
> + if (s->wdat) {
> + s->freq = 1000;
where is it specified in the spec?
Thanks
Eric
> + }
> +
> s->timer = timer_new_ns(QEMU_CLOCK_VIRTUAL, sbsa_gwdt_timer_sysinterrupt,
> dev);
> }
> @@ -276,6 +283,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)