xref: /OK3568_Linux_fs/u-boot/include/configs/nokia_rx51.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /*
2*4882a593Smuzhiyun  * (C) Copyright 2011-2012
3*4882a593Smuzhiyun  * Pali Rohár <pali.rohar@gmail.com>
4*4882a593Smuzhiyun  *
5*4882a593Smuzhiyun  * (C) Copyright 2010
6*4882a593Smuzhiyun  * Alistair Buxton <a.j.buxton@gmail.com>
7*4882a593Smuzhiyun  *
8*4882a593Smuzhiyun  * Derived from Beagle Board code:
9*4882a593Smuzhiyun  * (C) Copyright 2006-2008
10*4882a593Smuzhiyun  * Texas Instruments.
11*4882a593Smuzhiyun  * Richard Woodruff <r-woodruff2@ti.com>
12*4882a593Smuzhiyun  * Syed Mohammed Khasim <x0khasim@ti.com>
13*4882a593Smuzhiyun  *
14*4882a593Smuzhiyun  * Configuration settings for the Nokia RX-51 aka N900.
15*4882a593Smuzhiyun  *
16*4882a593Smuzhiyun  * SPDX-License-Identifier:	GPL-2.0+
17*4882a593Smuzhiyun  */
18*4882a593Smuzhiyun 
19*4882a593Smuzhiyun #ifndef __CONFIG_H
20*4882a593Smuzhiyun #define __CONFIG_H
21*4882a593Smuzhiyun 
22*4882a593Smuzhiyun /*
23*4882a593Smuzhiyun  * High Level Configuration Options
24*4882a593Smuzhiyun  */
25*4882a593Smuzhiyun #define CONFIG_SYS_L2CACHE_OFF		/* pretend there is no L2 CACHE */
26*4882a593Smuzhiyun 
27*4882a593Smuzhiyun #define CONFIG_MACH_TYPE		MACH_TYPE_NOKIA_RX51
28*4882a593Smuzhiyun 
29*4882a593Smuzhiyun /*
30*4882a593Smuzhiyun  * Nokia X-Loader loading secondary image to address 0x80400000
31*4882a593Smuzhiyun  * NOLO loading boot image to random place, so it doesn't really
32*4882a593Smuzhiyun  * matter what we set this to. We have to copy u-boot to this address
33*4882a593Smuzhiyun  */
34*4882a593Smuzhiyun #define CONFIG_SYS_TEXT_BASE	0x80008000
35*4882a593Smuzhiyun 
36*4882a593Smuzhiyun #define CONFIG_SDRC			/* The chip has SDRC controller */
37*4882a593Smuzhiyun 
38*4882a593Smuzhiyun #include <asm/arch/cpu.h>		/* get chip and board defs */
39*4882a593Smuzhiyun #include <asm/arch/omap.h>
40*4882a593Smuzhiyun #include <asm/arch/mem.h>
41*4882a593Smuzhiyun #include <linux/stringify.h>
42*4882a593Smuzhiyun 
43*4882a593Smuzhiyun /* Clock Defines */
44*4882a593Smuzhiyun #define V_OSCK			26000000	/* Clock output from T2 */
45*4882a593Smuzhiyun #define V_SCLK			(V_OSCK >> 1)
46*4882a593Smuzhiyun 
47*4882a593Smuzhiyun #define CONFIG_MISC_INIT_R
48*4882a593Smuzhiyun #define CONFIG_SKIP_LOWLEVEL_INIT		/* X-Loader set everything up */
49*4882a593Smuzhiyun 
50*4882a593Smuzhiyun #define CONFIG_CMDLINE_TAG	/* enable passing kernel command line string */
51*4882a593Smuzhiyun #define CONFIG_INITRD_TAG			/* enable passing initrd */
52*4882a593Smuzhiyun #define CONFIG_REVISION_TAG			/* enable passing revision tag*/
53*4882a593Smuzhiyun #define CONFIG_SETUP_MEMORY_TAGS		/* enable memory tag */
54*4882a593Smuzhiyun 
55*4882a593Smuzhiyun /*
56*4882a593Smuzhiyun  * Size of malloc() pool
57*4882a593Smuzhiyun  */
58*4882a593Smuzhiyun #define CONFIG_ENV_SIZE			(128 << 10)
59*4882a593Smuzhiyun #define CONFIG_UBI_SIZE			(512 << 10)
60*4882a593Smuzhiyun #define CONFIG_SYS_MALLOC_LEN		(CONFIG_ENV_SIZE + CONFIG_UBI_SIZE + \
61*4882a593Smuzhiyun 					(128 << 10))
62*4882a593Smuzhiyun 
63*4882a593Smuzhiyun /*
64*4882a593Smuzhiyun  * Hardware drivers
65*4882a593Smuzhiyun  */
66*4882a593Smuzhiyun 
67*4882a593Smuzhiyun /*
68*4882a593Smuzhiyun  * NS16550 Configuration
69*4882a593Smuzhiyun  */
70*4882a593Smuzhiyun #define V_NS16550_CLK		48000000		/* 48MHz (APLL96/2) */
71*4882a593Smuzhiyun 
72*4882a593Smuzhiyun #define CONFIG_SYS_NS16550_SERIAL
73*4882a593Smuzhiyun #define CONFIG_SYS_NS16550_REG_SIZE	(-4)
74*4882a593Smuzhiyun #define CONFIG_SYS_NS16550_CLK		V_NS16550_CLK
75*4882a593Smuzhiyun 
76*4882a593Smuzhiyun /*
77*4882a593Smuzhiyun  * select serial console configuration
78*4882a593Smuzhiyun  */
79*4882a593Smuzhiyun #define CONFIG_CONS_INDEX		3
80*4882a593Smuzhiyun #define CONFIG_SYS_NS16550_COM3		OMAP34XX_UART3
81*4882a593Smuzhiyun #define CONFIG_SERIAL3			3		/* UART3 on RX-51 */
82*4882a593Smuzhiyun 
83*4882a593Smuzhiyun /* allow to overwrite serial and ethaddr */
84*4882a593Smuzhiyun #define CONFIG_ENV_OVERWRITE
85*4882a593Smuzhiyun #define CONFIG_SYS_BAUDRATE_TABLE { 4800, 9600, 19200, 38400, 57600, 115200 }
86*4882a593Smuzhiyun 
87*4882a593Smuzhiyun /* USB */
88*4882a593Smuzhiyun #define CONFIG_USB_MUSB_UDC
89*4882a593Smuzhiyun #define CONFIG_USB_MUSB_HCD
90*4882a593Smuzhiyun #define CONFIG_USB_OMAP3
91*4882a593Smuzhiyun #define CONFIG_TWL4030_USB
92*4882a593Smuzhiyun 
93*4882a593Smuzhiyun /* USB device configuration */
94*4882a593Smuzhiyun #define CONFIG_USB_DEVICE
95*4882a593Smuzhiyun #define CONFIG_USBD_VENDORID		0x0421
96*4882a593Smuzhiyun #define CONFIG_USBD_PRODUCTID		0x01c8
97*4882a593Smuzhiyun #define CONFIG_USBD_MANUFACTURER	"Nokia"
98*4882a593Smuzhiyun #define CONFIG_USBD_PRODUCT_NAME	"N900"
99*4882a593Smuzhiyun 
100*4882a593Smuzhiyun /* commands to include */
101*4882a593Smuzhiyun 
102*4882a593Smuzhiyun #define CONFIG_CMDLINE_EDITING		/* add command line history */
103*4882a593Smuzhiyun #define CONFIG_AUTO_COMPLETE		/* add autocompletion support */
104*4882a593Smuzhiyun 
105*4882a593Smuzhiyun #define CONFIG_SYS_I2C
106*4882a593Smuzhiyun #define CONFIG_SYS_OMAP24_I2C_SPEED	100000
107*4882a593Smuzhiyun #define CONFIG_SYS_OMAP24_I2C_SLAVE	1
108*4882a593Smuzhiyun 
109*4882a593Smuzhiyun /*
110*4882a593Smuzhiyun  * TWL4030
111*4882a593Smuzhiyun  */
112*4882a593Smuzhiyun #define CONFIG_TWL4030_LED
113*4882a593Smuzhiyun #define CONFIG_TWL4030_KEYPAD
114*4882a593Smuzhiyun 
115*4882a593Smuzhiyun #define GPIO_SLIDE			71
116*4882a593Smuzhiyun 
117*4882a593Smuzhiyun /*
118*4882a593Smuzhiyun  * Board ONENAND Info.
119*4882a593Smuzhiyun  */
120*4882a593Smuzhiyun 
121*4882a593Smuzhiyun #define PART1_NAME			"bootloader"
122*4882a593Smuzhiyun #define PART1_SIZE			128
123*4882a593Smuzhiyun #define PART1_MULL			1024
124*4882a593Smuzhiyun #define PART1_SUFF			"k"
125*4882a593Smuzhiyun #define PART1_OFFS			0x00000000
126*4882a593Smuzhiyun #define PART1_MASK			0x00000003
127*4882a593Smuzhiyun 
128*4882a593Smuzhiyun #define PART2_NAME			"config"
129*4882a593Smuzhiyun #define PART2_SIZE			384
130*4882a593Smuzhiyun #define PART2_MULL			1024
131*4882a593Smuzhiyun #define PART2_SUFF			"k"
132*4882a593Smuzhiyun #define PART2_OFFS			0x00020000
133*4882a593Smuzhiyun #define PART2_MASK			0x00000000
134*4882a593Smuzhiyun 
135*4882a593Smuzhiyun #define PART3_NAME			"log"
136*4882a593Smuzhiyun #define PART3_SIZE			256
137*4882a593Smuzhiyun #define PART3_MULL			1024
138*4882a593Smuzhiyun #define PART3_SUFF			"k"
139*4882a593Smuzhiyun #define PART3_OFFS			0x00080000
140*4882a593Smuzhiyun #define PART3_MASK			0x00000000
141*4882a593Smuzhiyun 
142*4882a593Smuzhiyun #define PART4_NAME			"kernel"
143*4882a593Smuzhiyun #define PART4_SIZE			2
144*4882a593Smuzhiyun #define PART4_MULL			1024*1024
145*4882a593Smuzhiyun #define PART4_SUFF			"m"
146*4882a593Smuzhiyun #define PART4_OFFS			0x000c0000
147*4882a593Smuzhiyun #define PART4_MASK			0x00000000
148*4882a593Smuzhiyun 
149*4882a593Smuzhiyun #define PART5_NAME			"initfs"
150*4882a593Smuzhiyun #define PART5_SIZE			2
151*4882a593Smuzhiyun #define PART5_MULL			1024*1024
152*4882a593Smuzhiyun #define PART5_SUFF			"m"
153*4882a593Smuzhiyun #define PART5_OFFS			0x002c0000
154*4882a593Smuzhiyun #define PART5_MASK			0x00000000
155*4882a593Smuzhiyun 
156*4882a593Smuzhiyun #define PART6_NAME			"rootfs"
157*4882a593Smuzhiyun #define PART6_SIZE			257280
158*4882a593Smuzhiyun #define PART6_MULL			1024
159*4882a593Smuzhiyun #define PART6_SUFF			"k"
160*4882a593Smuzhiyun #define PART6_OFFS			0x004c0000
161*4882a593Smuzhiyun #define PART6_MASK			0x00000000
162*4882a593Smuzhiyun 
163*4882a593Smuzhiyun #ifdef ONENAND_SUPPORT
164*4882a593Smuzhiyun 
165*4882a593Smuzhiyun #define CONFIG_SYS_ONENAND_BASE		ONENAND_MAP
166*4882a593Smuzhiyun 
167*4882a593Smuzhiyun #define MTDIDS_DEFAULT			"onenand0=onenand"
168*4882a593Smuzhiyun #define MTDPARTS_DEFAULT		"mtdparts=onenand:" \
169*4882a593Smuzhiyun 		__stringify(PART1_SIZE) PART1_SUFF "(" PART1_NAME ")ro," \
170*4882a593Smuzhiyun 		__stringify(PART2_SIZE) PART2_SUFF "(" PART2_NAME ")," \
171*4882a593Smuzhiyun 		__stringify(PART3_SIZE) PART3_SUFF "(" PART3_NAME ")," \
172*4882a593Smuzhiyun 		__stringify(PART4_SIZE) PART4_SUFF "(" PART4_NAME ")," \
173*4882a593Smuzhiyun 		__stringify(PART5_SIZE) PART5_SUFF "(" PART5_NAME ")," \
174*4882a593Smuzhiyun 		"-(" PART6_NAME ")"
175*4882a593Smuzhiyun 
176*4882a593Smuzhiyun #endif
177*4882a593Smuzhiyun 
178*4882a593Smuzhiyun /* Watchdog support */
179*4882a593Smuzhiyun #define CONFIG_HW_WATCHDOG
180*4882a593Smuzhiyun 
181*4882a593Smuzhiyun /*
182*4882a593Smuzhiyun  * Framebuffer
183*4882a593Smuzhiyun  */
184*4882a593Smuzhiyun /* Video console */
185*4882a593Smuzhiyun #define CONFIG_VIDEO_LOGO
186*4882a593Smuzhiyun #define VIDEO_FB_16BPP_PIXEL_SWAP
187*4882a593Smuzhiyun #define VIDEO_FB_16BPP_WORD_SWAP
188*4882a593Smuzhiyun #define CONFIG_SPLASH_SCREEN
189*4882a593Smuzhiyun 
190*4882a593Smuzhiyun /* functions for cfb_console */
191*4882a593Smuzhiyun #define VIDEO_KBD_INIT_FCT		rx51_kp_init()
192*4882a593Smuzhiyun #define VIDEO_TSTC_FCT			rx51_kp_tstc
193*4882a593Smuzhiyun #define VIDEO_GETC_FCT			rx51_kp_getc
194*4882a593Smuzhiyun #ifndef __ASSEMBLY__
195*4882a593Smuzhiyun struct stdio_dev;
196*4882a593Smuzhiyun int rx51_kp_init(void);
197*4882a593Smuzhiyun int rx51_kp_tstc(struct stdio_dev *sdev);
198*4882a593Smuzhiyun int rx51_kp_getc(struct stdio_dev *sdev);
199*4882a593Smuzhiyun #endif
200*4882a593Smuzhiyun 
201*4882a593Smuzhiyun #ifndef MTDPARTS_DEFAULT
202*4882a593Smuzhiyun #define MTDPARTS_DEFAULT
203*4882a593Smuzhiyun #endif
204*4882a593Smuzhiyun 
205*4882a593Smuzhiyun /* Environment information */
206*4882a593Smuzhiyun #define CONFIG_EXTRA_ENV_SETTINGS \
207*4882a593Smuzhiyun 	"mtdparts=" MTDPARTS_DEFAULT "\0" \
208*4882a593Smuzhiyun 	"usbtty=cdc_acm\0" \
209*4882a593Smuzhiyun 	"stdin=vga\0" \
210*4882a593Smuzhiyun 	"stdout=vga\0" \
211*4882a593Smuzhiyun 	"stderr=vga\0" \
212*4882a593Smuzhiyun 	"setcon=setenv stdin ${con};" \
213*4882a593Smuzhiyun 		"setenv stdout ${con};" \
214*4882a593Smuzhiyun 		"setenv stderr ${con}\0" \
215*4882a593Smuzhiyun 	"sercon=setenv con serial; run setcon\0" \
216*4882a593Smuzhiyun 	"usbcon=setenv con usbtty; run setcon\0" \
217*4882a593Smuzhiyun 	"vgacon=setenv con vga; run setcon\0" \
218*4882a593Smuzhiyun 	"slide=gpio input " __stringify(GPIO_SLIDE) "\0" \
219*4882a593Smuzhiyun 	"switchmmc=mmc dev ${mmcnum}\0" \
220*4882a593Smuzhiyun 	"kernaddr=0x82008000\0" \
221*4882a593Smuzhiyun 	"initrdaddr=0x84008000\0" \
222*4882a593Smuzhiyun 	"scriptaddr=0x86008000\0" \
223*4882a593Smuzhiyun 	"fileload=${mmctype}load mmc ${mmcnum}:${mmcpart} " \
224*4882a593Smuzhiyun 		"${loadaddr} ${mmcfile}\0" \
225*4882a593Smuzhiyun 	"kernload=setenv loadaddr ${kernaddr};" \
226*4882a593Smuzhiyun 		"setenv mmcfile ${mmckernfile};" \
227*4882a593Smuzhiyun 		"run fileload\0" \
228*4882a593Smuzhiyun 	"initrdload=setenv loadaddr ${initrdaddr};" \
229*4882a593Smuzhiyun 		"setenv mmcfile ${mmcinitrdfile};" \
230*4882a593Smuzhiyun 		"run fileload\0" \
231*4882a593Smuzhiyun 	"scriptload=setenv loadaddr ${scriptaddr};" \
232*4882a593Smuzhiyun 		"setenv mmcfile ${mmcscriptfile};" \
233*4882a593Smuzhiyun 		"run fileload\0" \
234*4882a593Smuzhiyun 	"scriptboot=echo Running ${mmcscriptfile} from mmc " \
235*4882a593Smuzhiyun 		"${mmcnum}:${mmcpart} ...; source ${scriptaddr}\0" \
236*4882a593Smuzhiyun 	"kernboot=echo Booting ${mmckernfile} from mmc " \
237*4882a593Smuzhiyun 		"${mmcnum}:${mmcpart} ...; bootm ${kernaddr}\0" \
238*4882a593Smuzhiyun 	"kerninitrdboot=echo Booting ${mmckernfile} ${mmcinitrdfile} from mmc "\
239*4882a593Smuzhiyun 		"${mmcnum}:${mmcpart} ...; bootm ${kernaddr} ${initrdaddr}\0" \
240*4882a593Smuzhiyun 	"attachboot=echo Booting attached kernel image ...;" \
241*4882a593Smuzhiyun 		"setenv setup_omap_atag 1;" \
242*4882a593Smuzhiyun 		"bootm ${attkernaddr};" \
243*4882a593Smuzhiyun 		"setenv setup_omap_atag\0" \
244*4882a593Smuzhiyun 	"trymmcscriptboot=if run switchmmc; then " \
245*4882a593Smuzhiyun 			"if run scriptload; then " \
246*4882a593Smuzhiyun 				"run scriptboot;" \
247*4882a593Smuzhiyun 			"fi;" \
248*4882a593Smuzhiyun 		"fi\0" \
249*4882a593Smuzhiyun 	"trymmckernboot=if run switchmmc; then " \
250*4882a593Smuzhiyun 			"if run kernload; then " \
251*4882a593Smuzhiyun 				"run kernboot;" \
252*4882a593Smuzhiyun 			"fi;" \
253*4882a593Smuzhiyun 		"fi\0" \
254*4882a593Smuzhiyun 	"trymmckerninitrdboot=if run switchmmc; then " \
255*4882a593Smuzhiyun 			"if run initrdload; then " \
256*4882a593Smuzhiyun 				"if run kernload; then " \
257*4882a593Smuzhiyun 					"run kerninitrdboot;" \
258*4882a593Smuzhiyun 				"fi;" \
259*4882a593Smuzhiyun 			"fi; " \
260*4882a593Smuzhiyun 		"fi\0" \
261*4882a593Smuzhiyun 	"trymmcpartboot=setenv mmcscriptfile boot.scr; run trymmcscriptboot;" \
262*4882a593Smuzhiyun 		"setenv mmckernfile uImage; run trymmckernboot\0" \
263*4882a593Smuzhiyun 	"trymmcallpartboot=setenv mmcpart 1; run trymmcpartboot;" \
264*4882a593Smuzhiyun 		"setenv mmcpart 2; run trymmcpartboot;" \
265*4882a593Smuzhiyun 		"setenv mmcpart 3; run trymmcpartboot;" \
266*4882a593Smuzhiyun 		"setenv mmcpart 4; run trymmcpartboot\0" \
267*4882a593Smuzhiyun 	"trymmcboot=if run switchmmc; then " \
268*4882a593Smuzhiyun 			"setenv mmctype fat;" \
269*4882a593Smuzhiyun 			"run trymmcallpartboot;" \
270*4882a593Smuzhiyun 			"setenv mmctype ext2;" \
271*4882a593Smuzhiyun 			"run trymmcallpartboot;" \
272*4882a593Smuzhiyun 			"setenv mmctype ext4;" \
273*4882a593Smuzhiyun 			"run trymmcallpartboot;" \
274*4882a593Smuzhiyun 		"fi\0" \
275*4882a593Smuzhiyun 	"emmcboot=setenv mmcnum 1; run trymmcboot\0" \
276*4882a593Smuzhiyun 	"sdboot=setenv mmcnum 0; run trymmcboot\0" \
277*4882a593Smuzhiyun 	"menucmd=bootmenu\0" \
278*4882a593Smuzhiyun 	"bootmenu_0=Attached kernel=run attachboot\0" \
279*4882a593Smuzhiyun 	"bootmenu_1=Internal eMMC=run emmcboot\0" \
280*4882a593Smuzhiyun 	"bootmenu_2=External SD card=run sdboot\0" \
281*4882a593Smuzhiyun 	"bootmenu_3=U-Boot boot order=boot\0" \
282*4882a593Smuzhiyun 	"bootmenu_delay=30\0" \
283*4882a593Smuzhiyun 	""
284*4882a593Smuzhiyun 
285*4882a593Smuzhiyun #define CONFIG_PREBOOT \
286*4882a593Smuzhiyun 	"setenv mmcnum 1; setenv mmcpart 1;" \
287*4882a593Smuzhiyun 	"setenv mmcscriptfile bootmenu.scr;" \
288*4882a593Smuzhiyun 	"if run switchmmc; then " \
289*4882a593Smuzhiyun 		"setenv mmcdone true;" \
290*4882a593Smuzhiyun 		"setenv mmctype fat;" \
291*4882a593Smuzhiyun 		"if run scriptload; then true; else " \
292*4882a593Smuzhiyun 			"setenv mmctype ext2;" \
293*4882a593Smuzhiyun 			"if run scriptload; then true; else " \
294*4882a593Smuzhiyun 				"setenv mmctype ext4;" \
295*4882a593Smuzhiyun 				"if run scriptload; then true; else " \
296*4882a593Smuzhiyun 					"setenv mmcdone false;" \
297*4882a593Smuzhiyun 				"fi;" \
298*4882a593Smuzhiyun 			"fi;" \
299*4882a593Smuzhiyun 		"fi;" \
300*4882a593Smuzhiyun 		"if ${mmcdone}; then " \
301*4882a593Smuzhiyun 			"run scriptboot;" \
302*4882a593Smuzhiyun 		"fi;" \
303*4882a593Smuzhiyun 	"fi;" \
304*4882a593Smuzhiyun 	"if run slide; then true; else " \
305*4882a593Smuzhiyun 		"setenv bootmenu_delay 0;" \
306*4882a593Smuzhiyun 		"setenv bootdelay 0;" \
307*4882a593Smuzhiyun 	"fi"
308*4882a593Smuzhiyun 
309*4882a593Smuzhiyun #define CONFIG_POSTBOOTMENU \
310*4882a593Smuzhiyun 	"echo;" \
311*4882a593Smuzhiyun 	"echo Extra commands:;" \
312*4882a593Smuzhiyun 	"echo run sercon - Use serial port for control.;" \
313*4882a593Smuzhiyun 	"echo run usbcon - Use usbtty for control.;" \
314*4882a593Smuzhiyun 	"echo run vgacon - Use framebuffer/keyboard.;" \
315*4882a593Smuzhiyun 	"echo run sdboot - Boot from SD card slot.;" \
316*4882a593Smuzhiyun 	"echo run emmcboot - Boot internal eMMC memory.;" \
317*4882a593Smuzhiyun 	"echo run attachboot - Boot attached kernel image.;" \
318*4882a593Smuzhiyun 	"echo"
319*4882a593Smuzhiyun 
320*4882a593Smuzhiyun #define CONFIG_BOOTCOMMAND \
321*4882a593Smuzhiyun 	"run sdboot;" \
322*4882a593Smuzhiyun 	"run emmcboot;" \
323*4882a593Smuzhiyun 	"run attachboot;" \
324*4882a593Smuzhiyun 	"echo"
325*4882a593Smuzhiyun 
326*4882a593Smuzhiyun #define CONFIG_MENU_SHOW
327*4882a593Smuzhiyun 
328*4882a593Smuzhiyun /*
329*4882a593Smuzhiyun  * Miscellaneous configurable options
330*4882a593Smuzhiyun  */
331*4882a593Smuzhiyun #define CONFIG_SYS_LONGHELP			/* undef to save memory */
332*4882a593Smuzhiyun 
333*4882a593Smuzhiyun #define CONFIG_SYS_MEMTEST_START	(OMAP34XX_SDRC_CS0)
334*4882a593Smuzhiyun #define CONFIG_SYS_MEMTEST_END		(OMAP34XX_SDRC_CS0 + 0x01F00000)/*31MB*/
335*4882a593Smuzhiyun 
336*4882a593Smuzhiyun /* default load address */
337*4882a593Smuzhiyun #define CONFIG_SYS_LOAD_ADDR		(OMAP34XX_SDRC_CS0)
338*4882a593Smuzhiyun 
339*4882a593Smuzhiyun /*
340*4882a593Smuzhiyun  * OMAP3 has 12 GP timers, they can be driven by the system clock
341*4882a593Smuzhiyun  * (12/13/16.8/19.2/38.4MHz) or by 32KHz clock. We use 13MHz (V_SCLK).
342*4882a593Smuzhiyun  * This rate is divided by a local divisor.
343*4882a593Smuzhiyun  */
344*4882a593Smuzhiyun #define CONFIG_SYS_TIMERBASE		(OMAP34XX_GPT2)
345*4882a593Smuzhiyun #define CONFIG_SYS_PTV			2	/* Divisor: 2^(PTV+1) => 8 */
346*4882a593Smuzhiyun 
347*4882a593Smuzhiyun /*
348*4882a593Smuzhiyun  * Physical Memory Map
349*4882a593Smuzhiyun  */
350*4882a593Smuzhiyun #define CONFIG_NR_DRAM_BANKS		2
351*4882a593Smuzhiyun #define PHYS_SDRAM_1			OMAP34XX_SDRC_CS0
352*4882a593Smuzhiyun 
353*4882a593Smuzhiyun /*
354*4882a593Smuzhiyun  * FLASH and environment organization
355*4882a593Smuzhiyun  */
356*4882a593Smuzhiyun 
357*4882a593Smuzhiyun #define CONFIG_SYS_SDRAM_BASE		PHYS_SDRAM_1
358*4882a593Smuzhiyun #define CONFIG_SYS_INIT_RAM_ADDR	0x4020f800
359*4882a593Smuzhiyun #define CONFIG_SYS_INIT_RAM_SIZE	0x800
360*4882a593Smuzhiyun #define CONFIG_SYS_INIT_SP_ADDR		(CONFIG_SYS_INIT_RAM_ADDR + \
361*4882a593Smuzhiyun 			CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
362*4882a593Smuzhiyun 
363*4882a593Smuzhiyun /*
364*4882a593Smuzhiyun  * Attached kernel image
365*4882a593Smuzhiyun  */
366*4882a593Smuzhiyun 
367*4882a593Smuzhiyun #define SDRAM_SIZE			0x10000000	/* 256 MB */
368*4882a593Smuzhiyun #define SDRAM_END			(CONFIG_SYS_SDRAM_BASE + SDRAM_SIZE)
369*4882a593Smuzhiyun 
370*4882a593Smuzhiyun #define IMAGE_MAXSIZE			0x1FF800	/* 2 MB - 2 kB */
371*4882a593Smuzhiyun #define KERNEL_OFFSET			0x40000		/* 256 kB */
372*4882a593Smuzhiyun #define KERNEL_MAXSIZE			(IMAGE_MAXSIZE-KERNEL_OFFSET)
373*4882a593Smuzhiyun #define KERNEL_ADDRESS			(SDRAM_END-KERNEL_MAXSIZE)
374*4882a593Smuzhiyun 
375*4882a593Smuzhiyun /* Reserve protected RAM for attached kernel */
376*4882a593Smuzhiyun #define CONFIG_PRAM			((KERNEL_MAXSIZE >> 10)+1)
377*4882a593Smuzhiyun 
378*4882a593Smuzhiyun #endif /* __CONFIG_H */
379