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.

SK-TDA4VM: EEPROM image / CPLD pin assignment

Part Number: SK-TDA4VM

Dear experts

1)

I wonder what happens if there is no image on EEPROM in SK-TDA4VM.

2)

Could you provide EEPROM image file ?

3) 
Could you provide spread sheet for CPLD in SK-TDA4VM that describes default pull up or pulled down pin assignment?

  • Hi Jaecheon,

    1) I would recommend referencing this E2E: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1094199/tda4vm-eeprom-data-for-tda4-evm

    2) I would recommend referencing the SK-TDA4VM user guide: https://www.ti.com/lit/ug/spruj21d/spruj21d.pdf. Particularly, section "4.5 Identification EEPROM" which I have screenshotted and copied below for convenience:

    3) The CPLD content is included in the zip file under "Design files" on the SK-TDA4VM purchase page: https://www.ti.com/tool/SK-TDA4VM. I will also link the direct link on the SK-TDA4VM for convenience: https://www.ti.com/lit/zip/sprr438. The file named "top_cpld.v" has the content that is programmed into the CPLD.

    Regards,

    Takuma

  • Thanks for your kindness.

    Actually I have the file named "top_cpld.v".

    But this file doesn't seem to include these information as I call it "spread sheet" of CPLD.  

    a pin assignment of each pins (I/O physical connection number) 
    a I/O level of each pins (such as LVCMOS33)
    a Pull mode of each pins (such as pull down / pull up)
    a Drive strength of each pins 

    I want to be shared how SK-TDA4VM CPLD defined and set those things. 

  • I got rid of EEPROM at SK-TDA4VM.

    But it doesn't seem to booting well, (I attached boot log as well)

    We want to get fid of EEPROM from our sample board. 

    How can we skip EEPROM ? please share us. 


    U-Boot SPL 2023.04 (May 23 2024 - 09:30:47 +0900)
    SYSFW ABI: 3.1 (firmware rev 0x0009 '9.1.2--v09.01.02 (Kool Koala)')
    EEPROM not available at 0x50, trying to read at 0x51
    Reading on-board EEPROM at 0x51 failed -121
    i2c_write: error waiting for data ACK (status=0x116)
    read error from device: 41c86258 register: x!
    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.9(release):v2.9.0-614-gd7a7135d32-dirty
    NOTICE:  BL31: Built : 09:34:15, Aug 24 2023
    I/TC:
    I/TC: OP-TEE version: 4.0.0 (gcc version 11.4.0 (GCC)) #1 Fri Oct 20 18:29:31 UTC 2023 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: SYSFW ABI: 3.1 (firmware rev 0x0009 '9.1.2--v09.01.02 (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 (May 23 2024 - 09:30:41 +0900)
    SYSFW ABI: 3.1 (firmware rev 0x0009 '9.1.2--v09.01.02 (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 (May 23 2024 - 09:30:41 +0900)
    
    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:  4 GiB
    i2c_write: error waiting for data ACK (status=0x116)
    pca953x gpio@22: Error reading output register
    i2c_write: error waiting for data ACK (status=0x116)
    pca953x gpio@22: Error reading output register
    Core:  126 devices, 35 uclasses, devicetree: separate
    Flash: 0 Bytes
    MMC:   mmc@4f80000: 0, 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
    i2c_write: error waiting for data ACK (status=0x116)
    pca953x gpio@22: Error reading output register
    Card did not respond to voltage select! : -110
    mmc_init: -95, time 107
    Card did not respond to voltage select! : -110
    mmc_init: -95, time 37
    i2c_write: error waiting for data ACK (status=0x116)
    pca953x gpio@22: Error reading output register
    Card did not respond to voltage select! : -110
    mmc_init: -95, time 71
    ** Bad device specification mmc 1 **
    i2c_write: error waiting for data ACK (status=0x116)
    pca953x gpio@20: Error reading output register
    i2c_write: error waiting for data ACK (status=0x116)
    pca953x gpio@22: Error reading output register
    i2c_write: error waiting for data ACK (status=0x116)
    pca953x gpio@20: Error reading output register
    i2c_write: error waiting for data ACK (status=0x116)
    pca953x gpio@20: Error reading output register
    i2c_write: error waiting for data ACK (status=0x116)
    pca953x gpio@20: Error reading output register
    GPIO: 'gpio@22_17' not found
    Command 'gpio' failed: Error -22
    i2c_write: error waiting for data ACK (status=0x116)
    pca953x gpio@20: Error reading output register
    i2c_write: error waiting for data ACK (status=0x116)
    pca953x gpio@22: Error reading output register
    i2c_write: error waiting for data ACK (status=0x116)
    pca953x gpio@20: Error reading output register
    i2c_write: error waiting for data ACK (status=0x116)
    pca953x gpio@20: Error reading output register
    i2c_write: error waiting for data ACK (status=0x116)
    pca953x gpio@20: Error reading output register
    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
    i2c_write: error waiting for data ACK (status=0x116)
    pca953x gpio@22: Error reading output register
    Card did not respond to voltage select! : -110
    mmc_init: -95, time 72
    ** Bad device specification mmc 1 **
    Couldn't find partition mmc 1:2
    Can't set block device
    i2c_write: error waiting for data ACK (status=0x116)
    pca953x gpio@22: Error reading output register
    Card did not respond to voltage select! : -110
    mmc_init: -95, time 71
    ** Bad device specification mmc 1 **
    Couldn't find partition mmc 1:2
    Can't set block device
    i2c_write: error waiting for data ACK (status=0x116)
    pca953x gpio@22: Error reading output register
    Card did not respond to voltage select! : -110
    mmc_init: -95, time 71
    ** Bad device specification mmc 1 **
    Couldn't find partition mmc 1:2
    Can't set block device
    i2c_write: error waiting for data ACK (status=0x116)
    pca953x gpio@22: Error reading output register
    Card did not respond to voltage select! : -110
    mmc_init: -95, time 72
    ** Bad device specification mmc 1 **
    Couldn't find partition mmc 1:2
    Can't set block device
    i2c_write: error waiting for data ACK (status=0x116)
    pca953x gpio@22: Error reading output register
    Card did not respond to voltage select! : -110
    mmc_init: -95, time 71
    ** Bad device specification mmc 1 **
    Couldn't find partition mmc 1:2
    Can't set block device
    i2c_write: error waiting for data ACK (status=0x116)
    pca953x gpio@22: Error reading output register
    Card did not respond to voltage select! : -110
    mmc_init: -95, time 71
    ** Bad device specification mmc 1 **
    Couldn't find partition mmc 1:2
    Can't set block device
    i2c_write: error waiting for data ACK (status=0x116)
    pca953x gpio@22: Error reading output register
    Card did not respond to voltage select! : -110
    mmc_init: -95, time 71
    ** Bad device specification mmc 1 **
    Couldn't find partition mmc 1:2
    Can't set block device
    i2c_write: error waiting for data ACK (status=0x116)
    pca953x gpio@22: Error reading output register
    Card did not respond to voltage select! : -110
    mmc_init: -95, time 71
    ** Bad device specification mmc 1 **
    Couldn't find partition mmc 1:2
    Can't set block device
    i2c_write: error waiting for data ACK (status=0x116)
    pca953x gpio@22: Error reading output register
    Card did not respond to voltage select! : -110
    mmc_init: -95, time 72
    ** Bad device specification mmc 1 **
    Couldn't find partition mmc 1:2
    Can't set block device
    i2c_write: error waiting for data ACK (status=0x116)
    pca953x gpio@22: Error reading output register
    Card did not respond to voltage select! : -110
    mmc_init: -95, time 71
    ** Bad device specification mmc 1 **
    Couldn't find partition mmc 1:2
    Can't set block device
    libfdt fdt_check_header(): FDT_ERR_BADMAGIC
    No FDT memory address configured. Please configure
    the FDT address via "fdt addr <address>" command.
    Aborting!
    Bad Linux ARM64 Image magic!
    Card did not respond to voltage select! : -110
    mmc_init: -95, time 37
    i2c_write: error waiting for data ACK (status=0x116)
    pca953x gpio@22: Error reading output register
    Card did not respond to voltage select! : -110
    mmc_init: -95, time 71
    starting USB...
    Bus usb@6400000: cdns-usb3-host usb@6400000: Unable to get USB2 phy (ret -61)
    cdns-usb3-host usb@6400000: Unable to get USB3 phy (ret -61)
    cdns-usb3-host usb@6400000: DRD version v1 (ID: 0004024e, rev: 00000200)
    Register 2000840 NbrPorts 2
    Starting the controller
    USB XHCI 1.00
    scanning bus usb@6400000 for devices... 2 USB Device(s) found
           scanning usb for storage devices... 0 Storage Device(s) found
    
    Device 0: unknown device
    k3-navss-ringacc ringacc@2b800000: Ring Accelerator probed rings:286, gp-rings[96,20] sci-dev-id:235
    k3-navss-ringacc ringacc@2b800000: dma-ring-reset-quirk: disabled
    am65_cpsw_nuss_port ethernet@46000000port@1: K3 CPSW: rflow_id_base: 2
    ethernet@46000000port@1 Waiting for PHY auto negotiation to complete......... TIMEOUT !
    am65_cpsw_nuss_port ethernet@46000000port@1: phy_startup failed
    am65_cpsw_nuss_port ethernet@46000000port@1: am65_cpsw_start end error
    missing environment variable: pxeuuid
    Retrieving file: pxelinux.cfg/01-24-76-25-a3-6a-49
    am65_cpsw_nuss_port ethernet@46000000port@1: K3 CPSW: rflow_id_base: 2
    ethernet@46000000port@1 Waiting for PHY auto negotiation to complete......... TIMEOUT !
    am65_cpsw_nuss_port ethernet@46000000port@1: phy_startup failed
    am65_cpsw_nuss_port ethernet@46000000port@1: am65_cpsw_start end error
    Retrieving file: pxelinux.cfg/00000000
    am65_cpsw_nuss_port ethernet@46000000port@1: K3 CPSW: rflow_id_base: 2
    ethernet@46000000port@1 Waiting for PHY auto negotiation to complete......... TIMEOUT !
    am65_cpsw_nuss_port ethernet@46000000port@1: phy_startup failed
    am65_cpsw_nuss_port ethernet@46000000port@1: am65_cpsw_start end error
    Retrieving file: pxelinux.cfg/0000000
    am65_cpsw_nuss_port ethernet@46000000port@1: K3 CPSW: rflow_id_base: 2
    ethernet@46000000port@1 Waiting for PHY auto negotiation to complete......... TIMEOUT !
    am65_cpsw_nuss_port ethernet@46000000port@1: phy_startup failed
    am65_cpsw_nuss_port ethernet@46000000port@1: am65_cpsw_start end error
    Retrieving file: pxelinux.cfg/000000
    am65_cpsw_nuss_port ethernet@46000000port@1: K3 CPSW: rflow_id_base: 2
    ethernet@46000000port@1 Waiting for PHY auto negotiation to complete......... TIMEOUT !
    am65_cpsw_nuss_port ethernet@46000000port@1: phy_startup failed
    am65_cpsw_nuss_port ethernet@46000000port@1: am65_cpsw_start end error
    Retrieving file: pxelinux.cfg/00000
    am65_cpsw_nuss_port ethernet@46000000port@1: K3 CPSW: rflow_id_base: 2
    ethernet@46000000port@1 Waiting for PHY auto negotiation to complete.....

  • 2) I would recommend referencing the SK-TDA4VM user guide: https://www.ti.com/lit/ug/spruj21d/spruj21d.pdf. Particularly, section "4.5 Identification EEPROM" which I have screenshotted and copied below for convenience:

    Can we write those data to an empty EEPROM?
    If it is possible. could you share command how to write on boot mode in SK-TDA4VM? 

  • Hi Jaecheon,

    There is some dependency in U-Boot and kernel for loading in the correct board information like device tree, which I think EEPROM is being used to identify the board. Theoretically, it should be possible to skip EEPROM if you change the uEnv.txt file in the boot partition to set and load in the correct environment variables and overlays. Additionally, you may need to do something similar to what a customer is doing for AM64x: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1359198/am6442-how-to-bypass-the-eeprom-checking-procedure.

    Also, it seems Linux is struggling to read EEPROM, but U-Boot can read EEPROM. While booting, press any keys to stop U-Boot and run "i2c dev 0" and "i2c md 0x51 0x0.2 0x100" to read EEPROM which should have something like:

    U-Boot 2023.04-g71b8c840ca (Nov 27 2023 - 08:55:35 +0000)
    
    SoC:   J721E SR1.1 GP
    Model: Texas Instruments J721E SK A72
    Board: J721EX-EAIK rev A1
    DRAM:  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
    Net:   eth0: ethernet@46000000port@1
    Hit any key to stop autoboot:  0
    =>  i2c dev 0
    Setting bus to 0
    =>  i2c md 0x51 0x0.2 0x100
    0000: aa 55 33 ee 01 37 00 10 2e 00 4a 37 32 31 45 58    .U3..7....J721EX
    0010: 2d 45 41 49 4b 00 00 00 00 00 41 31 30 31 31 32    -EAIK.....A10112
    0020: 30 31 41 31 00 00 30 31 30 31 32 31 32 32 00 00    01A1..01012122..
    0030: 00 00 00 00 31 33 33 32 11 02 00 60 7d fe ff ff    ....1332...`}...
    0040: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
    0050: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
    0060: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
    0070: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
    0080: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
    0090: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
    00a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
    00b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
    00c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
    00d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
    00e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
    00f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
    =>
    
    

    As for CPLD pin assignments, I would again recommend referencing top_cpld.v. However, in addition to this file, please reference PROC112B(001)_SCH.pdf file that is included in the same location as top_cpld.v file. The value of these pins depend on the hardware schematics. I see that most of the inputs are connected to the bootmode DIP switches, and some reset signals for PCIe and the SoC. The names are pretty similar between schematic and top_cpld.v such that you can map which pins connect to where, and whether they have pull up/pull down resistors, etc.

    Regards,

    Takuma