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.

TDA4VM: Custom PCB's compatible device

Part Number: TDA4VM

Tool/software:

I made a custom PCB with reduced peripherals for TDA4VM referring to the Schematic of SK-TDA4VM.

The board is taking k3-j721e-common-proc-board.dtb instead of k3-j721e-sk.dtb. Basically, I missed the Device ID EEPROM (0x51) in my design.

Because of that few things are working fine, and few others are not. I am using Yocto Build Environment.
Now how can I change the default device tree to be k3-j721e-sk.dtb?
And also what are the things that would be affected by this?

  • Hi Sathiya,

    Can you share the logs? Also which SDK is being used? 

    Best Regards,

    Keerthy 

  • Hi Keerthy,

    SDK 9.2

    Here are the logs:

    U-Boot SPL 2023.04-ti-gf9b966c67473 (Mar 19 2024 - 20:31:40 +0000)
    SYSFW ABI: 3.1 (firmware rev 0x0009 '9.2.4--v09.02.04 (Kool Koala)')
    EEPROM not available at 0x50, trying to read at 0x51
    Reading on-board EEPROM at 0x51 failed -121
    Trying to boot from MMC2
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    Loading Environment from nowhere... OK
    Starting ATF on ARM64 core...
    
    NOTICE:  BL31: v2.10.0(release):v2.10.0-367-g00f1ec6b87-dirty
    NOTICE:  BL31: Built : 16:09:05, Feb  9 2024
    I/TC: 
    I/TC: OP-TEE version: 4.1.0-51-g012cdca49 (gcc version 11.4.0 (GCC)) #1 Tue Jan 30 10:48:03 UTC 2024 aarch64
    I/TC: WARNING: This OP-TEE configuration might be insecure!
    I/TC: WARNING: Please check https://optee.readthedocs.io/en/latest/architecture/porting_guidelines.html
    I/TC: Primary CPU initializing
    I/TC: GIC redistributor base address not provided
    I/TC: Assuming default GIC group status and modifier
    I/TC: SYSFW ABI: 3.1 (firmware rev 0x0009 '9.2.4--v09.02.04 (Kool Koala)')
    I/TC: HUK Initialized
    I/TC: Activated SA2UL device
    I/TC: Fixing SA2UL firewall owner for GP device
    I/TC: Enabled firewalls for SA2UL TRNG device
    I/TC: SA2UL TRNG initialized
    I/TC: SA2UL Drivers initialized
    I/TC: Primary CPU switching to normal world boot
    
    U-Boot SPL 2023.04-ti-gf9b966c67473 (Mar 19 2024 - 20:31:40 +0000)
    SYSFW ABI: 3.1 (firmware rev 0x0009 '9.2.4--v09.02.04 (Kool Koala)')
    EEPROM not available at 0x50, trying to read at 0x51
    Reading on-board EEPROM at 0x51 failed -121
    Trying to boot from MMC2
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted
    
    
    U-Boot 2023.04-ti-gf9b966c67473 (Mar 19 2024 - 20:31:40 +0000)
    
    SoC:   J721E SR1.1 GP
    Model: Texas Instruments K3 J721E SoC
    EEPROM not available at 0x50, trying to read at 0x51
    Reading on-board EEPROM at 0x51 failed -121
    Board: J721EX-PM1-SOM rev E2
    DRAM:  2 GiB (effective 4 GiB)
    Core:  121 devices, 34 uclasses, devicetree: separate
    Flash: 0 Bytes
    MMC:   mmc@4fb0000: 1
    Loading Environment from nowhere... OK
    In:    serial@2800000
    Out:   serial@2800000
    Err:   serial@2800000
    am65_cpsw_nuss ethernet@46000000: K3 CPSW: nuss_ver: 0x6BA00101 cpsw_ver: 0x6BA80100 ale_ver: 0x00293904 Ports:1 mdio_freq:1000000
    EEPROM not available at 0x50, trying to read at 0x51
    Reading on-board EEPROM at 0x51 failed -121
    Net:   eth0: ethernet@46000000port@1
    Hit any key to stop autoboot:  0 
    switch to partitions #0, OK
    mmc1 is current device
    SD/MMC found on device 1
    Failed to load 'boot.scr'
    1493 bytes read in 23 ms (62.5 KiB/s)
    Loaded env from uEnv.txt
    Importing environment from mmc1 ...
    Running uenvcmd ...
    1 bytes read in 23 ms (0 Bytes/s)
    Already setup.
    GPIO: 'gpio@22_17' not found
    Command 'gpio' failed: Error -22
    GPIO: 'gpio@22_16' not found
    Command 'gpio' failed: Error -22
    k3_r5f_rproc r5f@41000000: Core 1 is already in use. No rproc commands work
    Failed to load '/lib/firmware/j7-mcu-r5f0_1-fw'
    450240 bytes read in 44 ms (9.8 MiB/s)
    Load Remote Processor 2 with data@addr=0x82000000 450240 bytes: Success!
    322804 bytes read in 39 ms (7.9 MiB/s)
    Load Remote Processor 3 with data@addr=0x82000000 322804 bytes: Success!
    Failed to load '/lib/firmware/j7-main-r5f1_0-fw'
    Failed to load '/lib/firmware/j7-main-r5f1_1-fw'
    998192 bytes read in 67 ms (14.2 MiB/s)
    Load Remote Processor 6 with data@addr=0x82000000 998192 bytes: Success!
    998192 bytes read in 68 ms (14 MiB/s)
    Load Remote Processor 7 with data@addr=0x82000000 998192 bytes: Success!
    13504656 bytes read in 242 ms (53.2 MiB/s)
    Load Remote Processor 8 with data@addr=0x82000000 13504656 bytes: Success!
    19376640 bytes read in 789 ms (23.4 MiB/s)
    100698 bytes read in 29 ms (3.3 MiB/s)
    Working FDT set to 88000000
    10434 bytes read in 25 ms (407.2 KiB/s)
    3381 bytes read in 26 ms (127 KiB/s)
    ## Flattened Device Tree blob at 88000000
       Booting using the fdt blob at 0x88000000
    Working FDT set to 88000000
    ERROR: reserving fdt memory region failed (addr=880000000 size=27000000 flags=4)
       Loading Device Tree to 000000008fee4000, end 000000008fffffff ... OK
    Working FDT set to 8fee4000
    
    Starting kernel ...
    
    

  • Hi,

    diff --git a/board/ti/j721e/j721e.env b/board/ti/j721e/j721e.env
    index 8edbdd7a..d1e58e8c 100644
    --- a/board/ti/j721e/j721e.env
    +++ b/board/ti/j721e/j721e.env
    @@ -13,16 +13,7 @@ defined(CONFIG_TARGET_J721E_R5_EVM)
     #endif
     
     default_device_tree=ti/k3-j721e-common-proc-board.dtb
    -findfdt=
    -       setenv name_fdt ${default_device_tree};
    -       if test $board_name = j721e; then
    -               setenv name_fdt ti/k3-j721e-common-proc-board.dtb; fi;
    -       if test $board_name = BBONEAI-64-B0-; then
    -               setenv name_fdt ti/k3-j721e-beagleboneai64.dtb; fi;
    -       if test $board_name = j7200; then
    -               setenv name_fdt ti/k3-j7200-common-proc-board.dtb; fi;
    -       if test $board_name = j721e-eaik || test $board_name = j721e-sk; then
    -               setenv name_fdt ti/k3-j721e-sk.dtb; fi;
    +findfdt=setenv name_fdt ti/k3-j721e-sk.dtb; fi;
            setenv fdtfile ${name_fdt}
     name_kern=Image
     console=ttyS2,115200n8
    

    I am trying to hard code SK board. Please try and build U-Boot.img with this change & try. This should load sk dtb by default.

    - Keerthy

  • Hi keerthy,

    Will this change the U-Boot's device tree too?

  • No. Then your features are needed in Linux right?

    - Keerthy

  • Both in U-Boot and linux

  • Please confirm if Linux works well. Then let us circle back to U-Boot,

    - Keerthy

  • I can make linux work with k3-j721e-common-proc-board.dtb itself by making k3-j721e-sk.dtb's changes.

  • Sorry, the linux further booted in this log. But I am looking in the U-Boot part only

    Here are the logs:

  • Sathiya,

    U-Boot is a transient phase. As long as you are able to boot to kernel then you are should get all the desired functionality from the kernel. May i know what's the missing functionality with the U-Boot in your current setup?

    Best Regards,

    Keerthy

  • I want to configure few gpios for boot leds in the U-Boot. And one of the ethernet leds also glowing continuously from the u-boot.

  • Hi Sathiya,

    arch/arm/dts/k3-j721e-binman.dtsi

    #ifdef CONFIG_TARGET_J721E_A72_EVM
    
    #define SPL_NODTB "spl/u-boot-spl-nodtb.bin"
    #define SPL_J721E_EVM_DTB "spl/dts/k3-j721e-common-proc-board.dtb"
    #define SPL_J721E_SK_DTB "spl/dts/k3-j721e-sk.dtb"
    
    #define UBOOT_NODTB "u-boot-nodtb.bin"
    #define J721E_EVM_DTB "u-boot.dtb"
    #define J721E_SK_DTB "arch/arm/dts/k3-j721e-sk.dtb"
    

    Can you try swapping the SK with EVM?

    - Keerthy

  • Hi Keerthy,

    This worked. I just wanted to know where I can find spl/dts/k3-j721e-sk.dtb?

  • This worked. I just wanted to know where I can find spl/dts/k3-j721e-sk.dtb?

    Check here: ti-processor-sdk-linux-adas-j721e-evm-09_02_00_05/board-support/ti-u-boot-2023.04+gitAUTOINC+f9b966c674/build/a72/spl/dts

    k3-j721e-sk.dtb

    If not further questions. I am closing this thread.

    - Keerthy

  • Where is it's source code?

  • Hi Sathiya,

    U-Boot/SPL share the same dts. All nodes are default part of U-Boot dts. For SPL all the nodes with bootph-pre-ram they are included for SPL. You can check k3-j721e-sk-u-boot.dtsi. (The u-boot has all the nodes with bootph-pre-ram which enables SPL dts).

    - Keerthy

  • Hi Keerthy,

    I got the source code. I am closing this thread.