1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
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>
8  */
9 
10 #include <config.h>
11 #include <env_callback.h>
12 #include <linux/stringify.h>
13 
14 #include <generated/environment.h>
15 
16 #ifdef DEFAULT_ENV_INSTANCE_EMBEDDED
17 env_t embedded_environment __UBOOT_ENV_SECTION__(environment) = {
18 	ENV_CRC,	/* CRC Sum */
19 #ifdef CONFIG_ENV_REDUNDANT
20 	1,		/* Flags: valid */
21 #endif
22 	{
23 #elif defined(DEFAULT_ENV_INSTANCE_STATIC)
24 static char default_environment[] = {
25 #elif defined(CONFIG_DEFAULT_ENV_IS_RW)
26 char default_environment[] = {
27 #else
28 const char default_environment[] = {
29 #endif
30 #ifndef CONFIG_ENV_USE_DEFAULT_ENV_TEXT_FILE
31 #ifdef	CONFIG_ENV_CALLBACK_LIST_DEFAULT
32 	ENV_CALLBACK_VAR "=" CONFIG_ENV_CALLBACK_LIST_DEFAULT "\0"
33 #endif
34 #ifdef	CONFIG_ENV_FLAGS_LIST_DEFAULT
35 	ENV_FLAGS_VAR "=" CONFIG_ENV_FLAGS_LIST_DEFAULT "\0"
36 #endif
37 #ifdef	CONFIG_USE_BOOTARGS
38 	"bootargs="	CONFIG_BOOTARGS			"\0"
39 #endif
40 #ifdef	CONFIG_BOOTCOMMAND
41 	"bootcmd="	CONFIG_BOOTCOMMAND		"\0"
42 #endif
43 #if defined(CONFIG_BOOTDELAY)
44 	"bootdelay="	__stringify(CONFIG_BOOTDELAY)	"\0"
45 #endif
46 #if !defined(CONFIG_OF_SERIAL_BAUD) && defined(CONFIG_BAUDRATE) && (CONFIG_BAUDRATE >= 0)
47 	"baudrate="	__stringify(CONFIG_BAUDRATE)	"\0"
48 #endif
49 #ifdef	CONFIG_LOADS_ECHO
50 	"loads_echo="	__stringify(CONFIG_LOADS_ECHO)	"\0"
51 #endif
52 #ifdef	CONFIG_ETHPRIME
53 	"ethprime="	CONFIG_ETHPRIME			"\0"
54 #endif
55 #ifdef	CONFIG_USE_IPADDR
56 	"ipaddr="	CONFIG_IPADDR			"\0"
57 #endif
58 #ifdef	CONFIG_USE_SERVERIP
59 	"serverip="	CONFIG_SERVERIP			"\0"
60 #endif
61 #ifdef	CONFIG_SYS_DISABLE_AUTOLOAD
62 	"autoload=0\0"
63 #endif
64 #ifdef	CONFIG_PREBOOT_DEFINED
65 	"preboot="	CONFIG_PREBOOT			"\0"
66 #endif
67 #ifdef	CONFIG_USE_ROOTPATH
68 	"rootpath="	CONFIG_ROOTPATH			"\0"
69 #endif
70 #ifdef	CONFIG_USE_GATEWAYIP
71 	"gatewayip="	CONFIG_GATEWAYIP		"\0"
72 #endif
73 #ifdef	CONFIG_USE_NETMASK
74 	"netmask="	CONFIG_NETMASK			"\0"
75 #endif
76 #ifdef	CONFIG_USE_HOSTNAME
77 	"hostname="	CONFIG_HOSTNAME			"\0"
78 #endif
79 #ifdef CONFIG_USE_BOOTFILE
80 	"bootfile="	CONFIG_BOOTFILE			"\0"
81 #endif
82 #ifdef	CONFIG_SYS_LOAD_ADDR
83 	"loadaddr="	__stringify(CONFIG_SYS_LOAD_ADDR)"\0"
84 #endif
85 #ifdef	CONFIG_ENV_VARS_UBOOT_CONFIG
86 	"arch="		CONFIG_SYS_ARCH			"\0"
87 #ifdef CONFIG_SYS_CPU
88 	"cpu="		CONFIG_SYS_CPU			"\0"
89 #endif
90 #ifdef CONFIG_SYS_BOARD
91 	"board="	CONFIG_SYS_BOARD		"\0"
92 	"board_name="	CONFIG_SYS_BOARD		"\0"
93 #endif
94 #ifdef CONFIG_SYS_VENDOR
95 	"vendor="	CONFIG_SYS_VENDOR		"\0"
96 #endif
97 #ifdef CONFIG_SYS_SOC
98 	"soc="		CONFIG_SYS_SOC			"\0"
99 #endif
100 #ifdef CONFIG_USB_HOST
101 	"usb_ignorelist="
102 #ifdef CONFIG_USB_KEYBOARD
103 	/* Ignore Yubico devices. Currently only a single USB keyboard device is
104 	 * supported and the emulated HID keyboard Yubikeys present is useless
105 	 * as keyboard.
106 	 */
107 	"0x1050:*,"
108 #endif
109 	"\0"
110 #endif
111 #ifdef CONFIG_ENV_IMPORT_FDT
112 	"env_fdt_path="	CONFIG_ENV_FDT_PATH		"\0"
113 #endif
114 #endif
115 #if defined(CONFIG_BOOTCOUNT_BOOTLIMIT) && (CONFIG_BOOTCOUNT_BOOTLIMIT > 0)
116 	"bootlimit="	__stringify(CONFIG_BOOTCOUNT_BOOTLIMIT)"\0"
117 #endif
118 #ifdef CONFIG_BOOTCOUNT_ALTBOOTCMD
119 	"altbootcmd="	CONFIG_BOOTCOUNT_ALTBOOTCMD            "\0"
120 #endif
121 #ifdef CONFIG_MTDIDS_DEFAULT
122 	 "mtdids="	CONFIG_MTDIDS_DEFAULT		"\0"
123 #endif
124 #ifdef CONFIG_MTDPARTS_DEFAULT
125 	"mtdparts="	CONFIG_MTDPARTS_DEFAULT		"\0"
126 #endif
127 #ifdef CONFIG_EXTRA_ENV_TEXT
128 	/* This is created in the Makefile */
129 	CONFIG_EXTRA_ENV_TEXT
130 #endif
131 #ifdef	CFG_EXTRA_ENV_SETTINGS
132 	CFG_EXTRA_ENV_SETTINGS
133 #endif
134 #ifdef CONFIG_OF_SERIAL_BAUD
135 	/* Padding for baudrate at the end when environment is writable */
136 	"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
137 #endif
138 	"\0"
139 #else /* CONFIG_ENV_USE_DEFAULT_ENV_TEXT_FILE */
140 #include "generated/defaultenv_autogenerated.h"
141 #endif
142 #ifdef DEFAULT_ENV_INSTANCE_EMBEDDED
143 	}
144 #endif
145 };
146 
147 #if !defined(USE_HOSTCC) && !defined(DEFAULT_ENV_INSTANCE_EMBEDDED)
148 #include <env_internal.h>
149 static_assert(sizeof(default_environment) <= ENV_SIZE,
150 	      "Default environment is too large");
151 #endif
152