Since libfdt v1.6.1, a new requirement on the device tree address via:

  commit 5e735860c478 ("libfdt: Check for 8-byte address alignment in 
fdt_ro_probe_()")

must be met that the device tree must be loaded in to memory at an
8-byte aligned address.

Signed-off-by: Bin Meng <bmeng...@gmail.com>
---

 common/spl/spl_fit.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/common/spl/spl_fit.c b/common/spl/spl_fit.c
index f41abca0cc..9baf6aca9f 100644
--- a/common/spl/spl_fit.c
+++ b/common/spl/spl_fit.c
@@ -374,6 +374,12 @@ static int spl_fit_append_fdt(struct spl_image_info 
*spl_image,
         */
        image_info.load_addr = spl_image->load_addr + spl_image->size;
 
+       /*
+        * Since libfdt v1.6.1, the device tree must be loaded in to memory
+        * at an 8-byte aligned address.
+        */
+       image_info.load_addr = roundup(image_info.load_addr, 8);
+
        /* Figure out which device tree the board wants to use */
        node = spl_fit_get_image_node(ctx, FIT_FDT_PROP, index++);
        if (node < 0) {
-- 
2.25.1

Reply via email to