xref: /rk3399_rockchip-uboot/include/spl.h (revision 47f7bcae8c0de8b2a8af7ca309744f041a6d1424)
1*47f7bcaeSTom Rini /*
2*47f7bcaeSTom Rini  * (C) Copyright 2012
3*47f7bcaeSTom Rini  * Texas Instruments, <www.ti.com>
4*47f7bcaeSTom Rini  *
5*47f7bcaeSTom Rini  * See file CREDITS for list of people who contributed to this
6*47f7bcaeSTom Rini  * project.
7*47f7bcaeSTom Rini  *
8*47f7bcaeSTom Rini  * This program is free software; you can redistribute it and/or
9*47f7bcaeSTom Rini  * modify it under the terms of the GNU General Public License as
10*47f7bcaeSTom Rini  * published by the Free Software Foundation; either version 2 of
11*47f7bcaeSTom Rini  * the License, or (at your option) any later version.
12*47f7bcaeSTom Rini  *
13*47f7bcaeSTom Rini  * This program is distributed in the hope that it will be useful,
14*47f7bcaeSTom Rini  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15*47f7bcaeSTom Rini  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16*47f7bcaeSTom Rini  * GNU General Public License for more details.
17*47f7bcaeSTom Rini  *
18*47f7bcaeSTom Rini  * You should have received a copy of the GNU General Public License
19*47f7bcaeSTom Rini  * along with this program; if not, write to the Free Software
20*47f7bcaeSTom Rini  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
21*47f7bcaeSTom Rini  * MA 02111-1307 USA
22*47f7bcaeSTom Rini  */
23*47f7bcaeSTom Rini #ifndef	_SPL_H_
24*47f7bcaeSTom Rini #define	_SPL_H_
25*47f7bcaeSTom Rini 
26*47f7bcaeSTom Rini /* Platform-specific defines */
27*47f7bcaeSTom Rini #include <asm/spl.h>
28*47f7bcaeSTom Rini 
29*47f7bcaeSTom Rini /* Boot type */
30*47f7bcaeSTom Rini #define MMCSD_MODE_UNDEFINED	0
31*47f7bcaeSTom Rini #define MMCSD_MODE_RAW		1
32*47f7bcaeSTom Rini #define MMCSD_MODE_FAT		2
33*47f7bcaeSTom Rini 
34*47f7bcaeSTom Rini struct spl_image_info {
35*47f7bcaeSTom Rini 	const char *name;
36*47f7bcaeSTom Rini 	u8 os;
37*47f7bcaeSTom Rini 	u32 load_addr;
38*47f7bcaeSTom Rini 	u32 entry_point;
39*47f7bcaeSTom Rini 	u32 size;
40*47f7bcaeSTom Rini };
41*47f7bcaeSTom Rini 
42*47f7bcaeSTom Rini extern struct spl_image_info spl_image;
43*47f7bcaeSTom Rini extern u32 *boot_params_ptr;
44*47f7bcaeSTom Rini 
45*47f7bcaeSTom Rini /* SPL common functions */
46*47f7bcaeSTom Rini void preloader_console_init(void);
47*47f7bcaeSTom Rini u32 spl_boot_device(void);
48*47f7bcaeSTom Rini u32 spl_boot_mode(void);
49*47f7bcaeSTom Rini void spl_parse_image_header(const struct image_header *header);
50*47f7bcaeSTom Rini void spl_board_prepare_for_linux(void);
51*47f7bcaeSTom Rini int spl_start_uboot(void);
52*47f7bcaeSTom Rini void spl_display_print(void);
53*47f7bcaeSTom Rini 
54*47f7bcaeSTom Rini /* NAND SPL functions */
55*47f7bcaeSTom Rini void spl_nand_load_image(void);
56*47f7bcaeSTom Rini 
57*47f7bcaeSTom Rini /* MMC SPL functions */
58*47f7bcaeSTom Rini void spl_mmc_load_image(void);
59*47f7bcaeSTom Rini 
60*47f7bcaeSTom Rini /* YMODEM SPL functions */
61*47f7bcaeSTom Rini void spl_ymodem_load_image(void);
62*47f7bcaeSTom Rini 
63*47f7bcaeSTom Rini /* SPI SPL functions */
64*47f7bcaeSTom Rini void spi_boot(void);
65*47f7bcaeSTom Rini 
66*47f7bcaeSTom Rini #ifdef CONFIG_SPL_BOARD_INIT
67*47f7bcaeSTom Rini void spl_board_init(void);
68*47f7bcaeSTom Rini #endif
69*47f7bcaeSTom Rini #endif
70