Skip to main content
Version: 5.0

Custom Boot

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.

info

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:

ParameterDescription
autoinstallAutomatically install an image which has autoinstall set to true
fullscreenStart the Qt user interface in full-screen mode instead of fixed VGA size
hotplugfbAutomatically show Toradex Easy Installer on framebuffer device added at runtime (required when using DRM fbdev)
keyboard=xySelect 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.

# 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.