This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM625: PROC-SDK-09.01.00.08 FitImage Build Issue

Part Number: AM625

Hi Support Team,

We are trying to compile linux kernel with respect to the instructions here:

3.2.1.5. Compiling the Sources

We see this error:

Can't set hash 'value' property for 'hash-1' node(FDT_ERR_NOSPACE)
Can't set hash value for 'hash-1' hash node in 'fdt-ti_k3-am625-beagleplay-csi2-tevi-ov5640.dtbo' image node
Can't write signature for 'signature-1' signature node in 'conf-ti_k3-am625-beagleplay.dtb' conf node: <unknown error>
mkimage Can't add hashes to FIT blob: -1
makerules/Makefile_linux:3: recipe for target 'linux' failed
make: *** [linux] Error 255

We do not see this error on yocto build. FitImage can be created successfully on yocto build. Can you tell me how to fix this?

  • Hi,

    Thanks for your query.

    Our expert will look into this and get back to you.

    Regards

  • Hi Veysel,

    Can you please provide the exact commands you ran in compiling the SDK kernel?

  • Hi Bin,

    I tried to compile with "make linux" first. After I see the error above, I also tried to compile with the steps you provided us in Foundational Components of SDK:

    make ARCH=arm64 CROSS_COMPILE=aarch64-oe-linux- Image
    make ARCH=arm64 CROSS_COMPILE=aarch64-oe-linux- dtbs
    
    make ARCH=arm64 CROSS_COMPILE=aarch64-oe-linux- modules
    mkimage -r -f fitImage.its -k $UBOOT_PATH/board/ti/keys -K $UBOOT_PATH/build/$ARMV8/dts/k3-am622-sk.dtb fitImage
     
    I also tried to compile it with different toolchain set you mentioned in the note:


    "Optionally, one can use the arm compilers provided from developer.arm.com to build the Linux Kernel. Just use CROSS_COMPILE=aarch64-none-linux-gnu- instead of aarch64-oe-linux- wherever applicable."

    The result was still same.
  • Hi Veysel,

    The simplest way to build kernel is to download the Processor SDK "ti-processor-sdk-linux-am62xx-evm-09.01.00.08-Linux-x86-Install.bin" from https://www.ti.com/tool/PROCESSOR-SDK-AM62X, and install it on Ubuntu 22.04 PC.

    Then run command "make linux" at the top directory of the SDK installation.

  • Hi Bin,

    We have Ubuntu 18.04 PC and we are using the same Ubuntu 18.04 PC for both yocto and processor-sdk build. If Ubuntu 22.04 is necessary for this sdk, I expect to see the same error in yocto build but as I mentioned above, I am able to build it successfully. The problem is on processor sdk part.

  • Hi Veysel,

    First of all, Ubuntu 18.04 is not validated with SDK 9.x. I personally tried to build SDK9.0 kernel with toolchain 11.3 on 18.04 last year and got compiler error on one of the kernel .c file.

    Can't set hash 'value' property for 'hash-1' node(FDT_ERR_NOSPACE)
    Can't set hash value for 'hash-1' hash node in 'fdt-ti_k3-am625-beagleplay-csi2-tevi-ov5640.dtbo' image node

    I see the similar message when "make linux" for SDK9.1 on Ubuntu 22.04. they are harmless and can be ignored. But

    Can't write signature for 'signature-1' signature node in 'conf-ti_k3-am625-beagleplay.dtb' conf node: <unknown error>
    mkimage Can't add hashes to FIT blob: -1
    makerules/Makefile_linux:3: recipe for target 'linux' failed

    I don't get these messages. Please -

    - have you compared the fitimage ITS "fitImage-its-am62xx-evm" between the one in the SDK and Yocto to see if they are the same?

    - try to build with Ubuntu 22.04 to see if it is relevant;

    - or if you not work on Beagleplay board, remove all the beagleplay related entries from fitImage-its-am62xx-evm to see if the error still happens.

  • Hi Bin,

    Can't write signature for 'signature-1' signature node in 'conf-ti_k3-am625-beagleplay.dtb' conf node: <unknown error>
    mkimage Can't add hashes to FIT blob: -1
    makerules/Makefile_linux:3: recipe for target 'linux' failed

    For this error, I noticed that it uses built-in "uboot-mkimage" binary to create fitImage and it creates fitImage successfully. But in proc-sdk, I see that it uses "mkimage" command which installed in host machine and if you want to create fitImage with this command, I see the error.

    I also tried to create fitImage with "uboot-mkimage" binary on proc-sdk. It has been created successfully. Is it safe to do it this way? Actually we do not need beagleplay dtbs but, we are afraid of seeing this error for any other dtbs which will be added to fitImage later.

  • Hi Veysel,

    For this error, I noticed that it uses built-in "uboot-mkimage" binary to create fitImage and it creates fitImage successfully. But in proc-sdk, I see that it uses "mkimage" command which installed in host machine and if you want to create fitImage with this command, I see the error.

    This probably explains the problem. I use the 'mkimage' command installed in host which is Ubuntu 22.04 and don't have this error, so the problem is with the mkimage program on Ubuntu 18.04. This is back to my original comment that Ubuntu 18.04 is not supported with SDK 9.x.

    Yes, I would think it is safe or recommended to use the mkimage binary compiled from the U-Boot source in the SDK,