env: tq: add shareable environment settings

Prepare moving boiler plate code out of board confguration header and
prepare to share a lot of things between boards.

Signed-off-by: Markus Niebel <Markus.Niebel@ew.tq-group.com>
Signed-off-by: Max Merchel <Max.Merchel@ew.tq-group.com>
This commit is contained in:
Markus Niebel
2026-03-23 14:47:31 +01:00
committed by Fabio Estevam
parent 77801f4b64
commit de27ed88b3
5 changed files with 241 additions and 0 deletions

82
include/env/tq/mmc.env vendored Normal file
View File

@@ -0,0 +1,82 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/*
* Copyright (c) 2024-2026 TQ-Systems GmbH <u-boot@ew.tq-group.com>,
* D-82229 Seefeld, Germany.
* Author: Max Merchel
*
* shared mmc environment for TQ boards
*/
addmmc=
setenv bootargs "${bootargs}"
root=/dev/mmcblk"${mmcblkdev}"p"${mmcrootpart}" "${rootfsmode}" rootwait;
get_blockcount=
setexpr blkc "${filesize}" + 0x1ff;
setexpr blkc "${blkc}" / 0x200;
load_mmc=
mmc dev "${mmcdev}"; mmc rescan;
load mmc "${mmcdev}":"${mmcpart}" "${kernel_addr_r}" /boot/"${image}";
load mmc "${mmcdev}":"${mmcpart}" "${fdt_addr_r}" /boot/"${fdtfile}";
fdt address "${fdt_addr_r}";
fdt resize 0x100000;
for overlay in "${fdt_overlays}"; do
load mmc "${mmcdev}":"${mmcpart}" "${fdtoverlay_addr_r}"
/boot/"${overlay}" && fdt apply "${fdtoverlay_addr_r}";
done;
mmcargs=run addtty addmmc
mmcboot=
echo "Booting from mmc ...";
setenv bootargs && run mmcargs &&
if run load_mmc; then
run boot_os;
else
echo "ERROR: loading from mmc";
fi;
mmcpart=2
mmc_finish_update_uboot=
mmc write "${loadaddr}" "${update_start_blk}" "${blkc}";
mmc dev "${mmcdev}" 0;
setenv update_part;
setenv update_start_blk;
setenv blkc;
mmc_prepare_update_uboot=
echo "Write U-Boot to mmc "${mmcdev}" ...";
mmc dev "${mmcdev}"; mmc rescan;
run get_blockcount;
setenv update_start_blk "${uboot_mmc_start}";
setenv update_part 0;
mmc_switch_part=
mmc partconf "${mmcdev}" update_part;
mmc dev "${mmcdev}" "${update_part}";
mmcrootpart=2
update_uboot_mmc=
run check_ipaddr;
if tftp "${uboot}"; then
run mmc_prepare_update_uboot;
if itest "${blkc}" >= "${uboot_mmc_size}"; then
echo "ERROR: size to large ...";
exit;
fi;
if itest "${mmcdev}" == "${emmc_dev}"; then
run mmc_switch_part;
if itest "${update_part}" > 0 ; then
if env exists emmc_bootp_start; then
setenv update_start_blk "${emmc_bootp_start}";
else
echo "ERROR: eMMC boot partition block unset";
exit;
fi;
fi;
fi;
run mmc_finish_update_uboot;
fi;

51
include/env/tq/nfs.env vendored Normal file
View File

@@ -0,0 +1,51 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/*
* Copyright (c) 2024-2026 TQ-Systems GmbH <u-boot@ew.tq-group.com>,
* D-82229 Seefeld, Germany.
* Author: Max Merchel
*
* shared nfs environment for TQ boards
*/
addnfs=
setenv bootargs "${bootargs}" root=/dev/nfs rw
nfsroot="${serverip}":"${rootpath}",v3,tcp
load_nfs=
nfs "${kernel_addr_r}" "${serverip}":"${rootpath}"/boot/"${image}";
nfs "${fdt_addr_r}" "${serverip}":"${rootpath}"/boot/"${fdtfile}";
fdt address "${fdt_addr_r}";
fdt resize 0x100000;
for overlay in "${fdt_overlays}"; do
nfs "${fdtoverlay_addr_r}"
"${serverip}":"${rootpath}"/boot/"${overlay}" &&
fdt apply "${fdtoverlay_addr_r}";
done;
load_tftp=
tftp "${kernel_addr_r}" "${image}";
tftp "${fdt_addr_r}" "${fdtfile}";
fdt address "${fdt_addr_r}";
fdt resize 0x100000;
for overlay in "${fdt_overlays}"; do
if tftp "${fdtoverlay_addr_r}" "${overlay}"; then
fdt apply "${fdtoverlay_addr_r}";
else
exit;
fi;
done;
netargs=run addnfs addip addtty
netloadcmd=load_tftp
nfsboot=
echo "Booting from NFS ...";
setenv bootargs;
run netargs;
run check_ipaddr;
if run ${netloadcmd}; then
run boot_os;
else
echo "ERROR: loading from NFS";
fi;

