]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
include: env: phytec: Create env file for loading and applying overlays
authorBenjamin Hahn <B.Hahn@phytec.de>
Wed, 17 Jul 2024 05:11:26 +0000 (22:11 -0700)
committerTom Rini <trini@konsulko.com>
Mon, 22 Jul 2024 19:47:57 +0000 (13:47 -0600)
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 <B.Hahn@phytec.de>
Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
Reviewed-by: Teresa Remmet <t.remmet@phytec.de>
Reviewed-by: Wadim Egorov <w.egorov@phytec.de>
include/env/phytec/overlays.env [new file with mode: 0644]

diff --git a/include/env/phytec/overlays.env b/include/env/phytec/overlays.env
new file mode 100644 (file)
index 0000000..febb991
--- /dev/null
@@ -0,0 +1,37 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later  */
+/*
+ * Copyright (C) 2024 PHYTEC Messtechnik GmbH
+ * Author: Benjamin Hahn <b.hahn@phytec.de>
+ */
+
+/* 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;