summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefano Viola <stefano.viola@toradex.com>2021-08-16 10:03:53 +0200
committerStefano Viola <stefano.viola@toradex.com>2021-08-20 12:22:00 +0200
commit6a8d4f758d0331ee303517618f8368ef52c9d1c7 (patch)
treeee11bc8ae9ab0ed7bc59ab0f3df62216cc583391
parentf499632b31f88dbd313fe9f742e2019c56032558 (diff)
colibri-imx8x: construct fdtfile dynamically
The following expression is used to construct the device tree name: fdtfile=${soc}-colibri-${fdt_board}.dtb - soc is set dynamically (either imx8qxp imx8dx) - fdt_board can be modified by the user (eval-V3, aster, iris/iris-V2) Related-to: ELB-2800 Signed-of-by: Stefano Viola <stefano.viola@toradex.com>
-rw-r--r--board/toradex/colibri-imx8x/colibri-imx8x.c25
-rw-r--r--configs/colibri-imx8x_defconfig2
-rw-r--r--include/configs/colibri-imx8x.h6
3 files changed, 29 insertions, 4 deletions
diff --git a/board/toradex/colibri-imx8x/colibri-imx8x.c b/board/toradex/colibri-imx8x/colibri-imx8x.c
index 5bc4fba5b9..e4e96a207e 100644
--- a/board/toradex/colibri-imx8x/colibri-imx8x.c
+++ b/board/toradex/colibri-imx8x/colibri-imx8x.c
@@ -168,6 +168,30 @@ static void init_gpio_expander(void)
#endif
}
+static void select_dt_from_module_version(void)
+{
+ switch (tdx_hw_tag.prodid) {
+ /* Select Colibri iMX8QXP device trees */
+ case COLIBRI_IMX8QXP_WIFI_BT_IT:
+ case COLIBRI_IMX8QXP_IT:
+ env_set("soc", "imx8qxp");
+ break;
+
+ /* Select Colibri iMX8DX device trees */
+ case COLIBRI_IMX8DX_WIFI_BT:
+ case COLIBRI_IMX8DX:
+ env_set("soc", "imx8dx");
+ break;
+ default:
+ printf("Unknown Colibri iMX8x module\n");
+ return;
+ }
+
+#ifndef CONFIG_ENV_IS_NOWHERE
+ env_save();
+#endif
+}
+
int board_init(void)
{
init_gpio_expander();
@@ -249,6 +273,7 @@ int board_late_init(void)
board_late_mmc_env_init();
#endif
+ select_dt_from_module_version();
return 0;
}
diff --git a/configs/colibri-imx8x_defconfig b/configs/colibri-imx8x_defconfig
index 61c17a0b0a..256159b060 100644
--- a/configs/colibri-imx8x_defconfig
+++ b/configs/colibri-imx8x_defconfig
@@ -16,6 +16,8 @@ CONFIG_DISTRO_DEFAULTS=y
CONFIG_FIT=y
CONFIG_FIT_VERBOSE=y
CONFIG_OF_SYSTEM_SETUP=y
+CONFIG_USE_PREBOOT=y
+CONFIG_PREBOOT="setenv fdtfile ${soc}-colibri-${fdt_board}.dtb"
CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/toradex/colibri-imx8x/colibri-imx8x-imximage.cfg"
CONFIG_BOOTDELAY=1
CONFIG_LOG=y
diff --git a/include/configs/colibri-imx8x.h b/include/configs/colibri-imx8x.h
index f9eece3646..13bdf3f760 100644
--- a/include/configs/colibri-imx8x.h
+++ b/include/configs/colibri-imx8x.h
@@ -1,6 +1,6 @@
/* SPDX-License-Identifier: GPL-2.0+ */
/*
- * Copyright 2019 Toradex
+ * Copyright 2019-2021 Toradex
*/
#ifndef __COLIBRI_IMX8X_H
@@ -69,8 +69,6 @@
func(DHCP, dhcp, na)
#include <config_distro_bootcmd.h>
-#define FDT_FILE "imx8qxp-colibri-eval-v3.dtb"
-
#include <config_distro_bootcmd.h>
#if defined(CONFIG_TDX_EASY_INSTALLER)
@@ -90,8 +88,8 @@
"bootcmd_mfg=fastboot 0\0" \
"console=ttyLP3,115200 earlycon=lpuart32,0x5a090000,115200\0" \
"fdt_addr=0x83000000\0" \
- "fdtfile=" FDT_FILE "\0" \
"fdt_high=\0" \
+ "fdt_board=eval-v3\0" \
"finduuid=part uuid mmc ${mmcdev}:2 uuid\0" \
"image=Image\0" \
"initrd_addr=0x83800000\0" \