summaryrefslogtreecommitdiff
path: root/lib_ppc/board.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib_ppc/board.c')
-rw-r--r--lib_ppc/board.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/lib_ppc/board.c b/lib_ppc/board.c
index daa2a6df44..108244e296 100644
--- a/lib_ppc/board.c
+++ b/lib_ppc/board.c
@@ -526,7 +526,10 @@ void board_init_f (ulong bootflag)
#ifdef CONFIG_POST
post_bootmode_init();
- post_run (NULL, POST_ROM | post_bootmode_get(0));
+ if (post_hotkeys_pressed(gd)) /* Force the long-running tests (memory) */
+ post_run (NULL, POST_ROM | POST_SLOWTEST);
+ else
+ post_run (NULL, POST_ROM | post_bootmode_get(0));
#endif
WATCHDOG_RESET();
@@ -897,8 +900,11 @@ void board_init_r (gd_t *id, ulong dest_addr)
#endif
#ifdef CONFIG_POST
- post_run (NULL, POST_RAM | post_bootmode_get(0));
- if (post_bootmode_get(0) & POST_POWERFAIL) {
+ if (gd->post_hotkeys_latch)
+ post_run (NULL, POST_RAM | POST_SLOWTEST);
+ else
+ post_run (NULL, POST_RAM | post_bootmode_get(0));
+ if (post_bootmode_get(0) & POST_SLOWTEST) {
post_bootmode_clear();
board_poweroff();
}