blob: 076ffdd44e9bc8c5c30e57aed3bca0e00b897f19 [file] [log] [blame]
Tom Rini83d290c2018-05-06 17:58:06 -04001/* SPDX-License-Identifier: GPL-2.0+ */
Joe Hershbergerddd84182012-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 Hershbergerddd84182012-10-12 08:48:51 +00008 */
9
Tom Rini0f92fa42024-04-27 08:11:03 -060010#include <config.h>
Joe Hershberger170ab112012-12-11 22:16:24 -060011#include <env_callback.h>
Simon Glass1af3c7f2020-05-10 11:40:09 -060012#include <linux/stringify.h>
Joe Hershberger170ab112012-12-11 22:16:24 -060013
Simon Glass86b9c3e2021-10-21 21:08:46 -060014#include <generated/environment.h>
Simon Glass86b9c3e2021-10-21 21:08:46 -060015
Joe Hershbergerddd84182012-10-12 08:48:51 +000016#ifdef DEFAULT_ENV_INSTANCE_EMBEDDED
Simon Glassbe54ec12019-08-01 09:47:03 -060017env_t embedded_environment __UBOOT_ENV_SECTION__(environment) = {
Joe Hershbergerddd84182012-10-12 08:48:51 +000018 ENV_CRC, /* CRC Sum */
19#ifdef CONFIG_SYS_REDUNDAND_ENVIRONMENT
20 1, /* Flags: valid */
21#endif
22 {
23#elif defined(DEFAULT_ENV_INSTANCE_STATIC)
24static char default_environment[] = {
Algapally Santosh Sagar88198922023-09-21 16:50:42 +053025#elif defined(CONFIG_DEFAULT_ENV_IS_RW)
Marek Behúnc5cbbe32021-10-22 15:47:24 +020026char default_environment[] = {
Joe Hershbergerddd84182012-10-12 08:48:51 +000027#else
Marek Behúnc5cbbe32021-10-22 15:47:24 +020028const char default_environment[] = {
Joe Hershbergerddd84182012-10-12 08:48:51 +000029#endif
Rasmus Villemoesf3d8f7d2018-03-20 11:38:45 +010030#ifndef CONFIG_USE_DEFAULT_ENV_FILE
Joe Hershberger170ab112012-12-11 22:16:24 -060031#ifdef CONFIG_ENV_CALLBACK_LIST_DEFAULT
32 ENV_CALLBACK_VAR "=" CONFIG_ENV_CALLBACK_LIST_DEFAULT "\0"
33#endif
Joe Hershberger25980902012-12-11 22:16:31 -060034#ifdef CONFIG_ENV_FLAGS_LIST_DEFAULT
35 ENV_FLAGS_VAR "=" CONFIG_ENV_FLAGS_LIST_DEFAULT "\0"
36#endif
Sam Protsenko5abc1a42017-08-14 20:22:17 +030037#ifdef CONFIG_USE_BOOTARGS
Joe Hershbergerddd84182012-10-12 08:48:51 +000038 "bootargs=" CONFIG_BOOTARGS "\0"
39#endif
40#ifdef CONFIG_BOOTCOMMAND
41 "bootcmd=" CONFIG_BOOTCOMMAND "\0"
42#endif
Alex Kiernan57aa4d22018-07-05 12:38:15 +000043#if defined(CONFIG_BOOTDELAY)
Joe Hershbergerddd84182012-10-12 08:48:51 +000044 "bootdelay=" __stringify(CONFIG_BOOTDELAY) "\0"
45#endif
Algapally Santosh Sagarbd9ff682023-09-21 16:50:43 +053046#if !defined(CONFIG_OF_SERIAL_BAUD) && defined(CONFIG_BAUDRATE) && (CONFIG_BAUDRATE >= 0)
Joe Hershbergerddd84182012-10-12 08:48:51 +000047 "baudrate=" __stringify(CONFIG_BAUDRATE) "\0"
48#endif
49#ifdef CONFIG_LOADS_ECHO
50 "loads_echo=" __stringify(CONFIG_LOADS_ECHO) "\0"
51#endif
Joe Hershbergerddd84182012-10-12 08:48:51 +000052#ifdef CONFIG_ETHPRIME
53 "ethprime=" CONFIG_ETHPRIME "\0"
54#endif
Tom Rini54f80dd2022-12-02 16:42:27 -050055#ifdef CONFIG_USE_IPADDR
56 "ipaddr=" CONFIG_IPADDR "\0"
Joe Hershbergerddd84182012-10-12 08:48:51 +000057#endif
Tom Rini54f80dd2022-12-02 16:42:27 -050058#ifdef CONFIG_USE_SERVERIP
59 "serverip=" CONFIG_SERVERIP "\0"
Joe Hershbergerddd84182012-10-12 08:48:51 +000060#endif
Tom Rinibf904ea2022-06-13 22:57:35 -040061#ifdef CONFIG_SYS_DISABLE_AUTOLOAD
62 "autoload=0\0"
Joe Hershbergerddd84182012-10-12 08:48:51 +000063#endif
Pali Rohár2827c2f2022-07-10 13:42:55 +020064#ifdef CONFIG_PREBOOT_DEFINED
Joe Hershbergerddd84182012-10-12 08:48:51 +000065 "preboot=" CONFIG_PREBOOT "\0"
66#endif
Tom Rini54f80dd2022-12-02 16:42:27 -050067#ifdef CONFIG_USE_ROOTPATH
Joe Hershbergerddd84182012-10-12 08:48:51 +000068 "rootpath=" CONFIG_ROOTPATH "\0"
69#endif
Tom Rini54f80dd2022-12-02 16:42:27 -050070#ifdef CONFIG_USE_GATEWAYIP
71 "gatewayip=" CONFIG_GATEWAYIP "\0"
Joe Hershbergerddd84182012-10-12 08:48:51 +000072#endif
Tom Rini54f80dd2022-12-02 16:42:27 -050073#ifdef CONFIG_USE_NETMASK
74 "netmask=" CONFIG_NETMASK "\0"
Joe Hershbergerddd84182012-10-12 08:48:51 +000075#endif
Tom Rini54f80dd2022-12-02 16:42:27 -050076#ifdef CONFIG_USE_HOSTNAME
77 "hostname=" CONFIG_HOSTNAME "\0"
Joe Hershbergerddd84182012-10-12 08:48:51 +000078#endif
Tom Rinifdfb17b2022-02-25 11:19:48 -050079#ifdef CONFIG_USE_BOOTFILE
Joe Hershbergerddd84182012-10-12 08:48:51 +000080 "bootfile=" CONFIG_BOOTFILE "\0"
81#endif
Tom Rini72d81362021-08-23 10:25:30 -040082#ifdef CONFIG_SYS_LOAD_ADDR
83 "loadaddr=" __stringify(CONFIG_SYS_LOAD_ADDR)"\0"
Joe Hershbergerddd84182012-10-12 08:48:51 +000084#endif
Joe Hershbergerddd84182012-10-12 08:48:51 +000085#if defined(CONFIG_PCI_BOOTDELAY) && (CONFIG_PCI_BOOTDELAY > 0)
86 "pcidelay=" __stringify(CONFIG_PCI_BOOTDELAY)"\0"
87#endif
88#ifdef CONFIG_ENV_VARS_UBOOT_CONFIG
89 "arch=" CONFIG_SYS_ARCH "\0"
Masahiro Yamada96044742016-06-17 14:24:07 +090090#ifdef CONFIG_SYS_CPU
Joe Hershbergerddd84182012-10-12 08:48:51 +000091 "cpu=" CONFIG_SYS_CPU "\0"
Masahiro Yamada96044742016-06-17 14:24:07 +090092#endif
93#ifdef CONFIG_SYS_BOARD
Joe Hershbergerddd84182012-10-12 08:48:51 +000094 "board=" CONFIG_SYS_BOARD "\0"
Stephen Warren418b7f32012-10-31 11:17:28 +000095 "board_name=" CONFIG_SYS_BOARD "\0"
Masahiro Yamada96044742016-06-17 14:24:07 +090096#endif
Joe Hershbergerddd84182012-10-12 08:48:51 +000097#ifdef CONFIG_SYS_VENDOR
98 "vendor=" CONFIG_SYS_VENDOR "\0"
99#endif
100#ifdef CONFIG_SYS_SOC
101 "soc=" CONFIG_SYS_SOC "\0"
102#endif
Janne Grunau18f288b2024-04-04 08:25:52 +0200103#ifdef CONFIG_USB_HOST
104 "usb_ignorelist="
105#ifdef CONFIG_USB_KEYBOARD
106 /* Ignore Yubico devices. Currently only a single USB keyboard device is
107 * supported and the emulated HID keyboard Yubikeys present is useless
108 * as keyboard.
109 */
110 "0x1050:*,"
111#endif
112 "\0"
113#endif
Rasmus Villemoes95fd9772021-04-21 11:06:54 +0200114#ifdef CONFIG_ENV_IMPORT_FDT
115 "env_fdt_path=" CONFIG_ENV_FDT_PATH "\0"
116#endif
Joe Hershbergerddd84182012-10-12 08:48:51 +0000117#endif
Alex Kiernanc9ad6bc2018-07-21 20:25:32 +0000118#if defined(CONFIG_BOOTCOUNT_BOOTLIMIT) && (CONFIG_BOOTCOUNT_BOOTLIMIT > 0)
119 "bootlimit=" __stringify(CONFIG_BOOTCOUNT_BOOTLIMIT)"\0"
120#endif
Tom Rinia3310172022-06-13 22:57:36 -0400121#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
Simon Glass86b9c3e2021-10-21 21:08:46 -0600127#ifdef CONFIG_EXTRA_ENV_TEXT
Simon Glass86b9c3e2021-10-21 21:08:46 -0600128 /* This is created in the Makefile */
129 CONFIG_EXTRA_ENV_TEXT
130#endif
Tom Rini0613c362022-12-04 10:03:50 -0500131#ifdef CFG_EXTRA_ENV_SETTINGS
132 CFG_EXTRA_ENV_SETTINGS
Joe Hershbergerddd84182012-10-12 08:48:51 +0000133#endif
Algapally Santosh Sagarbd9ff682023-09-21 16:50:43 +0530134#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
Joe Hershbergerddd84182012-10-12 08:48:51 +0000138 "\0"
Rasmus Villemoesf3d8f7d2018-03-20 11:38:45 +0100139#else /* CONFIG_USE_DEFAULT_ENV_FILE */
140#include "generated/defaultenv_autogenerated.h"
141#endif
Joe Hershbergerddd84182012-10-12 08:48:51 +0000142#ifdef DEFAULT_ENV_INSTANCE_EMBEDDED
143 }
144#endif
145};
Marek Behún37f37582021-10-22 15:47:25 +0200146
147#if !defined(USE_HOSTCC) && !defined(DEFAULT_ENV_INSTANCE_EMBEDDED)
148#include <env_internal.h>
149static_assert(sizeof(default_environment) <= ENV_SIZE,
150 "Default environment is too large");
151#endif