Script Bootmeth

This bootmeth provides a way to locate and run a script on a block or network device. It can also support SPI flash.

For a block device the file is read from the selected partition, which must use a supported filesystem. The subdirectory to search in is defined by the bootstd list of prefixes ({"/", "/boot"} by default) and can be adjust with the filename-prefixes property in the bootstd device.

For a network device, the filename is obtained from the boot_script_dhcp environment variable and the file is read using tftp. It must be in the top-level directory of the tftp server.

In either case (file or network), the bootmeth searches for the file and creates a bootflow if found. The bootmeth searches for “boot.scr.uimg” first, then “boot.scr” if not found.

For SPI flash, a script is read from flash using the offset provided by the “script_offset_f” environment variable.

Some attempt is made to identify the Operating System: so far this only detects an Armbian distro. For block devices, if a file called “boot.bmp” exists in the same directory then it is used as the bootflow logo.

When the bootflow is booted, the bootmeth sets these environment variables:

devtype

device type (e.g. “usb”, “mmc”, “ethernet” or “spi_flash”)

devnum

device number, corresponding to the device ‘sequence’ number dev_seq(dev)

distro_bootpart

(block devices only) partition number on the device (numbered from 1)

prefix

prefix used to find the file

mmc_bootdev

device number (same as devnum), set for sunxi mmc devices only

The script file must be a FIT or a legacy uImage. It is loaded into memory and executed.

The compatible string “u-boot,script” is used for the driver. It is present if CONFIG_BOOTMETH_SCRIPT is enabled.