mirror of
				https://xff.cz/git/u-boot/
				synced 2025-10-31 02:15:45 +01:00 
			
		
		
		
	SPL: Move the omap SPL framework to common/spl
Add a new flag, CONFIG_SPL_FRAMEWORK to opt into the common/spl SPL framework, enable on all of the previously using boards. We move the spl_ymodem.c portion to common/ and spl_mmc.c to drivers/mmc/. We leave the NAND one in-place as we plan to replace it later in this series. We use common/spl to avoid linker problems with respect to merging constant strings in objects. Otherwise all strings in common/ will be linked in and kept which grows SPL in size too much. Signed-off-by: Tom Rini <trini@ti.com>
This commit is contained in:
		
							
								
								
									
										5
									
								
								README
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								README
									
									
									
									
									
								
							| @@ -2597,6 +2597,11 @@ FIT uImage format: | |||||||
| 		CONFIG_SYS_SPL_MALLOC_SIZE | 		CONFIG_SYS_SPL_MALLOC_SIZE | ||||||
| 		The size of the malloc pool used in SPL. | 		The size of the malloc pool used in SPL. | ||||||
|  |  | ||||||
|  | 		CONFIG_SPL_FRAMEWORK | ||||||
|  | 		Enable the SPL framework under common/.  This framework | ||||||
|  | 		supports MMC, NAND and YMODEM loading of U-Boot and NAND | ||||||
|  | 		NAND loading of the Linux Kernel. | ||||||
|  |  | ||||||
| 		CONFIG_SPL_DISPLAY_PRINT | 		CONFIG_SPL_DISPLAY_PRINT | ||||||
| 		For ARM, enable an optional function to print more information | 		For ARM, enable an optional function to print more information | ||||||
| 		about the running system. | 		about the running system. | ||||||
|   | |||||||
| @@ -18,6 +18,7 @@ | |||||||
|  |  | ||||||
| #include <common.h> | #include <common.h> | ||||||
| #include <errno.h> | #include <errno.h> | ||||||
|  | #include <spl.h> | ||||||
| #include <asm/arch/cpu.h> | #include <asm/arch/cpu.h> | ||||||
| #include <asm/arch/hardware.h> | #include <asm/arch/hardware.h> | ||||||
| #include <asm/arch/omap.h> | #include <asm/arch/omap.h> | ||||||
| @@ -29,7 +30,6 @@ | |||||||
| #include <asm/io.h> | #include <asm/io.h> | ||||||
| #include <asm/emif.h> | #include <asm/emif.h> | ||||||
| #include <asm/gpio.h> | #include <asm/gpio.h> | ||||||
| #include <asm/spl.h> |  | ||||||
| #include <i2c.h> | #include <i2c.h> | ||||||
| #include <miiphy.h> | #include <miiphy.h> | ||||||
| #include <cpsw.h> | #include <cpsw.h> | ||||||
|   | |||||||
| @@ -43,16 +43,9 @@ SOBJS	+= lowlevel_init.o | |||||||
| endif | endif | ||||||
|  |  | ||||||
| ifdef CONFIG_SPL_BUILD | ifdef CONFIG_SPL_BUILD | ||||||
| COBJS	+= spl.o |  | ||||||
| ifdef CONFIG_SPL_NAND_SUPPORT | ifdef CONFIG_SPL_NAND_SUPPORT | ||||||
| COBJS	+= spl_nand.o | COBJS	+= spl_nand.o | ||||||
| endif | endif | ||||||
| ifdef CONFIG_SPL_MMC_SUPPORT |  | ||||||
| COBJS	+= spl_mmc.o |  | ||||||
| endif |  | ||||||
| ifdef CONFIG_SPL_YMODEM_SUPPORT |  | ||||||
| COBJS	+= spl_ymodem.o |  | ||||||
| endif |  | ||||||
| endif | endif | ||||||
|  |  | ||||||
| ifndef CONFIG_SPL_BUILD | ifndef CONFIG_SPL_BUILD | ||||||
|   | |||||||
| @@ -17,7 +17,7 @@ | |||||||
|  */ |  */ | ||||||
|  |  | ||||||
| #include <common.h> | #include <common.h> | ||||||
| #include <asm/spl.h> | #include <spl.h> | ||||||
| #include <asm/omap_common.h> | #include <asm/omap_common.h> | ||||||
| #include <asm/arch/omap.h> | #include <asm/arch/omap.h> | ||||||
| #include <asm/arch/mmc_host_def.h> | #include <asm/arch/mmc_host_def.h> | ||||||
|   | |||||||
| @@ -28,10 +28,10 @@ | |||||||
|  * MA 02111-1307 USA |  * MA 02111-1307 USA | ||||||
|  */ |  */ | ||||||
| #include <common.h> | #include <common.h> | ||||||
|  | #include <spl.h> | ||||||
| #include <asm/arch/sys_proto.h> | #include <asm/arch/sys_proto.h> | ||||||
| #include <asm/sizes.h> | #include <asm/sizes.h> | ||||||
| #include <asm/emif.h> | #include <asm/emif.h> | ||||||
| #include <asm/spl.h> |  | ||||||
|  |  | ||||||
| DECLARE_GLOBAL_DATA_PTR; | DECLARE_GLOBAL_DATA_PTR; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -21,7 +21,7 @@ | |||||||
|  * MA 02111-1307 USA |  * MA 02111-1307 USA | ||||||
|  */ |  */ | ||||||
| #include <common.h> | #include <common.h> | ||||||
| #include <asm/spl.h> | #include <spl.h> | ||||||
| #include <asm/u-boot.h> | #include <asm/u-boot.h> | ||||||
| #include <asm/utils.h> | #include <asm/utils.h> | ||||||
| #include <asm/io.h> | #include <asm/io.h> | ||||||
|   | |||||||
| @@ -33,13 +33,13 @@ | |||||||
|  * MA 02111-1307 USA |  * MA 02111-1307 USA | ||||||
|  */ |  */ | ||||||
| #include <common.h> | #include <common.h> | ||||||
|  | #include <spl.h> | ||||||
| #include <asm/io.h> | #include <asm/io.h> | ||||||
| #include <asm/arch/sys_proto.h> | #include <asm/arch/sys_proto.h> | ||||||
| #include <asm/arch/mem.h> | #include <asm/arch/mem.h> | ||||||
| #include <asm/cache.h> | #include <asm/cache.h> | ||||||
| #include <asm/armv7.h> | #include <asm/armv7.h> | ||||||
| #include <asm/arch/gpio.h> | #include <asm/arch/gpio.h> | ||||||
| #include <asm/spl.h> |  | ||||||
| #include <asm/omap_common.h> | #include <asm/omap_common.h> | ||||||
| #include <asm/arch/mmc_host_def.h> | #include <asm/arch/mmc_host_def.h> | ||||||
| #include <i2c.h> | #include <i2c.h> | ||||||
|   | |||||||
| @@ -26,44 +26,4 @@ | |||||||
| /* Platform-specific defines */ | /* Platform-specific defines */ | ||||||
| #include <asm/arch/spl.h> | #include <asm/arch/spl.h> | ||||||
|  |  | ||||||
| /* Boot type */ |  | ||||||
| #define MMCSD_MODE_UNDEFINED	0 |  | ||||||
| #define MMCSD_MODE_RAW		1 |  | ||||||
| #define MMCSD_MODE_FAT		2 |  | ||||||
|  |  | ||||||
| struct spl_image_info { |  | ||||||
| 	const char *name; |  | ||||||
| 	u8 os; |  | ||||||
| 	u32 load_addr; |  | ||||||
| 	u32 entry_point; |  | ||||||
| 	u32 size; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| extern struct spl_image_info spl_image; |  | ||||||
| extern u32 *boot_params_ptr; |  | ||||||
|  |  | ||||||
| /* SPL common functions */ |  | ||||||
| void preloader_console_init(void); |  | ||||||
| u32 spl_boot_device(void); |  | ||||||
| u32 spl_boot_mode(void); |  | ||||||
| void spl_parse_image_header(const struct image_header *header); |  | ||||||
| void spl_board_prepare_for_linux(void); |  | ||||||
| int spl_start_uboot(void); |  | ||||||
| void spl_display_print(void); |  | ||||||
|  |  | ||||||
| /* NAND SPL functions */ |  | ||||||
| void spl_nand_load_image(void); |  | ||||||
|  |  | ||||||
| /* MMC SPL functions */ |  | ||||||
| void spl_mmc_load_image(void); |  | ||||||
|  |  | ||||||
| /* YMODEM SPL functions */ |  | ||||||
| void spl_ymodem_load_image(void); |  | ||||||
|  |  | ||||||
| /* SPI SPL functions */ |  | ||||||
| void spi_boot(void); |  | ||||||
|  |  | ||||||
| #ifdef CONFIG_SPL_BOARD_INIT |  | ||||||
| void spl_board_init(void); |  | ||||||
| #endif |  | ||||||
| #endif | #endif | ||||||
|   | |||||||
							
								
								
									
										37
									
								
								common/spl/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								common/spl/Makefile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,37 @@ | |||||||
|  | # | ||||||
|  | # (C) Copyright 2012 | ||||||
|  | # Texas Instruments Incorporated - http://www.ti.com/ | ||||||
|  | # Aneesh V <aneesh@ti.com> | ||||||
|  | # | ||||||
|  | # This file is released under the terms of GPL v2 and any later version. | ||||||
|  | # See the file COPYING in the root directory of the source tree for details. | ||||||
|  | # | ||||||
|  | # Based on common/Makefile. | ||||||
|  | # | ||||||
|  |  | ||||||
|  | include $(TOPDIR)/config.mk | ||||||
|  |  | ||||||
|  | LIB	= $(obj)libspl.o | ||||||
|  |  | ||||||
|  | ifdef CONFIG_SPL_BUILD | ||||||
|  | COBJS-$(CONFIG_SPL_FRAMEWORK) += spl.o | ||||||
|  | COBJS-$(CONFIG_SPL_YMODEM_SUPPORT) += spl_ymodem.o | ||||||
|  | endif | ||||||
|  |  | ||||||
|  | COBJS	:= $(sort $(COBJS-y)) | ||||||
|  | SRCS	:= $(COBJS:.o=.c) | ||||||
|  | OBJS	:= $(addprefix $(obj),$(COBJS-y)) | ||||||
|  |  | ||||||
|  | all:	$(obj).depend $(LIB) | ||||||
|  |  | ||||||
|  | $(LIB):	$(OBJS) | ||||||
|  | 	$(call cmd_link_o_target, $(OBJS)) | ||||||
|  |  | ||||||
|  | ######################################################################### | ||||||
|  |  | ||||||
|  | # defines $(obj).depend target | ||||||
|  | include $(SRCTREE)/rules.mk | ||||||
|  |  | ||||||
|  | sinclude $(obj).depend | ||||||
|  |  | ||||||
|  | ######################################################################### | ||||||
| @@ -23,9 +23,8 @@ | |||||||
|  * MA 02111-1307 USA |  * MA 02111-1307 USA | ||||||
|  */ |  */ | ||||||
| #include <common.h> | #include <common.h> | ||||||
| #include <asm/spl.h> | #include <spl.h> | ||||||
| #include <asm/u-boot.h> | #include <asm/u-boot.h> | ||||||
| #include <asm/utils.h> |  | ||||||
| #include <nand.h> | #include <nand.h> | ||||||
| #include <fat.h> | #include <fat.h> | ||||||
| #include <version.h> | #include <version.h> | ||||||
| @@ -36,7 +35,7 @@ | |||||||
| 
 | 
 | ||||||
| DECLARE_GLOBAL_DATA_PTR; | DECLARE_GLOBAL_DATA_PTR; | ||||||
| 
 | 
 | ||||||
| u32* boot_params_ptr = NULL; | u32 *boot_params_ptr = NULL; | ||||||
| struct spl_image_info spl_image; | struct spl_image_info spl_image; | ||||||
| 
 | 
 | ||||||
| /* Define global data structure pointer to it*/ | /* Define global data structure pointer to it*/ | ||||||
| @@ -26,11 +26,10 @@ | |||||||
|  * MA 02111-1307 USA |  * MA 02111-1307 USA | ||||||
|  */ |  */ | ||||||
| #include <common.h> | #include <common.h> | ||||||
| #include <asm/spl.h> | #include <spl.h> | ||||||
| #include <xyzModem.h> | #include <xyzModem.h> | ||||||
| #include <asm/u-boot.h> | #include <asm/u-boot.h> | ||||||
| #include <asm/utils.h> | #include <asm/utils.h> | ||||||
| #include <asm/arch/sys_proto.h> |  | ||||||
| 
 | 
 | ||||||
| #define BUF_SIZE 1024 | #define BUF_SIZE 1024 | ||||||
| 
 | 
 | ||||||
| @@ -25,8 +25,11 @@ include $(TOPDIR)/config.mk | |||||||
|  |  | ||||||
| LIB	:= $(obj)libmmc.o | LIB	:= $(obj)libmmc.o | ||||||
|  |  | ||||||
| ifdef CONFIG_SPL_MMC_LOAD | ifdef CONFIG_SPL_BUILD | ||||||
| COBJS-$(CONFIG_SPL_MMC_LOAD)	+= spl_mmc_load.o | COBJS-$(CONFIG_SPL_MMC_LOAD)	+= spl_mmc_load.o | ||||||
|  | ifdef CONFIG_SPL_FRAMEWORK | ||||||
|  | COBJS-$(CONFIG_SPL_MMC_SUPPORT) += spl_mmc.o | ||||||
|  | endif | ||||||
| endif | endif | ||||||
|  |  | ||||||
| COBJS-$(CONFIG_BFIN_SDH) += bfin_sdh.o | COBJS-$(CONFIG_BFIN_SDH) += bfin_sdh.o | ||||||
|   | |||||||
| @@ -23,7 +23,7 @@ | |||||||
|  * MA 02111-1307 USA |  * MA 02111-1307 USA | ||||||
|  */ |  */ | ||||||
| #include <common.h> | #include <common.h> | ||||||
| #include <asm/spl.h> | #include <spl.h> | ||||||
| #include <asm/u-boot.h> | #include <asm/u-boot.h> | ||||||
| #include <asm/utils.h> | #include <asm/utils.h> | ||||||
| #include <mmc.h> | #include <mmc.h> | ||||||
| @@ -193,6 +193,7 @@ | |||||||
|  |  | ||||||
| /* Defines for SPL */ | /* Defines for SPL */ | ||||||
| #define CONFIG_SPL | #define CONFIG_SPL | ||||||
|  | #define CONFIG_SPL_FRAMEWORK | ||||||
| #define CONFIG_SPL_TEXT_BASE		0x402F0400 | #define CONFIG_SPL_TEXT_BASE		0x402F0400 | ||||||
| #define CONFIG_SPL_MAX_SIZE		(46 * 1024) | #define CONFIG_SPL_MAX_SIZE		(46 * 1024) | ||||||
| #define CONFIG_SPL_STACK		CONFIG_SYS_INIT_SP_ADDR | #define CONFIG_SPL_STACK		CONFIG_SYS_INIT_SP_ADDR | ||||||
|   | |||||||
| @@ -314,6 +314,7 @@ | |||||||
|  |  | ||||||
| /* Defines for SPL */ | /* Defines for SPL */ | ||||||
| #define CONFIG_SPL | #define CONFIG_SPL | ||||||
|  | #define CONFIG_SPL_FRAMEWORK | ||||||
| #define CONFIG_SPL_BOARD_INIT | #define CONFIG_SPL_BOARD_INIT | ||||||
| #define CONFIG_SPL_NAND_SIMPLE | #define CONFIG_SPL_NAND_SIMPLE | ||||||
| #define CONFIG_SPL_TEXT_BASE		0x40200800 | #define CONFIG_SPL_TEXT_BASE		0x40200800 | ||||||
|   | |||||||
| @@ -313,6 +313,7 @@ | |||||||
|  |  | ||||||
| /* Defines for SPL */ | /* Defines for SPL */ | ||||||
| #define CONFIG_SPL | #define CONFIG_SPL | ||||||
|  | #define CONFIG_SPL_FRAMEWORK | ||||||
| #define CONFIG_SPL_BOARD_INIT | #define CONFIG_SPL_BOARD_INIT | ||||||
| #define CONFIG_SPL_NAND_SIMPLE | #define CONFIG_SPL_NAND_SIMPLE | ||||||
| #define CONFIG_SPL_TEXT_BASE		0x40200800 | #define CONFIG_SPL_TEXT_BASE		0x40200800 | ||||||
|   | |||||||
| @@ -303,6 +303,7 @@ | |||||||
|  |  | ||||||
| /* Defines for SPL */ | /* Defines for SPL */ | ||||||
| #define CONFIG_SPL | #define CONFIG_SPL | ||||||
|  | #define CONFIG_SPL_FRAMEWORK | ||||||
| #define CONFIG_SPL_NAND_SIMPLE | #define CONFIG_SPL_NAND_SIMPLE | ||||||
|  |  | ||||||
| #define CONFIG_SPL_LIBCOMMON_SUPPORT | #define CONFIG_SPL_LIBCOMMON_SUPPORT | ||||||
|   | |||||||
| @@ -295,6 +295,7 @@ | |||||||
|  |  | ||||||
| /* SPL */ | /* SPL */ | ||||||
| #define CONFIG_SPL | #define CONFIG_SPL | ||||||
|  | #define CONFIG_SPL_FRAMEWORK | ||||||
| #define CONFIG_SPL_NAND_SIMPLE | #define CONFIG_SPL_NAND_SIMPLE | ||||||
| #define CONFIG_SPL_TEXT_BASE		0x40200800 | #define CONFIG_SPL_TEXT_BASE		0x40200800 | ||||||
| #define CONFIG_SPL_MAX_SIZE		(54 * 1024) | #define CONFIG_SPL_MAX_SIZE		(54 * 1024) | ||||||
|   | |||||||
| @@ -359,6 +359,7 @@ | |||||||
|  |  | ||||||
| /* Defines for SPL */ | /* Defines for SPL */ | ||||||
| #define CONFIG_SPL | #define CONFIG_SPL | ||||||
|  | #define CONFIG_SPL_FRAMEWORK | ||||||
| #define CONFIG_SPL_BOARD_INIT | #define CONFIG_SPL_BOARD_INIT | ||||||
| #define CONFIG_SPL_NAND_SIMPLE | #define CONFIG_SPL_NAND_SIMPLE | ||||||
| #define CONFIG_SPL_NAND_SOFTECC | #define CONFIG_SPL_NAND_SOFTECC | ||||||
|   | |||||||
| @@ -391,6 +391,7 @@ | |||||||
|  |  | ||||||
| /* Defines for SPL */ | /* Defines for SPL */ | ||||||
| #define CONFIG_SPL | #define CONFIG_SPL | ||||||
|  | #define CONFIG_SPL_FRAMEWORK | ||||||
| #define CONFIG_SPL_NAND_SIMPLE | #define CONFIG_SPL_NAND_SIMPLE | ||||||
| #define CONFIG_SPL_TEXT_BASE		0x40200800 | #define CONFIG_SPL_TEXT_BASE		0x40200800 | ||||||
| #define CONFIG_SPL_MAX_SIZE		(54 * 1024)	/* 8 KB for stack */ | #define CONFIG_SPL_MAX_SIZE		(54 * 1024)	/* 8 KB for stack */ | ||||||
|   | |||||||
| @@ -273,6 +273,7 @@ | |||||||
|  |  | ||||||
| /* Defines for SPL */ | /* Defines for SPL */ | ||||||
| #define CONFIG_SPL | #define CONFIG_SPL | ||||||
|  | #define CONFIG_SPL_FRAMEWORK | ||||||
| #define CONFIG_SPL_TEXT_BASE		0x40200800 | #define CONFIG_SPL_TEXT_BASE		0x40200800 | ||||||
| #define CONFIG_SPL_MAX_SIZE		(54 * 1024)	/* 8 KB for stack */ | #define CONFIG_SPL_MAX_SIZE		(54 * 1024)	/* 8 KB for stack */ | ||||||
| #define CONFIG_SPL_STACK		LOW_LEVEL_SRAM_STACK | #define CONFIG_SPL_STACK		LOW_LEVEL_SRAM_STACK | ||||||
|   | |||||||
| @@ -293,6 +293,7 @@ | |||||||
|  |  | ||||||
| /* Defines for SPL */ | /* Defines for SPL */ | ||||||
| #define CONFIG_SPL | #define CONFIG_SPL | ||||||
|  | #define CONFIG_SPL_FRAMEWORK | ||||||
| #define CONFIG_SPL_NAND_SIMPLE | #define CONFIG_SPL_NAND_SIMPLE | ||||||
| #define CONFIG_SPL_TEXT_BASE		0x40200800 | #define CONFIG_SPL_TEXT_BASE		0x40200800 | ||||||
| #define CONFIG_SPL_MAX_SIZE		(54 * 1024)	/* 8 KB for stack */ | #define CONFIG_SPL_MAX_SIZE		(54 * 1024)	/* 8 KB for stack */ | ||||||
|   | |||||||
| @@ -232,6 +232,7 @@ | |||||||
|  |  | ||||||
| /* Defines for SPL */ | /* Defines for SPL */ | ||||||
| #define CONFIG_SPL | #define CONFIG_SPL | ||||||
|  | #define CONFIG_SPL_FRAMEWORK | ||||||
| #define CONFIG_SPL_TEXT_BASE		0x40304350 | #define CONFIG_SPL_TEXT_BASE		0x40304350 | ||||||
| #define CONFIG_SPL_MAX_SIZE		(38 * 1024) | #define CONFIG_SPL_MAX_SIZE		(38 * 1024) | ||||||
| #define CONFIG_SPL_STACK		CONFIG_SYS_INIT_SP_ADDR | #define CONFIG_SPL_STACK		CONFIG_SYS_INIT_SP_ADDR | ||||||
|   | |||||||
| @@ -229,6 +229,7 @@ | |||||||
|  |  | ||||||
| /* Defines for SPL */ | /* Defines for SPL */ | ||||||
| #define CONFIG_SPL | #define CONFIG_SPL | ||||||
|  | #define CONFIG_SPL_FRAMEWORK | ||||||
| #define CONFIG_SPL_TEXT_BASE		0x40300350 | #define CONFIG_SPL_TEXT_BASE		0x40300350 | ||||||
| #define CONFIG_SPL_MAX_SIZE		0x19000	/* 100K */ | #define CONFIG_SPL_MAX_SIZE		0x19000	/* 100K */ | ||||||
| #define CONFIG_SPL_STACK		CONFIG_SYS_INIT_SP_ADDR | #define CONFIG_SPL_STACK		CONFIG_SYS_INIT_SP_ADDR | ||||||
|   | |||||||
| @@ -239,6 +239,7 @@ | |||||||
|  |  | ||||||
| /* Defines for SPL */ | /* Defines for SPL */ | ||||||
| #define CONFIG_SPL | #define CONFIG_SPL | ||||||
|  | #define CONFIG_SPL_FRAMEWORK | ||||||
| #define CONFIG_SPL_BOARD_INIT | #define CONFIG_SPL_BOARD_INIT | ||||||
| #define CONFIG_SPL_CONSOLE | #define CONFIG_SPL_CONSOLE | ||||||
| #define CONFIG_SPL_NAND_SIMPLE | #define CONFIG_SPL_NAND_SIMPLE | ||||||
|   | |||||||
| @@ -271,6 +271,7 @@ | |||||||
|  |  | ||||||
| /* Defines for SPL */ | /* Defines for SPL */ | ||||||
| #define CONFIG_SPL | #define CONFIG_SPL | ||||||
|  | #define CONFIG_SPL_FRAMEWORK | ||||||
| #define CONFIG_SPL_NAND_SIMPLE | #define CONFIG_SPL_NAND_SIMPLE | ||||||
|  |  | ||||||
| #define CONFIG_SPL_BOARD_INIT | #define CONFIG_SPL_BOARD_INIT | ||||||
|   | |||||||
							
								
								
									
										69
									
								
								include/spl.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								include/spl.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,69 @@ | |||||||
|  | /* | ||||||
|  |  * (C) Copyright 2012 | ||||||
|  |  * Texas Instruments, <www.ti.com> | ||||||
|  |  * | ||||||
|  |  * See file CREDITS for list of people who contributed to this | ||||||
|  |  * project. | ||||||
|  |  * | ||||||
|  |  * This program is free software; you can redistribute it and/or | ||||||
|  |  * modify it under the terms of the GNU General Public License as | ||||||
|  |  * published by the Free Software Foundation; either version 2 of | ||||||
|  |  * the License, or (at your option) any later version. | ||||||
|  |  * | ||||||
|  |  * This program is distributed in the hope that it will be useful, | ||||||
|  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||||||
|  |  * GNU General Public License for more details. | ||||||
|  |  * | ||||||
|  |  * You should have received a copy of the GNU General Public License | ||||||
|  |  * along with this program; if not, write to the Free Software | ||||||
|  |  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, | ||||||
|  |  * MA 02111-1307 USA | ||||||
|  |  */ | ||||||
|  | #ifndef	_SPL_H_ | ||||||
|  | #define	_SPL_H_ | ||||||
|  |  | ||||||
|  | /* Platform-specific defines */ | ||||||
|  | #include <asm/spl.h> | ||||||
|  |  | ||||||
|  | /* Boot type */ | ||||||
|  | #define MMCSD_MODE_UNDEFINED	0 | ||||||
|  | #define MMCSD_MODE_RAW		1 | ||||||
|  | #define MMCSD_MODE_FAT		2 | ||||||
|  |  | ||||||
|  | struct spl_image_info { | ||||||
|  | 	const char *name; | ||||||
|  | 	u8 os; | ||||||
|  | 	u32 load_addr; | ||||||
|  | 	u32 entry_point; | ||||||
|  | 	u32 size; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | extern struct spl_image_info spl_image; | ||||||
|  | extern u32 *boot_params_ptr; | ||||||
|  |  | ||||||
|  | /* SPL common functions */ | ||||||
|  | void preloader_console_init(void); | ||||||
|  | u32 spl_boot_device(void); | ||||||
|  | u32 spl_boot_mode(void); | ||||||
|  | void spl_parse_image_header(const struct image_header *header); | ||||||
|  | void spl_board_prepare_for_linux(void); | ||||||
|  | int spl_start_uboot(void); | ||||||
|  | void spl_display_print(void); | ||||||
|  |  | ||||||
|  | /* NAND SPL functions */ | ||||||
|  | void spl_nand_load_image(void); | ||||||
|  |  | ||||||
|  | /* MMC SPL functions */ | ||||||
|  | void spl_mmc_load_image(void); | ||||||
|  |  | ||||||
|  | /* YMODEM SPL functions */ | ||||||
|  | void spl_ymodem_load_image(void); | ||||||
|  |  | ||||||
|  | /* SPI SPL functions */ | ||||||
|  | void spi_boot(void); | ||||||
|  |  | ||||||
|  | #ifdef CONFIG_SPL_BOARD_INIT | ||||||
|  | void spl_board_init(void); | ||||||
|  | #endif | ||||||
|  | #endif | ||||||
| @@ -41,6 +41,7 @@ endif | |||||||
| LIBS-y += board/$(BOARDDIR)/lib$(BOARD).o | LIBS-y += board/$(BOARDDIR)/lib$(BOARD).o | ||||||
| LIBS-$(HAVE_VENDOR_COMMON_LIB) += board/$(VENDOR)/common/lib$(VENDOR).o | LIBS-$(HAVE_VENDOR_COMMON_LIB) += board/$(VENDOR)/common/lib$(VENDOR).o | ||||||
|  |  | ||||||
|  | LIBS-$(CONFIG_SPL_FRAMEWORK) += common/spl/libspl.o | ||||||
| LIBS-$(CONFIG_SPL_LIBCOMMON_SUPPORT) += common/libcommon.o | LIBS-$(CONFIG_SPL_LIBCOMMON_SUPPORT) += common/libcommon.o | ||||||
| LIBS-$(CONFIG_SPL_LIBDISK_SUPPORT) += disk/libdisk.o | LIBS-$(CONFIG_SPL_LIBDISK_SUPPORT) += disk/libdisk.o | ||||||
| LIBS-$(CONFIG_SPL_I2C_SUPPORT) += drivers/i2c/libi2c.o | LIBS-$(CONFIG_SPL_I2C_SUPPORT) += drivers/i2c/libi2c.o | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user