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

Stefano Babic sbabic at denx.de
Fri Jan 18 14:55:28 CET 2013


On 16/01/2013 23:33, Eric Nelson wrote:
> Hi all,
> 

Hi Eric,

> 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

Right, also if the issue (where adding rule for a single SOC or SOC
family) is marginal for this patchset.

> 
> 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)

I read the patch and your comment on ML and agree with your comment. It
seems to me that it is very tricky to add this macro to make possible to
have a single imximage.cfg file. And, as you remark, this will work now
with these set on boards, but things can be different with new SOC version.

The concept here is that the processors use a different internal base
address, and depending on this address, the macro does its work, writing
on the selected address. But again, IMHO it is tricky, and it is
strictly bound to i.MX6 when imximage is thought for all i.MX processors.

Let's say, instead of it, I prefer the solution using the preprocessor
or as you suggest, using different .cfg files for the memory configurations.

> 
> 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.

I agree on this, but then do we still need WRITE_ENTRY2() ? I miss why
we need if you use separate .cfg files.

> 
> A single include/config/nitrogen6x.h with #ifdefs should
> allow us to exclude those features (e.g. SATA) on the
> Solo and Dual-Lite.

Right, I think it is a good solution.

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================


More information about the U-Boot mailing list