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. By setting the ip_dyn environment variable it can be decided if dynamic ip (dhcp command) or static ip (tftp command) is used for reading the file. By default dhcp is used. The file 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.