[U-Boot] [PATCH v2 3/3] sunxi: add "fel" boot target

Siarhei Siamashka siarhei.siamashka at gmail.com
Wed Sep 16 03:04:54 CEST 2015


On Mon, 14 Sep 2015 15:15:30 +0200
Bernhard Nortmann <bernhard.nortmann at web.de> wrote:

> This patch makes use of the previous changes to add a new "fel" boot
> target for sunxi boards.
> 
> When booting via FEL, it's often desirable to work around the absence
> of other (usable) boot devices - or to be able to override them,
> deviating from the standard boot sequence. To achieve this, the "fel"
> boot target gets the highest priority, but won't actually do anything
> unless certain criteria are met.
> 
> The "bootcmd_fel" implementation proposed here first tests if an actual
> FEL boot takes place (using the "fel_booted" env var), and secondly
> checks that "fel_scriptaddr" was set (originating from the 'loader',
> i.e. the sunxi-tools fel utility). If both checks pass, then it will
> try to execute the boot script (boot.scr) at the given address. In case
> of an error (e.g. an invalid image), the source command might return
> "false", causing "distro_bootcmd" to proceed with the next boot target.
> 
> Signed-off-by: Bernhard Nortmann <bernhard.nortmann at web.de>
> 
> ---
> 
> Changes in v2:
> - renamed fel_data_addr to fel_scriptaddr
> - combined both tests into one as suggested by Hans de Goede
> 
>  include/configs/sunxi-common.h | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/include/configs/sunxi-common.h b/include/configs/sunxi-common.h
> index 48cc4ed..889146b 100644
> --- a/include/configs/sunxi-common.h
> +++ b/include/configs/sunxi-common.h
> @@ -423,7 +423,18 @@ extern int soft_i2c_gpio_scl;
>  #define BOOT_TARGET_DEVICES_USB(func)
>  #endif
>  
> +/* FEL boot support, auto-execute boot.scr if a script address was provided */
> +#define BOOTENV_DEV_FEL(devtypeu, devtypel, instance) \
> +	"bootcmd_fel=" \
> +		"if test -n ${fel_booted} && test -n ${fel_scriptaddr}; then " \
> +			"echo '(FEL boot)'; " \
> +			"source ${fel_scriptaddr}; " \
> +		"fi\0"
> +#define BOOTENV_DEV_NAME_FEL(devtypeu, devtypel, instance) \
> +	"fel "
> +
>  #define BOOT_TARGET_DEVICES(func) \
> +	func(FEL, fel, na) \
>  	BOOT_TARGET_DEVICES_MMC(func) \
>  	BOOT_TARGET_DEVICES_SCSI(func) \
>  	BOOT_TARGET_DEVICES_USB(func) \

Acked-by: Siarhei Siamashka <siarhei.siamashka at gmail.com>

-- 
Best regards,
Siarhei Siamashka


More information about the U-Boot mailing list