blob: c0df39d62f9b8ec8bc8186c43cd2147a363f7add [file] [log] [blame]
Tom Rini10e47792018-05-06 17:58:06 -04001/* SPDX-License-Identifier: GPL-2.0+ */
Joe Hershberger81321142012-10-12 08:48:51 +00002/*
3 * (C) Copyright 2000-2010
4 * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
5 *
6 * (C) Copyright 2001 Sysgo Real-Time Solutions, GmbH <www.elinos.com>
7 * Andreas Heppel <aheppel@sysgo.de>
Joe Hershberger81321142012-10-12 08:48:51 +00008 */
9
Joe Hershberger60fd3ad2012-12-11 22:16:24 -060010#include <env_callback.h>
Simon Glassfb64e362020-05-10 11:40:09 -060011#include <linux/stringify.h>
Joe Hershberger60fd3ad2012-12-11 22:16:24 -060012
Simon Glass7327fe72021-10-21 21:08:46 -060013#ifndef USE_HOSTCC
14#include <generated/environment.h>
15#endif
16
Joe Hershberger81321142012-10-12 08:48:51 +000017#ifdef DEFAULT_ENV_INSTANCE_EMBEDDED
Simon Glass204eb222019-08-01 09:47:03 -060018env_t embedded_environment __UBOOT_ENV_SECTION__(environment) = {
Joe Hershberger81321142012-10-12 08:48:51 +000019 ENV_CRC, /* CRC Sum */
20#ifdef CONFIG_SYS_REDUNDAND_ENVIRONMENT
21 1, /* Flags: valid */
22#endif
23 {
24#elif defined(DEFAULT_ENV_INSTANCE_STATIC)
25static char default_environment[] = {
Pali Rohár3c72b1b2020-12-23 12:21:28 +010026#elif defined(DEFAULT_ENV_IS_RW)
Marek Behún73d25342021-10-22 15:47:24 +020027char default_environment[] = {
Joe Hershberger81321142012-10-12 08:48:51 +000028#else
Marek Behún73d25342021-10-22 15:47:24 +020029const char default_environment[] = {
Joe Hershberger81321142012-10-12 08:48:51 +000030#endif
Rasmus Villemoes14c71142018-03-20 11:38:45 +010031#ifndef CONFIG_USE_DEFAULT_ENV_FILE
Joe Hershberger60fd3ad2012-12-11 22:16:24 -060032#ifdef CONFIG_ENV_CALLBACK_LIST_DEFAULT
33 ENV_CALLBACK_VAR "=" CONFIG_ENV_CALLBACK_LIST_DEFAULT "\0"
34#endif
Joe Hershberger71497d02012-12-11 22:16:31 -060035#ifdef CONFIG_ENV_FLAGS_LIST_DEFAULT
36 ENV_FLAGS_VAR "=" CONFIG_ENV_FLAGS_LIST_DEFAULT "\0"
37#endif
Sam Protsenkobd7bffe2017-08-14 20:22:17 +030038#ifdef CONFIG_USE_BOOTARGS
Joe Hershberger81321142012-10-12 08:48:51 +000039 "bootargs=" CONFIG_BOOTARGS "\0"
40#endif
41#ifdef CONFIG_BOOTCOMMAND
42 "bootcmd=" CONFIG_BOOTCOMMAND "\0"
43#endif
Alex Kiernan685ead22018-07-05 12:38:15 +000044#if defined(CONFIG_BOOTDELAY)
Joe Hershberger81321142012-10-12 08:48:51 +000045 "bootdelay=" __stringify(CONFIG_BOOTDELAY) "\0"
46#endif
47#if defined(CONFIG_BAUDRATE) && (CONFIG_BAUDRATE >= 0)
48 "baudrate=" __stringify(CONFIG_BAUDRATE) "\0"
49#endif
50#ifdef CONFIG_LOADS_ECHO
51 "loads_echo=" __stringify(CONFIG_LOADS_ECHO) "\0"
52#endif
Joe Hershberger81321142012-10-12 08:48:51 +000053#ifdef CONFIG_ETHPRIME
54 "ethprime=" CONFIG_ETHPRIME "\0"
55#endif
Tom Rini1479a832022-12-02 16:42:27 -050056#ifdef CONFIG_USE_IPADDR
57 "ipaddr=" CONFIG_IPADDR "\0"
Joe Hershberger81321142012-10-12 08:48:51 +000058#endif
Tom Rini1479a832022-12-02 16:42:27 -050059#ifdef CONFIG_USE_SERVERIP
60 "serverip=" CONFIG_SERVERIP "\0"
Joe Hershberger81321142012-10-12 08:48:51 +000061#endif
Tom Rini065d6612022-06-13 22:57:35 -040062#ifdef CONFIG_SYS_DISABLE_AUTOLOAD
63 "autoload=0\0"
Joe Hershberger81321142012-10-12 08:48:51 +000064#endif
Pali Rohár39c43c32022-07-10 13:42:55 +020065#ifdef CONFIG_PREBOOT_DEFINED
Joe Hershberger81321142012-10-12 08:48:51 +000066 "preboot=" CONFIG_PREBOOT "\0"
67#endif
Tom Rini1479a832022-12-02 16:42:27 -050068#ifdef CONFIG_USE_ROOTPATH
Joe Hershberger81321142012-10-12 08:48:51 +000069 "rootpath=" CONFIG_ROOTPATH "\0"
70#endif
Tom Rini1479a832022-12-02 16:42:27 -050071#ifdef CONFIG_USE_GATEWAYIP
72 "gatewayip=" CONFIG_GATEWAYIP "\0"
Joe Hershberger81321142012-10-12 08:48:51 +000073#endif
Tom Rini1479a832022-12-02 16:42:27 -050074#ifdef CONFIG_USE_NETMASK
75 "netmask=" CONFIG_NETMASK "\0"
Joe Hershberger81321142012-10-12 08:48:51 +000076#endif
Tom Rini1479a832022-12-02 16:42:27 -050077#ifdef CONFIG_USE_HOSTNAME
78 "hostname=" CONFIG_HOSTNAME "\0"
Joe Hershberger81321142012-10-12 08:48:51 +000079#endif
Tom Rini5fb860c2022-02-25 11:19:48 -050080#ifdef CONFIG_USE_BOOTFILE
Joe Hershberger81321142012-10-12 08:48:51 +000081 "bootfile=" CONFIG_BOOTFILE "\0"
82#endif
Tom Rini9004ee02021-08-23 10:25:30 -040083#ifdef CONFIG_SYS_LOAD_ADDR
84 "loadaddr=" __stringify(CONFIG_SYS_LOAD_ADDR)"\0"
Joe Hershberger81321142012-10-12 08:48:51 +000085#endif
Joe Hershberger81321142012-10-12 08:48:51 +000086#if defined(CONFIG_PCI_BOOTDELAY) && (CONFIG_PCI_BOOTDELAY > 0)
87 "pcidelay=" __stringify(CONFIG_PCI_BOOTDELAY)"\0"
88#endif
89#ifdef CONFIG_ENV_VARS_UBOOT_CONFIG
90 "arch=" CONFIG_SYS_ARCH "\0"
Masahiro Yamadadcc04732016-06-17 14:24:07 +090091#ifdef CONFIG_SYS_CPU
Joe Hershberger81321142012-10-12 08:48:51 +000092 "cpu=" CONFIG_SYS_CPU "\0"
Masahiro Yamadadcc04732016-06-17 14:24:07 +090093#endif
94#ifdef CONFIG_SYS_BOARD
Joe Hershberger81321142012-10-12 08:48:51 +000095 "board=" CONFIG_SYS_BOARD "\0"
Stephen Warrenfc523052012-10-31 11:17:28 +000096 "board_name=" CONFIG_SYS_BOARD "\0"
Masahiro Yamadadcc04732016-06-17 14:24:07 +090097#endif
Joe Hershberger81321142012-10-12 08:48:51 +000098#ifdef CONFIG_SYS_VENDOR
99 "vendor=" CONFIG_SYS_VENDOR "\0"
100#endif
101#ifdef CONFIG_SYS_SOC
102 "soc=" CONFIG_SYS_SOC "\0"
103#endif
Rasmus Villemoescf8e5432021-04-21 11:06:54 +0200104#ifdef CONFIG_ENV_IMPORT_FDT
105 "env_fdt_path=" CONFIG_ENV_FDT_PATH "\0"
106#endif
Joe Hershberger81321142012-10-12 08:48:51 +0000107#endif
Alex Kiernancf9888f2018-07-21 20:25:32 +0000108#if defined(CONFIG_BOOTCOUNT_BOOTLIMIT) && (CONFIG_BOOTCOUNT_BOOTLIMIT > 0)
109 "bootlimit=" __stringify(CONFIG_BOOTCOUNT_BOOTLIMIT)"\0"
110#endif
Tom Rinic997d522022-06-13 22:57:36 -0400111#ifdef CONFIG_MTDIDS_DEFAULT
112 "mtdids=" CONFIG_MTDIDS_DEFAULT "\0"
113#endif
114#ifdef CONFIG_MTDPARTS_DEFAULT
115 "mtdparts=" CONFIG_MTDPARTS_DEFAULT "\0"
116#endif
Simon Glass7327fe72021-10-21 21:08:46 -0600117#ifdef CONFIG_EXTRA_ENV_TEXT
Simon Glass7327fe72021-10-21 21:08:46 -0600118 /* This is created in the Makefile */
119 CONFIG_EXTRA_ENV_TEXT
120#endif
Tom Rinic9edebe2022-12-04 10:03:50 -0500121#ifdef CFG_EXTRA_ENV_SETTINGS
122 CFG_EXTRA_ENV_SETTINGS
Joe Hershberger81321142012-10-12 08:48:51 +0000123#endif
124 "\0"
Rasmus Villemoes14c71142018-03-20 11:38:45 +0100125#else /* CONFIG_USE_DEFAULT_ENV_FILE */
126#include "generated/defaultenv_autogenerated.h"
127#endif
Joe Hershberger81321142012-10-12 08:48:51 +0000128#ifdef DEFAULT_ENV_INSTANCE_EMBEDDED
129 }
130#endif
131};
Marek Behúnadb431e2021-10-22 15:47:25 +0200132
133#if !defined(USE_HOSTCC) && !defined(DEFAULT_ENV_INSTANCE_EMBEDDED)
134#include <env_internal.h>
135static_assert(sizeof(default_environment) <= ENV_SIZE,
136 "Default environment is too large");
137#endif