Hello everyone,
We've designed a custom board based on the LS1046A CPU using five MT40A512M16TB-062E IT:R DDR4 SDRAM chips (4 data chips + 1 ECC chip), without an SPD EEPROM on the board.
Currently, we're facing issues validating DDR memory with CodeWarrior: the DDR initialization fails during the first test ("Auto search & detect for write leveling start values") in the QCVS tool under the "Centering the clock" scenario.
The logs show the same output for `wrlvl_searcher` that is seen in the post:
DDR read/write issues custom board LS1046A
Our main suspect is incorrect DDR DQ pins mapping.
Attached are screenshots from our board schematic:
- D16A shows one of the SDRAM chips.
- D21A shows a fragment of the DDR controller in the LS1046A.
Please focus on pins DQ0–DQ15 and associated DDR_DQxx nets.
Based on "Table 15-6. Bitfield settings for each byte lane" in the LS1046A Reference Manual, our current assumption for correct mapping is:
DQ[0:3] = [3,0,2,1] (0x14)
DQ[4:7] = [7,4,6,5] (0x34)
DQ[8:11] = [3,0,2,1] (0x14)
DQ[12:15] = [7,4,6,5] (0x34)
Is this mapping correct, or should it instead look like this?
DQ[0:3] = [1,3,2,0] (0x0C)
DQ[4:7] = [5,7,6,4] (0x2C)
DQ[8:11] = [1,3,2,0] (0x0C)
DQ[12:15] = [5,7,6,4] (0x2C)
Any advice or confirmation would be greatly appreciated.
Also, can anybody explain why on LS1046AFRWY board only [0,1,2,3] mappings are used for all nibbles?
Why there is no any [4,5,6,7]?

