Re: [PATCH 0/2] Add support for Gunyah Watchdog
From: Hrishabh Rajput <hidden>
Date: 2025-09-04 14:39:32
Also in:
linux-arm-msm, linux-watchdog, lkml
On 9/4/2025 5:40 AM, Rob Herring wrote:
On Wed, Sep 03, 2025 at 07:33:58PM +0000, Hrishabh Rajput wrote:quoted
Gunyah is a Type-I hypervisor which was introduced in the patch series [1]. It is an open source hypervisor. The source repo is available at [2]. The Gunyah Hypervisor doesn't allow its Virtual Machines to directly access the MMIO watchdog. It either provides the fully emulated MMIO based watchdog interface or the SMC-based watchdog interface depending on the hypervisor configuration.EFI provides a standard watchdog interface. Why can't you use that?
I need to explore about EFI watchdog. But Gunyah Hypervisor does provide various interfaces for watchdog including fully emulated watchdog. There are Qualcomm SoCs in the market that ship with SMC-based watchdog interface configuration of the Gunyah Hypervisor. The purpose of this patch to add support for that configuration.
quoted
The SMC-based watchdog follows ARM's SMC Calling Convention (SMCCC) version 1.1 and uses Vendor Specific Hypervisor Service Calls space.Is a watchdog really a hypervisor service? Couldn't a non-virtualized OS want to call a watchdog (in secure mode) as well? But I don't know how the SMCCC call space is divided up...
Sure, a non-virtualized OS could directly access the watchdog. Hypervisor needs to interfere when there are multiple virtual machines running simultaneously and we only have a single watchdog device.
quoted
This patch series adds support for the SMC-based watchdog interface provided by the Gunyah Hypervisor. The driver supports start/stop operations, timeout and pretimeout configuration, pretimeout interrupt handling and system restart via watchdog.Shouldn't system restart be handled by PSCI?
By "system restart via watchdog" I meant the restart routine in the watchdog_ops struct. And I've kept the watchdog restart priority to the lowest i.e., 0, so it will be used a last resort.
Why can't you probe by trying to see if watchdog smc call succeeds to see if there is a watchdog? Then you don't need DT for it. Rob
We could do that for checking if SMC-based watchdog interface is supported, but DT provides an additional information about the pretimeout IRQ. And there is no way to get that information apart from the DT. Thanks, Hrishabh