i.MX93 LPDDR4x training issue

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

i.MX93 LPDDR4x training issue

1,059 Views
ArtKl
Contributor II

Hello,

We have a custom board based on MCIMX93-EVK with 2GB LPDDR4x (Alliance Memory AS4C128M16MD4V-062BAN).

u-boot lf-6.6.23-2.0.0

We are facing SDRAM training failures at temperatures below 0°C:

U-Boot SPL 2024.04-g11f8b60b-dirty (Jan 08 2025 - 13:37:19 +0200)
SOC: 0xa1009300
LC: 0x2040010
PMIC: PCA9451A
PMIC: Over Drive Voltage Mode
enabling tvpe load switch
DDR: 3200MTS
DDRINFO: start DRAM init
DDRINFO: cfg clk
DDRINFO:ddrphy config start
DRAM PHY training for 3200MTS
[PMU Major message = 0x00000008]
PMU String index = 0x00a90000
[PMU Major message = 0x00000008]
PMU String index = 0x04020000
[PMU Major message = 0x000000ff]
Training FAILED
DRAM PHY training for 1600MTS
[PMU Major message = 0x0000000d]
[PMU Major message = 0x00000000]
[PMU Major message = 0x00000002]
[PMU Major message = 0x00000001]
[PMU Major message = 0x000000fd]
[PMU Major message = 0x000000fe]
[PMU Major message = 0x00000004]
[PMU Major message = 0x00000003]
[PMU Major message = 0x00000009]
[PMU Major message = 0x00000007]
Training PASS
DRAM PHY training for 625MTS
[PMU Major message = 0x0000000d]
[PMU Major message = 0x00000000]
[PMU Major message = 0x00000002]
[PMU Major message = 0x00000001]
[PMU Major message = 0x000000fd]
[PMU Major message = 0x000000fe]
[PMU Major message = 0x00000004]
[PMU Major message = 0x00000003]
[PMU Major message = 0x00000009]
[PMU Major message = 0x00000007]
Training PASS
DRAM PHY training for 3200MTS
[PMU Major message = 0x00000000]
[PMU Major message = 0x00000008]
PMU String index = 0x00530000
[PMU Major message = 0x00000008]
PMU String index = 0x04020000
[PMU Major message = 0x000000ff]
Training FAILED

However, using Config Tools for i.MX v16.1 training never fails even at -40°C (see attached files).

We would like to know what is the difference between training in u-boot lf-6.6.23-2.0.0 and Config Tools for i.MX v16.1. What can be an issue?

 

 

 

0 Kudos
Reply
4 Replies

1,022 Views
ArtKl
Contributor II

Don't think this is the case. We use same lpddr4x_timing.c in uboot and config tool. So the result must be the same.

0 Kudos
Reply

1,007 Views
JorgeCas
NXP TechSupport
NXP TechSupport

Hello,

For that I understood, your board is able to pass the stress test in Config Tools but is not able to pass the training when booting.

These two cases are different situations that could affect the final result, as @monica46cole mentioned, temperature could affect the signal integrity causing this behavior.

You could try to change the tunning with different settings and check if helps with your design:

ODTImpedance

Desired ODT impedance in Ohm. Valid values for DDR4=240,120,80,60,40. Valid values for DDR3L=high-impedance,120,60,40. Valid values for LPDDR4=240,120,80,60,40

TxImpedance

Write Driver Impedance for DQ/DQS in ohm (Valid values for all DDR type= 240, 120, 80, 60, 48, 40, 34)

ATxImpedance

Write Driver Impedance for Address/Command (AC) bus in ohm (Valid values for all DDR type = 120, 60, 40, 30, 24, 20)

Best regards.

0 Kudos
Reply

922 Views
ArtKl
Contributor II

Hey,

After sniffing PMIC I2C bus we managed to find out what was wrong.

Config tool and uboot were using different PMIC settings.

Long story short time.c was generated with lower VDDQ while uboot was running with higher VDDQ.

Anyways now system is running well in range of -40 ... +60

 

Thank you, case closed

1,057 Views
monica46cole
Contributor I

Temperature Sensitivity: Low temperatures affect signal integrity, causing training failures in U-Boot but not in Config Tools.

Configuration Differences: U-Boot might not be as finely tuned as Config Tools for extreme conditions.

Recommendations: Compare configurations, check signal integrity, consult documentation.
Tell Culvers com

0 Kudos
Reply