[PATCH 1/3] board: phytec: phycore-imx93: Switch to standard boot

Benjamin Hahn B.Hahn at phytec.de
Fri Dec 5 10:41:29 CET 2025


Hi Primoz,
On 04.12.25 09:07, Primoz Fiser wrote:
> Enable standard boot for the phyCORE-i.MX93 board and use it as a new
> default. Add required standard boot variables to the environment, while
> removing old boot scripts and now unnecessary environment variables.
> Adjust variables according to the requirements of PHYTEC ampliphy-boot
> distro-boot. Last but not least, order environment vars by alphabet and
> run 'make savedefconfig' to resync defconfig.
>
> Signed-off-by: Primoz Fiser <primoz.fiser at norik.com>
> ---
>   arch/arm/dts/imx93-phyboard-segin-u-boot.dtsi | 16 +++++
>   board/phytec/phycore_imx93/phycore_imx93.env  | 69 ++-----------------
>   configs/imx93-phycore_defconfig               | 12 +++-
>   3 files changed, 33 insertions(+), 64 deletions(-)
>
> diff --git a/arch/arm/dts/imx93-phyboard-segin-u-boot.dtsi b/arch/arm/dts/imx93-phyboard-segin-u-boot.dtsi
> index 0c8d0ba9693f..646b617949d6 100644
> --- a/arch/arm/dts/imx93-phyboard-segin-u-boot.dtsi
> +++ b/arch/arm/dts/imx93-phyboard-segin-u-boot.dtsi
> @@ -30,6 +30,22 @@
>   		ethernet1 = &eqos;
>   	};
>   
> +	bootstd {
> +		bootph-verify;
> +		compatible = "u-boot,boot-std";
> +
> +		filename-prefixes = "/", "/boot/";
> +		bootdev-order = "mmc0", "mmc1", "ethernet";
> +
> +		rauc {
> +			compatible = "u-boot,distro-rauc";
> +		};
> +
> +		script {
> +			compatible = "u-boot,script";
> +		};
> +	};
> +
>   	firmware {
>   		optee {
>   			compatible = "linaro,optee-tz";
> diff --git a/board/phytec/phycore_imx93/phycore_imx93.env b/board/phytec/phycore_imx93/phycore_imx93.env
> index 7b0a90e64472..8a2161e4abdf 100644
> --- a/board/phytec/phycore_imx93/phycore_imx93.env
> +++ b/board/phytec/phycore_imx93/phycore_imx93.env
> @@ -1,70 +1,13 @@
>   /* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
>   
> -#include <env/phytec/rauc.env>
> -#include <env/phytec/overlays.env>
> -
> -bootcmd=
> -	mmc dev ${mmcdev};
> -	if mmc rescan; then
> -		if test ${doraucboot} = 1; then
> -			run raucinit;
> -		fi;
> -		if run loadimage; then
> -			run mmcboot;
> -		else
> -			run netboot;
> -		fi;
> -	fi;
> -image=Image
> +boot_script_dhcp=net_boot_fit.scr.uimg
> +bootcmd=bootflow scan -lb;

If you leave CONFIG_USE_BOOTCOMMAND and CONFIG_BOOTSTD_DEFAULTS 
activated, you can remove th bootcmd env variable, as standardboot will 
set it for you automatically.

Benjamin

>   console=ttyLP0
>   fdt_addr_r=0x90000000
> -fdtoverlay_addr_r=0x900c0000
> -bootenv_addr_r=0x90500000
>   fdtfile=CONFIG_DEFAULT_FDT_FILE
> +fdtoverlay_addr_r=0x900c0000
>   ip_dyn=yes
> +kernel_addr_r=0x88000000
> +nfsroot=/srv/nfs
>   prepare_mcore=setenv optargs "${optargs} clk-imx93.mcore_booted"
> -mmcdev=CONFIG_ENV_MMC_DEVICE_INDEX
> -mmcpart=1
> -mmcroot=2
> -mmcautodetect=yes
> -mmcargs=setenv bootargs console=${console},${baudrate} earlycon
> -	root=/dev/mmcblk${mmcdev}p${mmcroot} ${raucargs} rootwait rw ${optargs}
> -loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}
> -loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr_r} ${fdtfile}
> -mmcboot=
> -	echo Booting from mmc ...;
> -	if test ${no_bootenv} = 0; then
> -		if run mmc_load_bootenv; then
> -			env import -t ${bootenv_addr_r} ${filesize};
> -		fi;
> -	fi;
> -	run mmcargs;
> -	if run loadfdt; then
> -		run mmc_apply_overlays;
> -		booti ${loadaddr} - ${fdt_addr_r};
> -	else
> -		echo WARN: Cannot load the DT;
> -	fi;
> -nfsroot=/nfs
> -netargs=setenv bootargs console=${console},${baudrate} earlycon
> -	root=/dev/nfs ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp ${optargs}
> -netboot=
> -	echo Booting from net ...;
> -	run netargs;
> -	if test ${ip_dyn} = yes; then
> -		setenv get_cmd dhcp;
> -	else
> -		setenv get_cmd tftp;
> -	fi;
> -	if test ${no_bootenv} = 0; then
> -		if run net_load_bootenv; then
> -			env import -t ${bootenv_addr_r} ${filesize};
> -		fi;
> -	fi;
> -	${get_cmd} ${loadaddr} ${image};
> -	if ${get_cmd} ${fdt_addr_r} ${fdtfile}; then
> -		run net_apply_overlays;
> -		booti ${loadaddr} - ${fdt_addr_r};
> -	else
> -		echo WARN: Cannot load the DT;
> -	fi;
> +scriptaddr=0x83500000
> diff --git a/configs/imx93-phycore_defconfig b/configs/imx93-phycore_defconfig
> index 4c952e966d1a..9e8ff9b6ca90 100644
> --- a/configs/imx93-phycore_defconfig
> +++ b/configs/imx93-phycore_defconfig
> @@ -5,10 +5,10 @@ CONFIG_SYS_MALLOC_LEN=0x2000000
>   CONFIG_SYS_MALLOC_F_LEN=0x20000
>   CONFIG_SPL_LIBCOMMON_SUPPORT=y
>   CONFIG_SPL_LIBGENERIC_SUPPORT=y
> +CONFIG_ENV_SOURCE_FILE="phycore_imx93"
>   CONFIG_NR_DRAM_BANKS=2
>   CONFIG_PHYTEC_SOM_DETECTION=y
>   CONFIG_PHYTEC_EEPROM_BUS=2
> -CONFIG_ENV_SOURCE_FILE="phycore_imx93"
>   CONFIG_ENV_SIZE=0x10000
>   CONFIG_ENV_OFFSET=0x700000
>   CONFIG_IMX_CONFIG="arch/arm/mach-imx/imx9/imximage.cfg"
> @@ -33,8 +33,13 @@ CONFIG_SYS_MEMTEST_START=0x80000000
>   CONFIG_SYS_MEMTEST_END=0x90000000
>   CONFIG_REMAKE_ELF=y
>   # CONFIG_ANDROID_BOOT_IMAGE is not set
> +CONFIG_FIT=y
> +CONFIG_FIT_SIGNATURE=y
> +CONFIG_BOOTSTD_FULL=y
> +# CONFIG_BOOTSTD_DEFAULTS is not set
>   CONFIG_DISTRO_DEFAULTS=y
>   CONFIG_OF_SYSTEM_SETUP=y
> +# CONFIG_USE_BOOTCOMMAND is not set
>   CONFIG_DEFAULT_FDT_FILE="oftree"
>   CONFIG_SYS_CBSIZE=2048
>   CONFIG_SYS_PBSIZE=2074
> @@ -52,6 +57,9 @@ CONFIG_SPL_I2C=y
>   CONFIG_SPL_POWER=y
>   CONFIG_SPL_WATCHDOG=y
>   CONFIG_SYS_PROMPT="u-boot=> "
> +# CONFIG_CMD_BOOTDEV is not set
> +# CONFIG_CMD_BOOTMETH is not set
> +# CONFIG_CMD_BOOTSTD is not set
>   CONFIG_CMD_ERASEENV=y
>   CONFIG_CMD_NVEDIT_EFI=y
>   CONFIG_CRC32_VERIFY=y
> @@ -149,5 +157,7 @@ CONFIG_USB_GADGET_VENDOR_NUM=0x1fc9
>   CONFIG_USB_GADGET_PRODUCT_NUM=0x0152
>   CONFIG_CI_UDC=y
>   CONFIG_ULP_WATCHDOG=y
> +# CONFIG_RSA is not set
> +# CONFIG_SPL_SHA256 is not set
>   CONFIG_LZO=y
>   CONFIG_BZIP2=y




More information about the U-Boot mailing list