// 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 #include #include "fdt_ops.h" void ti_set_fdt_env(const char *board_name, struct ti_fdt_map *fdt_map) { char *fdt_file_name = NULL; char fdtfile[TI_FDT_FILE_MAX]; if (board_name) { while (fdt_map) { /* Check for NULL terminator in the list */ if (!fdt_map->board_name) break; if (!strncmp(fdt_map->board_name, board_name, TI_BOARD_NAME_MAX)) { fdt_file_name = fdt_map->fdt_file_name; break; } fdt_map++; } } /* match not found OR null board_name */ 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_FDT_FOLDER_PATH, CONFIG_DEFAULT_FDT_FILE); } else #endif { snprintf(fdtfile, sizeof(fdtfile), "%s/%s.dtb", CONFIG_TI_FDT_FOLDER_PATH, CONFIG_DEFAULT_DEVICE_TREE); } } else { snprintf(fdtfile, sizeof(fdtfile), "%s/%s", CONFIG_TI_FDT_FOLDER_PATH, fdt_file_name); } env_set("fdtfile", fdtfile); /* * XXX: DEPRECATION WARNING: 2 u-boot versions (2024.10). * * Maintain compatibility with downstream scripts that may be using * name_fdt */ if (board_name) env_set("name_fdt", fdtfile); /* Also set the findfdt legacy script to warn users to stop using this */ env_set("findfdt", "echo WARN: fdtfile already set. Stop using findfdt in script"); }