[U-Boot] i.MX6 Solo and Dual Lite

Eric Nelson eric.nelson at boundarydevices.com
Wed Jan 16 23:33:37 CET 2013


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


More information about the U-Boot mailing list