U-Boot v2016.03
Published on April 14, 2016
We've just released a new version of U-Boot based on mainline v2016.03:
For the impatient
Our build server automatically generates and uploads all the latest binaries to this address:
The README file contains the exact commit ID of this build images.
Also, the up-to-date 6x_upgrade U-Boot script is included so you can copy all the files directly to the root of your media storage.
For those not sure about which binary to download, here is a quick summary for our boards:
- u-boot.nitrogen6q for the Nitrogen6x/BD-SL-i.MX6 (Sabre-Lite) using the imx.6Q
- u-boot.nitrogen6q2g for the 2G RAM version of Nitrogen6x/Sabre-lite 6Q
- u-boot.nitrogen6_max for the Nitrogen6_MAX
- u-boot.nitrogen6qp_max for the Nitrogen6QP_MAX
- u-boot.nitrogen6q_som2_1g for the Nit6X-SoM V2
- u-boot.nit6xlite for the Nitrogen6x-Lite
- u-boot.nit6xlite1g for the Nitrogen6x-Lite with 1G RAM
- u-boot.nitrogen6sx for the Nitrogen6_SoloX
- u-boot.nitrogen7 for the Nitrogen7
What's new?
Apart from using the latest mainline version, the main addition of this version is Nitrogen7 (i.MX7) support.
Note that this Nitrogen7 platform (and only this platform) requires to use some new QSPI parameters, so make sure to copy the files named qspi-* to the root of your media along with the usual u-boot. file.
Other than that, the release brings the exact same features as our previous release v2015.07. We strongly recommend you to read our previous blog post in case you haven't read it yet:
Compilation
The usual compilation disclaimers apply for this. It is highly recommended to use the gcc-arm-linux-gnueabihf package available on Ubuntu.
~$ sudo apt-get install gcc-arm-linux-gnueabihf
First, clone our U-Boot git repository. This is the branch you'll need to compile and install to work with the new kernel.
~$ git clone https://github.com/boundarydevices/u-boot-imx6
-b boundary-v2016.03
~$ cd u-boot-imx6
Here you'll need to find and make the relevant defconfig for your board.
If you are using a U-Boot >=2015.07, then at the U-Boot prompt you can type the following to see which defconfig you should build.
=> echo $uboot_defconfig
Otherwise, to see all the defconfigs, use this command and pick the one that is right for you.
~/u-boot-imx6$ find . -name "nit*defconfig"
./configs/nitrogen6_vm1g_defconfig
./configs/nitrogen6q2g_defconfig
./configs/nitrogen6dl2g_defconfig
./configs/nitrogen6s1g_defconfig
./configs/nit6xlite_defconfig
./configs/nitrogen6q_fl_defconfig
./configs/nitrogen7_defconfig
./configs/nitrogen6q_som2_2g_defconfig
./configs/nitrogen6sx_defconfig
./configs/nitrogen6dl_defconfig
./configs/nitrogen6q_defconfig
./configs/nitrogen6s_defconfig
./configs/nitrogen6_lum_dl1_defconfig
./configs/nitrogen6_vm_defconfig
./configs/nitrogen6q_som2_1g_defconfig
./configs/nitrogen6q_som2_4g_defconfig
./configs/nit6xlite1g_defconfig
./configs/nitrogen6qp_max_defconfig
./configs/nitrogen6_max_defconfig
Now compile that defconfig, here I'll use nitrogen6q_defconfig as an example.
~/u-boot-imx6$ export ARCH=arm
~/u-boot-imx6$ export CROSS_COMPILE=arm-linux-gnueabihf-
~/u-boot-imx6$ make nitrogen6q_defconfig
~/u-boot-imx6$ make all
~/u-boot-imx6$ ./tools/mkimage -A arm -O linux -T script -C none
-a 0 -e 0 -n "update script"
-d board/boundary/nitrogen6x/6x_upgrade.txt 6x_upgrade
Now you'll have a u-boot.imx file compiled. Rename the u-boot.imx file to u-boot.{uboot_defconfig} (see below), then move that and the 6x_upgrade script to the Boot partition of the image you created (see here for instructions on creating a Fido Yocto image). Interrupt u-boot and run the u-boot commands below.
In the u-boot just built, the environment variable uboot_defconfig is defined to show which defconfig was used in the build process. Unless you're already on a 2015.07 or later u-boot, you won't have this yet, so for the 1st upgrade you need to set it manually.
You will need to rename u-boot.imx when copying to the SD card, ie.
~/u-boot-imx6/$ cp u-boot.imx /u-boot.nitrogen6q
We changed this so that the next time you upgrade, there will be little risk of accidentally using the wrong u-boot.imx file.
If your u-boot prompt is "U-boot >" then run:
Hit any key to stop autoboot: 0
U-Boot > setenv uboot_defconfig nitrogen6q
U-Boot > run upgradeu
Otherwise just run:
Hit any key to stop autoboot: 0
=> run upgradeu
This will run the 6x_upgrade script and look for a file u-boot.{uboot_defconfig} and burn it. At this point it might be worth while to clear your envionment variables, this will set you up with the default environment variables and no more.
Hit any key to stop autoboot: 0
=> env default -a
=> savee
Then as a final note, if you've somehow managed to brick your board through this process and need help. Well, we already wrote a blog post here about that topic.