mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-10-30 19:48: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__ */
 |