blob: 3f2f004afb67b5bead329aee5dde23fe0d74fc82 [file] [log] [blame]
Aneesh Vd2f18c22011-07-21 09:09:59 -04001/*
2 * (C) Copyright 2010
3 * Texas Instruments, <www.ti.com>
4 *
5 * Aneesh V <aneesh@ti.com>
6 *
7 * See file CREDITS for list of people who contributed to this
8 * project.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License as
12 * published by the Free Software Foundation; either version 2 of
13 * the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
23 * MA 02111-1307 USA
24 */
25#ifndef _OMAP_COMMON_H_
26#define _OMAP_COMMON_H_
27
Aneesh V37768012011-07-21 09:10:07 -040028/* Max value for DPLL multiplier M */
29#define OMAP_DPLL_MAX_N 127
30
Aneesh Vd2f18c22011-07-21 09:09:59 -040031/* HW Init Context */
32#define OMAP_INIT_CONTEXT_SPL 0
33#define OMAP_INIT_CONTEXT_UBOOT_FROM_NOR 1
34#define OMAP_INIT_CONTEXT_UBOOT_AFTER_SPL 2
35#define OMAP_INIT_CONTEXT_UBOOT_AFTER_CH 3
36
Aneesh Vbcae7212011-07-21 09:10:21 -040037void preloader_console_init(void);
38
Aneesh V8cf686e2011-07-21 09:10:27 -040039/* Boot device */
Simon Schwarzbb085b82011-09-14 15:29:26 -040040#ifdef CONFIG_OMAP44XX /* OMAP4 */
Aneesh V8cf686e2011-07-21 09:10:27 -040041#define BOOT_DEVICE_NONE 0
42#define BOOT_DEVICE_XIP 1
43#define BOOT_DEVICE_XIPWAIT 2
44#define BOOT_DEVICE_NAND 3
45#define BOOT_DEVICE_ONE_NAND 4
46#define BOOT_DEVICE_MMC1 5
47#define BOOT_DEVICE_MMC2 6
Sandeep Paulrajd6cac9c2011-09-16 12:35:00 -040048#elif defined(CONFIG_OMAP34XX) /* OMAP3 */
Simon Schwarzbb085b82011-09-14 15:29:26 -040049#define BOOT_DEVICE_NONE 0
50#define BOOT_DEVICE_XIP 1
51#define BOOT_DEVICE_NAND 2
52#define BOOT_DEVICE_ONE_NAND 3
53#define BOOT_DEVICE_MMC2 5 /*emmc*/
54#define BOOT_DEVICE_MMC1 6
55#define BOOT_DEVICE_XIPWAIT 7
56#endif
Aneesh V8cf686e2011-07-21 09:10:27 -040057
58/* Boot type */
59#define MMCSD_MODE_UNDEFINED 0
60#define MMCSD_MODE_RAW 1
61#define MMCSD_MODE_FAT 2
Simon Schwarzbb085b82011-09-14 15:29:26 -040062#define NAND_MODE_HW_ECC 3
63
64struct spl_image_info {
65 const char *name;
66 u8 os;
67 u32 load_addr;
68 u32 entry_point;
69 u32 size;
70};
71
72extern struct spl_image_info spl_image;
Aneesh V8cf686e2011-07-21 09:10:27 -040073
74u32 omap_boot_device(void);
75u32 omap_boot_mode(void);
76
Simon Schwarzbb085b82011-09-14 15:29:26 -040077
78/* SPL common function s*/
79void spl_parse_image_header(const struct image_header *header);
Tom Rinicc3f7052011-10-04 04:59:23 +000080void omap_rev_string(char *omap_rev_string);
Simon Schwarzbb085b82011-09-14 15:29:26 -040081
82/* NAND SPL functions */
83void spl_nand_load_image(void);
84
85/* MMC SPL functions */
86void spl_mmc_load_image(void);
87
Aneesh Vd2f18c22011-07-21 09:09:59 -040088#endif /* _OMAP_COMMON_H_ */