[meta-xilinx] rel-v2018.1 / zcu102-zynqmp: U-boot crashes with error "fdt_root: FDT_ERR_BADMAGIC"

Martin Lund malu at gomspace.com
Mon May 7 06:43:22 PDT 2018


> Inspired by your last post I tried adding an #undef CONFIG_ARM64 in arch/arm/lib/spl.c to force it to jump to the ATF without dropping to EL2 first. That is, to try to mimic the old hacky way of booting the ATF.
>
> Unfortunately this hack seems to be insufficient as it gets stuck at address 0xfffea928 so I assume the ATF has crashed ending up in a reset vector - probably because some preconditions not being fulfilled.
>
> In the end, perhaps the best way forward is to try use the new ATF framework in u-boot but as you point out the information is sparse on that point.
>
> Hopefully someone out there can provide us with the missing information so that we can get the zynqmp booting without using the horrible xilinx toolchain.


Short follow up  - I tried enabling the new u-boot SPL ATF framework in u-boot-xlnx (xilinx-v2018.1) by enabling CONFIG_SPL_ATF and I also applied the following patch to meta-xilinx to produce a valid atf-boot.ub of type "AArch64 ARM Trusted Firmware Kernel Image (uncompressed)":

diff --git a/meta-xilinx-bsp/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware.inc b/meta-xilinx-bsp/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware.inc
index 7f13507..2f1343e 100644
--- a/meta-xilinx-bsp/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware.inc
+++ b/meta-xilinx-bsp/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware.inc
@@ -59,7 +59,7 @@ do_deploy() {

        # Get the entry point address from the elf.
        BL31_BASE_ADDR=$(${READELF} -h ${OUTPUT_DIR}/bl31/bl31.elf | egrep -m 1 -i "entry point.*?0x" | sed -r 's/.*?(0x.*?)/\1/g')
-       mkimage -A arm64 -O linux -T kernel -C none \
+       mkimage -A arm64 -O arm-trusted-firmware -C none \
                -a $BL31_BASE_ADDR -e $BL31_BASE_ADDR \
                -d ${OUTPUT_DIR}/bl31.bin ${DEPLOYDIR}/${ATF_BASE_NAME}.ub
        ln -sf ${ATF_BASE_NAME}.ub ${DEPLOYDIR}/${PN}.ub


However, using the new SPL ATF framework, it crashes in the exact same way as with my attempt trying to boot it the old hacky way.

The last thing I see with u-boot debug enabled is:
"Jumping to U-Boot via ARM Trusted Firmware"

and then it gets stuck at the same reset vector:

xsct% stop
Info: Cortex-A53 #0 (target 9) Stopped at 0xfffea928 (External Debug Request)

xsct% rrd
      r0: 00000000ff300004        r1: 0000000000010000
      r2: 0000000000010000        r3: 00000000ff300000
      r4: 000000000000000c        r5: 00000000ff990400
      r6: 00000000ff9905d8        r7: 0000000000000188
      r8: 00000000ffff7c90        r9: 00000000fffea09c
     r10: 00000000ffff08e8       r11: 0000000000000006
     r12: 000000000001869f       r13: 000000000000000c
     r14: 000000000000000a       r15: 00000000ffffffff
     r16: 280c860380080c00       r17: 00000000ffff07b8
     r18: 0000000000000004       r19: 00000000ffffe000
     r20: 00000000ffff6b98       r21: 00000000ffff6c08
     r22: 00000000ffff26a0       r23: 0000000000000002
     r24: 00000000fffda84e       r25: 00000000fffe0000
     r26: 00000000deadbeef       r27: 81cf122302800303
     r28: 82019000260d0c12       r29: 00000000ffff6b30
     r30: 00000000fffecf94        sp: 00000000ffff6b30
      pc: 00000000fffea928      cpsr:         000002cc
     vfp                         sys
acpu_gic

xsct% bt
    0  0xfffea928
    1  0xfffecf94
    2  0xfffed0b4
    3  0xfffeb364
    4  0xffff05d0
    5  0xfffea2a8
    6  0xfffea0a8
    7  0x60000000

I suspect it might be an issue with the atf-uboot.ub but I'm not sure.


Recently Xilinx have been working on enabling the new u-boot ATF framework as they have signed-off on this patch:
https://github.com/Xilinx/u-boot-xlnx/commit/949e5cb9a736bac32ea8886e3953da55bdd30754#diff-96969e0a4f8df761977a2ba066314ed3

I assume Xilinx tested this feature - it would be great if Xilinx could disclose the details on how to get the new u-boot SPL ATF framework working with the xilinx v2018.1 release on the zcu102 board. Perhaps we are missing some important detail or patch.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/meta-xilinx/attachments/20180507/c248c4f4/attachment.html>


More information about the meta-xilinx mailing list