From 6a8d4f758d0331ee303517618f8368ef52c9d1c7 Mon Sep 17 00:00:00 2001 From: Stefano Viola Date: Mon, 16 Aug 2021 10:03:53 +0200 Subject: 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 --- board/toradex/colibri-imx8x/colibri-imx8x.c | 25 +++++++++++++++++++++++++ configs/colibri-imx8x_defconfig | 2 ++ include/configs/colibri-imx8x.h | 6 ++---- 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 -#define FDT_FILE "imx8qxp-colibri-eval-v3.dtb" - #include #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" \ -- cgit v1.2.3