Search by Tags

Toradex Easy Installer - Custom Boot

 
Applicable for

Article updated at 22 Apr 2021
Compare with Revision

Subscribe for this article updates


Remember that you can always refer to the Easy Installer Documentation, there you can find a lot of relevant articles that might help you in the process of load and flashing an image on your module.

Introduction

Sometimes special boot parameters need to be passed to Toradex Easy Installer.

On all modules, the Toradex Easy Installer will boot from on-module flash, either via custom scripts (for raw NAND based devices) or using "distroboot" script on the first internal partition (for modules using eMMC).

Distro Boot is a default boot script in U-Boot which searches for a script file named boot.scr or boot.scr.uimg in the root and in the folder boot of the SD card.

If the script is present, it is loaded from the media and executed.

The regular Toradex Easy Installer zip file contains a valid boot.scr, hence it can be unpacked and moved to the root of an SD card.

Note: For more details about distroboot refer to the documentation in doc/README.distro of the U-Boot source tree.

To change the kernel boot parameter one should use the regular boot.scr file as a template.

There are some custom kernel arguments that are read by the Toradex Easy Installer:

Parameter Description
autoinstall Automatically install an image which has autoinstall set to true
fullscreen Start the Qt user interface in full-screen mode instead of fixed VGA size
hotplugfb Automatically show Toradex Easy Installer on framebuffer device added at runtime (required when using DRM fbdev)
keyboard=xy Select keyboard layout

Custom Script For Capacitive Multi-touch 7"

This is an example of a boot script which uses fdt commands to dynamically customize the device tree.

In this particular example the already existing but disabled node atmel_mxt_ts is enabled by setting the status property to true.

Since Toradex Easy Installer makes use of a FIT image, which contains kernel, device tree and the rootfs (squashfs), bootm start need to be used to split the booting using FIT image into two parts so that the device tree can be altered in between.

boot.cmd
# Set timings for 7" multitouch
setenv bootargs console=ttymxc0,115200 quiet video=mxcfb0:dev=lcd,FusionF07A,if=RGB666 rootfstype=squashfs root=/dev/ram autoinstall fullscreen ${teziargs}
 
# Reenable fdt relocation since in place fdt edits corrupt the ramdisk
# in a FIT image...
setenv fdt_high
 
# Load FIT image from location as detected by distroboot
load ${devtype} ${devnum}:${distro_bootpart} ${ramdisk_addr_r} ${prefix}tezi.itb
 
bootm start ${ramdisk_addr_r} && bootm loados && bootm ramdisk && bootm fdt
 
# Enable capacitive multitouch driver
fdt set /soc/aips-bus@02100000/i2c@021a8000/atmel_mxt_ts@4a status okay
 
bootm prep && bootm go

Then create a U-Boot script image:

mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "Distro boot script" -d boot.cmd boot.scr

This script placed into the root of an SD card, alongside the Toradex Easy Installer for Colibri iMX6 binaries, will make sure that the Toradex Easy Installer is properly displayed and touch-enabled when using the Capacitive Multi-touch 7" display.

Creating an extra MTD partition on raw NAND Flash

For creating an extra MTD partition you need to pass the new partition as boot parameters for the kernel:

mtdparts=gpmi-nand:512k(mx6ull-bcb),1536k(u-boot1),1536k(u-boot2),1024k(splash),512k(u-boot-env),-(ubi)

This can be done by changing the files boot.scr and boot.sdp.scr.