cancel
Showing results for 
Search instead for 
Did you mean: 

LPDDR4 PHY Training Failure on STM32MP257F Platform

Aks
Associate III
Dear Sir /Mam
We are currently working with LPDDR4 (MT53E512M32D1ZW-046 WT:B) on our platform. To validate our setup, we used the DDR firmware code available at STM32DDRFW-UTIL, which provides drivers for LPDDR4 (MT53E1GD2FW-046 WT:C).
During our testing on the STM32MP257F-DK board, the DDR tests pass successfully with the MT53E1GD2FW-046 WT:C configuration. However, when we run the same code with the MT53E512M32D1ZW-046 WT:B device, the PHY training fails.
We would like to clarify the following points:
  1. Can the same DDR firmware and PHY training code be reused across both devices, given their differences in density and die configuration?
  2. We are attaching the register initialisation file for DDRCTRL and DDRPHYC used in our setup(stm32mp2xx-lpddr4-1x32Gbits-1x32bits-template.h )and phy training is mentioned in stm32mp2xx_hal_ddr_ddrphy_firmware_ddr_pmu_train.c. Could you confirm what exactly is written into the PHY training phase?
  3. The STM32MP25 reference manual states that the DDR initialisation sequence and training firmware are provided automatically through STM32CubeMX, based on user configuration inputs. However, after generating code via CubeMX, we only found the stm32mp25-mx.dts(We renamed the file while attaching as .dtsi is not supported) file containing register values, and no explicit DDR PHY training firmware was visible. Could you clarify where this firmware is located or how it is integrated?
System Setup Summary:
  • Board: STM32MP257F-DK (Rev. [please insert revision])
  • DDR Device:
    • Working: MT53E1GD2FW-046 WT:C (1Gb x32, 2-die)
    • Failing: MT53E512M32D1ZW-046 WT:B (512Mb x32, 1-die)
  • DDR Frequency: 1200 MHz
  • DDR Tool/Firmware: STM32DDRFW-UTIL from GitHub repository linked above
  • Test Outcome: Pass with MT53E1GD2FW, PHY training failure with MT53E512M32D1ZW
We would appreciate your guidance on resolving the PHY training failure for the MT53E512M32D1ZW-046 WT:B device, so that we can proceed with our development.
Thank you for your support.
4 REPLIES 4
PatrickF
ST Employee

Hi @Aks 

memory seems different,
MT53E512M32D1ZW-046 WT:B  is a 16Gbit single-die dual-channel Z42M (older).

PatrickF_0-1760374274561.png

 


the MT53E1G32D2FW-046 WT:C is a 32Gbit dual-die dual-channel Z42N (more recent).

PatrickF_1-1760374294001.png

 


There is certainly some difference in the settings, please check respective datasheet and AN5723

Regards.

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.

Hi @PatrickF 

 

Thank you for the response.We would like to know what exactly is written in the phy training firmware.Why does it return error and what kind of error stages can we expect when phy training fails.

 

Thanks & Regards

Akshitha Pattem

Hi @Aks 

the PHY training FW is a microcode loaded inside PHY (which embed a buried microprocessor for the training phase) and FW is only provided in binary format. We did not have source of it (provided by Synopsis for their PHY IP).

https://github.com/STMicroelectronics/stm32-ddr-phy-binary

https://github.com/STMicroelectronics/STM32DDRFW-UTIL/blob/main/Drivers/STM32MP2xx_HAL_Driver/Src/stm32mp2xx_hal_ddr_ddrphy_firmware_ddr_pmu_train.c 

 

I quickly checked the stm32mp25-mx.dts  Vs the one generated by CubeMX 6.15.0 for an LPDDR4 32bits 2x8Gbit and I see a discrepancy on DDR_UIA_WDQSEXT value.

Worth to check this.

Regards.

 

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.

Hi @PatrickF 

Thank you for the response.I would check with the suggestion you have mentioned and update you regarding it.

 

Thanks & regards

Akshitha Pattem