Auto-configuration of displays for i.MX6 using a U-Boot script
Published on October 4, 2012
In the earlier blog post describing the new display support in U-Boot we described how U-Boot can natively access displays connected to a SABRE Lite or Nitrogen6X board.
We've got you covered though (at least for our current Linux kernels).
As we discussed in a prior post, those kernels expect to be passed a set of one or more video= clauses in their
kernel command-line (bootargs variable under U-Boot).
Before getting into the details, check out the result:
The video shows a sequence of three active displays followed by a sequence of two active displays, followed by a single display. The primary display is HDMI in the first boot, LVDS in the second boot, and RGB in the third. This sequence and the precise settings are made in this boot script.
In that script, you'll see two important things that we've recently added (and modified) for inclusion into the U-Boot boot loader:
- Added hdmidet command to detect HDMI monitors through the Hot Plug Detect pin.
- Updated i2c probe command to allow its' use in a script
if hdmidet ; then
... configure it in bootargs
fi
The second allows a script to ask if a particular I2C device is attached:
if i2c probe 0x04 ; then
... touch controller on Freescale display is detected
fi
If you read the first post in this series, you know that this is how we detect the other three displays.When these tools are used together, we can achieve more or less "doing the right thing" for at least a limited set of options. If you haven't experienced the power of U-Boot's command language, check out the U-Boot manual at Denx. There's a lot of power in this set of software and we encourage you to engage with and support the efforts of everyone involved.
Stay tuned. The complete sources for this version of U-Boot will be made available soon in our our GitHub repository. The patches are already making their way into the official repository through the U-Boot mailing list.