diff --git a/cmd/bootz.c b/cmd/bootz.c
index 0e75509ee9623505570f10440b6e4880d8057f06..d70fe386f0a51952031b9b4700d3481d8c0bae45 100644
--- a/cmd/bootz.c
+++ b/cmd/bootz.c
@@ -61,6 +61,9 @@ int do_bootz(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 {
 	int ret;
 
+#ifdef CONFIG_SYS_BOOT_BOARD_POWER_CHECK
+	board_power_check();
+#endif
 	/* Consume 'bootz' */
 	argc--; argv++;
 
diff --git a/include/common.h b/include/common.h
index 559013a3a8583709b099f78b1c180c3bd28d6767..62a7e14aa2fe86794faf82107dc795522a6e7c5f 100644
--- a/include/common.h
+++ b/include/common.h
@@ -298,6 +298,8 @@ int board_fix_fdt (void *rw_fdt_blob); /* manipulate the U-Boot fdt before its r
 int board_late_init (void);
 int board_postclk_init (void); /* after clocks/timebase, before env/serial */
 int board_early_init_r (void);
+void board_poweroff (void);
+void board_power_check(void);
 
 #if defined(CONFIG_SYS_DRAM_TEST)
 int testdram(void);
diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
index ada4ffef1bec0894d709c27b4ead058bb9f60367..2f74735d1a4ca9d08437223fa76d8504b0947056 100644
--- a/scripts/config_whitelist.txt
+++ b/scripts/config_whitelist.txt
@@ -2137,6 +2137,7 @@ CONFIG_SYS_BOOTM_LEN
 CONFIG_SYS_BOOTPARAMS_LEN
 CONFIG_SYS_BOOTSZ
 CONFIG_SYS_BOOT_BLOCK
+CONFIG_SYS_BOOT_BOARD_POWER_CHECK
 CONFIG_SYS_BOOT_RAMDISK_HIGH
 CONFIG_SYS_BR0_64M
 CONFIG_SYS_BR0_8M