23
include/env/tq/spi.env vendored Normal file
View File

@@ -0,0 +1,23 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/*
* Copyright (c) 2024-2026 TQ-Systems GmbH <u-boot@ew.tq-group.com>,
* D-82229 Seefeld, Germany.
* Author: Max Merchel
*
* shared spi environment for TQ boards
*/
update_uboot_spi=
run check_ipaddr;
if tftp ${uboot}; then
if itest "${filesize}" >= "${uboot_spi_size}"; then
echo "ERROR: size to large ...";
exit;
fi;
echo "Write u-boot image to SPI NOR ...";
if sf probe; then
run write_uboot_spi;
fi;
fi;
write_uboot_spi=sf update "${loadaddr}" "${uboot_spi_start}" "${filesize}"

38
include/env/tq/tq-imx-shared.env vendored Normal file
View File

@@ -0,0 +1,38 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/*
* Copyright (c) 2024-2026 TQ-Systems GmbH <u-boot@ew.tq-group.com>,
* D-82229 Seefeld, Germany.
* Author: Max Merchel
*
* shared environment for TQ imx boards
*/
#ifdef CONFIG_CMD_SF
#include "spi.env"
#ifdef CONFIG_CMD_UBIFS
#include "ubi.env"
#endif /* CONFIG_CMD_UBIFS */
#endif /* CONFIG_CMD_SF */
#ifdef CONFIG_CMD_MMC
#include "mmc.env"
#endif
#ifdef CONFIG_CMD_NFS
#include "nfs.env"
#endif
addip=
run check_ipaddr;
setenv bootargs "${bootargs}"
ip="${ipaddr}":"${serverip}":"${gatewayip}":"${netmask}":"${hostname}":"${netdev}":off
addtty=setenv bootargs "${bootargs}" "${console}"
check_ipaddr=
if test -z "${ipaddr}" || test -z "${serverip}"; then
echo "ipaddr or serverip unset, falling back to DHCP...";
dhcp;
fi;
rootfsmode=ro

47
include/env/tq/ubi.env vendored Normal file
View File

@@ -0,0 +1,47 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/*
* Copyright (c) 2024-2026 TQ-Systems GmbH <u-boot@ew.tq-group.com>,
* D-82229 Seefeld, Germany.
* Author: Max Merchel
*
* shared ubi environment for TQ boards
*/
addubi=
setenv bootargs "${bootargs}" rootfstype=ubifs ubi.mtd="${ubimtdname}"
root=ubi0:"${ubirootfsvol}" "${rootfsmode}" rootwait;
load_spi=
if sf probe; then
if ubi part "${ubirootfspart}"; then
if ubifsmount ubi0:"${ubirootfsvol}"; then
ubifsload "${kernel_addr_r}" /boot/"${image}";
ubifsload "${fdt_addr_r}" /boot/"${fdtfile}";
fdt address "${fdt_addr_r}";
fdt resize 0x100000;
for overlay in "${fdt_overlays}"; do
ubifsload "${fdtoverlay_addr_r}"
/boot/"${overlay}" &&
fdt apply "${fdtoverlay_addr_r}";
done;
ubifsumount;
fi;
ubi detach;
fi;
fi
ubiargs=run addubi addtty
ubiboot=
echo "Booting from UBI ...";
setenv bootargs;
run ubiargs;
if run load_spi; then
run boot_os;
else
echo "ERROR: loading kernel";
fi;
ubimtdname=mtdname
ubirootfspart=ubi
ubirootfsvol=root