Some recent support requests made it clear that we’ve been a bit lax in our communication about the various U-Boot versions available and the comments in i.MX6 FAQ don’t really cover the subject.
In this post, we’ll try to remedy that and hopefully direct you to the right place for your purposes.
To begin with, there are four main tracks for delivery of U-Boot sources:
- Freescale Android branch
- Freescale Linux branch
- Main-line U-Boot at denx.de
- Boundary Devices Github trees
What Freescale ships
The releases from Freescale differ between Android and non-Android linux by including or not including support for Android features.
We’ve been testing each upon their release and pushing them to branches in our u-boot-2009.08 Github repository.In general, the Android release branches are named imx-android-rx.x and the Linux branches are named LVersion.date.
For example, the releases from a couple of weeks ago are:
Freescale has supplied working configurations for SABRE Lite in each of these packages. In general, the
configuration for Android use is mx6q_sabrelite_android_config and the configuration for Linux is mx6q_sabrelite_config and the configuration for use with the Manufacturing tool is mx6q_sabrelite_mfg_config:
~/u-boot-imx6$ grep sabrelite Makefile mx6q_sabrelite_config mx6q_sabrelite_android_config mx6q_sabrelite_mfg_config : unconfig
Because the Nitrogen6X and SABRE Lite are so similar, these images will boot without modification on the Nitrogen6X.
Freescale images on Nitrogen6X
The only feature that doesn’t work out of the box on a Nitrogen6X is Ethernet. For that, you’ll need a patch like this one:
If you have a Nitrogen6X with the WiFi+Bluetooth option, you’ll also need a patch like this to set up the additional pads:
What Boundary ships
We mentioned in the FAQ that we’re currently shipping a version of U-Boot based on our boundary-imx-android-r13.2 branch.
If you browse the commit log, you’ll see that we’ve added a number of features like the hdmidetect command the bmode command, proper MII support, and support for our boot script conventions.
We’ve been adding these patches to an Android branch because many of you are using Android, but we don’t generally know at the time of manufacture or shipment what O/S will be run.
Some customers are kicking the tires on multiple Operating Systems, and Arrow FAEs are known to boot several in the course of a single meeting while discussing options.
Where we’re headed
If you’ve read more than one post on our blog, you’ve probably heard this several times. We’re planning to start shipping a main-line U-Boot.
Really. We mean it!
It’s likely that our first release of a main-line U-Boot will involves some patches outside of the tree at denx.de, but our aim will be at shipping something 100% in main-line so you can receive updates from the rest of the folks working on the project more quickly.
Our current branch of the u-boot-2009.08 release will be the last one on which we layer so many patches. From this point forward, we’ll continue to publish minimal patch sets against every Freescale release for Nitrogen6X customers, but will focus our efforts on main-line.
To that end, we just pushed two new branches:
These match the two most recent Freescale releases, with the previously-mentioned patches for Nitrogen6X.
Status of main-line
Main-line U-Boot for SABRE Lite is present and bootable. It will also run on Nitrogen6X with the same omission of networking support because of the PHY reset pin.
We’re currently in the process of putting together a post that describes the current differences in support (a gap analysis) and will publish that before we switch, but the highlights are:
- Main-line U-Boot supports device trees, but the 2009.08 release doesn’t.
- Main-line U-Boot doesn’t yet support USB OTG for Fastboot and Manufacturing tool use.
- Main-line U-Boot has many filesystem enhancements (especially ext4).
- Main-line U-Boot has functional SATA support. Our support in 2009.08 is spotty (it works for VFAT, not for ext2/3).
- Main-line U-Boot doesn’t yet support Secure boot.
Because there’s a lot of work being done by a lot of talented folks in the area of U-Boot for i.MX6, I started to use that old saying about herding cats. That’s a really bad analogy though.
The truth of the matter is that teams are working on a wide variety of uses for the i.MX6 and the customer base is really diverse. Those of you working with Android want fastboot and recovery mode, OTA updates and power management. Many embedded Linux customers are after boot security, tamper detection or performance enhancements.
The good news is that it’s likely that someone is working to get you what you’re after. A huge amount of functionality is already present for i.MX6 and more is on the way.
Stay tuned, and let us know if you have questions.