diff options
Diffstat (limited to 'board')
-rw-r--r-- | board/sunxi/board.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/board/sunxi/board.c b/board/sunxi/board.c index c2755b2c6d..f79bd5c62c 100644 --- a/board/sunxi/board.c +++ b/board/sunxi/board.c @@ -761,13 +761,19 @@ int ft_board_setup(void *blob, bd_t *bd) #ifdef CONFIG_SPL_LOAD_FIT int board_fit_config_name_match(const char *name) { - const char *cmp_str; + struct boot_file_head *spl = (void *)(ulong)SPL_ADDR; + const char *cmp_str = (void *)(ulong)SPL_ADDR; + /* Check if there is a DT name stored in the SPL header and use that. */ + if (spl->dt_name_offset) { + cmp_str += spl->dt_name_offset; + } else { #ifdef CONFIG_DEFAULT_DEVICE_TREE - cmp_str = CONFIG_DEFAULT_DEVICE_TREE; + cmp_str = CONFIG_DEFAULT_DEVICE_TREE; #else - return 0; + return 0; #endif + }; /* Differentiate the two Pine64 board DTs by their DRAM size. */ if (strstr(name, "-pine64") && strstr(cmp_str, "-pine64")) { |