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: SBL can't boot when SK Hynix or Samsung LPDDR4 used

Part Number: TDA4VM

On our own TDA4vm board, we used samsung or SK hynix LPDDR4 chip, but during sbl boot process

it halt during DDR clock changing handshake, and the log is as below,  this does not happen every time, and the fail rate is not steady

for some boards it works well, but for some boards it fails sometimes, please help to clarify the resason, thanks

Failed to set voltage to 800 mV for Slave:0x48, Res:0x0
Initlialzing PLLs ...Failed to set the PLL clock freq at index =2

Failed to set the PLL clock freq at index =17

Failed to set the PLL clock freq at index =19

Failed to set the PLL clock freq at index =20

Failed to set the PLL clock freq at index =21

Failed to set the PLL clock freq at index =22

Failed to set the PLL clock freq at index =23

Failed to set the PLL clock freq at index =24

done.
InitlialzingClocks ...done.
version hy 0001
Initlialzing DDR ...Board_DDRProbe: PASS
Board_DDRInitDrv: PASS
--->>> LPDDR4 Initialization is in progress ... <<<---
Reg Value: 128
Frequency Change type 1 request from Controller
Reg Value: 0
Reg Value: 128
Frequency Change type 0 request from Controller
Reg Value: 0
Reg Value: 128
Frequency Change type 1 request from Controller
Reg Value: 0
Reg Value: 0
Reg Value: 0

  • Hi,

    Can you provide the following information:

    • DDR part numbers for both memories
    • What version of the XLS register config tool are you using? Can you upload your configuration files (ex: DTSI file)?
    • Have simulations been performed for both memories? (following this document: https://www.ti.com/lit/pdf/spracn9)
    • Have you verified voltages? (asking due to this line in the log "Failed to set voltage to 800 mV for Slave:0x48, Res:0x0")
    • What SDK version are you using?

    Thanks,
    Kevin

  • Hi, Please refer to the answer below

    • DDR part numbers for both memories 

    SK part is H54G56BYYPX046, please ignore samsung part as we decide not to use it.

    Micron part is MT53D1024M32D4DT-046AAT:D which has no boot issue

    • What version of the XLS register config tool are you using? Can you upload your configuration files (ex: DTSI file)?

    for Hynix register tool, we used the attach version. For micron we use the SDK code which already has micron's configurationJacinto7_DDRSS_RegConfigTool_0_5_0_sk0427.xlsm

    our simulation is based on Micron chip, but we tried to verify the SK Hynix chip to reduce cost

    • Have you verified voltages? (asking due to this line in the log "Failed to set voltage to 800 mV for Slave:0x48, Res:0x0")

    I'm sorry I don't understand meaning of this log.  0x48 is the pmic address, and the 0.8V voltage is measured fine

    • What SDK version are you using?

    SDK7.2

  • Hi,

    >>our simulation is based on Micron chip, but we tried to verify the SK Hynix chip to reduce cost

    Ok, understood. It may be a good idea to re-simulate with the SK Hynix IO models in parallel, as you might find different optimal IO settings.

    As we continue to look into this, may I ask you to perform one experiment? Can you please try making the following changes to the DTSI file. The hi-lighted values below should be “7” in current configs. Can you manually change this to “6” in following registers and let us know if this impacts the failure rate?

    • #define DDRSS_PHY_33_DATA 0x0C002006
    • #define DDRSS_PHY_289_DATA 0x0C002006
    • #define DDRSS_PHY_545_DATA 0x0C002006
    • #define DDRSS_PHY_801_DATA 0x0C002006

    Thanks,
    Kevin

  • Hi, 

    We tried this configuration,  unfortunately it doesn't work....and I think there must be some other registers that need to be quaulified.

  • Hi,

    Thanks for the update. 

    When you say "it doesn't work", does this imply no change in the behavior, or that it made the situation worse?

    I am not sure what is meant by "I think there must be some other registers that need to be quaulified". The change that was provided previously is a stand-alone change and does not impact other register settings. Can you elaborate what is meant by the statement?

    Thank you!

    Regards,
    Kevin

  • "it doesn't work" means no change in the behavior.

    "I think there must be some other registers that need to be quaulified". this statement is my guess  about his issue, which means the boot issue  mainly  due to DDR parameter optimization.

    Where we debug with TI collegue, we found that it could be fixed if the rank number was changed from 2 to 1. But we don't know why

  • Hi,

    Is this issue still open?

    You previously mentioned "for some boards it works well, but for some boards it fails sometimes, please help to clarify the resason, thanks".

    Does this imply that some boards do not have any issues when using the SKHynix memory? If so, how many boards pass and how many boards fail? 

    Has SKHynix also been looped into the discussion?

    Thanks,
    Kevin

  • only few boards are ok, and the rate may be 20%.  We also looped SK Hynix in, and they suggest to change the Vref DQ and Vref CA

    does this make sense?