I have been spending some time on this, at least from the lpddr4 side. There is a good amount of this that can be abstracted out and made into general initialization routines. This is all well and good and you can see that Boundary Devices has already codified some of these values here. https://github.com/boundarydevices/u-boot-imx6/blob/boundary-v2018.07/board/boundary/nitrogen8m/ddr/ddrphy_train.c
However after you generate the script from the spreadsheet you then need to run it through a calibration routine, which is a Windows program that takes the values from the spreadsheets and runs them against the device and provides some tuned phy values based on the device. I don't see a good way to get around just having this chunk of code be a board specific function that runs the register settings that are spit out by the NXP tool. As for the initialization I am not sure how much changes depending if the board is using DDR3, DDR4 or LPDDR4. It would be great if we could come up with some general direction on this and move things forward. -Jon On Sat, Oct 27, 2018 at 7:56 PM Fabio Estevam <feste...@gmail.com> wrote: > > Hi Tim, > > On Fri, Oct 26, 2018 at 2:18 PM Tim Harvey <thar...@gateworks.com> wrote: > > > Can you point me to the NXP DDR tool for IMX8? I'm just getting > > started with the IMX8M and haven't run into it yet. DDR calibration > > was a huge pain for us for IMX6. > > You can find it here: > https://community.nxp.com/docs/DOC-340179 > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de > https://lists.denx.de/listinfo/u-boot _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot