Prerequisites¶
Install stock firmware 15.00.20 or newer before using libretouch. This is the assumed starting point for every procedure in these docs.
libretouch does not replace the bootloader — installing to internal flash and the development setups all boot through the stock U-Boot. It has to be a version that can boot with a device tree, because libretouch's boot commands load one:
fatload usb 0:1 ${loadaddr} ${variant}_${module_type}.dtb && fdt addr ${loadaddr}
Bootloaders older than 15.00.20 provide neither piece:
| Stock version | Bootloader | fdt command |
${module_type} |
|---|---|---|---|
| 02.01.51 … 07.02.21 | U-Boot 2012.10 | no | no |
| 09.00.41 … 14.00.33 | U-Boot 2013.01.01 | no | no |
| 15.00.20 and later | U-Boot 2014.07-05722 | yes | yes |
The 2014.07 bootloader is unchanged from 15.00.20 all the way through 27.00.06, so any stock release in that range works equally well. If you have a choice, take the newest available for your product — with one exception, below.
Preferred stock version on lisa_scm¶
On lisa_scm boards, prefer 16.00.09, or 15.00.20 if that is what you can
get. Every release from 17.00.08 onwards is fine for running libretouch, but it
gives up something on the stock side: 16.00.09 is the last stock version whose
kernel runs the USB port as a dual-role port, and the newer ones pin it to
device-only. That is what the USB-drive route in
service access depends on,
so on 17.00.08 or later there is no way to get a shell on the stock system
without a serial console.
This is a property of the stock kernel, not of the hardware or the bootloader. libretouch brings its own device tree and runs the port as dual-role on every board, so a device already on a newer release does not need to be downgraded before installing libretouch — only before working on the stock system itself. Restoring stock firmware is how to change version if you decide you want to.
Every other variant keeps the port dual-role in all versions, so the plain "newest available" advice holds there.
Checking and updating what a device has¶
To see what is installed now, from the U-Boot prompt:
printenv nand_boot
If it contains ubifsload and fdt addr, the bootloader is new enough. If it
ends at bootm ${kloadaddr}, it is not.
On an older device, update the stock firmware first — see
the U-Boot update mechanism, which explains why that step
must use sweup uboot preserve and
where the boot method changed.