From 26b2d2c0f271c4b9a5cd4f32be280fca2bec452c Mon Sep 17 00:00:00 2001 From: Benjamin Hahn Date: Tue, 16 Jul 2024 22:11:26 -0700 Subject: include: env: phytec: Create env file for loading and applying overlays The env scripts for loading and applying overlays are identical for many PHYTEC Boards. Create a common env that can be included. The env variables bootenv_addr and fdto_addr are board specific and need to be set in the board specific file. The env variable get_cmd also needs to be set in board specific files and can be set to tftp or dhcp. Signed-off-by: Benjamin Hahn Signed-off-by: Daniel Schultz Reviewed-by: Teresa Remmet Reviewed-by: Wadim Egorov --- include/env/phytec/overlays.env | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 include/env/phytec/overlays.env (limited to 'include/env') diff --git a/include/env/phytec/overlays.env b/include/env/phytec/overlays.env new file mode 100644 index 00000000000..febb991f4f5 --- /dev/null +++ b/include/env/phytec/overlays.env @@ -0,0 +1,37 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * Copyright (C) 2024 PHYTEC Messtechnik GmbH + * Author: Benjamin Hahn + */ + +/* Logic to load and apply overlays. Load overlays from bootenv.txt into + * environment and apply those overlays. + * The variables bootenv_addr and fdto_addr are board specific. */ + +bootenv=bootenv.txt +mmc_load_bootenv=load mmc ${mmcdev}:${mmcpart} ${bootenv_addr} ${bootenv} +mmc_load_overlay=load mmc ${mmcdev}:${mmcpart} ${fdto_addr} ${overlay} +mmc_apply_overlays= + fdt address ${fdt_addr}; + if test ${no_overlays} = 0; then + for overlay in ${overlays}; + do; + if run mmc_load_overlay; then + fdt resize ${filesize}; + fdt apply ${fdto_addr}; + fi; + done; + fi; +net_load_bootenv=${get_cmd} ${bootenv_addr} ${bootenv} +net_load_overlay=${get_cmd} ${fdto_addr} ${overlay} +net_apply_overlays= + fdt address ${fdt_addr}; + if test ${no_overlays} = 0; then + for overlay in ${overlays}; + do; + if run net_load_overlay; then + fdt resize ${filesize}; + fdt apply ${fdto_addr}; + fi; + done; + fi; -- cgit v1.2.3 From 84303dc371fb37c9cbbea124cc341db9ae3162b3 Mon Sep 17 00:00:00 2001 From: Benjamin Hahn Date: Tue, 16 Jul 2024 22:11:30 -0700 Subject: include: env: phytec: renaming of variables according to bootstd doc Rename existing environment variables according to the bootstd doc. Renamed variables are fdto_addr, bootenv_addr, fdt_addr. Signed-off-by: Benjamin Hahn Signed-off-by: Daniel Schultz Reviewed-by: Wadim Egorov --- include/env/phytec/overlays.env | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'include/env') diff --git a/include/env/phytec/overlays.env b/include/env/phytec/overlays.env index febb991f4f5..78721cde654 100644 --- a/include/env/phytec/overlays.env +++ b/include/env/phytec/overlays.env @@ -6,32 +6,33 @@ /* Logic to load and apply overlays. Load overlays from bootenv.txt into * environment and apply those overlays. - * The variables bootenv_addr and fdto_addr are board specific. */ + * The variables bootenv_addr_r and fdtoverlay_addr_r are board specific. + * get_cmd can be either tftp or dhcp. */ bootenv=bootenv.txt -mmc_load_bootenv=load mmc ${mmcdev}:${mmcpart} ${bootenv_addr} ${bootenv} -mmc_load_overlay=load mmc ${mmcdev}:${mmcpart} ${fdto_addr} ${overlay} +mmc_load_bootenv=load mmc ${mmcdev}:${mmcpart} ${bootenv_addr_r} ${bootenv} +mmc_load_overlay=load mmc ${mmcdev}:${mmcpart} ${fdtoverlay_addr_r} ${overlay} mmc_apply_overlays= - fdt address ${fdt_addr}; + fdt address ${fdt_addr_r}; if test ${no_overlays} = 0; then for overlay in ${overlays}; do; if run mmc_load_overlay; then fdt resize ${filesize}; - fdt apply ${fdto_addr}; + fdt apply ${fdtoverlay_addr_r}; fi; done; fi; -net_load_bootenv=${get_cmd} ${bootenv_addr} ${bootenv} -net_load_overlay=${get_cmd} ${fdto_addr} ${overlay} +net_load_bootenv=${get_cmd} ${bootenv_addr_r} ${bootenv} +net_load_overlay=${get_cmd} ${fdtoverlay_addr_r} ${overlay} net_apply_overlays= - fdt address ${fdt_addr}; + fdt address ${fdt_addr_r}; if test ${no_overlays} = 0; then for overlay in ${overlays}; do; if run net_load_overlay; then fdt resize ${filesize}; - fdt apply ${fdto_addr}; + fdt apply ${fdtoverlay_addr_r}; fi; done; fi; -- cgit v1.2.3 From 381580e31bc53d215543088fa0ff5343efc2760d Mon Sep 17 00:00:00 2001 From: Daniel Schultz Date: Tue, 16 Jul 2024 22:11:31 -0700 Subject: include: env: phytec: Add common mmc boot for K3 SoMs This environment include can be used to boot from a MMC device for PHYTEC's K3-based SoMs. Signed-off-by: Daniel Schultz Reviewed-by: Wadim Egorov --- include/env/phytec/k3_mmc.env | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 include/env/phytec/k3_mmc.env (limited to 'include/env') diff --git a/include/env/phytec/k3_mmc.env b/include/env/phytec/k3_mmc.env new file mode 100644 index 00000000000..e1208a6eea1 --- /dev/null +++ b/include/env/phytec/k3_mmc.env @@ -0,0 +1,18 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * Copyright (C) 2024 PHYTEC Messtechnik GmbH + * Author: Daniel Schultz + */ + +/* Logic for TI K3 based SoCs to boot from a MMC device. */ + +mmcargs=setenv bootargs console=${console} earlycon=${earlycon} + root=/dev/mmcblk${mmcdev}p${mmcroot} rootwait rw +loadimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} Image +loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdt_addr_r} ${fdtfile} +mmcboot=run mmcargs; + mmc dev ${mmcdev}; + mmc rescan; + run loadimage; + run loadfdt; + booti ${loadaddr} - ${fdt_addr_r} -- cgit v1.2.3 From 59d87e6a28d2e1a7a0b064ebf21adfdcd79fe343 Mon Sep 17 00:00:00 2001 From: Daniel Schultz Date: Tue, 16 Jul 2024 22:11:32 -0700 Subject: include: env: phytec: k3_mmc: Apply overlays during boot Include the overlays.env file and run the apply routine before booting the Kernel. Signed-off-by: Daniel Schultz Reviewed-by: Wadim Egorov --- include/env/phytec/k3_mmc.env | 3 +++ 1 file changed, 3 insertions(+) (limited to 'include/env') diff --git a/include/env/phytec/k3_mmc.env b/include/env/phytec/k3_mmc.env index e1208a6eea1..3d3595ceb7e 100644 --- a/include/env/phytec/k3_mmc.env +++ b/include/env/phytec/k3_mmc.env @@ -6,6 +6,8 @@ /* Logic for TI K3 based SoCs to boot from a MMC device. */ +#include + mmcargs=setenv bootargs console=${console} earlycon=${earlycon} root=/dev/mmcblk${mmcdev}p${mmcroot} rootwait rw loadimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} Image @@ -15,4 +17,5 @@ mmcboot=run mmcargs; mmc rescan; run loadimage; run loadfdt; + run mmc_apply_overlays; booti ${loadaddr} - ${fdt_addr_r} -- cgit v1.2.3