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: tda4 uboot hang()

Part Number: TDA4VM

Dear ti,

Could use the do_reset function  in MCU R5F SPL tiboot3.bin?

static void panic_finish(void)
{
putc('\n');
#if defined(CONFIG_PANIC_HANG)
hang();
#else
udelay(100000); /* allow messages to go out */
do_reset(NULL, 0, 0, NULL);
#endif
while (1)
;
}

Thanks,

Ruijie Sun

  • Hi Sun,

    arch/arm/lib/reset.c has do_reset function defined. So MCU R5 SPL should be able to use this. Have you already tried using this?
    Let me know.

    - Keerthy

  • Hi keerthy,

    I have tryed to modify the code:

    --- a/drivers/ram/k3-ddrss/k3-ddrss.c
    +++ b/drivers/ram/k3-ddrss/k3-ddrss.c
    @@ -134,8 +134,7 @@ static void k3_lpddr4_freq_update(void)
    if (wait_for_bit_le32(ddrss->ddrss_ctrl_mmr +
    CTRLMMR_DDR4_FSP_CLKCHNG_REQ_OFFS, 0x80,
    false, 10, false)) {
    - printf("Timeout during frequency handshake\n");
    - hang();
    + panic("Timeout during frequency handshake\n");
    }
    writel(0x0, ddrss->ddrss_ctrl_mmr +
    CTRLMMR_DDR4_FSP_CLKCHNG_ACK_OFFS);

    but test failed:

    ### ERROR ### Please RESET the board ###
    resetting ...
    k3-secure-proxy secproxy@28380000: k3_sec_proxy_send: Thread8 verification failed. ret = -61
    ti_sci dmsc@44083000: ti_sci_do_xfer: Message sending failed. ret = -61
    ti_sci dmsc@44083000: Mbox send fail -61
    ti-sci-sysreset sysreset-controller: ti_sci_sysreset_request: reboot_device failed (-61)
    k3-secure-proxy secproxy@28380000: k3_sec_proxy_send: Thread8 verification failed. ret = -61
    ti_sci dmsc@44083000: ti_sci_do_xfer: Message sending failed. ret = -61
    ti_sci dmsc@44083000: Mbox send fail -61
    ti-sci-sysreset sysreset-controller: ti_sci_sysreset_request: reboot_device failed (-61)
    k3-secure-proxy secproxy@28380000: k3_sec_proxy_send: Thread8 verification failed. ret = -61
    ti_sci dmsc@44083000: ti_sci_do_xfer: Message sending failed. ret = -61
    ti_sci dmsc@44083000: Mbox send fail -61
    ti-sci-sysreset sysreset-controller: ti_sci_sysreset_request: reboot_device failed (-61)
    System reset not supported on this platform

    i dont know wheather could use do_reset function,thanks

  • but in uboot the "reset" cmd is ok

  • Dear Keerthy,

        I think Ruijie has used it. But she does not know whether she used it correctly.

    do_reset(NULL, 0, 0, NULL);

    Dear Ruijie,

         Is my understand right? Also, could you show the whole code if possible ? Did you include the right path?

    BR

    Sikai

         

  • Hi Sikai,

    i have try the do_reset function and also the panic function, both print the following the error:

    ### ERROR ### Please RESET the board ###
    resetting ...
    k3-secure-proxy secproxy@28380000: k3_sec_proxy_send: Thread8 verification failed. ret = -61
    ti_sci dmsc@44083000: ti_sci_do_xfer: Message sending failed. ret = -61
    ti_sci dmsc@44083000: Mbox send fail -61
    ti-sci-sysreset sysreset-controller: ti_sci_sysreset_request: reboot_device failed (-61)
    k3-secure-proxy secproxy@28380000: k3_sec_proxy_send: Thread8 verification failed. ret = -61
    ti_sci dmsc@44083000: ti_sci_do_xfer: Message sending failed. ret = -61
    ti_sci dmsc@44083000: Mbox send fail -61
    ti-sci-sysreset sysreset-controller: ti_sci_sysreset_request: reboot_device failed (-61)
    k3-secure-proxy secproxy@28380000: k3_sec_proxy_send: Thread8 verification failed. ret = -61
    ti_sci dmsc@44083000: ti_sci_do_xfer: Message sending failed. ret = -61
    ti_sci dmsc@44083000: Mbox send fail -61
    ti-sci-sysreset sysreset-controller: ti_sci_sysreset_request: reboot_device failed (-61)
    System reset not supported on this platform

    so i want to know weather can use the do_reset function in tiboot3.bin, for example in :

    --- a/drivers/ram/k3-ddrss/k3-ddrss.c
    +++ b/drivers/ram/k3-ddrss/k3-ddrss.c
    @@ -134,8 +134,7 @@ static void k3_lpddr4_freq_update(void)
    if (wait_for_bit_le32(ddrss->ddrss_ctrl_mmr +
    CTRLMMR_DDR4_FSP_CLKCHNG_REQ_OFFS, 0x80,
    false, 10, false)) {
    - printf("Timeout during frequency handshake\n");
    - hang();
    + panic("Timeout during frequency handshake\n"); //or do_reset(NULL, 0, 0, NULL);

    }
    writel(0x0, ddrss->ddrss_ctrl_mmr +
    CTRLMMR_DDR4_FSP_CLKCHNG_ACK_OFFS);

  • Hi,

    I believe the issue is coming because the reset for MCU R5 is not implemented. The reset command from U-boot is working fine this is because reset needs support from ATF which is not loaded at R5 SPL stage. If you get to U-boot command prompt reset is working fine as the ATF is functional.

    I believe this is for the issue: https://e2e.ti.com/support/processors-group/processors/f/791/t/1118692

    I am able to get to 3733 MTS on my EVM. Are you failing to boot all the time at 3733 MTS?

    - Keerthy

  • hi keerthy,

    yes,it is for the issue:https://e2e.ti.com/support/processors-group/processors/f/791/t/1118692

    in customer board, sometimes boot failed at 3733MTS, then hang in "Timeout during frequency handshake",

    so we want to reset the board when failed not hang, are there other ways to reset in tiboot3.bin?

    Thanks,

    Ruijie Sun

  • Hi Ruijie,

    Do you face the same issues at 4266 MTS which is the default speed? If yes then we need to check why DDR is failing at the first place.
    Are you using custom board or TI board?

    - Keerthy

  • hi Keerthy,

        the issue is found in custom board, the customer board don't hava used the 4277MTS mode,

        so we're dealing this problem and at the time we want to try the "reset"

        in tiboot3.bin, whether support other reset ways?

    Thanks,

    Ruijie Sun

  • Hi,

    Nothing that is readily tried on SDK. Before that It is better to check with it fails at 3733 MTS at the first place. Any leads on that? Does it fail always?
    Can you share the details?


    - Keerthy