1menu "Environment"
2
3config ENV_SUPPORT
4	def_bool y
5
6config ENV_SOURCE_FILE
7	string "Environment file to use"
8	default ""
9	help
10	  This sets the basename to use to generate the default environment.
11	  This a text file as described in doc/usage/environment.rst
12
13	  The file must be in the board directory and have a .env extension, so
14	  the resulting filename is typically
15	  board/<vendor>/<board>/<CONFIG_ENV_SOURCE_FILE>.env
16
17	  If the file is not present, an error is produced.
18
19	  If this CONFIG is empty, U-Boot uses CONFIG SYS_BOARD as a default, if
20	  the file board/<vendor>/<board>/<SYS_BOARD>.env exists. Otherwise the
21	  environment is assumed to come from the ad-hoc
22	  CFG_EXTRA_ENV_SETTINGS #define
23
24config ENV_CALLBACK_LIST_STATIC
25	string "Static callbacks list"
26	default ""
27	help
28	  The environment callbacks are associated with variables in a
29	  static list. Define this list in the following format:
30
31	  entry = variable_name[:callback_name]
32	  list = entry[,list]
33
34	  If the callback name is not specified, then the callback is deleted.
35	  Spaces are also allowed anywhere in the list.
36
37config SAVEENV
38	def_bool y if CMD_SAVEENV
39
40config ENV_OVERWRITE
41	bool "Enable overwriting environment"
42	help
43	  Use this to permit overriding of certain environmental variables
44	  like Ethernet and Serial
45
46config ENV_OVERWRITE_ETHADDR_ONCE
47	bool "Enable overwriting ethaddr environment variables once"
48	depends on !ENV_OVERWRITE
49	help
50	  Enable this to allow for the ethaddr environment variables to be
51	  overwritten one time per boot, only. This allows for a default
52	  to be installed in the environment, which can be changed exactly ONCE
53	  by the user.
54
55config ENV_MIN_ENTRIES
56	int "Minimum number of entries in the environment hashtable"
57	default 64
58	help
59	  Minimum number of entries in the hash table that is used internally
60	  to store the environment settings.
61
62config ENV_MAX_ENTRIES
63	int "Maximum number of entries in the environment hashtable"
64	default 512
65	help
66	  Maximum number of entries in the hash table that is used internally
67	  to store the environment settings. The default setting is supposed to
68	  be generous and should work in most cases. This setting can be used
69	  to tune behaviour; see lib/hashtable.c for details.
70
71config ENV_IS_DEFAULT
72	def_bool y if !ENV_IS_IN_EEPROM && !ENV_IS_IN_EXT4 && \
73		     !ENV_IS_IN_FAT && !ENV_IS_IN_FLASH && \
74		     !ENV_IS_IN_MMC && !ENV_IS_IN_NAND && \
75		     !ENV_IS_IN_NVRAM && !ENV_IS_IN_ONENAND && \
76		     !ENV_IS_IN_REMOTE && !ENV_IS_IN_SPI_FLASH && \
77		     !ENV_IS_IN_UBI && !ENV_IS_IN_MTD && !ENV_IS_IN_SCSI
78	select ENV_IS_NOWHERE
79
80config ENV_IS_NOWHERE
81	bool "Environment is not stored"
82	help
83	  Define this if you don't care whether or not an environment is stored
84	  on a storage medium. In this case the environment will still exist
85	  while U-Boot is running, but once U-Boot exits it may not be
86	  stored. If no other ENV_IS_IN_ is defined, U-Boot will always start
87	  up with the default environment.
88
89config ENV_IS_IN_EEPROM
90	bool "Environment in EEPROM"
91	depends on !CHAIN_OF_TRUST
92	help
93	  Use this if you have an EEPROM or similar serial access
94	  device and a driver for it.
95
96	  - CONFIG_ENV_OFFSET:
97	  - CONFIG_ENV_SIZE:
98
99	  These two #defines specify the offset and size of the
100	  environment area within the total memory of your EEPROM.
101
102	  Note that we consider the length of the address field to
103	  still be one byte because the extra address bits are hidden
104	  in the chip address.
105
106	  EEPROM which holds the environment, is reached over
107	  a pca9547 i2c mux with address 0x70, channel 3.
108
109config ENV_IS_IN_FAT
110	bool "Environment is in a FAT filesystem"
111	depends on !CHAIN_OF_TRUST
112	default y if ARCH_BCM283X
113	default y if ARCH_SUNXI && MMC
114	default y if MMC_OMAP_HS && TI_COMMON_CMD_OPTIONS
115	select FS_FAT
116	select FAT_WRITE
117	help
118	  Define this if you want to use the FAT file system for the environment.
119
120config ENV_IS_IN_EXT4
121	bool "Environment is in a EXT4 filesystem"
122	depends on !CHAIN_OF_TRUST
123	select FS_EXT4
124	select EXT4_WRITE
125	help
126	  Define this if you want to use the EXT4 file system for the environment.
127
128config ENV_IS_IN_FLASH
129	bool "Environment in flash memory"
130	depends on !CHAIN_OF_TRUST
131	default y if ARCH_CINTEGRATOR
132	default y if ARCH_INTEGRATOR_CP
133	default y if M548x || M547x || M5282
134	default y if MCF532x || MCF52x2
135	default y if MPC86xx || MPC83xx
136	default y if ARCH_MPC8548
137	default y if SH && !CPU_SH4
138	help
139	  Define this if you have a flash device which you want to use for the
140	  environment.
141
142	  a) The environment occupies one whole flash sector, which is
143	   "embedded" in the text segment with the U-Boot code. This
144	   happens usually with "bottom boot sector" or "top boot
145	   sector" type flash chips, which have several smaller
146	   sectors at the start or the end. For instance, such a
147	   layout can have sector sizes of 8, 2x4, 16, Nx32 kB. In
148	   such a case you would place the environment in one of the
149	   4 kB sectors - with U-Boot code before and after it. With
150	   "top boot sector" type flash chips, you would put the
151	   environment in one of the last sectors, leaving a gap
152	   between U-Boot and the environment.
153
154	  CONFIG_ENV_OFFSET:
155
156	   Offset of environment data (variable area) to the
157	   beginning of flash memory; for instance, with bottom boot
158	   type flash chips the second sector can be used: the offset
159	   for this sector is given here.
160
161	   CONFIG_ENV_OFFSET is used relative to CFG_SYS_FLASH_BASE.
162
163	  CONFIG_ENV_ADDR:
164
165	   This is just another way to specify the start address of
166	   the flash sector containing the environment (instead of
167	   CONFIG_ENV_OFFSET).
168
169	  CONFIG_ENV_SECT_SIZE:
170
171	   Size of the sector containing the environment.
172
173
174	  b) Sometimes flash chips have few, equal sized, BIG sectors.
175	   In such a case you don't want to spend a whole sector for
176	   the environment.
177
178	  CONFIG_ENV_SIZE:
179
180	   If you use this in combination with CONFIG_ENV_IS_IN_FLASH
181	   and CONFIG_ENV_SECT_SIZE, you can specify to use only a part
182	   of this flash sector for the environment. This saves
183	   memory for the RAM copy of the environment.
184
185	   It may also save flash memory if you decide to use this
186	   when your environment is "embedded" within U-Boot code,
187	   since then the remainder of the flash sector could be used
188	   for U-Boot code. It should be pointed out that this is
189	   STRONGLY DISCOURAGED from a robustness point of view:
190	   updating the environment in flash makes it always
191	   necessary to erase the WHOLE sector. If something goes
192	   wrong before the contents has been restored from a copy in
193	   RAM, your target system will be dead.
194
195	  CONFIG_ENV_ADDR_REDUND
196
197	   These settings describe a second storage area used to hold
198	   a redundant copy of the environment data, so that there is
199	   a valid backup copy in case there is a power failure during
200	   a "saveenv" operation.
201
202	  BE CAREFUL! Any changes to the flash layout, and some changes to the
203	  source code will make it necessary to adapt <board>/u-boot.lds*
204	  accordingly!
205
206config ENV_IS_IN_MMC
207	bool "Environment in an MMC device"
208	depends on !CHAIN_OF_TRUST
209	depends on MMC
210	default y if ARCH_EXYNOS4
211	default y if MX6SX || MX7D
212	default y if TEGRA30 || TEGRA124
213	default y if TEGRA_ARMV8_COMMON
214	help
215	  Define this if you have an MMC device which you want to use for the
216	  environment.
217
218	  CONFIG_ENV_MMC_DEVICE_INDEX:
219
220	  Specifies which MMC device the environment is stored in.
221
222	  CONFIG_ENV_MMC_EMMC_HW_PARTITION (optional):
223
224	  Specifies which MMC partition the environment is stored in. If not
225	  set, defaults to partition 0, the user area. Common values might be
226	  1 (first MMC boot partition), 2 (second MMC boot partition).
227
228	  CONFIG_ENV_OFFSET:
229	  CONFIG_ENV_SIZE:
230
231	  These two #defines specify the offset and size of the environment
232	  area within the specified MMC device.
233
234	  These two values are in units of bytes, but must be aligned to an
235	  MMC sector boundary.
236
237	  CONFIG_ENV_OFFSET_REDUND (optional):
238
239	  Specifies a second storage area, of CONFIG_ENV_SIZE size, used to
240	  hold a redundant copy of the environment data. This provides a
241	  valid backup copy in case the other copy is corrupted, e.g. due
242	  to a power failure during a "saveenv" operation.
243
244	  In case CONFIG_ENV_MMC_EMMC_HW_PARTITION is 1 (i.e. environment in eMMC boot
245	  partition) then setting CONFIG_ENV_OFFSET_REDUND to the same value
246	  as CONFIG_ENV_OFFSET makes use of the second eMMC boot partition for
247	  the redundant environment copy.
248
249	  This value is also in units of bytes, but must also be aligned to
250	  an MMC sector boundary.
251
252	  CONFIG_ENV_MMC_USE_DT (optional):
253
254	  These define forces the configuration by the config node in device
255	  tree with partition name: "u-boot,mmc-env-partition" or with
256	  offset: "u-boot,mmc-env-offset", "u-boot,mmc-env-offset-redundant".
257	  CONFIG_ENV_OFFSET and CONFIG_ENV_OFFSET_REDUND are not used.
258
259config ENV_IS_IN_NAND
260	bool "Environment in a NAND device"
261	depends on !CHAIN_OF_TRUST
262	help
263	  Define this if you have a NAND device which you want to use for the
264	  environment.
265
266	  - CONFIG_ENV_OFFSET:
267	  - CONFIG_ENV_SIZE:
268
269	  These two #defines specify the offset and size of the environment
270	  area within the first NAND device.  CONFIG_ENV_OFFSET must be
271	  aligned to an erase block boundary.
272
273	  - CONFIG_ENV_OFFSET_REDUND (optional):
274
275	  This setting describes a second storage area of CONFIG_ENV_SIZE
276	  size used to hold a redundant copy of the environment data, so
277	  that there is a valid backup copy in case there is a power failure
278	  during a "saveenv" operation.	 CONFIG_ENV_OFFSET_REDUND must be
279	  aligned to an erase block boundary.
280
281	  - CONFIG_ENV_OFFSET_OOB (optional):
282
283	  Enables support for dynamically retrieving the offset of the
284	  environment from block zero's out-of-band data.  The
285	  "nand env.oob" command can be used to record this offset.
286	  Currently, CONFIG_ENV_OFFSET_REDUND is not supported when
287	  using CONFIG_ENV_OFFSET_OOB.
288
289config ENV_IS_IN_SCSI
290	bool "Environment in an SCSI device"
291	depends on SCSI
292	help
293	  Define this if you have an SCSI device which you want to use for the
294	  environment.
295
296config ENV_RANGE
297	hex "Length of the region in which the environment can be written"
298	depends on ENV_IS_IN_NAND
299	range ENV_SIZE 0x7fffffff
300	default ENV_SIZE
301	help
302	  This should be a multiple of the NAND device's block size.
303	  Specifying a range with more erase blocks than are needed to hold
304	  CONFIG_ENV_SIZE allows bad blocks within the range to be avoided.
305
306config ENV_IS_IN_NVRAM
307	bool "Environment in a non-volatile RAM"
308	depends on !CHAIN_OF_TRUST
309	help
310	  Define this if you have some non-volatile memory device
311	  (NVRAM, battery buffered SRAM) which you want to use for the
312	  environment.
313
314	  - CONFIG_ENV_ADDR:
315	  - CONFIG_ENV_SIZE:
316
317	  These two #defines are used to determine the memory area you
318	  want to use for environment. It is assumed that this memory
319	  can just be read and written to, without any special
320	  provision.
321
322config ENV_IS_IN_ONENAND
323	bool "Environment is in OneNAND"
324	depends on !CHAIN_OF_TRUST && CMD_ONENAND
325	help
326	  Define this if you want to put your local device's environment in
327	  OneNAND.
328
329	  - CONFIG_ENV_ADDR:
330	  - CONFIG_ENV_SIZE:
331
332	  These two #defines are used to determine the device range you
333	  want to use for environment. It is assumed that this memory
334	  can just be read and written to, without any special
335	  provision.
336
337config ENV_IS_IN_REMOTE
338	bool "Environment is in remote memory space"
339	depends on !CHAIN_OF_TRUST
340	help
341	  Define this if you have a remote memory space which you
342	  want to use for the local device's environment.
343
344	  - CONFIG_ENV_ADDR:
345	  - CONFIG_ENV_SIZE:
346
347	  These two #defines specify the address and size of the
348	  environment area within the remote memory space. The
349	  local device can get the environment from remote memory
350	  space by SRIO or PCIE links.
351
352config ENV_IS_IN_SPI_FLASH
353	bool "Environment is in SPI flash"
354	depends on !CHAIN_OF_TRUST && (SPI_FLASH || DM_SPI_FLASH)
355	default y if ARMADA_XP
356	default y if INTEL_BAYTRAIL
357	default y if INTEL_BRASWELL
358	default y if INTEL_BROADWELL
359	default y if NORTHBRIDGE_INTEL_IVYBRIDGE
360	default y if INTEL_QUARK
361	default y if INTEL_QUEENSBAY
362	default y if ARCH_SUNXI
363	help
364	  Define this if you have a SPI Flash memory device which you
365	  want to use for the environment.
366
367	  - CONFIG_ENV_OFFSET:
368	  - CONFIG_ENV_SIZE:
369
370	  These two #defines specify the offset and size of the
371	  environment area within the SPI Flash. CONFIG_ENV_OFFSET must be
372	  aligned to an erase sector boundary.
373
374	  - CONFIG_ENV_SECT_SIZE:
375
376	  Define the SPI flash's sector size.
377
378	  - CONFIG_ENV_OFFSET_REDUND (optional):
379
380	  This setting describes a second storage area of CONFIG_ENV_SIZE
381	  size used to hold a redundant copy of the environment data, so
382	  that there is a valid backup copy in case there is a power failure
383	  during a "saveenv" operation. CONFIG_ENV_OFFSET_REDUND must be
384	  aligned to an erase sector boundary.
385
386config ENV_IS_IN_MTD
387	bool "Environment is in MTD flash"
388	depends on !CHAIN_OF_TRUST && MTD
389	default y if ARCH_AIROHA
390	help
391	  Define this if you have a MTD Flash memory device which you
392	  want to use for the environment.
393
394	  - CONFIG_ENV_MTD_DEV:
395
396	  Specifies which SPI NAND device the environment is stored in.
397
398	  - CONFIG_ENV_OFFSET:
399	  - CONFIG_ENV_SIZE:
400
401	  These two #defines specify the offset and size of the
402	  environment area within the MTD Flash.
403	  CONFIG_ENV_OFFSET must be aligned to an erase sector boundary.
404
405config ENV_SECT_SIZE_AUTO
406	bool "Use automatically detected sector size"
407	depends on ENV_IS_IN_SPI_FLASH
408	help
409	  Some boards exist in multiple variants, with different
410	  flashes having different sector sizes. In such cases, you
411	  can select this option to make U-Boot use the actual sector
412	  size when figuring out how much to erase, which can thus be
413	  more efficient on the flashes with smaller erase size. Since
414	  the environment must always be aligned on a sector boundary,
415	  CONFIG_ENV_OFFSET must be aligned to the largest of the
416	  different sector sizes, and CONFIG_ENV_SECT_SIZE should be
417	  set to that value.
418
419config ENV_SPI_BUS
420	int "Value of SPI flash bus for environment"
421	depends on ENV_IS_IN_SPI_FLASH
422	default SF_DEFAULT_BUS
423	help
424	  Value the SPI bus and chip select for environment.
425
426config ENV_SPI_CS
427	int "Value of SPI flash chip select for environment"
428	depends on ENV_IS_IN_SPI_FLASH
429	default SF_DEFAULT_CS
430	help
431	  Value of the SPI chip select for environment.
432
433config ENV_SPI_MAX_HZ
434	int "Value of SPI flash max frequency for environment"
435	depends on ENV_IS_IN_SPI_FLASH
436	default SF_DEFAULT_SPEED
437	help
438	  Value of the SPI max work clock for environment.
439
440config ENV_SPI_MODE
441	hex "Value of SPI flash work mode for environment"
442	depends on ENV_IS_IN_SPI_FLASH
443	default SF_DEFAULT_MODE
444	help
445	  Value of the SPI work mode for environment.
446	  See include/spi.h for value.
447
448config ENV_SPI_EARLY
449	bool "Access Environment in SPI flashes before relocation"
450	depends on ENV_IS_IN_SPI_FLASH
451	help
452	  Enable this if you want to use Environment in SPI flash
453	  before relocation. Call env_init() and than you can use
454	  env_get_f() for accessing Environment variables.
455
456config ENV_IS_IN_UBI
457	bool "Environment in a UBI volume"
458	depends on !CHAIN_OF_TRUST
459	depends on MTD_UBI
460	depends on CMD_UBI
461	help
462	  Define this if you have an UBI volume that you want to use for the
463	  environment.  This has the benefit of wear-leveling the environment
464	  accesses, which is important on NAND.
465
466	  - CONFIG_ENV_UBI_PART:
467
468	  Define this to a string that is the mtd partition containing the UBI.
469
470	  - CONFIG_ENV_UBI_VOLUME:
471
472	  Define this to the name of the volume that you want to store the
473	  environment in.
474
475	  - CONFIG_ENV_UBI_VOLUME_REDUND:
476
477	  Define this to the name of another volume to store a second copy of
478	  the environment in.  This will enable redundant environments in UBI.
479	  It is assumed that both volumes are in the same MTD partition.
480
481config ENV_REDUNDANT
482	bool "Enable redundant environment support"
483	help
484	  Normally, the environemt is stored in a single location.  By
485	  selecting this option, you can then define where to hold a redundant
486	  copy of the environment data, so that there is a valid backup copy in
487	  case there is a power failure during a "saveenv" operation.
488	  Also this config changes the binary environment structure handling
489	  which is used by env import/export commands which are independent of
490	  storing variables to redundant location on a non volatile device.
491
492config ENV_FAT_INTERFACE
493	string "Name of the block device for the environment"
494	depends on ENV_IS_IN_FAT
495	default "mmc"
496	help
497	  Define this to a string that is the name of the block device.
498
499config ENV_FAT_DEVICE_AND_PART
500	string "Device and partition for where to store the environemt in FAT"
501	depends on ENV_IS_IN_FAT
502	default "0:1" if TI_COMMON_CMD_OPTIONS
503	default "0:auto" if ARCH_ZYNQ || ARCH_ZYNQMP || ARCH_VERSAL || ARCH_VERSAL_NET || ARCH_VERSAL2
504	default ":auto" if ARCH_SUNXI
505	default "0" if ARCH_AT91
506	help
507	  Define this to a string to specify the partition of the device. It can
508	  be as following:
509
510	    "D:P", "D:0", "D", "D:" or "D:auto" (D, P are integers. And P >= 1)
511	       - "D:P": device D partition P. Error occurs if device D has no
512	                partition table.
513	       - "D:0": device D.
514	       - "D" or "D:": device D partition 1 if device D has partition
515	                      table, or the whole device D if has no partition
516	                      table.
517	       - "D:auto": first partition in device D with bootable flag set.
518	                   If none, first valid partition in device D. If no
519	                   partition table then means device D.
520
521	  If ENV_FAT_INTERFACE is set to "mmc" then device 'D' can be omitted,
522	  leaving the string starting with a colon, and the boot device will
523	  be used.
524
525config ENV_FAT_FILE
526	string "Name of the FAT file to use for the environment"
527	depends on ENV_IS_IN_FAT
528	default "uboot.env"
529	help
530	  It's a string of the FAT file name. This file use to store the
531	  environment.
532
533config ENV_FAT_FILE_REDUND
534	string "Name of the FAT file to use for the environment"
535	depends on ENV_IS_IN_FAT && ENV_REDUNDANT
536	default "uboot-redund.env"
537	help
538	  It's a string of the FAT file name. This file use to store the
539	  redundant environment.
540
541config ENV_EXT4_INTERFACE
542	string "Name of the block device for the environment"
543	depends on ENV_IS_IN_EXT4
544	help
545	  Define this to a string that is the name of the block device.
546
547config ENV_EXT4_DEVICE_AND_PART
548	string "Device and partition for where to store the environemt in EXT4"
549	depends on ENV_IS_IN_EXT4
550	help
551	  Define this to a string to specify the partition of the device. It can
552	  be as following:
553
554	    "D:P", "D:0", "D", "D:" or "D:auto" (D, P are integers. And P >= 1)
555	       - "D:P": device D partition P. Error occurs if device D has no
556	                partition table.
557	       - "D:0": device D.
558	       - "D" or "D:": device D partition 1 if device D has partition
559	                      table, or the whole device D if has no partition
560	                      table.
561	       - "D:auto": first partition in device D with bootable flag set.
562	                   If none, first valid partition in device D. If no
563	                   partition table then means device D.
564
565	  If ENV_EXT4_INTERFACE is set to "mmc" then device 'D' can be omitted,
566	  leaving the string starting with a colon, and the boot device will
567	  be used.
568
569config ENV_EXT4_FILE
570	string "Name of the EXT4 file to use for the environment"
571	depends on ENV_IS_IN_EXT4
572	default "/uboot.env"
573	help
574	  It's a string of the EXT4 file name. This file use to store the
575	  environment (explicit path to the file)
576
577config ENV_ADDR
578	hex "Environment address"
579	depends on ENV_IS_IN_FLASH || ENV_IS_IN_NVRAM || ENV_IS_IN_ONENAND || \
580		     ENV_IS_IN_REMOTE || ENV_IS_IN_SPI_FLASH || ENV_IS_IN_MTD
581	default 0x0 if ENV_IS_IN_SPI_FLASH || ENV_IS_IN_MTD
582	help
583	  Offset from the start of the device (or partition)
584
585config ENV_ADDR_REDUND
586	hex "Redundant environment address"
587	depends on ENV_IS_IN_FLASH && ENV_REDUNDANT
588	help
589	  Offset from the start of the device (or partition) of the redundant
590	  environment location.
591
592config ENV_OFFSET
593	hex "Environment offset"
594	depends on ENV_IS_IN_EEPROM || ENV_IS_IN_MMC || ENV_IS_IN_NAND || \
595		    ENV_IS_IN_SPI_FLASH || ENV_IS_IN_MTD
596	default 0x3f8000 if ARCH_ROCKCHIP && ENV_IS_IN_MMC
597	default 0x140000 if ARCH_ROCKCHIP && ENV_IS_IN_SPI_FLASH
598	default 0xF0000 if ARCH_SUNXI
599	default 0xE0000 if ARCH_ZYNQ
600	default 0x1E00000 if ARCH_ZYNQMP
601	default 0x7F40000 if ARCH_VERSAL || ARCH_VERSAL_NET || ARCH_VERSAL2
602	default 0x0 if ARC
603	default 0x140000 if ARCH_AT91
604	default 0x260000 if ARCH_OMAP2PLUS
605	default 0x1080000 if MICROBLAZE && ENV_IS_IN_SPI_FLASH
606	help
607	  Offset from the start of the device (or partition).
608
609	  This offset may be interpreted differently depending on the chosen
610	  ENV_IS_IN_* options. See the relevant help messages for more details.
611
612config ENV_OFFSET_RELATIVE_END
613	bool "Offset is relative to the end of the partition"
614	depends on ENV_IS_IN_MMC
615	help
616	  Treat the environment offset as relative to the end of the MMC
617	  hardware partition. This can be useful if your board may be fitted
618	  with different MMC devices, which have different sizes for the MMC
619	  hardware partitions, and you always want the environment placed at the
620	  very end of the partition, to leave the maximum possible space before
621	  it, to store other data.
622
623config ENV_OFFSET_REDUND
624	hex "Redundant environment offset"
625	depends on (ENV_IS_IN_EEPROM || ENV_IS_IN_MMC || ENV_IS_IN_NAND || \
626		    ENV_IS_IN_SPI_FLASH) && ENV_REDUNDANT
627	default 0x10C0000 if MICROBLAZE
628	default 0x0
629	help
630	  Offset from the start of the device (or partition) of the redundant
631	  environment location.
632
633	  This offset may be interpreted differently depending on the chosen
634	  ENV_IS_IN_* options. See the relevant help messages for more details.
635
636config ENV_OFFSET_REDUND_RELATIVE_END
637	bool "Offset is relative to the end of the partition"
638	depends on SYS_REDUNDAND_ENVIRONMENT
639	depends on ENV_IS_IN_MMC
640	help
641	  Treat the redundant environment offset as relative to the end of the
642	  MMC hardware partition. This can be useful if your board may be
643	  fitted with different MMC devices, which have different sizes for the
644	  MMC hardware partitions, and you always want the environment placed at
645	  the very end of the partition, to leave the maximum possible space
646	  before it, to store other data.
647
648config ENV_SIZE
649	hex "Environment Size"
650	default 0x40000 if ENV_IS_IN_SPI_FLASH && ARCH_ZYNQMP
651	default 0x20000 if ARCH_ZYNQ || ARCH_OMAP2PLUS || ARCH_AT91
652	default 0x10000 if ARCH_SUNXI
653	default 0x8000 if ARCH_ROCKCHIP && ENV_IS_IN_MMC
654	default 0x2000 if ARCH_ROCKCHIP && ENV_IS_IN_SPI_FLASH
655	default 0x8000 if ARCH_ZYNQMP || ARCH_VERSAL || ARCH_VERSAL_NET || ARCH_VERSAL2
656	default 0x4000 if ARC
657	default 0x1f000
658	help
659	  Size of the environment storage area
660
661config ENV_SECT_SIZE
662	hex "Environment Sector-Size"
663	depends on ENV_IS_IN_FLASH || ENV_IS_IN_SPI_FLASH
664	default 0x2000 if ARCH_ROCKCHIP
665	default 0x40000 if ARCH_ZYNQMP || ARCH_VERSAL || ARCH_VERSAL_NET || ARCH_VERSAL2
666	default 0x20000 if ARCH_ZYNQ || ARCH_OMAP2PLUS || ARCH_AT91
667	default 0x20000 if MICROBLAZE && ENV_IS_IN_SPI_FLASH
668	default 0x10000 if ARCH_SUNXI && ENV_IS_IN_SPI_FLASH
669	help
670	  Size of the sector containing the environment.
671
672config ENV_UBI_PART
673	string "UBI partition name"
674	depends on ENV_IS_IN_UBI
675	help
676	  MTD partition containing the UBI device
677
678config ENV_UBI_VOLUME
679	string "UBI volume name"
680	depends on ENV_IS_IN_UBI
681	help
682	  Name of the volume that you want to store the environment in.
683
684config ENV_UBI_VOLUME_REDUND
685	string "UBI redundant volume name"
686	depends on ENV_IS_IN_UBI && ENV_REDUNDANT
687	help
688	  Name of the redundant volume that you want to store the environment in.
689
690config ENV_UBI_VID_OFFSET
691	int "ubi environment VID offset"
692	depends on ENV_IS_IN_UBI
693	default 0
694	help
695	  UBI VID offset for environment. If 0, no custom VID offset is used.
696
697config ENV_RELOC_GD_ENV_ADDR
698	bool "Relocate gd->env_addr"
699	help
700	  Relocate the early env_addr pointer so we know it is not inside
701	  the binary. Some systems need this and for the rest, it doesn't hurt.
702
703config ENV_MTD_DEV
704	string "mtd device name"
705	depends on ENV_IS_IN_MTD
706	help
707	  MTD device name on the platform where the environment is stored.
708
709config ENV_MMC_DEVICE_INDEX
710	int "SD/MMC device index"
711	depends on ENV_IS_IN_MMC || ENV_IS_IN_FAT || ENV_IS_IN_EXT4 || \
712		CMD_MVEBU_BUBT || FMAN_ENET || QE || PHY_CORTINA
713	default 0
714	help
715	  SD/MMC device index on the platform where the environment is stored.
716	  The index is often derived from DT aliases mmcN node ordering, and
717	  matches the 'mmc list' command output.
718
719config ENV_MMC_EMMC_HW_PARTITION
720	int "eMMC hardware partition number"
721	depends on ENV_IS_IN_MMC || ENV_IS_IN_FAT
722	default 0
723	help
724	  MMC hardware partition device number on the platform where the
725	  environment is stored.  Note that this is not related to any software
726	  defined partition table but instead if we are in the user area, which is
727	  partition 0 or the first boot partition, which is 1 or some other defined
728	  partition.
729
730config ENV_MMC_USE_SW_PARTITION
731	bool "Use SD/MMC environment software partition name"
732	depends on ENV_IS_IN_MMC
733
734config ENV_MMC_SW_PARTITION
735	string "SD/MMC environment software partition name"
736	depends on ENV_MMC_USE_SW_PARTITION
737	help
738	  SD/MMC software partition name used to save environment variables.
739	  This is a software partition name, i.e. one in partition table, not
740	  an eMMC HW partition (see ENV_MMC_EMMC_HW_PARTITION for eMMC HW
741	  partition configuration). If this variable is unset, u-boot will
742	  try to get the env partition name from the device-tree's /config
743	  node.
744
745config ENV_MMC_USE_DT
746	bool "Read partition name and offset in DT"
747	depends on ENV_IS_IN_MMC && OF_CONTROL
748	help
749	  Only use the device tree to get the environment location in MMC
750	  device, with partition name or with offset.
751	  The 2 defines CONFIG_ENV_OFFSET, CONFIG_ENV_OFFSET_REDUND
752	  are not used as fallback.
753
754config SCSI_ENV_PART_UUID
755	string "SCSI partition UUID for saving environment"
756	depends on ENV_IS_IN_SCSI
757	help
758	  UUID of the SCSI partition that you want to store the environment in.
759
760config ENV_USE_DEFAULT_ENV_TEXT_FILE
761	bool "Create default environment from file"
762	depends on !COMPILE_TEST
763	help
764	  Normally, the default environment is automatically generated
765	  based on the settings of various CONFIG_* options, as well
766	  as the CFG_EXTRA_ENV_SETTINGS. By selecting this option,
767	  you can instead define the entire default environment in an
768	  external file.
769
770config ENV_DEFAULT_ENV_TEXT_FILE
771	string "Path to default environment file"
772	depends on ENV_USE_DEFAULT_ENV_TEXT_FILE
773	help
774	  The path containing the default environment. The format is
775	  the same as accepted by the mkenvimage tool: lines
776	  containing key=value pairs, blank lines and lines beginning
777	  with # are ignored.
778
779config ENV_VARS_UBOOT_RUNTIME_CONFIG
780	bool "Add run-time information to the environment"
781	help
782	  Enable this in order to add variables describing certain
783	  run-time determined information about the hardware to the
784	  environment.  These will be named board_name, board_rev.
785
786config ENV_IMPORT_FDT
787	bool "Amend environment by FDT properties"
788	depends on OF_CONTROL
789	help
790	  If selected, after the environment has been loaded from its
791	  persistent location, the "env_fdt_path" variable is looked
792	  up and used as a path to a node in the control DTB. The
793	  property/value pairs in that node is then used to update the
794	  run-time environment. This can be useful to use the same
795	  U-Boot binary with different board variants.
796
797config ENV_FDT_PATH
798	string "Default value for env_fdt_path variable"
799	depends on ENV_IMPORT_FDT
800	default "/config/environment"
801	help
802	  The initial value of the env_fdt_path variable.
803
804config ENV_APPEND
805	bool "Always append the environment with new data"
806	help
807	  If defined, the environment hash table is only ever appended with new
808	  data, but the existing hash table can never be dropped and reloaded
809	  with newly imported data. This may be used in combination with static
810	  flags to e.g. to protect variables which must not be modified.
811
812config ENV_WRITEABLE_LIST
813	bool "Permit write access only to listed variables"
814	select ENV_APPEND
815	help
816	  If defined, only environment variables which explicitly set the 'w'
817	  writeable flag can be written and modified at runtime. No variables
818	  can be otherwise created, written or imported into the environment.
819
820config ENV_ACCESS_IGNORE_FORCE
821	bool "Block forced environment operations"
822	help
823	  If defined, don't allow the -f switch to env set override variable
824	  access flags.
825
826if SPL_ENV_SUPPORT
827config SPL_ENV_IS_NOWHERE
828	bool "SPL Environment is not stored"
829	default y if ENV_IS_NOWHERE
830	help
831	  Similar to ENV_IS_NOWHERE, used for SPL environment.
832
833config SPL_ENV_IS_IN_MMC
834	bool "SPL Environment in an MMC device"
835	depends on !SPL_ENV_IS_NOWHERE
836	depends on ENV_IS_IN_MMC
837	default y
838	help
839	  Similar to ENV_IS_IN_MMC, used for SPL environment.
840
841config SPL_ENV_IS_IN_FAT
842	bool "SPL Environment is in a FAT filesystem"
843	depends on !SPL_ENV_IS_NOWHERE
844	depends on ENV_IS_IN_FAT
845	default y
846	help
847	  Similar to ENV_IS_IN_FAT, used for SPL environment.
848
849config SPL_ENV_IS_IN_EXT4
850	bool "SPL Environment is in a EXT4 filesystem"
851	depends on !SPL_ENV_IS_NOWHERE
852	depends on ENV_IS_IN_EXT4
853	default y
854	help
855	  Similar to ENV_IS_IN_EXT4, used for SPL environment.
856
857config SPL_ENV_IS_IN_NAND
858	bool "SPL Environment in a NAND device"
859	depends on !SPL_ENV_IS_NOWHERE
860	depends on ENV_IS_IN_NAND
861	default y
862	help
863	  Similar to ENV_IS_IN_NAND, used for SPL environment.
864
865config SPL_ENV_IS_IN_SPI_FLASH
866	bool "SPL Environment is in SPI flash"
867	depends on !SPL_ENV_IS_NOWHERE
868	depends on ENV_IS_IN_SPI_FLASH
869	default y
870	help
871	  Similar to ENV_IS_IN_SPI_FLASH, used for SPL environment.
872
873config SPL_ENV_IS_IN_FLASH
874	bool "SPL Environment in flash memory"
875	depends on !SPL_ENV_IS_NOWHERE
876	depends on ENV_IS_IN_FLASH
877	default y
878	help
879	  Similar to ENV_IS_IN_FLASH, used for SPL environment.
880
881endif
882
883if TPL_ENV_SUPPORT
884
885config TPL_ENV_IS_NOWHERE
886	bool "TPL Environment is not stored"
887	default y if ENV_IS_NOWHERE
888	help
889	  Similar to ENV_IS_NOWHERE, used for TPL environment.
890
891config TPL_ENV_IS_IN_MMC
892	bool "TPL Environment in an MMC device"
893	depends on !TPL_ENV_IS_NOWHERE
894	depends on ENV_IS_IN_MMC
895	default y
896	help
897	  Similar to ENV_IS_IN_MMC, used for TPL environment.
898
899config TPL_ENV_IS_IN_FAT
900	bool "TPL Environment is in a FAT filesystem"
901	depends on !TPL_ENV_IS_NOWHERE
902	depends on ENV_IS_IN_FAT
903	default y
904	help
905	  Similar to ENV_IS_IN_FAT, used for TPL environment.
906
907config TPL_ENV_IS_IN_EXT4
908	bool "TPL Environment is in a EXT4 filesystem"
909	depends on !TPL_ENV_IS_NOWHERE
910	depends on ENV_IS_IN_EXT4
911	default y
912	help
913	  Similar to ENV_IS_IN_EXT4, used for TPL environment.
914
915config TPL_ENV_IS_IN_NAND
916	bool "TPL Environment in a NAND device"
917	depends on !TPL_ENV_IS_NOWHERE
918	depends on ENV_IS_IN_NAND
919	default y
920	help
921	  Similar to ENV_IS_IN_NAND, used for TPL environment.
922
923config TPL_ENV_IS_IN_SPI_FLASH
924	bool "TPL Environment is in SPI flash"
925	depends on !TPL_ENV_IS_NOWHERE
926	depends on ENV_IS_IN_SPI_FLASH
927	default y
928	help
929	  Similar to ENV_IS_IN_SPI_FLASH, used for TPL environment.
930
931config TPL_ENV_IS_IN_FLASH
932	bool "TPL Environment in flash memory"
933	depends on !TPL_ENV_IS_NOWHERE
934	depends on ENV_IS_IN_FLASH
935	default y
936	help
937	  Similar to ENV_IS_IN_FLASH, used for TPL environment.
938
939endif
940
941if VPL_ENV_SUPPORT
942
943config VPL_ENV_IS_NOWHERE
944	bool "VPL Environment is not stored"
945	default y if ENV_IS_NOWHERE
946	help
947	  Similar to ENV_IS_NOWHERE, used for VPL environment.
948
949endif  # VPL_ENV_SUPPORT
950
951config USE_BOOTFILE
952	bool "Add a 'bootfile' environment variable"
953	help
954	  The "bootfile" variable is used in some cases to allow for
955	  controlling what file U-Boot will attempt to load and boot.  To set
956	  this, enable this option and set the value in the next question.
957
958config BOOTFILE
959	string "'bootfile' environment variable value"
960	default kernel.itb if SPL_ATF && TARGET_SOCFPGA_SOC64
961	depends on USE_BOOTFILE
962	help
963	  The value to set the "bootfile" variable to.
964
965config USE_ETHPRIME
966	bool "Add an 'ethprime' environment variable"
967	help
968	  The "ethprime" variable is used in some cases to control which
969	  network interface is used first.
970
971config ETHPRIME
972	string "'ethprime' environment variable value"
973	depends on USE_ETHPRIME
974	help
975	  The value to set the "ethprime" variable to.
976
977config USE_HOSTNAME
978	bool "Set a default 'hostname' value in the environment"
979	default y if X86
980
981config HOSTNAME
982	string "Value of the default 'hostname' value in the environment"
983	depends on USE_HOSTNAME
984	default "x86" if X86
985	default "unknown"
986
987config VERSION_VARIABLE
988	bool "Add a 'ver' environment variable with the U-Boot version"
989	help
990	  If this variable is defined, an environment variable
991	  named "ver" is created by U-Boot showing the U-Boot
992	  version as printed by the "version" command.
993	  Any change to this variable will be reverted at the
994	  next reset.
995
996endmenu
997