Re: [PATCH] schemas: chosen: Add reset-reason property
Simon Glass <[email protected]> Tue, 26 May 2026 09:10:02 -0500
| Newsgroups | org.kernel.vger.devicetree-spec |
|---|---|
| Message-ID | <CAFLszTjtk-4YvYM=c49fgzc3iB1h0eLByKHDS+KAgpVOS5ewnQ@mail.gmail.com> |
Hi, On Tue, 26 May 2026 at 04:40, A. Sverdlin <[email protected]> wrote: > > 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) These all seem fine to me > pmic - PMIC-initiated reset pmic seems more like a means than a reason. Could you give an example of when this might be used, rather than the other reasons? > > 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 - 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. > > Link: https://lore.kernel.org/all/[email protected]/ > Signed-off-by: Alexander Sverdlin <[email protected]> > --- > Krzk, apparently /chosen is already potentially very dynamic, thanks to > kaslr-seed and rng-seed properties. > > dtschema/schemas/chosen.yaml | 27 +++++++++++++++++++++++++++ > 1 file changed, 27 insertions(+) > > diff --git a/dtschema/schemas/chosen.yaml b/dtschema/schemas/chosen.yaml > index 63f3c12..2daf791 100644 > --- a/dtschema/schemas/chosen.yaml > +++ b/dtschema/schemas/chosen.yaml > @@ -183,6 +183,33 @@ 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. The meaning of each item should really be in the schema, IMO > + > + / { > + chosen { > + reset-reason = "watchdog"; > + }; > + }; > + > smbios3-entrypoint: > $ref: types.yaml#/definitions/address > maxItems: 1 > -- > 2.52.0 > Regards, Simon