Hi
Our customized borad uses ls1043A with 1G DDR which can boot normally,
DDR used two brands of Samsung and Skhynix.
The DDR capacity has been increased to 2G, the parameters of the DDR capacity have been modified.
But the Samsung board cannot be turned on, but the Skhynix board can be turned on.
The error log as below,
INFO: RCW BOOT SRC is QSPI
VERBOSE: Generic delay timer configured with mult=1 and div=25
INFO: RCW BOOT SRC is QSPI
VERBOSE: platform clock 400000000
VERBOSE: DDR PLL1 1600000000
VERBOSE: DDR PLL2 0
ERROR: HWCheng modified check3
INFO: Time before programming controller 0 ms
INFO: Program controller registers
VERBOSE: total size 2 GB
VERBOSE: Need to wait up to 1320 ms
ERROR: Found training error(s): 0x2000
ERROR: Error: Waiting for D_INIT timeout.
ERROR: Writing DDR register(s) failed
ERROR: Programing DDRC error
ERROR: DDR init failed
NOTICE: Incorrect DRAM0 size is defined in platfor_def.h
The error when boor abnormal in tfa-layerscape\files\plat\nxp\drivers\ddr\nxp-ddr\ddrc.c
How to know the error code?0x2000
code detail as below:
if (timeout <= 0) {
if (ddr_in32(&ddr->debug[1]) & 0x3d00) {
ERROR("Found training error(s): 0x%x\n",
ddr_in32(&ddr->debug[1]));
}
Also the error as below is 2100
https://community.nxp.com/t5/Layerscape/LS1023-DDR-init-fail-when-power-on/td-p/1325424
After changing DDR brand on your custom board, you need to modify DDR controller initialization parameters in atf/plat/nxp/soc-ls1043a/ls1043ardb/ddr_init.c.
You could download LSDK 21.08 user manual LSDKUG_Rev21.08.pdf from www.nxp.com, the refer to section "5.2.1.1 TF-A DDR Driver".
The DDR driver supports the following board level applications for DDR:
• DIMM: Driver reads SPD for configuring DDR timing parameters
• Mock DIMM: Hardcoded timing in place of reading SPD
• Discrete DDR: Driver requires a static DDR configuration to be added
You could use QCVS DDR tool to assist you to calculate and optimize DDR controller configuration parameters. Please refer to the attached QCVS DDR user manual.