If SPL OS_BOOT is enabled and CONFIG_SYS_SPL_ARGS_ADDR is defined,
place the kernel DTB at that location, so the rest of the OS_BOOT
machinery in SPL has the DTB blob at the correct location.

Signed-off-by: Marek Vasut <[email protected]>
Cc: Tom Rini <[email protected]>
---
 common/spl/spl_fit.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/common/spl/spl_fit.c b/common/spl/spl_fit.c
index 87ecf0bb9e..e3312b3477 100644
--- a/common/spl/spl_fit.c
+++ b/common/spl/spl_fit.c
@@ -291,7 +291,11 @@ static int spl_fit_append_fdt(struct spl_image_info 
*spl_image,
         * Read the device tree and place it after the image.
         * Align the destination address to ARCH_DMA_MINALIGN.
         */
+#if defined(CONFIG_SPL_OS_BOOT) && defined(CONFIG_SYS_SPL_ARGS_ADDR)
+       image_info.load_addr = CONFIG_SYS_SPL_ARGS_ADDR;
+#else
        image_info.load_addr = spl_image->load_addr + spl_image->size;
+#endif
        ret = spl_load_fit_image(info, sector, fit, base_offset, node,
                                 &image_info);
 
@@ -472,7 +476,7 @@ int spl_load_simple_fit(struct spl_image_info *spl_image,
         * Booting a next-stage U-Boot may require us to append the FDT.
         * We allow this to fail, as the U-Boot image might embed its FDT.
         */
-       if (spl_image->os == IH_OS_U_BOOT)
+       if (spl_image->os == IH_OS_U_BOOT || spl_image->os == IH_OS_LINUX)
                spl_fit_append_fdt(spl_image, info, sector, fit,
                                   images, base_offset);
 
-- 
2.20.1

_______________________________________________
U-Boot mailing list
[email protected]
https://lists.denx.de/listinfo/u-boot

Reply via email to