U-Boot updates for i.MX6: Single core, Dual core, 2GB DDR

Published on February 1, 2013

Archived Notice

This article has been archived and may contain broken links, photos and out-of-date information. If you have any questions, please Contact Us.

To follow up on our announcement of single-core, dual-core, and 2GB options on our Nitrogen6X boards, we've just pushed a set of code updates to the staging branch of our U-Boot GitHub repository.

The details were also sent to the U-Boot mailing list, but only as Request For Comment until we figure out how best to merge multi-CPU code into the main-line code base.

In the meantime, these patches have undergone fairly thorough testing and are ready for field tests. If you have one of these boards, please give the code base a spin when you have a chance. For that matter, if you have a standard i.MX6Quad board with the standard 1GB of DDR3, we encourage you to test the code base as well. We'll likely begin shipping boards with this code base for all devices in the next couple of weeks.

Updates to the build process

The build process has changed in a minor way. Instead of nitrogen6x_config, you'll need to select from this list:

ProcessorDDRConfiguration
i.MX6Quad/Dual1GBnitrogen6q_config
i.MX6Quad/Dual2GBnitrogen6q2g_config
i.MX6Dual-Lite1GBnitrogen6dl_config
i.MX6Dual-Lite2GBnitrogen6dl2g_config
i.MX6Solo512MBnitrogen6s_config
i.MX6Solo1GBnitrogen6s1g_config


So, to compile for an i.MX6Solo processor with 512MB of RAM, the build process will be this:

user@build:~$ git clone git://github.com/boundarydevices/u-boot-imx6.git Cloning into 'u-boot-imx6'... remote: Counting objects: 200078, done. remote: Compressing objects: 100% (36179/36179), done. remote: Total 200078 (delta 161056), reused 199999 (delta 160995) Receiving objects: 100% (200078/200078), 50.96 MiB | 1.63 MiB/s, done. Resolving deltas: 100% (161056/161056), done. user@build:~$ cd u-boot-imx6/ user@build:~/u-boot-imx6$ git checkout origin/staging -b staging Branch staging set up to track remote branch staging from origin. Switched to a new branch 'staging' user@build:~/u-boot-imx6$ export ARCH=arm user@build:~/u-boot-imx6$ export CROSS_COMPILE=arm-none-linux-gnueabi- user@build:~/u-boot-imx6$ make nitrogen6s_config Configuring for nitrogen6s - Board: nitrogen6x, Options: IMX_CONFIG=board/boundary/nitrogen6x/nitrogen6s.cfg,MX6S user@build:~/u-boot-imx6$ make all Generating include/autoconf.mk Generating include/autoconf.mk.dep ... make -C examples/api all make[1]: Entering directory `/home/user/u-boot-imx6/examples/api' make[1]: Nothing to be done for `all'. make[1]: Leaving directory `/home/user/u-boot-imx6/examples/api' user@build:~/u-boot-imx6$ ls -l u-boot.imx -rw-rw-r-- 1 user user 315128 Feb 1 12:41 u-boot.imx Note that all of the configurations generate u-boot.imx as their output and they're all programmed to offset 0x400, so the upgradeu command will work as on previous builds.

Boot scripts

No modifications are needed to boot scripts in order to use this release.

Kernel and userspaces

All of our current kernels contain support for each of these processor variants:

We've tested these against Timesys, LTIB, and Yocto userspaces. We've not yet tested Android on single processor or dual processor boards.