diff options
author | Ahmad Fatoum <a.fatoum@pengutronix.de> | 2022-10-17 09:09:55 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2022-10-27 11:13:29 +0200 |
commit | 1c33083a1542db3ea596481781170123f0d0510f (patch) | |
tree | 343fb3b2c38f2567604c6b2da06e6f342af207e6 /Documentation | |
parent | 21dda946e7aa86246bf7ca22fb1a1609407c4bb9 (diff) | |
download | barebox-1c33083a1542db3ea596481781170123f0d0510f.tar.gz barebox-1c33083a1542db3ea596481781170123f0d0510f.tar.xz |
restart: add reset -w for warm bootrom reset
We currently support reboot mode communication with BootROMs of the
i.MX6Q/DL, i.MX8MM and STM32MP15x. For each of these, the user must
take care to use the correct reset as the highest priority reset often
clears the non-volatile register mapped by the syscon holding the reboot
mode. As we only have one BootROM, we can improve usability by adding a
global flag that describes whether a restart handler is suitable for
use after a bootrom reboot mode write. Add a flag bit describing this
and allow populating it from the device tree as well as from drivers.
Existing i.MX/STM32 drivers will be moved onto this in follow-up
commits.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Link: https://lore.barebox.org/20221017071000.1458292-4-a.fatoum@pengutronix.de
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/boards/imx.rst | 2 | ||||
-rw-r--r-- | Documentation/devicetree/bindings/power/restart.rst | 5 | ||||
-rw-r--r-- | Documentation/user/reboot-mode.rst | 7 |
3 files changed, 12 insertions, 2 deletions
diff --git a/Documentation/boards/imx.rst b/Documentation/boards/imx.rst index 4ce9d9808c..6c16923340 100644 --- a/Documentation/boards/imx.rst +++ b/Documentation/boards/imx.rst @@ -105,7 +105,7 @@ that BootROM should select after a warm reset:: mode-serial = <0x10 0x40000000>; }; - barebox@FSL i.MX8MM EVK board:/ gpr.reboot_mode.next=serial reset -r imxwd-warm + barebox@FSL i.MX8MM EVK board:/ gpr.reboot_mode.next=serial reset -w This will cause barebox to fall into serial download mode on an i.MX8MM. diff --git a/Documentation/devicetree/bindings/power/restart.rst b/Documentation/devicetree/bindings/power/restart.rst index 8c866f6e0d..42b87f7e9c 100644 --- a/Documentation/devicetree/bindings/power/restart.rst +++ b/Documentation/devicetree/bindings/power/restart.rst @@ -8,3 +8,8 @@ Optional properties: - ``restart-priority`` : Overrides the priority set by the driver. Normally, the device with the biggest reach should reset the system. See :ref:`_system_reset` for more information. + +- ``barebox,restart-warm-bootrom`` : Restart will not cause loss to non-volatile + registers sampled by the bootrom at startup. This is a necessary precondition + for working :ref:`reboot_mode` communication between barebox and the SoC's + BootROM. diff --git a/Documentation/user/reboot-mode.rst b/Documentation/user/reboot-mode.rst index 83d4136b85..1929a67e0b 100644 --- a/Documentation/user/reboot-mode.rst +++ b/Documentation/user/reboot-mode.rst @@ -47,7 +47,9 @@ Reboot mode providers have priorities. The provider with the highest priority has its parameters aliased as ``$global.system.reboot_mode.prev`` and ``$global.system.reboot_mode.next``. After executing the init scripts, barebox startup will ``source /env/bmode/${global.system.reboot_mode.prev}`` -if available. +if available. Example usage:: + + gpr.reboot_mode=serial reset -w Reset ===== @@ -60,6 +62,9 @@ If such reboot mode storage is used, users must take care to use the correct reset provider. In barebox, multiple reset providers may co-exist. The ``reset`` command allows listing and choosing a specific reboot mode. +For communication with the SoC's BootROM, a warm reset can be triggered +with ``reset -w`` if a suitable reset handler has been registered. + Disambiguation ============== |