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: Timeout during frequency handshake

Part Number: TDA4VM

I used SDK8.4. In my custom board, I used the MT53E1G32D2FW-046 AUT:B as LPDDR4. But the board boot failed due to timeout during frequency handshake.

The boot log is shown as follows:

U-Boot SPL 2021.01 (Sep 06 2023 - 03:07:54 +0000)
Model: Texas Instruments K3 J721E SoC
EEPROM not available at 0x50, trying to read at 0x51
Reading on-board EEPROM at 0x51 failed 1
Board: J721EX-PM1-SOM rev E2
SYSFW ABI: 3.1 (firmware rev 0x0008 '8.4.1--v08.04.01 (Jolly Jellyfi')
EEPROM not available at 0x50, trying to read at 0x51
Reading on-board EEPROM at 0x51 failed 1
k3_lpddr4_freq_update: received freq change req: req type = 1, req no. = 0 , instance = 0

U-Boot SPL 2021.01 (Sep 06 2023 - 03:23:02 +0000)
Model: Texas Instruments K3 J721E SoC
0 0
- 0 0 'i2c@42120000'
- found
dm_i2c_probe: bus='i2c@42120000', address 50, ret=1
EEPROM not available at 0x50, trying to read at 0x51
0 0
- 0 0 'i2c@42120000'
- found
dm_i2c_probe: bus='i2c@42120000', address 51, ret=1
Reading on-board EEPROM at 0x51 failed 1
Board: J721EX-PM1-SOM rev E2
SYSFW ABI: 3.1 (firmware rev 0x0008 '8.4.1--v08.04.01 (Jolly Jellyfi')
0 0
- 0 0 'i2c@42120000'
- found
dm_i2c_probe: bus='i2c@42120000', address 50, ret=1
EEPROM not available at 0x50, trying to read at 0x51
0 0
- 0 0 'i2c@42120000'
- found
dm_i2c_probe: bus='i2c@42120000', address 51, ret=1
Reading on-board EEPROM at 0x51 failed 1
size=x, ptr=8, limit=56ea4: 41cdca9c
0 -1
0 0
- -1 -1 'esm'
- -1 -1 'ringacc@2b800000'
- -1 -1 'wkup_vtm@42040000'
- -1 -1 'esm@700000'
- not found
0 0
- -1 0 'pinctrl@4301c000'
- found
fdtdec_get_int: #power-domain-cells: x (2)
power_domain_get_by_index(dev=41c87188, power_domain=41c85abc)
fdtdec_get_int: #power-domain-cells: x (2)
ti_power_domain_of_xlate(power_domain=41c85abc, id=154)
power_domain_on(power_domain=41c85abc)
ti_power_domain_on(pd=41c85abc, id=0)
ti_lpsc_transition: transitioning psc:1, lpsc:0 to 3
psc_read: 0x103 from 42000a00
clk_set_defaults(wkup_vtm@42040000)
clk_set_default_parents: could not read assigned-clock-parents for 41c87188
ofnode_read_prop: assigned-clock-rates: <not found>
ofnode_read_u32_index: vdd-supply-2: x (34)
size=x, ptr=4, limit=56ea8: 41cdcaa4
0 -1
0 0
- -1 -1 'tps659413a@48'
- -1 -1 'tps65917@58'
- not found
0 -1
0 0
- -1 -1 'wkup-i2c0-pins-default'
- -1 -1 'mcu-fss0-hpb0-pins-default'
- -1 -1 'mcu-fss0-ospi0-pins-default'
- -1 0 'wkup_uart0_pins_default'
- found
0 1
- -1 -1 'wkup-i2c0-pins-default'
- -1 -1 'mcu-fss0-hpb0-pins-default'
- -1 -1 'mcu-fss0-ospi0-pins-default'
- -1 0 'wkup_uart0_pins_default'
- -1 -1 'mcu_uart0_pins_default'
- -1 -1 'wkup-gpio-pins-default'
- -1 -1 'mcu-fss0-ospi1-pins-default'
- -1 2 'main_uart0_pins_default'
- -1 1 'main_usbss0_pins_default'
- found
0 2
- -1 -1 'wkup-i2c0-pins-default'
- -1 -1 'mcu-fss0-hpb0-pins-default'
- -1 -1 'mcu-fss0-ospi0-pins-default'
- -1 0 'wkup_uart0_pins_default'
- -1 -1 'mcu_uart0_pins_default'
- -1 -1 'wkup-gpio-pins-default'
- -1 -1 'mcu-fss0-ospi1-pins-default'
- -1 2 'main_uart0_pins_default'
- found
0 3
- -1 -1 'wkup-i2c0-pins-default'
- -1 -1 'mcu-fss0-hpb0-pins-default'
- -1 -1 'mcu-fss0-ospi0-pins-default'
- -1 0 'wkup_uart0_pins_default'
- -1 -1 'mcu_uart0_pins_default'
- -1 -1 'wkup-gpio-pins-default'
- -1 -1 'mcu-fss0-ospi1-pins-default'
- -1 2 'main_uart0_pins_default'
- -1 1 'main_usbss0_pins_default'
- -1 -1 'main_mmc1_pins_default'
- -1 -1 'main-i2c0-pins-default'
- not found
0 0
- -1 0 'pinctrl@4301c000'
- found
clk_set_defaults(wkup-i2c0-pins-default)
clk_set_default_parents: could not read assigned-clock-parents for 41c8606c
ofnode_read_prop: assigned-clock-rates: <not found>
clk_set_defaults(tps659413a@48)
clk_set_default_parents: could not read assigned-clock-parents for 41c864bc
ofnode_read_prop: assigned-clock-rates: <not found>
0 -1
0 0
- -1 -1 'buck12'
- -1 -1 'smps12'
- -1 -1 'smps3'
- -1 -1 'smps4'
- -1 -1 'smps5'
- -1 -1 'ldo1'
- -1 -1 'ldo2'
- -1 -1 'ldo3'
- -1 -1 'ldo4'
- -1 -1 'ldo5'
- not found
0 0
- -1 0 'pinctrl@4301c000'
- found
ofnode_read_u32_index: regulator-min-microvolt: x (600000)
ofnode_read_u32_index: regulator-max-microvolt: x (900000)
ofnode_read_u32_index: regulator-init-microvolt: (not found)
ofnode_read_u32_index: regulator-min-microamp: (not found)
ofnode_read_u32_index: regulator-max-microamp: (not found)
ofnode_read_bool: regulator-always-on: true
ofnode_read_bool: regulator-boot-on: true
ofnode_read_u32_index: regulator-ramp-delay: (not found)
ofnode_find_subnode: regulator-state-mem: <none>
clk_set_defaults(buck12)
clk_set_default_parents: could not read assigned-clock-parents for 41c86538
ofnode_read_prop: assigned-clock-rates: <not found>
ofnode_read_u32_index: ti,default-opp-2: (not found)
OF: ** translation for device wkup_vtm@42040000 **
OF: bus is default (na=2, ns=2) on bus@28380000
OF: parent bus is default (na=2, ns=2) on bus@100000
OF: walking ranges...
OF: default map, cp=x, s=x, da=x
OF: default map, cp=x, s=x, da=x
OF: default map, cp=x, s=x, da=x
OF: default map, cp=x, s=x, da=x
OF: default map, cp=x, s=x, da=x
OF: default map, cp=x, s=x, da=x
OF: default map, cp=x, s=x, da=x
OF: with offset: u
OF: parent bus is default (na=2, ns=2) on
OF: walking ranges...
OF: default map, cp=x, s=x, da=x
OF: default map, cp=x, s=x, da=x
OF: default map, cp=x, s=x, da=x
OF: default map, cp=x, s=x, da=x
OF: default map, cp=x, s=x, da=x
OF: default map, cp=x, s=x, da=x
OF: default map, cp=x, s=x, da=x
OF: default map, cp=x, s=x, da=x
OF: default map, cp=x, s=x, da=x
OF: default map, cp=x, s=x, da=x
OF: default map, cp=x, s=x, da=x
OF: default map, cp=x, s=x, da=x
OF: default map, cp=x, s=x, da=x
OF: default map, cp=x, s=x, da=x
OF: default map, cp=x, s=x, da=x
OF: default map, cp=x, s=x, da=x
OF: default map, cp=x, s=x, da=x
OF: default map, cp=x, s=x, da=x
OF: default map, cp=x, s=x, da=x
OF: default map, cp=x, s=x, da=x
OF: default map, cp=x, s=x, da=x
OF: default map, cp=x, s=x, da=x
OF: default map, cp=x, s=x, da=x
OF: default map, cp=x, s=x, da=x
OF: default map, cp=x, s=x, da=x
OF: default map, cp=x, s=x, da=x
OF: with offset: u
OF: reached root node
pmic_reg_read: reg=e priv->trans_len:1i2c_xfer: 2 messages
i2c_xfer: chip=0x48, len=0x1
i2c_xfer: chip=0x48, len=0x1
, value=37, ret=0
pmic_reg_read: reg=5 priv->trans_len:1i2c_xfer: 2 messages
i2c_xfer: chip=0x48, len=0x1
i2c_xfer: chip=0x48, len=0x1
, value=2b, ret=0
pmic_reg_write: reg=e, value=41 priv->trans_len:1i2c_xfer: 1 messages
i2c_xfer: chip=0x48, len=0x2
, ret=0
size=x, ptr=d0, limit=56f78: 41cdcaa8
0 -1
0 0
- -1 -1 'memorycontroller@0298e000'
- not found
0 0
- -1 0 'pinctrl@4301c000'
- found
fdtdec_get_int: #power-domain-cells: x (2)
fdtdec_get_int: #power-domain-cells: x (2)
power_domain_get_by_index(dev=41c87d08, power_domain=41c85ab4)
fdtdec_get_int: #power-domain-cells: x (2)
ti_power_domain_of_xlate(power_domain=41c85ab4, id=47)
power_domain_on(power_domain=41c85ab4)
ti_power_domain_on(pd=41c85ab4, id=15)
ti_lpsc_transition: transitioning psc:0, lpsc:15 to 3
psc_read: 0x100 from 400a3c
psc_write: 0x103 to 400a3c
psc_write: 0x1 to 400120
psc_read: 0x1 from 400128
psc_read: 0x0 from 400128
psc_read: 0x1f03 from 40083c
power_domain_get_by_index(dev=41c87d08, power_domain=41c85ab4)
fdtdec_get_int: #power-domain-cells: x (2)
fdtdec_get_int: #power-domain-cells: x (2)
ti_power_domain_of_xlate(power_domain=41c85ab4, id=90)
power_domain_on(power_domain=41c85ab4)
ti_power_domain_on(pd=41c85ab4, id=14)
ti_lpsc_transition: transitioning psc:0, lpsc:14 to 3
psc_read: 0x100 from 400a38
psc_write: 0x103 to 400a38
psc_write: 0x1 to 400120
psc_read: 0x0 from 400128
psc_read: 0x1f03 from 400838
clk_set_defaults(memorycontroller@0298e000)
clk_set_default_parents: could not read assigned-clock-parents for 41c87d08
ofnode_read_prop: assigned-clock-rates: <not found>
k3_ddrss_probe(dev=41c87d08)
k3_ddrss_ofdata_to_priv(dev=41c87d08)
OF: ** translation for device memorycontroller@0298e000 **
OF: bus is default (na=2, ns=2) on
OF: reached root node
OF: ** translation for device memorycontroller@0298e000 **
OF: bus is default (na=2, ns=2) on
OF: reached root node
power_domain_get_by_index(dev=41c87d08, power_domain=41cdcab8)
fdtdec_get_int: #power-domain-cells: x (2)
ti_power_domain_of_xlate(power_domain=41cdcab8, id=47)
power_domain_get_by_index(dev=41c87d08, power_domain=41cdcac4)
fdtdec_get_int: #power-domain-cells: x (2)
fdtdec_get_int: #power-domain-cells: x (2)
ti_power_domain_of_xlate(power_domain=41cdcac4, id=90)
fdtdec_get_int: #clock-cells: x (2)
ti_clk_of_xlate(clk=41cdcad0, args_count=2 [0]=47 [1]=2)
clk_request(dev=41c85e34, clk=41cdcad0)
fdtdec_get_int: #clock-cells: x (2)
fdtdec_get_int: #clock-cells: x (2)
ti_clk_of_xlate(clk=41cdcaf0, args_count=2 [0]=30 [1]=9)
clk_request(dev=41c85e34, clk=41cdcaf0)
ofnode_read_u32_index: ti,ddr-freq0: x (27500000)
ofnode_read_u32_index: ti,ddr-freq1: x (1066500000)
ofnode_read_u32_index: ti,ddr-freq2: x (1066500000)
ofnode_read_u32_index: ti,ddr-fhs-cnt: x (10)
ofnode_read_bool: ti,ecc-enable: false
k3_ddrss_power_on(ddrss=41cdcaa8)
power_domain_on(power_domain=41cdcab8)
ti_power_domain_on(pd=41cdcab8, id=15)
power_domain_on(power_domain=41cdcac4)
ti_power_domain_on(pd=41cdcac4, id=14)
ofnode_read_u32_index: vtt-supply: (not found)
LPDDR4_Probe: PASS
LPDDR4_Init: PASS
ofnode_read_u32_array: ti,ctl-data: fdtdec_get_int_array: ti,ctl-data
get_prop_check_min_len: ti,ctl-data
ofnode_read_u32_array: ti,pi-data: fdtdec_get_int_array: ti,pi-data
get_prop_check_min_len: ti,pi-data
ofnode_read_u32_array: ti,phy-data: fdtdec_get_int_array: ti,phy-data
get_prop_check_min_len: ti,phy-data
clk_set_rate(clk=41cdcad0, rate=27500000)
clk_get_rate(clk=41cda5c0)
clk_get_parent_rate(clk=41cda5c0)
clk_get_parent(clk=41cda5c0)
clk_get_rate(clk=41cd9f00)
clk_get_parent_rate(clk=41cd9f00)
clk_get_parent(clk=41cd9f00)
clk_get_rate(clk=41cd7440)
clk_get_parent_rate(clk=41cd7440)
clk_get_parent(clk=41cd7440)
clk_set_rate(clk=41cda5c0, rate=27500000)
clk_get_parent_rate(clk=41cda5c0)
clk_get_parent(clk=41cda5c0)
clk_get_rate(clk=41cda5c0)
clk_get_parent_rate(clk=41cda5c0)
clk_get_parent(clk=41cda5c0)
ti_clk_set_rate: clk=hsdiv0_16fft_main_12_hsdivout0_clk, div=1, rate=27500000, new_rate=20000000, diff=7500000
clk_get_parent_rate(clk=41cda5c0)
clk_get_parent(clk=41cda5c0)
clk_set_rate(clk=41cda5c0, rate=47500000)
clk_get_parent_rate(clk=41cda5c0)
clk_get_parent(clk=41cda5c0)
clk_get_rate(clk=41cda5c0)
clk_get_parent_rate(clk=41cda5c0)
clk_get_parent(clk=41cda5c0)
ti_clk_set_rate: Using better rate 20000000 that gives diff 7500000
--->>> LPDDR4 Initialization is in progress ... <<<---
k3_lpddr4_freq_update: received freq change req: req type = 1, req no. = 0 , instance = 0
clk_set_rate(clk=41cdcad0, rate=1066500000)
clk_get_rate(clk=41cda5c0)
clk_get_parent_rate(clk=41cda5c0)
clk_get_parent(clk=41cda5c0)
clk_set_rate(clk=41cda5c0, rate=1066500000)
clk_get_parent_rate(clk=41cda5c0)
clk_get_parent(clk=41cda5c0)
clk_get_rate(clk=41cda5c0)
clk_get_parent_rate(clk=41cda5c0)
clk_get_parent(clk=41cda5c0)
ti_clk_set_rate: clk=hsdiv0_16fft_main_12_hsdivout0_clk, div=1, rate=1066500000, new_rate=20000000, diff=1046500000
ti_clk_set_rate: propagating rate change to parent, rate=1066500000.
clk_get_parent(clk=41cda5c0)
ti_clk_set_rate: pll_tgt=2133000000, rate=1066500000, div=2
clk_set_rate(clk=41cd9f00, rate=2133000000)
clk_get_parent_rate(clk=41cd9f00)
clk_get_parent(clk=41cd9f00)
ti_pll_clk_set_rate(clk=41cd9f00, rate=2133000000)
clk_get_parent_rate(clk=41cd9f00)
clk_get_parent(clk=41cd9f00)
ti_pll_clk_set_rate: pre-frac-calc: rate=2133000000, parent_freq=20000000, plld=20, pllm=2133
ti_pll_clk_set_rate: pllm=106, plld=1, pllfm=10905191, parent_freq=20000000
clk_set_rate(clk=41cda5c0, rate=1066500000)
clk_get_parent_rate(clk=41cda5c0)
clk_get_parent(clk=41cda5c0)
clk_get_rate(clk=41cd9f00)
clk_get_parent_rate(clk=41cd9f00)
clk_get_parent(clk=41cd9f00)
clk_get_rate(clk=41cda5c0)
clk_get_parent_rate(clk=41cda5c0)
clk_get_parent(clk=41cda5c0)
Timeout during frequency handshake

  • Hi,

    Initial Questions:

    1. Is this a new board design and you are performing initial board bring-up, or is this an existing design that was previously working?
    2. How many boards show the issue? (raw count + percentage)
    3. After the issue occurs, can you please run the attached binary (loads from JTAG / CCS and R5 core) and provide the output? tda4x_lp4_debug.zip
    4. Was the latest register configuration tool used to generate register settings (latest is currently v0.10.0 on ti.com)? https://www.ti.com/lit/pdf/spracu8 
      1. Can you also please provide the register config file being used?
    5. Does the issue still occur if reducing the frequency to a slower rate?
    6. Were the layout / routing guidelines followed? https://www.ti.com/lit/pdf/spracn9 

    Regards,
    Kevin

  • Hi Kevin, thanks for your reply.

    1. We have five sample boards. Only one board occurs this problem, but this board can work previously.

    2. 1 board occurs this problem, the other two work normally.

    3. Sorry, we don't have the relevant emulator to use CCS. Can you tell me which emulator we can buy?

    4. I don't use the register configuration tool to generate register settings. The register settings is same as the official release sdk(k3-j721e-ddr-evm-lp4-4266.dtsi).

    5. We reduce the frequency to 3372, but it still occurs. 

    6. Yes.

    Regards,

    Bin

  • Hi Bin,

    Only one board occurs this problem, but this board can work previously.

    Is the board consistently failing now (every boot attempt)? Do you think it is possible the board could have been damaged? 

    1 board occurs this problem, the other two work normally.

    You previously mentioned 5 boards, but here mention 1 is not working and 2 are working. Have the other 2 boards not been tested?

    Sorry, we don't have the relevant emulator to use CCS

    Do you use something different to connect to the cores over JTAG?

    Can you tell me which emulator we can buy?

    The TI TDA4VM EVM has on-board XDS110, which is good enough to run the binary I provided. I have never used an external XDS110 emulator to interface to TDA4VM, but I believe this should be OK. https://www.ti.com/tool/TMDSEMU110-U 

    XDS560v2 may give more debugging capability, and is linked on the TDA4VM product page. https://www.ti.com/tool/TMDSEMU560V2STM-U 

    Please double check the connector on your board to make sure the product you select can connect.

    I don't use the register configuration tool to generate register settings. The register settings is same as the official release sdk(k3-j721e-ddr-evm-lp4-4266.dtsi).

    Ok, thanks.

    We reduce the frequency to 3372, but it still occurs. 

    3372 or 3732? Either way, it doesn't appear to be a marginal fail if reducing the data rate to either of these frequencies did not improve the results. Given that only 1 board is failing, it seems possible that the issue is not related to the configuration or design; however, the sample size is still very small.

    If you have additional boards you can test, that would be helpful. The data from the binary previously provided would also help further understand approximately where the device is failing during DDR init.

    Regards,
    Kevin