[Skiboot] [PATCH] Add fast-reboot property to /ibm,opal DT node

Stewart Smith stewart at linux.ibm.com
Tue Sep 18 15:36:25 AEST 2018

this means that if it's permanently disabled on boot, the test suite can
pick that up and not try a fast reboot test.

Signed-off-by: Stewart Smith <stewart at linux.ibm.com>
 core/init.c                  |  2 ++
 doc/device-tree/ibm,opal.rst | 10 ++++++++++
 include/skiboot.h            |  1 +
 3 files changed, 13 insertions(+)

diff --git a/core/init.c b/core/init.c
index 9095981e67e0..8d092dd6e7fd 100644
--- a/core/init.c
+++ b/core/init.c
@@ -546,6 +546,8 @@ void __noreturn load_and_boot_kernel(bool is_reboot)
 	op_display(OP_LOG, OP_MOD_INIT, 0x000B);
+	add_fast_reboot_dt_entries();
 	/* Create the device tree blob to boot OS. */
 	fdt = create_dtb(dt_root, false);
 	if (!fdt) {
diff --git a/doc/device-tree/ibm,opal.rst b/doc/device-tree/ibm,opal.rst
index 2fa446ddef04..25f905d46e38 100644
--- a/doc/device-tree/ibm,opal.rst
+++ b/doc/device-tree/ibm,opal.rst
@@ -71,3 +71,13 @@ supported POWER8 systems.
 On the earliest POWER8 OPAL systems, there was `ibm,heartbeat-freq` instead.
 However, no OS at the time ever looked at that value, so it can be ignored
 by any new operating systems.
+fast-reboot property
+This property of the `ibm,opal` node is an option property that will either be
+the string `okay` or the reason the fast reboot feature was disabled on boot.
+The motivation behind adding this property is to help the OPAL test suite work
+out if it should even try the fast reboot test on a particular platform
+(without it having to resort to grepping firmware logs).
diff --git a/include/skiboot.h b/include/skiboot.h
index f2818b1a2326..b39591177137 100644
--- a/include/skiboot.h
+++ b/include/skiboot.h
@@ -182,6 +182,7 @@ extern int64_t opal_signal_system_reset(int cpu_nr);
 /* Fast reboot support */
 extern void disable_fast_reboot(const char *reason);
+extern void add_fast_reboot_dt_entries(void);
 extern void fast_reboot(void);
 extern void __noreturn __secondary_cpu_entry(void);
 extern void __noreturn load_and_boot_kernel(bool is_reboot);

More information about the Skiboot mailing list