mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-11-04 14:00:19 +00:00 
			
		
		
		
	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__ */
 |