diff options
author | Marek Behún <marek.behun@nic.cz> | 2021-05-28 10:00:49 +0200 |
---|---|---|
committer | Stefan Roese <sr@denx.de> | 2021-06-04 11:32:41 +0200 |
commit | 176c3e7760a2e302620b8b12b29f4aa385b86087 (patch) | |
tree | f280cf847549aec7adabaffb645a64a7a014c552 /include/configs/turris_omnia.h | |
parent | 0b5bb36d13fe416fda29d593ce9ac1152e62186b (diff) | |
download | u-boot-176c3e7760a2e302620b8b12b29f4aa385b86087.tar.gz u-boot-176c3e7760a2e302620b8b12b29f4aa385b86087.tar.xz u-boot-176c3e7760a2e302620b8b12b29f4aa385b86087.zip |
arm: mvebu: turris_omnia: support invoking rescue boot from console
Make it possible to invoke rescue boot from U-Boot console, without
having to press the factory reset button. This is needed when accessing
the device remotely, for example.
Achieve this by putting rescue command into `bootcmd_rescue` default
environment variable and setting some distroboot environment variables
to their default values when the factory button is pressed.
Rescue boot from console can be invoked by running
run bootcmd_rescue
Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Stefan Roese <sr@denx.de>
Diffstat (limited to 'include/configs/turris_omnia.h')
-rw-r--r-- | include/configs/turris_omnia.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/include/configs/turris_omnia.h b/include/configs/turris_omnia.h index 0b55c14d8b..7da18f97db 100644 --- a/include/configs/turris_omnia.h +++ b/include/configs/turris_omnia.h @@ -108,12 +108,35 @@ #include <config_distro_bootcmd.h> +/* + * The factory reset bootcommand on Omnia first sets all the front LEDs to green + * and then tries to load the rescue image from SPI flash memory and boot it + */ +#define TURRIS_OMNIA_BOOTCMD_RESCUE \ + "i2c dev 2; " \ + "i2c mw 0x2a.1 0x3 0x1c 1; " \ + "i2c mw 0x2a.1 0x4 0x1c 1; " \ + "mw.l 0x01000000 0x00ff000c; " \ + "i2c write 0x01000000 0x2a.1 0x5 4 -s; " \ + "setenv bootargs \"earlyprintk console=ttyS0,115200" \ + " omniarescue=$omnia_reset rescue_mode=$omnia_reset\"; " \ + "sf probe; " \ + "sf read 0x1000000 0x100000 0x700000; " \ + "lzmadec 0x1000000 0x1700000; " \ + "if gpio input gpio@71_4; then " \ + "bootm 0x1700000#sfp; " \ + "else " \ + "bootm 0x1700000; " \ + "fi; " \ + "bootz 0x1000000" + #define CONFIG_EXTRA_ENV_SETTINGS \ RELOCATION_LIMITS_ENV_SETTINGS \ LOAD_ADDRESS_ENV_SETTINGS \ "fdtfile=" CONFIG_DEFAULT_DEVICE_TREE ".dtb\0" \ "console=ttyS0,115200\0" \ "ethact=ethernet@34000\0" \ + "bootcmd_rescue=" TURRIS_OMNIA_BOOTCMD_RESCUE "\0" \ BOOTENV #endif /* CONFIG_SPL_BUILD */ |