
Hi all,
We're preparing to launch i.MX6 Solo/Dual-Lite and Dual versions of our Nitrogen6X product line.
We made a couple of stabs at patches to support these processor variants in September and October last year.
The first attempt added run-time detection using i.MX plugins: http://lists.denx.de/pipermail/u-boot/2012-September/#134442
It was soundly rejected.
The second attempt added preprocessor support to imximage in order to allow a single board definition file to be compiled for each processor variant. http://lists.denx.de/pipermail/u-boot/2012-September/#134442
We think the approach was generally agreed to based on this comment from Tom: http://lists.denx.de/pipermail/u-boot/2012-October/137611.html
And a follow-up patch from Troy: http://lists.denx.de/pipermail/u-boot/2012-October/138162.html
But things seemed to stall here: http://lists.denx.de/pipermail/u-boot/2012-November/139918.html
Troy submitted a number of other patches, including some fixes to the DDR initialization, but they were all made based on a 'preprocessorized' version of mx6q_4x_mt41j128.cfg.
Troy and I also had some discussion surrounding **how** the preprocessor was used to define the differences between processors: http://lists.denx.de/pipermail/u-boot/2012-October/136751.html
In a nutshell, the current patch set uses a set of preprocessor macros to configure things for each. For example, this macro call in the file mx6q_4x_mt41j128.cfg will write either 0x48254A36 (Quad or Dual) or 0x3F3F3035 (Dual-Lite/Solo) to register MMDC_P1_MPWRDLCTL:
WRITE_ENTRY2(MMDC_P1_MPWRDLCTL, 0x48254A36, 0x3F3F3035)
Nobody else seemed to comment on this, and it seems pretty critical.
Can we get some feedback before we prepare V2/V3 patches?
Our expectation is that we'll submit patches for each of the following configurations of Nitrogen6X:
nitrogen6q - Dual/Quad 1GB nitrogen6q2g - Dual/Quad 2GB nitrogen6solo - Solo 512MB nitrogen6duallite - Dual Lite 512MB nitrogen6solo1G - Solo 1GB nitrogen6duallite1G - Dual Lite 1GB
Our hope is that we can do this with essentially one code base but a separate .cfg file or #ifdefs for each.
A single include/config/nitrogen6x.h with #ifdefs should allow us to exclude those features (e.g. SATA) on the Solo and Dual-Lite.
Please advise,
Eric