Boards that with swappable RAM sticks need to read SPD data and generate useful parameters for the board's memory controller. Currently the only board that does this is the ls1046ardb. This patch series modifies and re-organizes that code so it's usable by other boards. I have used and tested this patch series on the i.MX6 and ensured the existing board still compiles. There is one API change: spd_read_eeprom now takes a memtype parameter. This is required as the current code only supports reading DDR4 chips while the i.MX6 uses DDR3 chips. John Watts (7): I2C: i.MX: Add early i2c support for i.MX6 ddr: fsl: Pass mclk_ps to ddr*_compute_dimm_parameters ddr_dimms: Move FSL dimm_params to include/ddr_dimms.h ddr: fsl: Remove includes to fsl-specific code ddr_dimms: Move ddr*_dimm_params to common ddr_dimms: Remove mclk_ps for DDR3 and DDR4 ddr_spd: Support reading SPD from DDR3 sticks arch/arm/boards/ls1046ardb/lowlevel.c | 2 +- common/Makefile | 4 + .../ddr/fsl => common}/ddr1_dimm_params.c | 13 +- .../ddr/fsl => common}/ddr2_dimm_params.c | 7 +- .../ddr/fsl => common}/ddr3_dimm_params.c | 6 +- .../ddr/fsl => common}/ddr4_dimm_params.c | 6 +- common/ddr_spd.c | 16 ++- drivers/ddr/fsl/Makefile | 4 - drivers/ddr/fsl/fsl_ddr.h | 12 -- drivers/ddr/fsl/main.c | 9 +- drivers/i2c/busses/i2c-imx-early.c | 14 +++ include/ddr_dimms.h | 114 ++++++++++++++++++ include/ddr_spd.h | 3 +- include/pbl/i2c.h | 1 + include/soc/fsl/fsl_ddr_sdram.h | 92 +------------- 15 files changed, 166 insertions(+), 137 deletions(-) rename {drivers/ddr/fsl => common}/ddr1_dimm_params.c (96%) rename {drivers/ddr/fsl => common}/ddr2_dimm_params.c (98%) rename {drivers/ddr/fsl => common}/ddr3_dimm_params.c (98%) rename {drivers/ddr/fsl => common}/ddr4_dimm_params.c (98%) create mode 100644 include/ddr_dimms.h -- 2.39.0