blob: 88372322ddb9c8326b56a96f074b294ceb02371c [file] [log] [blame]
Per Forlinc7ce1632011-08-26 12:25:53 +02001/*
2 * Copyright (C) ST-Ericsson SA 2009
3 *
4 * See file CREDITS for list of people who contributed to this
5 * project.
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as
9 * published by the Free Software Foundation; either version 2 of
10 * the License, or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
20 * MA 02111-1307 USA
21 */
22
23#ifndef __CONFIG_H
24#define __CONFIG_H
25
Mathieu J. Poirierfe77c822012-05-04 10:43:11 -060026#define CONFIG_SKIP_LOWLEVEL_INIT 1
Per Forlinc7ce1632011-08-26 12:25:53 +020027#define CONFIG_SNOWBALL 1
Mathieu J. Poirierfe77c822012-05-04 10:43:11 -060028#define CONFIG_SYS_ICACHE_OFF 1
29#define CONFIG_SYS_DCACHE_OFF 1
Per Forlinc7ce1632011-08-26 12:25:53 +020030//#define DEBUG 100
31
32/*
33 * High Level Configuration Options
34 * (easy to change)
35 */
36#define CONFIG_U8500
37#define CONFIG_L2_OFF
38
39#define CONFIG_SYS_MEMTEST_START 0x00000000
40#define CONFIG_SYS_MEMTEST_END 0x1FFFFFFF
41#define CONFIG_SYS_HZ 1000 /* must be 1000 */
42
43//#define CONFIG_BOARD_EARLY_INIT_F
44#define CONFIG_ARCH_CPU_INIT 1
45
46#define CONFIG_DISPLAY_CPUINFO 1
47#define CONFIG_BOARD_LATE_INIT 1
48
49
50/*-----------------------------------------------------------------------
51 * Size of environment and malloc() pool
52 */
53/*
54 * If you use U-Boot as crash kernel, make sure that it does not overwrite
55 * information saved by kexec during panic. Kexec expects the start
56 * address of the executable 32K above "crashkernel" address.
57 */
58/*
59 * Size of malloc() pool
60 */
61#ifdef CONFIG_BOOT_SRAM
62#define CONFIG_ENV_SIZE (32*1024)
63#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + 64*1024)
64#else
65#define CONFIG_ENV_SIZE (128*1024)
66#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + 256*1024)
67#endif
68#define CONFIG_SYS_GBL_DATA_SIZE 128 /* for initial data */
69
70//#define CONFIG_ENV_IS_IN_MMC
71#define CONFIG_ENV_IS_NOWHERE
72#define CONFIG_CMD_ENV
73#define CONFIG_ENV_OFFSET 0x13F80000
74#define CONFIG_SYS_MMC_ENV_DEV 0 /* SLOT2: eMMC */
75
76/*
77 * PL011 Configuration
78 */
79#define CONFIG_PL011_SERIAL
80#define CONFIG_PL011_SERIAL_RLCR
81#define CONFIG_PL011_SERIAL_FLUSH_ON_INIT
82
83/*
84 * U8500 UART registers base for 3 serial devices
85 */
86#define CFG_UART0_BASE 0x80120000
87#define CFG_UART1_BASE 0x80121000
88#define CFG_UART2_BASE 0x80007000
89#define CFG_SERIAL0 CFG_UART0_BASE
90#define CFG_SERIAL1 CFG_UART1_BASE
91#define CFG_SERIAL2 CFG_UART2_BASE
92#define CONFIG_PL011_CLOCK 38400000
93#define CONFIG_PL01x_PORTS { (void *)CFG_SERIAL0, (void *)CFG_SERIAL1, \
94 (void *)CFG_SERIAL2 }
95#define CONFIG_CONS_INDEX 2
96#define CONFIG_BAUDRATE 115200
97#define CONFIG_SYS_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 }
98
99/*
100 * Devices and file systems
101 */
102#define CONFIG_MMC
103#define CONFIG_GENERIC_MMC
104#define CONFIG_DOS_PARTITION
105
106/*
107 * Commands
108 */
109#define CONFIG_CMD_MEMORY
110#define CONFIG_CMD_BOOTD
111#define CONFIG_CMD_BDI
112#define CONFIG_CMD_IMI
113#define CONFIG_CMD_MISC
114#define CONFIG_CMD_RUN
115#define CONFIG_CMD_ECHO
116#define CONFIG_CMD_CONSOLE
117#define CONFIG_CMD_LOADS
118#define CONFIG_CMD_LOADB
119#define CONFIG_CMD_MMC
120#define CONFIG_CMD_FAT
121#define CONFIG_CMD_EXT2
122//#define CONFIG_CMD_EMMC
123#define CONFIG_CMD_SOURCE
124//#define CONFIG_CMD_I2C
125
126#ifndef CONFIG_BOOTDELAY
127#define CONFIG_BOOTDELAY 1
128#endif
129#define CONFIG_ZERO_BOOTDELAY_CHECK /* check for keypress on bootdelay==0 */
130
131#undef CONFIG_BOOTARGS
132#define CONFIG_BOOTCOMMAND \
Mathieu J. Poirierf3337ed2012-05-11 14:21:49 -0600133 "mmc dev 1; " \
134 "if run loadbootscript; " \
135 "then run bootscript; " \
136 "else " \
137 "if run mmcload; " \
138 "then run mmcboot; " \
139 "else " \
140 "mmc dev 0; " \
141 "if run emmcloadbootscript; " \
142 "then run bootscript; " \
143 "else " \
144 "if run emmcload; " \
145 "then run emmcboot; " \
146 "else " \
147 "echo No media to boot from; " \
148 "fi; " \
149 "fi; " \
150 "fi; " \
Per Forlinc7ce1632011-08-26 12:25:53 +0200151 "fi; "
152
153#define CONFIG_EXTRA_ENV_SETTINGS \
154 "verify=n\0" \
155 "loadaddr=0x00100000\0" \
156 "console=ttyAMA2,115200n8\0" \
Mathieu J. Poirierf3337ed2012-05-11 14:21:49 -0600157 "loadbootscript=fatload mmc 1:1 ${loadaddr} boot.scr\0" \
158 "emmcloadbootscript=fatload mmc 0:2 ${loadaddr} boot.scr\0" \
Per Forlinc7ce1632011-08-26 12:25:53 +0200159 "bootscript=echo Running bootscript " \
160 "from mmc ...; source ${loadaddr}\0" \
161 "memargs256=mem=96M@0 mem_modem=32M@96M mem=32M@128M " \
162 "hwmem=22M@160M pmem_hwb=42M@182M mem_mali=32@224M\0" \
163 "memargs512=mem=96M@0 mem_modem=32M@96M hwmem=32M@128M " \
164 "mem=64M@160M mem_mali=32M@224M " \
165 "pmem_hwb=128M@256M mem=128M@384M\0" \
166 "memargs1024=mem=128M@0 mali.mali_mem=32M@128M " \
167 "hwmem=168M@M160M mem=48M@328M " \
168 "mem_issw=1M@383M mem=640M@384M\0" \
169 "memargs=setenv bootargs ${bootargs} ${memargs1024}\0" \
Mathieu J. Poirierf3337ed2012-05-11 14:21:49 -0600170 "emmcload=fatload mmc 0:2 ${loadaddr} uImage\0" \
171 "mmcload=fatload mmc 1:1 ${loadaddr} uImage\0" \
Per Forlinc7ce1632011-08-26 12:25:53 +0200172 "commonargs=setenv bootargs console=${console} " \
Mathieu J. Poirierf3337ed2012-05-11 14:21:49 -0600173 "vmalloc=300M\0" \
Per Forlinc7ce1632011-08-26 12:25:53 +0200174 "emmcargs=setenv bootargs ${bootargs} " \
175 "root=/dev/mmcblk0p3 " \
176 "rootwait\0" \
177 "addcons=setenv bootargs ${bootargs} " \
178 "console=${console}\0" \
179 "emmcboot=echo Booting from eMMC ...; " \
180 "run commonargs emmcargs memargs; " \
181 "bootm ${loadaddr}\0" \
182 "mmcargs=setenv bootargs ${bootargs} " \
183 "root=/dev/mmcblk1p2 " \
184 "rootwait earlyprintk\0" \
185 "mmcboot=echo Booting from external MMC ...; " \
186 "run commonargs mmcargs memargs; " \
187 "bootm ${loadaddr}\0" \
Mathieu J. Poirierf3337ed2012-05-11 14:21:49 -0600188 "fdt_high=0x2BC00000" \
Per Forlinc7ce1632011-08-26 12:25:53 +0200189 "stdout=serial,usbtty\0" \
190 "stdin=serial,usbtty\0" \
191 "stderr=serial,usbtty\0"
192
193/*-----------------------------------------------------------------------
194 * Miscellaneous configurable options
195 */
196
197#define CONFIG_SYS_LONGHELP /* undef to save memory */
198#define CONFIG_SYS_PROMPT "U8500 $ " /* Monitor Command Prompt */
199#define CONFIG_SYS_CBSIZE 1024 /* Console I/O Buffer Size */
200
201/* Print Buffer Size */
202#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE \
203 + sizeof(CONFIG_SYS_PROMPT) + 16)
204#define CONFIG_SYS_MAXARGS 32 /* max number of command args */
205#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE /* Boot Arg Buffer Size */
206
207#undef CONFIG_SYS_CLKS_IN_HZ /* everything, incl board info, in Hz */
208#define CONFIG_SYS_LOAD_ADDR 0x00100000 /* default load address */
209#define CONFIG_SYS_LOADS_BAUD_CHANGE 1
210
211#define CONFIG_SYS_HUSH_PARSER 1
212#define CONFIG_SYS_PROMPT_HUSH_PS2 "> "
213#define CONFIG_CMDLINE_EDITING
214
215#define CONFIG_SETUP_MEMORY_TAGS 2
216#define CONFIG_INITRD_TAG 1
217#define CONFIG_CMDLINE_TAG 1 /* enable passing of ATAGs */
218
219/*
220 * Stack sizes
221 *
222 * The stack sizes are set up in start.S using the settings below
223 */
224
225#ifdef CONFIG_USE_IRQ
226#define CONFIG_STACKSIZE_IRQ (4*1024) /* IRQ stack */
227#define CONFIG_STACKSIZE_FIQ (4*1024) /* FIQ stack */
228#endif
229
230/*
231 * Physical Memory Map
232 */
233#define CONFIG_NR_DRAM_BANKS 1
234#define PHYS_SDRAM_1 0x00000000 /* DDR-SDRAM Bank #1 */
235#define PHYS_SDRAM_SIZE_1 0x10000000 /* 256 MB */
236
237/*
238 * additions for new relocation code
239 */
240#define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_1
241#define CONFIG_SYS_INIT_RAM_SIZE 0x100000
242#define CONFIG_SYS_GBL_DATA_OFFSET (CONFIG_SYS_SDRAM_BASE + \
243 CONFIG_SYS_INIT_RAM_SIZE - \
244 GENERATED_GBL_DATA_SIZE)
245#define CONFIG_SYS_INIT_SP_ADDR CONFIG_SYS_GBL_DATA_OFFSET
246
247/* landing address before relocation */
248#ifndef CONFIG_SYS_TEXT_BASE
249#define CONFIG_SYS_TEXT_BASE 0x0
250#endif
251
252/*-----------------------------------------------------------------------
253 * MMC related configs
254 */
255#define CONFIG_ARM_PL180_MMCI
256#define MMC_BLOCK_SIZE 512
257#define CFG_EMMC_BASE 0x80114000
258#define CFG_MMC_BASE 0x80126000
259
260/*-----------------------------------------------------------------------
261 * USB related configs
262 */
263#define CONFIG_USB_BASE 0xA03E0000
264#define UDC_BASE 0xA03E0000
265#ifdef CONFIG_USB_TTY
266/* Allow console in serial and USB at the same time */
267#define CONFIG_CONSOLE_MUX 1
268//#define CONFIG_SYS_CONSOLE_IS_IN_ENV 1
269//#define CONFIG_SYS_CONSOLE_ENV_OVERWRITE
270#endif
271
272
273/*
274 * FLASH and environment organization
275 */
276#define CONFIG_SYS_NO_FLASH
277
278/*
279 * base register values for U8500
280 */
281#define CFG_PRCMU_BASE 0x80157000 /* Power, reset and clock */
282
283
284/*
285 * U8500 GPIO register base for 9 banks
286 */
287#define CONFIG_DB8500_GPIO
288#define CFG_GPIO_0_BASE 0x8012E000
289#define CFG_GPIO_1_BASE 0x8012E080
290#define CFG_GPIO_2_BASE 0x8000E000
291#define CFG_GPIO_3_BASE 0x8000E080
292#define CFG_GPIO_4_BASE 0x8000E100
293#define CFG_GPIO_5_BASE 0x8000E180
294#define CFG_GPIO_6_BASE 0x8011E000
295#define CFG_GPIO_7_BASE 0x8011E080
296#define CFG_GPIO_8_BASE 0xA03FE000
297
298#define CFG_FSMC_BASE 0x80000000 /* FSMC Controller */
299
300#endif /* __CONFIG_H */