[PATCH v2] schemas: chosen: Add reset-reason property
"A. Sverdlin" <[email protected]> Fri, 5 Jun 2026 10:59:29 +0200
| Newsgroups | org.kernel.vger.devicetree-spec |
|---|---|
| Message-ID | <[email protected]> |
From: Alexander Sverdlin <[email protected]> Bootloaders such as U-Boot and barebox can populate the /chosen node with a reset-reason string property indicating the cause of the most recent system reset. Define a standardized set of generic reset reason values that bootloaders map their platform-specific reset sources to: unknown - reset source could not be determined cold - power-on reset warm - warm restart without full power cycle watchdog - watchdog timer expiration wakeup - wake from suspend/sleep jtag - JTAG/debug initiated reset thermal - thermal shutdown/overtemperature external - external reset pin/signal brownout - supply voltage drop software - explicit software-initiated reset safety - hardware fault detection (e.g. error signaling module, fault collection and control unit) security - security subsystem (e.g. secure enclave violation) pmic - PMIC-initiated reset Mapping of platform-specific reset sources to generic values: Generic AM6x i.MX9 barebox ------- ---- ----- ------- unknown UNKNOWN - unknown cold POR por POR warm RST (SW warm) - RST watchdog WDOG wdog WDG wakeup - - WKE jtag JTAG jtag JTAG thermal THERMAL tempsense THERM external PIN - EXT brownout - - BROWNOUT software - sw - safety ESM fccu - security SMS/DMSC ele - pmic - pmic - Note: barebox already populates this property but uses abbreviated uppercase values (common/reset_source.c). These will need to be adapted to match the standardized lowercase values defined here. The list can be extended in the future as needed. Signed-off-by: Alexander Sverdlin <[email protected]> --- Changelog: v2: - added "|" to the description to preserve the formatting - added the meaning of each item to the schema v1: - https://lore.kernel.org/all/[email protected]/ RFC: - https://lore.kernel.org/all/[email protected]/ dtschema/schemas/chosen.yaml | 48 ++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/dtschema/schemas/chosen.yaml b/dtschema/schemas/chosen.yaml index 63f3c12..f6fad1f 100644 --- a/dtschema/schemas/chosen.yaml +++ b/dtschema/schemas/chosen.yaml @@ -183,6 +183,54 @@ properties: will assign devices in its usual manner, otherwise it will not try to assign devices and instead use them as they are configured already. + reset-reason: + $ref: types.yaml#/definitions/string + enum: + - unknown + - cold + - warm + - watchdog + - wakeup + - jtag + - thermal + - external + - brownout + - software + - safety + - security + - pmic + description: | + This property is set by the bootloader to indicate the reason for the + most recent system reset. The values are generic categories that + bootloaders map their platform-specific reset sources to. + + If multiple reset sources are detected, the bootloader should report + the most specific known cause. If the cause cannot be determined, + use "unknown". If this property is absent, the bootloader does not + support reset reason reporting. + + Values: + unknown - reset source could not be determined + cold - power-on reset + warm - warm restart without full power cycle + watchdog - watchdog timer expiration + wakeup - wake from suspend/sleep + jtag - JTAG/debug initiated reset + thermal - thermal shutdown/overtemperature + external - external reset pin/signal + brownout - supply voltage drop + software - explicit software-initiated reset + safety - hardware fault detection (e.g. error signaling module, + fault collection and control unit) + security - security subsystem (e.g. secure enclave violation) + pmic - PMIC-initiated reset + + / { + chosen { + reset-reason = "watchdog"; + }; + }; + smbios3-entrypoint: $ref: types.yaml#/definitions/address maxItems: 1 -- 2.52.0