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.

TDA2SX: IO delay recalibration problem - isolation hangs the processor

Part Number: TDA2SX

Hi Team!

I have custom TDA2SX  board. There are 4 VIN ports configured. I found that to meet datasheet setup/hold requrements I need to configure manual timings for each pad of VIN ports.
I found some helpful functions in SBL utils library of Processor SDK 3.07 to implement recalibration. But I need to do this at M4 core, when the library supported by A15 core only.
So I make copy of some functions to my IPU1_0 CCS project.
But when I'm trying to run recalibration I get processor hanged.

When I'm trying to debug with load symbols I see that core jump to 0xA0000000 and following console messege:
Cortex_M4_IPU1_C0: Can't Run Target CPU: (Error -1268 @ 0x1090001) Device is locked up in Hard Fault or in NMI. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 9.5.0.00143) 

It happens after Isolation command call:

    /*
     * Isolate all the IO.
     */
    HW_WR_REG32(SOC_CTRL_MODULE_CORE_CORE_PAD_REGISTERS_BASE +
                CTRL_CORE_CONTROL_PBIAS,
                0xC200000U);

    HW_WR_FIELD32(SOC_DEVICE_PRM_BASE + PRM_IO_PMCTRL,
                  PRM_IO_PMCTRL_ISOCLK_OVERRIDE,
                  PRM_IO_PMCTRL_ISOCLK_OVERRIDE_OVERRIDE);

My only assume is the M4 core does not allow to isolate IO. Am I right?

Does recalibration by SBL on A15 resolve this trouble?
If no how can I fix this problem?

Regards,
Igor

  • Some updates
    I has tryed to perform recalibration by means of SBL and got the same thing. But now I could see that SBL application infinite loops in reading isolation register status. This always returns 0.
    while ((uint32_t) 0x1U != HW_RD_FIELD32(SOC_DEVICE_PRM_BASE + PRM_IO_PMCTRL,
    PRM_IO_PMCTRL_ISOCLK_STATUS))
    {}

    What could be the reason of such behavior?

    I can also add that there is no I2C connect to PMIC in our hardware and I can't perform AVS before recalibration.
    But I am building SBL for NOR flash for TDA2XX platform and there is no AVS call and IO delay recalibration in SBL pipeline by default.
    Is it right?