diff --git a/common/init/board_init.c b/common/init/board_init.c
index d17bb298d72edc13cec4fd40083fd66f89fe943a..ef01a9aeaad901978ac9a436021a5921127fd397 100644
--- a/common/init/board_init.c
+++ b/common/init/board_init.c
@@ -146,3 +146,8 @@ void board_init_f_init_reserve(ulong base)
 	base += CONFIG_SYS_MALLOC_F_LEN;
 #endif
 }
+
+/*
+ * Board-specific Platform code can reimplement show_boot_progress () if needed
+ */
+__weak void show_boot_progress(int val) {}
diff --git a/common/spl/spl.c b/common/spl/spl.c
index c8dfc14508f0bc08fb6d6f6ec157b0d13a8082f8..840910a6844425f04bcda3b4b280374369ae17d0 100644
--- a/common/spl/spl.c
+++ b/common/spl/spl.c
@@ -35,6 +35,11 @@ struct spl_image_info spl_image;
 /* Define board data structure */
 static bd_t bdata __attribute__ ((section(".data")));
 
+/*
+ * Board-specific Platform code can reimplement show_boot_progress () if needed
+ */
+__weak void show_boot_progress(int val) {}
+
 /*
  * Default function to determine if u-boot or the OS should
  * be started. This implementation always returns 1.
diff --git a/include/bootstage.h b/include/bootstage.h
index 0880a680b9ea3e4472528df3542f55d592afc0b1..a589be6316ee45ff73e7102143523599f5a5c6eb 100644
--- a/include/bootstage.h
+++ b/include/bootstage.h
@@ -213,7 +213,9 @@ enum bootstage_id {
  */
 ulong timer_get_boot_us(void);
 
-#if !defined(CONFIG_SPL_BUILD) && !defined(USE_HOSTCC)
+#if defined(USE_HOSTCC)
+#define show_boot_progress(val) do {} while (0)
+#else
 /*
  * Board code can implement show_boot_progress() if needed.
  *
@@ -221,8 +223,6 @@ ulong timer_get_boot_us(void);
  *		has occurred.
  */
 void show_boot_progress(int val);
-#else
-#define show_boot_progress(val) do {} while (0)
 #endif
 
 #if defined(CONFIG_BOOTSTAGE) && !defined(CONFIG_SPL_BUILD) && \