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.

TMDS64GPEVM: Device tree 'u-boot.dtb' does not have a 'binman' node

Part Number: TMDS64GPEVM

Hello

For our custom board we using customized version of defconfig for U-Boot (based on TMDS64GPEVM U-Boot defconfig).

In this defconfig I set CONFIG_DEFAULT_DEVICE_TREE property for out custom device tree (CONFIG_DEFAULT_DEVICE_TREE="k3-am642-puma"), but compilation of U-Boot fails with message:

"binman: Device tree 'u-boot.dtb' does not have a 'binman' node".

How to get rid of this error? What is binman actually?

Thanks

BR

Jakub

  • Hi Jakub,

    Please see the below linked response for AM62x. The same will work for AM64x also.

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1206269/am625-boot-fail-with-user-named-uboot-dts/4571292#4571292

    Following the above response, you have to do the below changes also shown as git diff

    diff --git a/board-support/u-boot-2021.01+gitAUTOINC+3983bffabc-g3983bffabc/arch/arm/dts/k3-am642-evm-u-boot.dtsi b/board-support/u-boot-2021.01+gitAUTOINC+3983bffabc-g3983bffabc/arch/arm/dts/k3-am642-puma-u-boot.dtsi
    similarity index 100%
    rename from board-support/u-boot-2021.01+gitAUTOINC+3983bffabc-g3983bffabc/arch/arm/dts/k3-am642-evm-u-boot.dtsi
    rename to board-support/u-boot-2021.01+gitAUTOINC+3983bffabc-g3983bffabc/arch/arm/dts/k3-am642-puma-u-boot.dtsi
    diff --git a/board-support/u-boot-2021.01+gitAUTOINC+3983bffabc-g3983bffabc/arch/arm/dts/k3-am642-r5-evm.dts b/board-support/u-boot-2021.01+gitAUTOINC+3983bffabc-g3983bffabc/arch/arm/dts/k3-am642-r5-evm.dts
    index 5d2d74cc4..f7df5104d 100644
    --- a/board-support/u-boot-2021.01+gitAUTOINC+3983bffabc-g3983bffabc/arch/arm/dts/k3-am642-r5-evm.dts
    +++ b/board-support/u-boot-2021.01+gitAUTOINC+3983bffabc-g3983bffabc/arch/arm/dts/k3-am642-r5-evm.dts
    @@ -302,4 +302,4 @@
            u-boot,dm-spl;
     };
     
    -#include "k3-am642-evm-u-boot.dtsi"
    +#include "k3-am642-puma-u-boot.dtsi"

    Let us know if the above changes works for you.

    Regards,

    Prashant

  • Hello Prashant

    Thanks, now it works ;) But why this name must be structured like this? Previously file was named "puma-u-boot.dtsi" and it wasn't work.

  • Hello Jakub,

    The reason is the behavior of U-Boot. U-Boot derives the filename of u-boot.dtsi according to some rules and it is explained in the below link

    https://u-boot.readthedocs.io/en/latest/develop/devicetree/control.html#adding-tweaks-for-u-boot

    For our case, the basename of u-boot.dtsi comes from CONFIG_DEFAULT_DEVICE_TREE. So, accordingly the filename must be <CONFIG_DEFAULT_DEVICE_TREE>-u-boot.dtsi

    This same rules of deriving the file name can be seen in our SDK also

    Regards,

    Prashant

  • Ok, thanks for explanation. One more question: Should I edit k3-am642-evm-binman.dtsi file to add some references to custom device tree e.g. fdt and conf nodes? In this file I can see that there is a lot of references to k3-am642-sk,k3-am642-evm device trees and their counterparts for spl.

    #ifdef CONFIG_TARGET_AM642_A53_EVM
    
    #define SPL_NODTB "spl/u-boot-spl-nodtb.bin"
    #define SPL_AM642_EVM_DTB "spl/dts/k3-am642-evm.dtb"
    #define SPL_AM642_SK_DTB "spl/dts/k3-am642-sk.dtb"
    
    #define UBOOT_NODTB "u-boot-nodtb.bin"
    #define AM642_EVM_DTB "arch/arm/dts/k3-am642-evm.dtb"
    #define AM642_SK_DTB "arch/arm/dts/k3-am642-sk.dtb"
    #define AM642_NAND_DTB "arch/arm/dts/k3-am642-evm-nand.dtbo"
    
    . . . 
    
    fdt-1 {
             description = "k3-am642-evm";
             type = "flat_dt";
             arch = "arm";
             compression = "none";
             ti-secure {
                    filename = SPL_AM642_EVM_DTB;
             };
          };
    
         fdt-2 {
             description = "k3-am642-sk";
             type = "flat_dt";
             arch = "arm";
            compression = "none";
             ti-secure {
                filename = SPL_AM642_SK_DTB;
            };
        };
        
        . . . 

  • Ok, thanks for explanation. One more question: Should I edit k3-am642-evm-binman.dtsi file to add some references to custom device tree e.g. fdt and conf nodes? In this file I can see that there is a lot of references to k3-am642-sk,k3-am642-evm device trees and their counterparts for spl.

    #ifdef CONFIG_TARGET_AM642_A53_EVM
    
    #define SPL_NODTB "spl/u-boot-spl-nodtb.bin"
    #define SPL_AM642_EVM_DTB "spl/dts/k3-am642-evm.dtb"
    #define SPL_AM642_SK_DTB "spl/dts/k3-am642-sk.dtb"
    
    #define UBOOT_NODTB "u-boot-nodtb.bin"
    #define AM642_EVM_DTB "arch/arm/dts/k3-am642-evm.dtb"
    #define AM642_SK_DTB "arch/arm/dts/k3-am642-sk.dtb"
    #define AM642_NAND_DTB "arch/arm/dts/k3-am642-evm-nand.dtbo"
    
    . . . 
    
    fdt-1 {
             description = "k3-am642-evm";
             type = "flat_dt";
             arch = "arm";
             compression = "none";
             ti-secure {
                    filename = SPL_AM642_EVM_DTB;
             };
          };
    
         fdt-2 {
             description = "k3-am642-sk";
             type = "flat_dt";
             arch = "arm";
            compression = "none";
             ti-secure {
                filename = SPL_AM642_SK_DTB;
            };
        };
        
        . . . 

  • Ok, thanks for explanation. One more question: Should I edit k3-am642-evm-binman.dtsi file to add some references to custom device tree e.g. fdt and conf nodes? In this file I can see that there is a lot of references to k3-am642-sk,k3-am642-evm device trees and their counterparts for spl.

    #ifdef CONFIG_TARGET_AM642_A53_EVM
    
    #define SPL_NODTB "spl/u-boot-spl-nodtb.bin"
    #define SPL_AM642_EVM_DTB "spl/dts/k3-am642-evm.dtb"
    #define SPL_AM642_SK_DTB "spl/dts/k3-am642-sk.dtb"
    
    #define UBOOT_NODTB "u-boot-nodtb.bin"
    #define AM642_EVM_DTB "arch/arm/dts/k3-am642-evm.dtb"
    #define AM642_SK_DTB "arch/arm/dts/k3-am642-sk.dtb"
    #define AM642_NAND_DTB "arch/arm/dts/k3-am642-evm-nand.dtbo"
    
    . . . 
    
    fdt-1 {
             description = "k3-am642-evm";
             type = "flat_dt";
             arch = "arm";
             compression = "none";
             ti-secure {
                    filename = SPL_AM642_EVM_DTB;
             };
          };
    
         fdt-2 {
             description = "k3-am642-sk";
             type = "flat_dt";
             arch = "arm";
            compression = "none";
             ti-secure {
                filename = SPL_AM642_SK_DTB;
            };
        };
        
        . . . 

  • Hi Jakub,

    Yes, please. If you are using custom file name, update references accordingly in the source code also.

    Regards,

    Prashant