[U-Boot] [PATCH 0/3] Add reboot mode support
Han Nandor
nandor.han at vaisala.com
Tue Nov 12 09:13:21 UTC 2019
Description
-----------
Add support for reboot-mode configuration using GPIOs and RTC SRAM as
back-end.
Testing
-------
Tested on a Zynq based board where device tree was configured to contain
the reboot-mode configuration:
&amba {
status = "okay";
reboot-mode-gpio {
compatible = "reboot-mode-gpio";
gpios = <&gpio0 47 GPIO_ACTIVE_LOW>;
mode-test = <0x1>;
};
reboot-mode-rtc {
compatible = "reboot-mode-rtc";
rtc = <&rtc_0>;
reg = <0x14 4>;
mode-test = <0x21969147>;
};
};
In addition to this and not part of this patchset is a change to board.c
where GPIO or RTC SRAM backed is selected dynamically at runtime.
1. Test that the reboot mode configured in user-space is read in U-Boot and
environment configured: PASS
Userspace ~ # reboot test
....
[ 177.335936] reboot: Restarting system with command 'test'
U-Boot SPL 2019.01 (Mar 29 2019 - 10:44:22 +0000)
...
U-Boot> print reboot-mode
reboot-mode=test
2. Reset the system using the reset command and stop in U-Boot.
3. Verify that reboot-mode env variable is not configured anymore: PASS
U-Boot> print reboot-mode
## Error: "reboot-mode" not defined
4. Toggle the GPIO configured for test mode to active and reset the system
with command reset.
5. Stop in U-Boot and check that reboot-mode env variable is configured:PASS
U-Boot> print reboot-mode
reboot-mode=test
Nandor Han (3):
reboot-mode: add support for reboot mode control
reboot-mode: read the boot mode from GPIOs status
reboot-mode: read the boot mode from RTC memory
.../reboot-mode/reboot-mode-gpio.txt | 20 +++
.../reboot-mode/reboot-mode-rtc.txt | 22 +++
drivers/Kconfig | 2 +
drivers/Makefile | 1 +
drivers/reboot-mode/Kconfig | 36 +++++
drivers/reboot-mode/Makefile | 9 ++
drivers/reboot-mode/reboot-mode-gpio.c | 125 +++++++++++++++++
drivers/reboot-mode/reboot-mode-rtc.c | 132 ++++++++++++++++++
drivers/reboot-mode/reboot-mode-uclass.c | 132 ++++++++++++++++++
include/dm/uclass-id.h | 1 +
include/reboot-mode/reboot-mode-gpio.h | 32 +++++
include/reboot-mode/reboot-mode-rtc.h | 16 +++
include/reboot-mode/reboot-mode.h | 56 ++++++++
13 files changed, 584 insertions(+)
create mode 100644 doc/device-tree-bindings/reboot-mode/reboot-mode-gpio.txt
create mode 100644 doc/device-tree-bindings/reboot-mode/reboot-mode-rtc.txt
create mode 100644 drivers/reboot-mode/Kconfig
create mode 100644 drivers/reboot-mode/Makefile
create mode 100644 drivers/reboot-mode/reboot-mode-gpio.c
create mode 100644 drivers/reboot-mode/reboot-mode-rtc.c
create mode 100644 drivers/reboot-mode/reboot-mode-uclass.c
create mode 100644 include/reboot-mode/reboot-mode-gpio.h
create mode 100644 include/reboot-mode/reboot-mode-rtc.h
create mode 100644 include/reboot-mode/reboot-mode.h
--
2.20.1
More information about the U-Boot
mailing list