On 12:50-20240108, Andrew Davis wrote: > On 1/8/24 11:32 AM, Nishanth Menon wrote: > > Introduce a common fdt operations library for basic device tree > > operations that are common between various boards. > > > > The first library to introduce here is the capability to set up > > fdtfile as a standard variable as part of board identification rather > > than depend on scripted ifdeffery. > > > > Signed-off-by: Nishanth Menon <n...@ti.com> > > --- > > board/ti/common/Kconfig | 12 ++++++++ > > board/ti/common/Makefile | 1 + > > board/ti/common/fdt_ops.c | 65 +++++++++++++++++++++++++++++++++++++++ > > board/ti/common/fdt_ops.h | 41 ++++++++++++++++++++++++ > > 4 files changed, 119 insertions(+) > > create mode 100644 board/ti/common/fdt_ops.c > > create mode 100644 board/ti/common/fdt_ops.h > > > > diff --git a/board/ti/common/Kconfig b/board/ti/common/Kconfig > > index 49edd98014ab..06a8a36aa1cd 100644 > > --- a/board/ti/common/Kconfig > > +++ b/board/ti/common/Kconfig > > @@ -49,3 +49,15 @@ config TI_COMMON_CMD_OPTIONS > > imply CMD_SPI > > imply CMD_TIME > > imply CMD_USB if USB > > + > > +config TI_EVM_FDT_FOLDER_PATH > > + string "Location of Folder path where dtb is present" > > + default "ti/davinci" if ARCH_DAVINCI > > + default "ti/keystone" if ARCH_KEYSTONE > > + default "ti/omap" if ARCH_OMAP2PLUS > > + default "ti" if ARCH_K3 > > + depends on ARCH_DAVINCI || ARCH_KEYSTONE || ARCH_OMAP2PLUS || ARCH_K3 > > + help > > + Folder path for kernel device tree default. > > + This is used along with fdtfile path to locate the kernel > > + device tree blob. > > diff --git a/board/ti/common/Makefile b/board/ti/common/Makefile > > index 26bf12e2e6d5..5ac361ba7fcf 100644 > > --- a/board/ti/common/Makefile > > +++ b/board/ti/common/Makefile > > @@ -3,3 +3,4 @@ > > obj-${CONFIG_TI_I2C_BOARD_DETECT} += board_detect.o > > obj-${CONFIG_CMD_EXTENSION} += cape_detect.o > > +obj-${CONFIG_OF_LIBFDT} += fdt_ops.o > > diff --git a/board/ti/common/fdt_ops.c b/board/ti/common/fdt_ops.c > > new file mode 100644 > > index 000000000000..f8770cae4a54 > > --- /dev/null > > +++ b/board/ti/common/fdt_ops.c > > @@ -0,0 +1,65 @@ > > +// SPDX-License-Identifier: GPL-2.0-or-later > > +/* > > + * Library to support FDT file operations which are common > > + * > > + * Copyright (C) 2024 Texas Instruments Incorporated - https://www.ti.com/ > > + */ > > + > > +#include <env.h> > > +#include <vsprintf.h> > > +#include "fdt_ops.h" > > + > > +void ti_set_fdt_env(const char *name_fdt, struct ti_fdt_map *fdt_map) > > +{ > > + char *fdt_file_name = NULL; > > + char fdtfile[TI_FDT_FILE_MAX]; > > + > > + if (name_fdt) { > > + while (fdt_map) { > > + /* Check for NULL terminator in the list */ > > + if (!fdt_map->name_fdt) > > + break; > > + if (!strncmp(fdt_map->name_fdt, name_fdt, > > TI_NAME_FDT_MAX)) { > > + fdt_file_name = fdt_map->fdt_file_name; > > + break; > > + } > > + fdt_map++; > > + } > > + } > > + > > + /* match not found OR null name_fdt */ > > + if (!fdt_file_name) { > > + /* > > + * Prioritize CONFIG_DEFAULT_FDT_FILE - if that is not defined, > > + * or is empty, then use CONFIG_DEFAULT_DEVICE_TREE > > + */ > > +#ifdef CONFIG_DEFAULT_FDT_FILE > > + if (strlen(CONFIG_DEFAULT_FDT_FILE)) { > > + snprintf(fdtfile, sizeof(fdtfile), "%s/%s", > > + CONFIG_TI_EVM_FDT_FOLDER_PATH, > > CONFIG_DEFAULT_FDT_FILE); > > + } else > > +#endif > > + { > > + snprintf(fdtfile, sizeof(fdtfile), "%s/%s.dtb", > > + CONFIG_TI_EVM_FDT_FOLDER_PATH, > > + CONFIG_DEFAULT_DEVICE_TREE); > > + } > > + } else { > > + snprintf(fdtfile, sizeof(fdtfile), "%s/%s", > > CONFIG_TI_EVM_FDT_FOLDER_PATH, > > + fdt_file_name); > > + } > > + > > + env_set("fdtfile", fdtfile); > > + > > + /* > > + * XXX: DEPRECATION WARNING: 2 u-boot versions. > > + * > > + * Maintain compatibility with downstream scripts that may be using > > + * name_fdt > > + */ > > + if (name_fdt) > > + env_set("name_fdt", name_fdt); > > "name_fdt" should match "fdtfile", you should have just: > > env_set("name_fdt", fdtfile); > > are you mixing this up with "board_name"?
It should have been fdtfile. Thanks for catching it. -- Regards, Nishanth Menon Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3 1A34 DDB5 849D 1736 249D