When U-Boot is run from another boot loader, much of the low-level init
needs to be skipped.

Add a flag for this and adjust ll_boot_init() to use it.

Signed-off-by: Simon Glass <s...@chromium.org>
---

Changes in v3:
- Add a new patch with a gd flag for chain loading

Changes in v2: None

 include/asm-generic/global_data.h | 1 +
 include/init.h                    | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/include/asm-generic/global_data.h 
b/include/asm-generic/global_data.h
index 5d027329fe0..3dc51e49ef7 100644
--- a/include/asm-generic/global_data.h
+++ b/include/asm-generic/global_data.h
@@ -166,5 +166,6 @@ typedef struct global_data {
 #define GD_FLG_SPL_EARLY_INIT  0x04000 /* Early SPL init is done          */
 #define GD_FLG_LOG_READY       0x08000 /* Log system is ready for use     */
 #define GD_FLG_WDT_READY       0x10000 /* Watchdog is ready for use       */
+#define GD_FLG_NO_LL_INIT      0x20000 /* Don't perform low-level init    */
 
 #endif /* __ASM_GENERIC_GBL_DATA_H */
diff --git a/include/init.h b/include/init.h
index 2a33a3fd1e4..64fdf124916 100644
--- a/include/init.h
+++ b/include/init.h
@@ -20,7 +20,7 @@ struct global_data;
 #ifdef CONFIG_EFI_STUB
 #define ll_boot_init() false
 #else
-#define ll_boot_init() true
+#define ll_boot_init() (!(gd->flags & GD_FLG_NO_LL_INIT))
 #endif
 
 /*
-- 
2.26.0.292.g33ef6b2f38-goog

Reply via email to