mirror of
https://github.com/u-boot/u-boot.git
synced 2024-11-27 06:04:40 +08:00
47e544f576
Simon Glass <sjg@chromium.org> says: When the SPL build-phase was first created it was designed to solve a particular problem (the need to init SDRAM so that U-Boot proper could be loaded). It has since expanded to become an important part of U-Boot, with three phases now present: TPL, VPL and SPL Due to this history, the term 'SPL' is used to mean both a particular phase (the one before U-Boot proper) and all the non-proper phases. This has become confusing. For a similar reason CONFIG_SPL_BUILD is set to 'y' for all 'SPL' phases, not just SPL. So code which can only be compiled for actual SPL, for example, must use something like this: #if defined(CONFIG_SPL_BUILD) && !defined(CONFIG_TPL_BUILD) In Makefiles we have similar issues. SPL_ has been used as a variable which expands to either SPL_ or nothing, to chose between options like CONFIG_BLK and CONFIG_SPL_BLK. When TPL appeared, a new SPL_TPL variable was created which expanded to 'SPL_', 'TPL_' or nothing. Later it was updated to support 'VPL_' as well. This series starts a change in terminology and usage to resolve the above issues: - The word 'xPL' is used instead of 'SPL' to mean a non-proper build - A new CONFIG_XPL_BUILD define indicates that the current build is an 'xPL' build - The existing CONFIG_SPL_BUILD is changed to mean SPL; it is not now defined for TPL and VPL phases - The existing SPL_ Makefile variable is renamed to SPL_ - The existing SPL_TPL Makefile variable is renamed to PHASE_ It should be noted that xpl_phase() can generally be used instead of the above CONFIGs without a code-space or run-time penalty. This series does not attempt to convert all of U-Boot to use this new terminology but it makes a start. In particular, renaming spl.h and common/spl seems like a bridge too far at this point. The series is fully bisectable. It has also been checked to ensure there are no code-size changes on any commit.
104 lines
2.1 KiB
C
104 lines
2.1 KiB
C
/* SPDX-License-Identifier: GPL-2.0+ */
|
|
/*
|
|
* (C) Copyright 2012
|
|
* Joe Hershberger, National Instruments, joe.hershberger@ni.com
|
|
*/
|
|
|
|
#ifndef __ENV_CALLBACK_H__
|
|
#define __ENV_CALLBACK_H__
|
|
|
|
#include <config.h>
|
|
#include <env_flags.h>
|
|
#include <linker_lists.h>
|
|
#include <search.h>
|
|
|
|
#define ENV_CALLBACK_VAR ".callbacks"
|
|
|
|
/* Board configs can define additional static callback bindings */
|
|
#ifndef CFG_ENV_CALLBACK_LIST_STATIC
|
|
#define CFG_ENV_CALLBACK_LIST_STATIC
|
|
#endif
|
|
|
|
#ifdef CONFIG_SILENT_CONSOLE
|
|
#define SILENT_CALLBACK "silent:silent,"
|
|
#else
|
|
#define SILENT_CALLBACK
|
|
#endif
|
|
|
|
#ifdef CONFIG_REGEX
|
|
#define ENV_DOT_ESCAPE "\\"
|
|
#else
|
|
#define ENV_DOT_ESCAPE
|
|
#endif
|
|
|
|
#ifdef CONFIG_CMD_DNS
|
|
#define DNS_CALLBACK "dnsip:dnsip,"
|
|
#else
|
|
#define DNS_CALLBACK
|
|
#endif
|
|
|
|
#ifdef CONFIG_NET
|
|
#define NET_CALLBACKS \
|
|
"bootfile:bootfile," \
|
|
"ipaddr:ipaddr," \
|
|
"gatewayip:gatewayip," \
|
|
"netmask:netmask," \
|
|
"serverip:serverip," \
|
|
"nvlan:nvlan," \
|
|
"vlan:vlan," \
|
|
DNS_CALLBACK \
|
|
"eth" ETHADDR_WILDCARD "addr:ethaddr,"
|
|
#else
|
|
#define NET_CALLBACKS
|
|
#endif
|
|
|
|
#ifdef CONFIG_IPV6
|
|
#define NET6_CALLBACKS \
|
|
"ip6addr:ip6addr," \
|
|
"serverip6:serverip6," \
|
|
"gatewayip6:gatewayip6,"
|
|
#else
|
|
#define NET6_CALLBACKS
|
|
#endif
|
|
|
|
#ifdef CONFIG_BOOTSTD_FULL
|
|
#define BOOTSTD_CALLBACK \
|
|
"bootmeths:bootmeths," \
|
|
"bootargs:bootargs,"
|
|
#else
|
|
#define BOOTSTD_CALLBACK
|
|
#endif
|
|
|
|
#ifdef CONFIG_DFU
|
|
#define DFU_CALLBACK "dfu_alt_info:dfu_alt_info,"
|
|
#else
|
|
#define DFU_CALLBACK
|
|
#endif
|
|
|
|
/*
|
|
* This list of callback bindings is static, but may be overridden by defining
|
|
* a new association in the ".callbacks" environment variable.
|
|
*/
|
|
#define ENV_CALLBACK_LIST_STATIC ENV_DOT_ESCAPE ENV_CALLBACK_VAR ":callbacks," \
|
|
ENV_DOT_ESCAPE ENV_FLAGS_VAR ":flags," \
|
|
"baudrate:baudrate," \
|
|
NET_CALLBACKS \
|
|
NET6_CALLBACKS \
|
|
BOOTSTD_CALLBACK \
|
|
DFU_CALLBACK \
|
|
"loadaddr:loadaddr," \
|
|
SILENT_CALLBACK \
|
|
"stdin:console,stdout:console,stderr:console," \
|
|
"serial#:serialno," \
|
|
CFG_ENV_CALLBACK_LIST_STATIC
|
|
|
|
#ifndef CONFIG_XPL_BUILD
|
|
void env_callback_init(struct env_entry *var_entry);
|
|
#else
|
|
static inline void env_callback_init(struct env_entry *var_entry)
|
|
{
|
|
}
|
|
#endif
|
|
|
|
#endif /* __ENV_CALLBACK_H__ */
|