mirror of
https://github.com/u-boot/u-boot.git
synced 2024-11-25 21:24:21 +08:00
40b77f2a3a
After converting my targets from CFG_EXTRA_ENV_SETTINGS to CONFIG_EXTRA_ENV_TEXT as suggested by Tom, I discovered that fw_setenv doesn't set the entire defaut environment anymore. I tried to fix it with the below patch, but it fails qemu-x86 CI test, see https://source.denx.de/u-boot/custodians/u-boot-mpc8xx/-/pipelines/16326 That's the only CI test that fails AFAICS. Could you help with a solution ? This needs to be fixed. Thanks Christophe ---- >8 ---- From: Christophe Leroy <christophe.leroy@csgroup.eu> Subject: [RFC PATCH] envtools: Fix default environment After converting some targets from CFG_EXTRA_ENV_SETTINGS to CONFIG_EXTRA_ENV_TEXT, default environment embedded in fw_env tool missed all extra settings. Commit86b9c3e4e4
("env: Allow U-Boot scripts to be placed in a .env file") restricted the inclusion of the content of that file to builds without USE_HOSTCC. But as mentionned in commit79fc0c5f49
("tools/env: cross-compile fw_printenv without setting HOSTCC"), HOSTCC and USE_HOSTCC are kept for code re-use. Remove the restricting so that settings included in a .env file are also added to fw_env tool. Fixes:86b9c3e4e4
("env: Allow U-Boot scripts to be placed in a .env file") Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
136 lines
3.4 KiB
C
136 lines
3.4 KiB
C
/* SPDX-License-Identifier: GPL-2.0+ */
|
|
/*
|
|
* (C) Copyright 2000-2010
|
|
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
|
*
|
|
* (C) Copyright 2001 Sysgo Real-Time Solutions, GmbH <www.elinos.com>
|
|
* Andreas Heppel <aheppel@sysgo.de>
|
|
*/
|
|
|
|
#include <env_callback.h>
|
|
#include <linux/stringify.h>
|
|
|
|
#include <generated/environment.h>
|
|
|
|
#ifdef DEFAULT_ENV_INSTANCE_EMBEDDED
|
|
env_t embedded_environment __UBOOT_ENV_SECTION__(environment) = {
|
|
ENV_CRC, /* CRC Sum */
|
|
#ifdef CONFIG_SYS_REDUNDAND_ENVIRONMENT
|
|
1, /* Flags: valid */
|
|
#endif
|
|
{
|
|
#elif defined(DEFAULT_ENV_INSTANCE_STATIC)
|
|
static char default_environment[] = {
|
|
#elif defined(DEFAULT_ENV_IS_RW)
|
|
char default_environment[] = {
|
|
#else
|
|
const char default_environment[] = {
|
|
#endif
|
|
#ifndef CONFIG_USE_DEFAULT_ENV_FILE
|
|
#ifdef CONFIG_ENV_CALLBACK_LIST_DEFAULT
|
|
ENV_CALLBACK_VAR "=" CONFIG_ENV_CALLBACK_LIST_DEFAULT "\0"
|
|
#endif
|
|
#ifdef CONFIG_ENV_FLAGS_LIST_DEFAULT
|
|
ENV_FLAGS_VAR "=" CONFIG_ENV_FLAGS_LIST_DEFAULT "\0"
|
|
#endif
|
|
#ifdef CONFIG_USE_BOOTARGS
|
|
"bootargs=" CONFIG_BOOTARGS "\0"
|
|
#endif
|
|
#ifdef CONFIG_BOOTCOMMAND
|
|
"bootcmd=" CONFIG_BOOTCOMMAND "\0"
|
|
#endif
|
|
#if defined(CONFIG_BOOTDELAY)
|
|
"bootdelay=" __stringify(CONFIG_BOOTDELAY) "\0"
|
|
#endif
|
|
#if defined(CONFIG_BAUDRATE) && (CONFIG_BAUDRATE >= 0)
|
|
"baudrate=" __stringify(CONFIG_BAUDRATE) "\0"
|
|
#endif
|
|
#ifdef CONFIG_LOADS_ECHO
|
|
"loads_echo=" __stringify(CONFIG_LOADS_ECHO) "\0"
|
|
#endif
|
|
#ifdef CONFIG_ETHPRIME
|
|
"ethprime=" CONFIG_ETHPRIME "\0"
|
|
#endif
|
|
#ifdef CONFIG_USE_IPADDR
|
|
"ipaddr=" CONFIG_IPADDR "\0"
|
|
#endif
|
|
#ifdef CONFIG_USE_SERVERIP
|
|
"serverip=" CONFIG_SERVERIP "\0"
|
|
#endif
|
|
#ifdef CONFIG_SYS_DISABLE_AUTOLOAD
|
|
"autoload=0\0"
|
|
#endif
|
|
#ifdef CONFIG_PREBOOT_DEFINED
|
|
"preboot=" CONFIG_PREBOOT "\0"
|
|
#endif
|
|
#ifdef CONFIG_USE_ROOTPATH
|
|
"rootpath=" CONFIG_ROOTPATH "\0"
|
|
#endif
|
|
#ifdef CONFIG_USE_GATEWAYIP
|
|
"gatewayip=" CONFIG_GATEWAYIP "\0"
|
|
#endif
|
|
#ifdef CONFIG_USE_NETMASK
|
|
"netmask=" CONFIG_NETMASK "\0"
|
|
#endif
|
|
#ifdef CONFIG_USE_HOSTNAME
|
|
"hostname=" CONFIG_HOSTNAME "\0"
|
|
#endif
|
|
#ifdef CONFIG_USE_BOOTFILE
|
|
"bootfile=" CONFIG_BOOTFILE "\0"
|
|
#endif
|
|
#ifdef CONFIG_SYS_LOAD_ADDR
|
|
"loadaddr=" __stringify(CONFIG_SYS_LOAD_ADDR)"\0"
|
|
#endif
|
|
#if defined(CONFIG_PCI_BOOTDELAY) && (CONFIG_PCI_BOOTDELAY > 0)
|
|
"pcidelay=" __stringify(CONFIG_PCI_BOOTDELAY)"\0"
|
|
#endif
|
|
#ifdef CONFIG_ENV_VARS_UBOOT_CONFIG
|
|
"arch=" CONFIG_SYS_ARCH "\0"
|
|
#ifdef CONFIG_SYS_CPU
|
|
"cpu=" CONFIG_SYS_CPU "\0"
|
|
#endif
|
|
#ifdef CONFIG_SYS_BOARD
|
|
"board=" CONFIG_SYS_BOARD "\0"
|
|
"board_name=" CONFIG_SYS_BOARD "\0"
|
|
#endif
|
|
#ifdef CONFIG_SYS_VENDOR
|
|
"vendor=" CONFIG_SYS_VENDOR "\0"
|
|
#endif
|
|
#ifdef CONFIG_SYS_SOC
|
|
"soc=" CONFIG_SYS_SOC "\0"
|
|
#endif
|
|
#ifdef CONFIG_ENV_IMPORT_FDT
|
|
"env_fdt_path=" CONFIG_ENV_FDT_PATH "\0"
|
|
#endif
|
|
#endif
|
|
#if defined(CONFIG_BOOTCOUNT_BOOTLIMIT) && (CONFIG_BOOTCOUNT_BOOTLIMIT > 0)
|
|
"bootlimit=" __stringify(CONFIG_BOOTCOUNT_BOOTLIMIT)"\0"
|
|
#endif
|
|
#ifdef CONFIG_MTDIDS_DEFAULT
|
|
"mtdids=" CONFIG_MTDIDS_DEFAULT "\0"
|
|
#endif
|
|
#ifdef CONFIG_MTDPARTS_DEFAULT
|
|
"mtdparts=" CONFIG_MTDPARTS_DEFAULT "\0"
|
|
#endif
|
|
#ifdef CONFIG_EXTRA_ENV_TEXT
|
|
/* This is created in the Makefile */
|
|
CONFIG_EXTRA_ENV_TEXT
|
|
#endif
|
|
#ifdef CFG_EXTRA_ENV_SETTINGS
|
|
CFG_EXTRA_ENV_SETTINGS
|
|
#endif
|
|
"\0"
|
|
#else /* CONFIG_USE_DEFAULT_ENV_FILE */
|
|
#include "generated/defaultenv_autogenerated.h"
|
|
#endif
|
|
#ifdef DEFAULT_ENV_INSTANCE_EMBEDDED
|
|
}
|
|
#endif
|
|
};
|
|
|
|
#if !defined(USE_HOSTCC) && !defined(DEFAULT_ENV_INSTANCE_EMBEDDED)
|
|
#include <env_internal.h>
|
|
static_assert(sizeof(default_environment) <= ENV_SIZE,
|
|
"Default environment is too large");
|
|
#endif
|