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