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 access

Part Number: SK-TDA4VM

Tool/software:

Hi experts,

I saw EEPROM data in User manual. 


but if we dump eeprom like this, there seems no data in it.
IS IT correct access? 

root@tda4vm-sk:/opt/edgeai-gst-apps# i2cdump -f -y 0 0x51
No size specified (using byte-data access)
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
20: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
40: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
c0: ff ff ff ff ff ff ff ff ff 00 ff ff ff ff ff ff    ................
d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................


2) If there is no data in EEPROM, what happens in SK-TDA4VM?

3) Please share command to write data to EEPROM data. 

  • Hi Jaechong,

    Some repeat from our previous threads but...

    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    ................
    =>
    
    

    If you would like to write to EEPROM, then please reference following logs in which I:

    1. Read 0x100 registers starting from 0x0 from I2C address 0x51 (address of EEPROM)
    2. Write to 0x51 (EEPROM), to the register 0x0 on the EEPROM, the value of 0xab, which is length 1
    3. Read 0x100 registers again to verify the first register content changed from default 0xaa to 0xab

    =>  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    ................
    => i2c mw 0x51 0x0 0xab 1
    =>  i2c md 0x51 0x0.2 0x100
    0000: ab 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    ................
    =>  i2c md 0x51 0x0.2 0x100
    
    

    Regards,

    Takuma