
Hello Peng,
On 30.09.24 08:38, Peng Fan wrote:
Subject: i.MX8/9: question about unused DDR PHY trained CSR board array Looking at the DDR setup code for i.MX8M and i.MX9 that you had contributed, I am wondering about struct dram_cfg_param::ddrphy_trained_csr and the global ddrphy_trained_csr array.
struct dram_cfg_param::ddrphy_trained_csr is presumably generated by the i.MX DDR tool and it seems populated by all the i.MX8M/9 boards in U-Boot.
This struct member is wholly unused though and instead a global ddrphy_trained_csr is used.
What I wonder about is whether it's possible for the DDR tool to generate a different ddrphy_trained_csr than the default:
- If yes, we should drop the global ddrphy_trained_csr and actually
use the board-specific array
- If not, we should drop the board-specific array and perhaps ask for
the DDR tool to be changed
I initially assumed 1) and because all boards supported by barebox had a board-specific ddrphy_trained_csr that's identical to the global ddrphy_trained_csr, I dropped the unused array[1][2].
I now have the DDR settings for an i.MX9 LPDDR4 board in front of me that has different contents for struct dram_cfg_param::ddrphy_trained_csr than the default.
I will inquire how that came about, but in parallel I wanted to ask you if this is supposed to happen and to alert you to this issue.
Thanks for raising this issue. I think board specific csr should be used.
I will check with DDR TOOL owners on this.
Did you hear back in the meantime?
Thanks, Ahmad
The way things are, this is either a bug or a missed space saving opportunity for U-Boot.
Thanks, Peng.