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