blob: f026805cd01e54d846f7ab712b290fa786ef045a [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 */
Sricharan508a58f2011-11-15 09:49:55 -050040#ifdef CONFIG_OMAP54XX
41#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
48#define BOOT_DEVICE_MMC3 7
49#elif defined(CONFIG_OMAP44XX) /* OMAP4 */
Aneesh V8cf686e2011-07-21 09:10:27 -040050#define BOOT_DEVICE_NONE 0
51#define BOOT_DEVICE_XIP 1
52#define BOOT_DEVICE_XIPWAIT 2
53#define BOOT_DEVICE_NAND 3
54#define BOOT_DEVICE_ONE_NAND 4
55#define BOOT_DEVICE_MMC1 5
56#define BOOT_DEVICE_MMC2 6
Sandeep Paulrajd6cac9c2011-09-16 12:35:00 -040057#elif defined(CONFIG_OMAP34XX) /* OMAP3 */
Simon Schwarzbb085b82011-09-14 15:29:26 -040058#define BOOT_DEVICE_NONE 0
59#define BOOT_DEVICE_XIP 1
60#define BOOT_DEVICE_NAND 2
61#define BOOT_DEVICE_ONE_NAND 3
62#define BOOT_DEVICE_MMC2 5 /*emmc*/
63#define BOOT_DEVICE_MMC1 6
64#define BOOT_DEVICE_XIPWAIT 7
65#endif
Aneesh V8cf686e2011-07-21 09:10:27 -040066
67/* Boot type */
68#define MMCSD_MODE_UNDEFINED 0
69#define MMCSD_MODE_RAW 1
70#define MMCSD_MODE_FAT 2
Simon Schwarzbb085b82011-09-14 15:29:26 -040071#define NAND_MODE_HW_ECC 3
72
73struct spl_image_info {
74 const char *name;
75 u8 os;
76 u32 load_addr;
77 u32 entry_point;
78 u32 size;
79};
80
81extern struct spl_image_info spl_image;
Aneesh V8cf686e2011-07-21 09:10:27 -040082
83u32 omap_boot_device(void);
84u32 omap_boot_mode(void);
85
Simon Schwarzbb085b82011-09-14 15:29:26 -040086/* SPL common function s*/
87void spl_parse_image_header(const struct image_header *header);
Tom Rinicc3f7052011-10-04 04:59:23 +000088void omap_rev_string(char *omap_rev_string);
Simon Schwarzbb085b82011-09-14 15:29:26 -040089
90/* NAND SPL functions */
91void spl_nand_load_image(void);
92
93/* MMC SPL functions */
94void spl_mmc_load_image(void);
95
Sricharan508a58f2011-11-15 09:49:55 -050096/*
97 * silicon revisions.
98 * Moving this to common, so that most of code can be moved to common,
99 * directories.
100 */
101
102/* omap4 */
103#define OMAP4430_SILICON_ID_INVALID 0xFFFFFFFF
104#define OMAP4430_ES1_0 0x44300100
105#define OMAP4430_ES2_0 0x44300200
106#define OMAP4430_ES2_1 0x44300210
107#define OMAP4430_ES2_2 0x44300220
108#define OMAP4430_ES2_3 0x44300230
109#define OMAP4460_ES1_0 0x44600100
110
111/* omap5 */
112#define OMAP5430_SILICON_ID_INVALID 0
113#define OMAP5430_ES1_0 0x54300100
Aneesh Vd2f18c22011-07-21 09:09:59 -0400114#endif /* _OMAP_COMMON_H_ */