[PATCH 0/4] Add support for Kernel WDT

Kartik Rajput posted 4 patches 1 month ago
drivers/clocksource/timer-tegra186.c | 122 +++++++++++++++++++++++----
1 file changed, 104 insertions(+), 18 deletions(-)
[PATCH 0/4] Add support for Kernel WDT
Posted by Kartik Rajput 1 month ago
Tegra186 and later SoCs support multiple watchdog timers in the TKE
block, the driver so far only uses WDT0. This series extends it to
make use of the additional instances and reserve the first available WDT
for Kernel.

Patch 1 fixes a read-modify-write bug in tegra186_wdt_enable()
that would otherwise make registering more than one watchdog unsafe.

Patch 2 corrects num_wdts for Tegra186 and Tegra234. WDT2 is connected
to the Audio Processing Engine (APE) and cannot be accessed from Linux,
so only WDT0 and WDT1 are available.

Patch 3 iterates over all WDTs and registers the ones whose TKE SCR
firewall grants OS access.

Patch 4 reserves the first accessible watchdog as a kernel-only
watchdog, arms it at probe with a 120 s timeout, and pets it from
the driver's IRQ handler, it is not exposed to userspace, so the
system can still reset if the kernel hangs before userspace opens a
watchdog.

Kartik Rajput (4):
  clocksource/drivers/timer-tegra186: Fix support for multiple watchdog
    instances
  clocksource/drivers/timer-tegra186: Correct num_wdts for Tegra186 and
    Tegra234
  clocksource/drivers/timer-tegra186: Register all accessible watchdog
    timers
  clocksource/drivers/timer-tegra186: Reserve and service a kernel
    watchdog

 drivers/clocksource/timer-tegra186.c | 122 +++++++++++++++++++++++----
 1 file changed, 104 insertions(+), 18 deletions(-)

-- 
2.43.0
Re: [PATCH 0/4] Add support for Kernel WDT
Posted by Jon Hunter 1 month ago
On 07/05/2026 16:45, Kartik Rajput wrote:
> Tegra186 and later SoCs support multiple watchdog timers in the TKE
> block, the driver so far only uses WDT0. This series extends it to
> make use of the additional instances and reserve the first available WDT
> for Kernel.
> 
> Patch 1 fixes a read-modify-write bug in tegra186_wdt_enable()
> that would otherwise make registering more than one watchdog unsafe.
> 
> Patch 2 corrects num_wdts for Tegra186 and Tegra234. WDT2 is connected
> to the Audio Processing Engine (APE) and cannot be accessed from Linux,
> so only WDT0 and WDT1 are available.
> 
> Patch 3 iterates over all WDTs and registers the ones whose TKE SCR
> firewall grants OS access.
> 
> Patch 4 reserves the first accessible watchdog as a kernel-only
> watchdog, arms it at probe with a 120 s timeout, and pets it from
> the driver's IRQ handler, it is not exposed to userspace, so the
> system can still reset if the kernel hangs before userspace opens a
> watchdog.
> 
> Kartik Rajput (4):
>    clocksource/drivers/timer-tegra186: Fix support for multiple watchdog
>      instances
>    clocksource/drivers/timer-tegra186: Correct num_wdts for Tegra186 and
>      Tegra234
>    clocksource/drivers/timer-tegra186: Register all accessible watchdog
>      timers
>    clocksource/drivers/timer-tegra186: Reserve and service a kernel
>      watchdog
> 
>   drivers/clocksource/timer-tegra186.c | 122 +++++++++++++++++++++++----
>   1 file changed, 104 insertions(+), 18 deletions(-)
> 

For the series ...

Reviewed-by: Jon Hunter <jonathanh@nvidia.com>

Thanks!
Jon

-- 
nvpublic
Re: [PATCH 0/4] Add support for Kernel WDT
Posted by Jon Hunter 1 week, 2 days ago
Hi Daniel,

On 12/05/2026 14:56, Jon Hunter wrote:
> 
> On 07/05/2026 16:45, Kartik Rajput wrote:
>> Tegra186 and later SoCs support multiple watchdog timers in the TKE
>> block, the driver so far only uses WDT0. This series extends it to
>> make use of the additional instances and reserve the first available WDT
>> for Kernel.
>>
>> Patch 1 fixes a read-modify-write bug in tegra186_wdt_enable()
>> that would otherwise make registering more than one watchdog unsafe.
>>
>> Patch 2 corrects num_wdts for Tegra186 and Tegra234. WDT2 is connected
>> to the Audio Processing Engine (APE) and cannot be accessed from Linux,
>> so only WDT0 and WDT1 are available.
>>
>> Patch 3 iterates over all WDTs and registers the ones whose TKE SCR
>> firewall grants OS access.
>>
>> Patch 4 reserves the first accessible watchdog as a kernel-only
>> watchdog, arms it at probe with a 120 s timeout, and pets it from
>> the driver's IRQ handler, it is not exposed to userspace, so the
>> system can still reset if the kernel hangs before userspace opens a
>> watchdog.
>>
>> Kartik Rajput (4):
>>    clocksource/drivers/timer-tegra186: Fix support for multiple watchdog
>>      instances
>>    clocksource/drivers/timer-tegra186: Correct num_wdts for Tegra186 and
>>      Tegra234
>>    clocksource/drivers/timer-tegra186: Register all accessible watchdog
>>      timers
>>    clocksource/drivers/timer-tegra186: Reserve and service a kernel
>>      watchdog
>>
>>   drivers/clocksource/timer-tegra186.c | 122 +++++++++++++++++++++++----
>>   1 file changed, 104 insertions(+), 18 deletions(-)
>>
> 
> For the series ...
> 
> Reviewed-by: Jon Hunter <jonathanh@nvidia.com>


Are you OK to pick this up? We would like to get this into -next if 
there are no objections.

Thanks
Jon

-- 
nvpublic