summaryrefslogtreecommitdiff
path: root/include/spl.h
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2015-06-23 15:39:10 -0600
committerSimon Glass <sjg@chromium.org>2015-07-21 17:39:28 -0600
commit070d00b8dc8453b8c2f12d74551919cf2b124136 (patch)
tree824056b80d281291279fdb9b142fdf5ba528b86f /include/spl.h
parentcb5f97f70766fdabc90847bbbc25eb759b2b4797 (diff)
downloadu-boot-imx-070d00b8dc8453b8c2f12d74551919cf2b124136.zip
u-boot-imx-070d00b8dc8453b8c2f12d74551919cf2b124136.tar.gz
u-boot-imx-070d00b8dc8453b8c2f12d74551919cf2b124136.tar.bz2
dm: spl: Allow device tree/driver model in board_init_f()
Add an spl_init() function that does basic init such that board_init_f() can use simple malloc(), device tree and driver model. Each one is set up only if enabled for SPL. Note: We really should refactor SPL such that there is a single board_init_f() and rename the existing weak board_init_f() functions provided by boards, calling them from the single board_init_f(). Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'include/spl.h')
-rw-r--r--include/spl.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/include/spl.h b/include/spl.h
index d19940f..8e53426 100644
--- a/include/spl.h
+++ b/include/spl.h
@@ -81,6 +81,18 @@ void __noreturn jump_to_image_no_args(struct spl_image_info *spl_image);
int spl_load_image_ext(block_dev_desc_t *block_dev, int partition, const char *filename);
int spl_load_image_ext_os(block_dev_desc_t *block_dev, int partition);
+/**
+ * spl_init() - Set up device tree and driver model in SPL if enabled
+ *
+ * Call this function in board_init_f() if you want to use device tree and
+ * driver model early, before board_init_r() is called. This function will
+ * be called from board_init_r() if not called earlier.
+ *
+ * If this is not called, then driver model will be inactive in SPL's
+ * board_init_f(), and no device tree will be available.
+ */
+int spl_init(void);
+
#ifdef CONFIG_SPL_BOARD_INIT
void spl_board_init(void);
#endif