diff options
author | Vasant Hegde <hegdevasant@linux.vnet.ibm.com> | 2020-06-17 12:46:09 +0530 |
---|---|---|
committer | Oliver O'Halloran <oohall@gmail.com> | 2020-06-30 12:07:23 +1000 |
commit | 9f5374b46aab4a2980d5bf745d79fa9d7bb609e1 (patch) | |
tree | 5f829a103e5bf2d6cc7815ece8b53fb673ab6d3b /include | |
parent | 53e4d7358c8f28f0338cad20ce6aac425b22da4c (diff) | |
download | skiboot-9f5374b46aab4a2980d5bf745d79fa9d7bb609e1.zip skiboot-9f5374b46aab4a2980d5bf745d79fa9d7bb609e1.tar.gz skiboot-9f5374b46aab4a2980d5bf745d79fa9d7bb609e1.tar.bz2 |
mpipl: Delay MPIPL registration until OPAL init is complete
If OPAL boot fails after MPIPL init (opal_mpipl_init()) then we call MPIPL
boot instead of reboot. BMC is not aware of MPIPL. Hence it may result in
continuous MPIPL loop (boot -> crash -> MPIPL -> boot).
If OPAL boot fails (before loading kernel) then its better to call reboot.
So that BMC can detect `n` number of boot failures (generally n = 3) and
stop booting. That way we can avoid continuous loop.
This patch moves MPIPL init to the end of init process (just before starting
kernel). So that if we fail to boot OPAL we call normal reboot.
Also this patch introduces new function to detect MPIPL is enabled or not
(is_mpipl_enabled()). And in assert() path we check for this function
instead of `dump` DT node. So that it will make sure we will not call
MPIPL until opal_mpipl_init is complete.
Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/opal-dump.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/opal-dump.h b/include/opal-dump.h index 060712e..bc1b876 100644 --- a/include/opal-dump.h +++ b/include/opal-dump.h @@ -127,4 +127,7 @@ void opal_mpipl_save_crashing_pir(void); /* Reserve memory to capture OPAL dump */ extern void opal_mpipl_reserve_mem(void); +/* Check MPIPL enabled or not */ +extern bool is_mpipl_enabled(void); + #endif /* __OPAL_DUMP_H */ |