[PATCH v6 1/3] dt-bindings: watchdog: ti,rti-wdt: Add support for WDIOF_CARDRESET

Guenter Roeck linux at roeck-us.net
Wed Jul 19 06:39:14 PDT 2023


On 7/17/23 19:10, huaqian.li at siemens.com wrote:
> From: Li Hua Qian <huaqian.li at siemens.com>
> 
> TI RTI (Real Time Interrupt) Watchdog doesn't support to record the
> watchdog cause. Add a reserved memory to know the last reboot was caused
> by the watchdog card. In the reserved memory, some specific info will be
> saved to indicate whether the watchdog reset was triggered in last
> boot.
> 
> Signed-off-by: Li Hua Qian <huaqian.li at siemens.com>

Reviewed-by: Guenter Roeck <linux at roeck-us.net>

> ---
>   .../bindings/watchdog/ti,rti-wdt.yaml         | 28 ++++++++++++++++++-
>   1 file changed, 27 insertions(+), 1 deletion(-)
> 
> diff --git a/Documentation/devicetree/bindings/watchdog/ti,rti-wdt.yaml b/Documentation/devicetree/bindings/watchdog/ti,rti-wdt.yaml
> index fc553211e42d..9d847e4b7278 100644
> --- a/Documentation/devicetree/bindings/watchdog/ti,rti-wdt.yaml
> +++ b/Documentation/devicetree/bindings/watchdog/ti,rti-wdt.yaml
> @@ -34,6 +34,20 @@ properties:
>     power-domains:
>       maxItems: 1
>   
> +  memory-region:
> +    maxItems: 1
> +    description:
> +      Contains the watchdog reserved memory. It is optional.
> +      In the reserved memory, the specified values, which are
> +      PON_REASON_SOF_NUM(0xBBBBCCCC), PON_REASON_MAGIC_NUM(0xDDDDDDDD),
> +      and PON_REASON_EOF_NUM(0xCCCCBBBB), are pre-stored at the first
> +      3 * 4 bytes to tell that last boot was caused by watchdog reset.
> +      Once the PON reason is captured by driver(rti_wdt.c), the driver
> +      is supposed to wipe the whole memory region. Surely, if this
> +      property is set, at least 12 bytes reserved memory starting from
> +      specific memory address(0xa220000) should be set. More please
> +      refer to example.
> +
>   required:
>     - compatible
>     - reg
> @@ -47,7 +61,18 @@ examples:
>       /*
>        * RTI WDT in main domain on J721e SoC. Assigned clocks are used to
>        * select the source clock for the watchdog, forcing it to tick with
> -     * a 32kHz clock in this case.
> +     * a 32kHz clock in this case. Add a reserved memory(optional) to keep
> +     * the watchdog reset cause persistent, which was be written in 12 bytes
> +     * starting from 0xa2200000 by RTI Watchdog Firmware, then make it
> +     * possible to get watchdog reset cause in driver.
> +     *
> +     * Reserved memory should be defined as follows:
> +     * reserved-memory {
> +     *     wdt_reset_memory_region: wdt-memory at a2200000 {
> +     *         reg = <0x00 0xa2200000 0x00 0x1000>;
> +     *         no-map;
> +     *     };
> +     * }
>        */
>       #include <dt-bindings/soc/ti,sci_pm_domain.h>
>   
> @@ -58,4 +83,5 @@ examples:
>           power-domains = <&k3_pds 252 TI_SCI_PD_EXCLUSIVE>;
>           assigned-clocks = <&k3_clks 252 1>;
>           assigned-clock-parents = <&k3_clks 252 5>;
> +        memory-region = <&wdt_reset_memory_region>;
>       };




More information about the linux-arm-kernel mailing list