Makefile: Add environment variable DEVICE_TREE to header
Users have option to overwrite default device tree
(CONFIG_DEFAULT_DEVICE_TREE) via environment variable DEVICE_TREE.
Feature has been added long time ago by commit 74de8c9a16
("dts/Makefile: Build the user specified dts") for a little bit different
reason.
But this variable can be also used for different purpose like choosing
proper configuration from FIT image in SPL.
And this is the functionality I would like to use on Xilinx Zynq devices
that current u-boot.img can be composed in the same way based on OF_LIST
and different configuration is taken based on platform specific SPL.
SPL requires low level ps7_init_gpl configuration that's why different
boards require different SPL with fixed board_fit_config_name_match().
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
			
			
This commit is contained in:
		
							parent
							
								
									f5a122e2ab
								
							
						
					
					
						commit
						dacec83ce0
					
				
							
								
								
									
										14
									
								
								Makefile
								
								
								
								
							
							
						
						
									
										14
									
								
								Makefile
								
								
								
								
							|  | @ -483,6 +483,7 @@ endif | |||
| version_h := include/generated/version_autogenerated.h | ||||
| timestamp_h := include/generated/timestamp_autogenerated.h | ||||
| defaultenv_h := include/generated/defaultenv_autogenerated.h | ||||
| dt_h := include/generated/dt.h | ||||
| 
 | ||||
| no-dot-config-targets := clean clobber mrproper distclean \
 | ||||
| 			 help %docs check% coccicheck \
 | ||||
|  | @ -1767,7 +1768,7 @@ endif | |||
| # prepare2 creates a makefile if using a separate output directory
 | ||||
| prepare2: prepare3 outputmakefile cfg | ||||
| 
 | ||||
| prepare1: prepare2 $(version_h) $(timestamp_h) \ | ||||
| prepare1: prepare2 $(version_h) $(timestamp_h) $(dt_h) \ | ||||
|                    include/config/auto.conf | ||||
| ifeq ($(wildcard $(LDSCRIPT)),) | ||||
| 	@echo >&2 "  Could not find linker script." | ||||
|  | @ -1833,12 +1834,23 @@ define filechk_defaultenv.h | |||
| 	 xxd -i ; echo ", 0x00" ; ) | ||||
| endef | ||||
| 
 | ||||
| define filechk_dt.h | ||||
| 	(if test -n "$${DEVICE_TREE}"; then \
 | ||||
| 		echo \#define DEVICE_TREE \"$(DEVICE_TREE)\"; \
 | ||||
| 	else \
 | ||||
| 		echo \#define DEVICE_TREE CONFIG_DEFAULT_DEVICE_TREE; \
 | ||||
| 	fi) | ||||
| endef | ||||
| 
 | ||||
| $(version_h): include/config/uboot.release FORCE | ||||
| 	$(call filechk,version.h) | ||||
| 
 | ||||
| $(timestamp_h): $(srctree)/Makefile FORCE | ||||
| 	$(call filechk,timestamp.h) | ||||
| 
 | ||||
| $(dt_h): $(srctree)/Makefile FORCE | ||||
| 	$(call filechk,dt.h) | ||||
| 
 | ||||
| $(defaultenv_h): $(CONFIG_DEFAULT_ENV_FILE:"%"=%) FORCE | ||||
| 	$(call filechk,defaultenv.h) | ||||
| 
 | ||||
|  |  | |||
|  | @ -6,6 +6,7 @@ | |||
| #include <debug_uart.h> | ||||
| #include <hang.h> | ||||
| #include <spl.h> | ||||
| #include <generated/dt.h> | ||||
| 
 | ||||
| #include <asm/io.h> | ||||
| #include <asm/spl.h> | ||||
|  | @ -89,8 +90,11 @@ void spl_board_prepare_for_boot(void) | |||
| int board_fit_config_name_match(const char *name) | ||||
| { | ||||
| 	/* Just empty function now - can't decide what to choose */ | ||||
| 	debug("%s: %s\n", __func__, name); | ||||
| 	debug("%s: Check %s, default %s\n", __func__, name, DEVICE_TREE); | ||||
| 
 | ||||
| 	return 0; | ||||
| 	if (!strcmp(name, DEVICE_TREE)) | ||||
| 		return 0; | ||||
| 
 | ||||
| 	return -1; | ||||
| } | ||||
| #endif | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue