[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <aN5pSWBFRZlNRv3U@pengutronix.de>
Date: Thu, 2 Oct 2025 14:00:09 +0200
From: Oleksij Rempel <o.rempel@...gutronix.de>
To: Sebastian Reichel <sre@...nel.org>,
Srinivas Kandagatla <srinivas.kandagatla@...aro.org>,
Benson Leung <bleung@...omium.org>,
Tzung-Bi Shih <tzungbi@...nel.org>,
Daniel Lezcano <daniel.lezcano@...aro.org>,
Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>, Kees Cook <kees@...nel.org>,
Tony Luck <tony.luck@...el.com>,
"Guilherme G. Piccoli" <gpiccoli@...lia.com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Cc: kernel@...gutronix.de, linux-kernel@...r.kernel.org,
Liam Girdwood <lgirdwood@...il.com>,
Mark Brown <broonie@...nel.org>,
"Rafael J. Wysocki" <rafael@...nel.org>,
Zhang Rui <rui.zhang@...el.com>, Lukasz Luba <lukasz.luba@....com>,
linux-pm@...r.kernel.org,
Søren Andersen <san@...v.dk>,
Guenter Roeck <groeck@...omium.org>,
Matti Vaittinen <mazziesaccount@...il.com>,
Ahmad Fatoum <a.fatoum@...gutronix.de>,
Andrew Morton <akpm@...ux-foundation.org>,
chrome-platform@...ts.linux.dev, devicetree@...r.kernel.org,
linux-hardening@...r.kernel.org
Subject: RFC: Selecting an NVMEM cell for Power State Change Reason (PSCR)
recording
Hi all,
I'm seeking consensus on a minimal, upstream-acceptable way to identify the
single NVMEM cell used to persist a Power State Change Reason (PSCR). Typical
targets are battery-backed RTC scratchpads or small EEPROM. The aim is to have
a tiny breadcrumb available before userspace, across full power cuts, and
shared by bootloader/kernel/userspace.
DT vs Userspace vs ACPI
* DeviceTree (preferred): Describing where the storage lives under a real
NVMEM provider (RTC/EEPROM) is early, robust, and OS-agnostic.
* Userspace (fallback): Possible via module/cmdline/sysfs, but leaves an
early-boot window unconfigured and reduces usefulness for embedded devices.
* ACPI: No existing shared mechanism for this use case at present (not
proposing an ACPI path right now).
What implementations were tried
* A PSCR consumer node in DT -> NACKed as not a HW node.
* Kernel/module parameters or sysfs selection -> tried earlier, but rejected
for new designs and cannot guarantee early availability.
* Name-based lookups in NVMEM -> considered fragile and not scalable.
Other options which came in question (seeking guidance)
* cell-level `compatible` on a fixed-cell child (analogous to `mac-base`) to
nominate the PSCR cell under the existing NVMEM provider. DT remains purely
descriptive (location/size); encoding is documented outside DT and shared
across components.
* `/chosen` phandle pointing to the nominated fixed-cell (simple to discover;
unsure about policy concerns).
* pstore integration (not tried): a backend that uses a nominated NVMEM cell if
such a nomination is acceptable.
* nvmem-layout usage (not tried): provider-side markup of the region to
indicate it carries PSCR, if that pattern is acceptable for this purpose.
* Open to any established precedent for nominating a specific NVMEM cell for a
system role without introducing software/virtual DT nodes.
Ask
* Is a cell-level `compatible` on a `fixed-cell` child an acceptable way to
nominate the PSCR cell?
* If not, is a `/chosen` phandle acceptable here, or is there a preferred
alternative?
Thanks for guidance - once the selection mechanism is agreed, I can respin the
PSCR series accordingly.
Latest patch version: https://lore.kernel.org/all/aHTZTFxfS6Bn4yhz@pengutronix.de/
Best Regards,
Oleksij
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
Powered by blists - more mailing lists