xref: /openbmc/u-boot/include/configs/mcx.h (revision 9baa2bce28901321d6f62399b5ebeb3fcb8e8a57)
1*83d290c5STom Rini /* SPDX-License-Identifier: GPL-2.0+ */
24ab779cbSIlya Yanok /*
34ab779cbSIlya Yanok  * Copyright (C) 2011 Ilya Yanok, Emcraft Systems
44ab779cbSIlya Yanok  *
54ab779cbSIlya Yanok  * Based on omap3_evm_config.h
64ab779cbSIlya Yanok  */
74ab779cbSIlya Yanok 
84ab779cbSIlya Yanok #ifndef __CONFIG_H
94ab779cbSIlya Yanok #define __CONFIG_H
104ab779cbSIlya Yanok 
114ab779cbSIlya Yanok /*
124ab779cbSIlya Yanok  * High Level Configuration Options
134ab779cbSIlya Yanok  */
144ab779cbSIlya Yanok 
154ab779cbSIlya Yanok #define CONFIG_MACH_TYPE	MACH_TYPE_MCX
164ab779cbSIlya Yanok 
174ab779cbSIlya Yanok #include <asm/arch/cpu.h>		/* get chip and board defs */
18987ec585SNishanth Menon #include <asm/arch/omap.h>
194ab779cbSIlya Yanok 
204ab779cbSIlya Yanok /*
214ab779cbSIlya Yanok  * Leave it at 0x80008000 to allow booting new u-boot.bin with X-loader
224ab779cbSIlya Yanok  * and older u-boot.bin with the new U-Boot SPL.
234ab779cbSIlya Yanok  */
244ab779cbSIlya Yanok 
254ab779cbSIlya Yanok /* Clock Defines */
264ab779cbSIlya Yanok #define V_OSCK			26000000	/* Clock output from T2 */
274ab779cbSIlya Yanok #define V_SCLK			(V_OSCK >> 1)
284ab779cbSIlya Yanok 
294ab779cbSIlya Yanok #define CONFIG_CMDLINE_TAG			/* enable passing of ATAGs */
304ab779cbSIlya Yanok #define CONFIG_SETUP_MEMORY_TAGS
314ab779cbSIlya Yanok #define CONFIG_INITRD_TAG
324ab779cbSIlya Yanok #define CONFIG_REVISION_TAG
334ab779cbSIlya Yanok 
344ab779cbSIlya Yanok /*
354ab779cbSIlya Yanok  * Size of malloc() pool
364ab779cbSIlya Yanok  */
374ab779cbSIlya Yanok #define CONFIG_ENV_SIZE			(128 << 10)	/* 128 KiB sector */
384ab779cbSIlya Yanok #define CONFIG_SYS_MALLOC_LEN		(1024 << 10)
394ab779cbSIlya Yanok /*
404ab779cbSIlya Yanok  * DDR related
414ab779cbSIlya Yanok  */
424ab779cbSIlya Yanok #define CONFIG_SYS_CS0_SIZE		(256 * 1024 * 1024)
434ab779cbSIlya Yanok 
444ab779cbSIlya Yanok /*
454ab779cbSIlya Yanok  * Hardware drivers
464ab779cbSIlya Yanok  */
474ab779cbSIlya Yanok 
484ab779cbSIlya Yanok /*
494ab779cbSIlya Yanok  * NS16550 Configuration
504ab779cbSIlya Yanok  */
514ab779cbSIlya Yanok #define V_NS16550_CLK			48000000	/* 48MHz (APLL96/2) */
524ab779cbSIlya Yanok 
534ab779cbSIlya Yanok #define CONFIG_SYS_NS16550_SERIAL
544ab779cbSIlya Yanok #define CONFIG_SYS_NS16550_REG_SIZE	(-4)
554ab779cbSIlya Yanok #define CONFIG_SYS_NS16550_CLK		V_NS16550_CLK
564ab779cbSIlya Yanok 
574ab779cbSIlya Yanok /*
584ab779cbSIlya Yanok  * select serial console configuration
594ab779cbSIlya Yanok  */
604ab779cbSIlya Yanok #define CONFIG_SYS_NS16550_COM3		OMAP34XX_UART3
614ab779cbSIlya Yanok 
624ab779cbSIlya Yanok /* allow to overwrite serial and ethaddr */
634ab779cbSIlya Yanok #define CONFIG_ENV_OVERWRITE
644ab779cbSIlya Yanok #define CONFIG_SYS_BAUDRATE_TABLE	{4800, 9600, 19200, 38400, 57600,\
654ab779cbSIlya Yanok 					115200}
664ab779cbSIlya Yanok 
674ab779cbSIlya Yanok /* EHCI */
688c735b99SStefano Babic #define CONFIG_OMAP_EHCI_PHY1_RESET_GPIO	57
694ab779cbSIlya Yanok 
704ab779cbSIlya Yanok /* commands to include */
714ab779cbSIlya Yanok 
726789e84eSHeiko Schocher #define CONFIG_SYS_I2C
734ab779cbSIlya Yanok 
744ab779cbSIlya Yanok /* RTC */
754ab779cbSIlya Yanok #define CONFIG_RTC_DS1337
764ab779cbSIlya Yanok #define CONFIG_SYS_I2C_RTC_ADDR		0x68
774ab779cbSIlya Yanok 
784ab779cbSIlya Yanok /*
794ab779cbSIlya Yanok  * Board NAND Info.
804ab779cbSIlya Yanok  */
814ab779cbSIlya Yanok #define CONFIG_SYS_NAND_BASE		NAND_BASE	/* physical address */
824ab779cbSIlya Yanok 							/* to access */
834ab779cbSIlya Yanok 							/* nand at CS0 */
844ab779cbSIlya Yanok 
854ab779cbSIlya Yanok #define CONFIG_SYS_MAX_NAND_DEVICE	1		/* Max number of */
864ab779cbSIlya Yanok 							/* NAND devices */
874ab779cbSIlya Yanok #define CONFIG_JFFS2_NAND
884ab779cbSIlya Yanok /* nand device jffs2 lives on */
894ab779cbSIlya Yanok #define CONFIG_JFFS2_DEV		"nand0"
904ab779cbSIlya Yanok /* start of jffs2 partition */
914ab779cbSIlya Yanok #define CONFIG_JFFS2_PART_OFFSET	0x680000
924ab779cbSIlya Yanok #define CONFIG_JFFS2_PART_SIZE		0xf980000	/* sz of jffs2 part */
934ab779cbSIlya Yanok 
944ab779cbSIlya Yanok /* Environment information */
954ab779cbSIlya Yanok 
964ab779cbSIlya Yanok #define CONFIG_BOOTFILE		"uImage"
974ab779cbSIlya Yanok 
98f89a8b6aSStefano Babic /* Setup MTD for NAND on the SOM */
99f89a8b6aSStefano Babic 
1005bc0543dSMario Six #define CONFIG_HOSTNAME "mcx"
1014ab779cbSIlya Yanok #define CONFIG_EXTRA_ENV_SETTINGS \
102f89a8b6aSStefano Babic 	"adddbg=setenv bootargs ${bootargs} trace_buf_size=64M\0"	\
103f89a8b6aSStefano Babic 	"adddebug=setenv bootargs ${bootargs} earlyprintk=serial\0"	\
104f89a8b6aSStefano Babic 	"addeth=setenv bootargs ${bootargs} ethaddr=${ethaddr}\0"	\
105f89a8b6aSStefano Babic 	"addfb=setenv bootargs ${bootargs} vram=6M "			\
106f89a8b6aSStefano Babic 		"omapfb.vram=1:2M,2:2M,3:2M omapdss.def_disp=lcd\0"	\
107f89a8b6aSStefano Babic 	"addip_sta=setenv bootargs ${bootargs} "			\
108f89a8b6aSStefano Babic 		"ip=${ipaddr}:${serverip}:${gatewayip}:"		\
109f89a8b6aSStefano Babic 		"${netmask}:${hostname}:eth0:off\0"			\
110f89a8b6aSStefano Babic 	"addip_dyn=setenv bootargs ${bootargs} ip=dhcp\0"		\
111f89a8b6aSStefano Babic 	"addip=if test -n ${ipdyn};then run addip_dyn;"			\
112f89a8b6aSStefano Babic 		"else run addip_sta;fi\0"				\
113f89a8b6aSStefano Babic 	"addmisc=setenv bootargs ${bootargs} ${misc}\0"			\
114f89a8b6aSStefano Babic 	"addtty=setenv bootargs ${bootargs} "				\
115f89a8b6aSStefano Babic 		"console=${consoledev},${baudrate}\0"			\
116f89a8b6aSStefano Babic 	"addmtd=setenv bootargs ${bootargs} ${mtdparts}\0"		\
117f89a8b6aSStefano Babic 	"baudrate=115200\0"						\
118f89a8b6aSStefano Babic 	"consoledev=ttyO2\0"						\
1195bc0543dSMario Six 	"hostname=" CONFIG_HOSTNAME "\0"			\
1204ab779cbSIlya Yanok 	"loadaddr=0x82000000\0"						\
121f89a8b6aSStefano Babic 	"load=tftp ${loadaddr} ${u-boot}\0"				\
122f89a8b6aSStefano Babic 	"load_k=tftp ${loadaddr} ${bootfile}\0"				\
123f89a8b6aSStefano Babic 	"loaduimage=fatload mmc 0 ${loadaddr} uImage\0"			\
124f89a8b6aSStefano Babic 	"loadmlo=tftp ${loadaddr} ${mlo}\0"				\
1255bc0543dSMario Six 	"mlo=" CONFIG_HOSTNAME "/MLO\0"			\
126f89a8b6aSStefano Babic 	"mmcargs=root=/dev/mmcblk0p2 rw "				\
1274ab779cbSIlya Yanok 		"rootfstype=ext3 rootwait\0"				\
128f89a8b6aSStefano Babic 	"mmcboot=echo Booting from mmc ...; "				\
129f89a8b6aSStefano Babic 		"run mmcargs; "						\
130f89a8b6aSStefano Babic 		"run addip addtty addmtd addfb addeth addmisc;"		\
131f89a8b6aSStefano Babic 		"run loaduimage; "					\
132f89a8b6aSStefano Babic 		"bootm ${loadaddr}\0"					\
133f89a8b6aSStefano Babic 	"net_nfs=run load_k; "						\
134f89a8b6aSStefano Babic 		"run nfsargs; "						\
135f89a8b6aSStefano Babic 		"run addip addtty addmtd addfb addeth addmisc;"		\
136f89a8b6aSStefano Babic 		"bootm ${loadaddr}\0"					\
137f89a8b6aSStefano Babic 	"nfsargs=setenv bootargs root=/dev/nfs rw "			\
138f89a8b6aSStefano Babic 		"nfsroot=${serverip}:${rootpath}\0"			\
1395bc0543dSMario Six 	"u-boot=" CONFIG_HOSTNAME "/u-boot.img\0"		\
140f89a8b6aSStefano Babic 	"uboot_addr=0x80000\0"						\
141f89a8b6aSStefano Babic 	"update=nandecc sw;nand erase ${uboot_addr} 100000;"		\
142f89a8b6aSStefano Babic 		"nand write ${loadaddr} ${uboot_addr} 80000\0"		\
143f89a8b6aSStefano Babic 	"updatemlo=nandecc hw;nand erase 0 20000;"			\
144f89a8b6aSStefano Babic 		"nand write ${loadaddr} 0 20000\0"			\
145f89a8b6aSStefano Babic 	"upd=if run load;then echo Updating u-boot;if run update;"	\
146f89a8b6aSStefano Babic 		"then echo U-Boot updated;"				\
147f89a8b6aSStefano Babic 			"else echo Error updating u-boot !;"		\
148f89a8b6aSStefano Babic 			"echo Board without bootloader !!;"		\
149f89a8b6aSStefano Babic 		"fi;"							\
150f89a8b6aSStefano Babic 		"else echo U-Boot not downloaded..exiting;fi\0"		\
1514ab779cbSIlya Yanok 	"loadbootscript=fatload mmc 0 ${loadaddr} boot.scr\0"		\
1524ab779cbSIlya Yanok 	"bootscript=echo Running bootscript from mmc ...; "		\
1534ab779cbSIlya Yanok 		"source ${loadaddr}\0"					\
154f89a8b6aSStefano Babic 	"nandargs=setenv bootargs ubi.mtd=7 "				\
155f89a8b6aSStefano Babic 		"root=ubi0:rootfs rootfstype=ubifs\0"			\
1564ab779cbSIlya Yanok 	"nandboot=echo Booting from nand ...; "				\
1574ab779cbSIlya Yanok 		"run nandargs; "					\
158f89a8b6aSStefano Babic 		"ubi part nand0,4;"					\
159f89a8b6aSStefano Babic 		"ubi readvol ${loadaddr} kernel;"			\
160e47c9e86SStefano Babic 		"run addtty addmtd addfb addeth addmisc;"		\
1614ab779cbSIlya Yanok 		"bootm ${loadaddr}\0"					\
1628f1fae26SStefano Babic 	"preboot=ubi part nand0,7;"					\
1638f1fae26SStefano Babic 		"ubi readvol ${loadaddr} splash;"			\
1648f1fae26SStefano Babic 		"bmp display ${loadaddr};"				\
1658f1fae26SStefano Babic 		"gpio set 55\0"						\
166e47c9e86SStefano Babic 	"swupdate_args=setenv bootargs root=/dev/ram "			\
167e47c9e86SStefano Babic 		"quiet loglevel=1 "					\
168f89a8b6aSStefano Babic 		"consoleblank=0 ${swupdate_misc}\0"			\
169f89a8b6aSStefano Babic 	"swupdate=echo Running Sw-Update...;"				\
170f89a8b6aSStefano Babic 		"if printenv mtdparts;then echo Starting SwUpdate...; "	\
171f89a8b6aSStefano Babic 		"else mtdparts default;fi; "				\
172f89a8b6aSStefano Babic 		"ubi part nand0,5;"					\
173f89a8b6aSStefano Babic 		"ubi readvol 0x82000000 kernel_recovery;"		\
174e47c9e86SStefano Babic 		"ubi part nand0,6;"					\
175e47c9e86SStefano Babic 		"ubi readvol 0x84000000 fs_recovery;"			\
176f89a8b6aSStefano Babic 		"run swupdate_args; "					\
177f89a8b6aSStefano Babic 		"setenv bootargs ${bootargs} "				\
178f89a8b6aSStefano Babic 			"${mtdparts} "					\
179f89a8b6aSStefano Babic 			"vram=6M omapfb.vram=1:2M,2:2M,3:2M "		\
180f89a8b6aSStefano Babic 			"omapdss.def_disp=lcd;"				\
181a5d64dbfSStefano Babic 		"bootm 0x82000000 0x84000000\0"				\
182a5d64dbfSStefano Babic 	"bootcmd=mmc rescan;if fatload mmc 0 82000000 loadbootscr.scr;"	\
183a5d64dbfSStefano Babic 		"then source 82000000;else run nandboot;fi\0"
1844ab779cbSIlya Yanok 
1854ab779cbSIlya Yanok /*
1864ab779cbSIlya Yanok  * Miscellaneous configurable options
1874ab779cbSIlya Yanok  */
188992a27d5SStefano Babic #define CONFIG_SYS_CBSIZE		1024/* Console I/O Buffer Size */
1894ab779cbSIlya Yanok /* Boot Argument Buffer Size */
1904ab779cbSIlya Yanok #define CONFIG_SYS_BARGSIZE		(CONFIG_SYS_CBSIZE)
1914ab779cbSIlya Yanok /* memtest works on */
1924ab779cbSIlya Yanok #define CONFIG_SYS_MEMTEST_START	(OMAP34XX_SDRC_CS0)
1934ab779cbSIlya Yanok #define CONFIG_SYS_MEMTEST_END		(OMAP34XX_SDRC_CS0 + \
1944ab779cbSIlya Yanok 					0x01F00000) /* 31MB */
1954ab779cbSIlya Yanok 
1964ab779cbSIlya Yanok #define CONFIG_SYS_LOAD_ADDR		(OMAP34XX_SDRC_CS0) /* default load */
1974ab779cbSIlya Yanok 								/* address */
1988f1fae26SStefano Babic #define CONFIG_PREBOOT
1994ab779cbSIlya Yanok 
2004ab779cbSIlya Yanok /*
2014ab779cbSIlya Yanok  * AM3517 has 12 GP timers, they can be driven by the system clock
2024ab779cbSIlya Yanok  * (12/13/16.8/19.2/38.4MHz) or by 32KHz clock. We use 13MHz (V_SCLK).
2034ab779cbSIlya Yanok  * This rate is divided by a local divisor.
2044ab779cbSIlya Yanok  */
2054ab779cbSIlya Yanok #define CONFIG_SYS_TIMERBASE		OMAP34XX_GPT2
2064ab779cbSIlya Yanok #define CONFIG_SYS_PTV			2	/* Divisor: 2^(PTV+1) => 8 */
2074ab779cbSIlya Yanok 
2084ab779cbSIlya Yanok /*
2094ab779cbSIlya Yanok  * Physical Memory Map
2104ab779cbSIlya Yanok  */
2114ab779cbSIlya Yanok #define PHYS_SDRAM_1		OMAP34XX_SDRC_CS0
2124ab779cbSIlya Yanok #define PHYS_SDRAM_2		OMAP34XX_SDRC_CS1
2134ab779cbSIlya Yanok 
2144ab779cbSIlya Yanok /*
2154ab779cbSIlya Yanok  * FLASH and environment organization
2164ab779cbSIlya Yanok  */
2174ab779cbSIlya Yanok 
2184ab779cbSIlya Yanok /* **** PISMO SUPPORT *** */
2194ab779cbSIlya Yanok 
220f89a8b6aSStefano Babic /* Redundant Environment */
2214ab779cbSIlya Yanok #define CONFIG_SYS_ENV_SECT_SIZE	(128 << 10)	/* 128 KiB */
2227672d9d5SAdam Ford #define CONFIG_ENV_OFFSET		0x180000
2237672d9d5SAdam Ford #define CONFIG_ENV_ADDR			0x180000
224f89a8b6aSStefano Babic #define CONFIG_ENV_OFFSET_REDUND	(CONFIG_ENV_OFFSET + \
225f89a8b6aSStefano Babic 						2 * CONFIG_SYS_ENV_SECT_SIZE)
226f89a8b6aSStefano Babic #define CONFIG_ENV_SIZE_REDUND		CONFIG_ENV_SIZE
2274ab779cbSIlya Yanok 
2284ab779cbSIlya Yanok /* Flash banks JFFS2 should use */
2294ab779cbSIlya Yanok #define CONFIG_SYS_MAX_MTD_BANKS	(CONFIG_SYS_MAX_FLASH_BANKS + \
2304ab779cbSIlya Yanok 					CONFIG_SYS_MAX_NAND_DEVICE)
2314ab779cbSIlya Yanok #define CONFIG_SYS_JFFS2_MEM_NAND
2324ab779cbSIlya Yanok /* use flash_info[2] */
2334ab779cbSIlya Yanok #define CONFIG_SYS_JFFS2_FIRST_BANK	CONFIG_SYS_MAX_FLASH_BANKS
2344ab779cbSIlya Yanok #define CONFIG_SYS_JFFS2_NUM_BANKS	1
2354ab779cbSIlya Yanok 
2364ab779cbSIlya Yanok #define CONFIG_SYS_SDRAM_BASE		PHYS_SDRAM_1
2374ab779cbSIlya Yanok #define CONFIG_SYS_INIT_RAM_ADDR	0x4020f800
2384ab779cbSIlya Yanok #define CONFIG_SYS_INIT_RAM_SIZE	0x800
2394ab779cbSIlya Yanok #define CONFIG_SYS_INIT_SP_ADDR		(CONFIG_SYS_INIT_RAM_ADDR + \
2404ab779cbSIlya Yanok 					 CONFIG_SYS_INIT_RAM_SIZE - \
2414ab779cbSIlya Yanok 					 GENERATED_GBL_DATA_SIZE)
2424ab779cbSIlya Yanok 
2434ab779cbSIlya Yanok /* Defines for SPL */
2444ab779cbSIlya Yanok 
2456f2f01b9SScott Wood #define CONFIG_SPL_NAND_BASE
2466f2f01b9SScott Wood #define CONFIG_SPL_NAND_DRIVERS
2476f2f01b9SScott Wood #define CONFIG_SPL_NAND_ECC
2484ab779cbSIlya Yanok 
2494ab779cbSIlya Yanok #define CONFIG_SPL_TEXT_BASE		0x40200000 /*CONFIG_SYS_SRAM_START*/
250e0820cccSTom Rini #define CONFIG_SPL_MAX_SIZE		(54 * 1024)	/* 8 KB for stack */
2514ab779cbSIlya Yanok #define CONFIG_SPL_STACK		LOW_LEVEL_SRAM_STACK
2524ab779cbSIlya Yanok 
2534ab779cbSIlya Yanok /* move malloc and bss high to prevent clashing with the main image */
2544ab779cbSIlya Yanok #define CONFIG_SYS_SPL_MALLOC_START	0x8f000000
2554ab779cbSIlya Yanok #define CONFIG_SYS_SPL_MALLOC_SIZE	0x80000
2564ab779cbSIlya Yanok #define CONFIG_SPL_BSS_START_ADDR	0x8f080000 /* end of RAM */
2574ab779cbSIlya Yanok #define CONFIG_SPL_BSS_MAX_SIZE		0x80000
2584ab779cbSIlya Yanok 
259e2ccdf89SPaul Kocialkowski #define CONFIG_SYS_MMCSD_FS_BOOT_PARTITION	1
260205b4f33SGuillaume GARDET #define CONFIG_SPL_FS_LOAD_PAYLOAD_NAME	"u-boot.img"
2614ab779cbSIlya Yanok 
2624ab779cbSIlya Yanok /* NAND boot config */
2634ab779cbSIlya Yanok #define CONFIG_SYS_NAND_PAGE_COUNT	64
2644ab779cbSIlya Yanok #define CONFIG_SYS_NAND_PAGE_SIZE	2048
2654ab779cbSIlya Yanok #define CONFIG_SYS_NAND_OOBSIZE		64
2664ab779cbSIlya Yanok #define CONFIG_SYS_NAND_BLOCK_SIZE	(128*1024)
2674ab779cbSIlya Yanok #define CONFIG_SYS_NAND_5_ADDR_CYCLE
2684ab779cbSIlya Yanok #define CONFIG_SYS_NAND_BAD_BLOCK_POS	0
2694ab779cbSIlya Yanok #define CONFIG_SYS_NAND_ECCPOS		{40, 41, 42, 43, 44, 45, 46, 47,\
2704ab779cbSIlya Yanok 					 48, 49, 50, 51, 52, 53, 54, 55,\
2714ab779cbSIlya Yanok 					 56, 57, 58, 59, 60, 61, 62, 63}
2724ab779cbSIlya Yanok #define CONFIG_SYS_NAND_ECCSIZE		256
2734ab779cbSIlya Yanok #define CONFIG_SYS_NAND_ECCBYTES	3
2743f719069Spekon gupta #define CONFIG_NAND_OMAP_ECCSCHEME	OMAP_ECC_HAM1_CODE_SW
27592671102SStefano Babic #define CONFIG_SPL_NAND_SOFTECC
2764ab779cbSIlya Yanok 
2774ab779cbSIlya Yanok #define CONFIG_SYS_NAND_U_BOOT_START   CONFIG_SYS_TEXT_BASE
2784ab779cbSIlya Yanok 
2794ab779cbSIlya Yanok #define CONFIG_SYS_NAND_U_BOOT_OFFS	0x80000
2804ab779cbSIlya Yanok 
2814ab779cbSIlya Yanok /*
2824ab779cbSIlya Yanok  * ethernet support
2834ab779cbSIlya Yanok  *
2844ab779cbSIlya Yanok  */
2854ab779cbSIlya Yanok #if defined(CONFIG_CMD_NET)
2864ab779cbSIlya Yanok #define CONFIG_DRIVER_TI_EMAC_USE_RMII
2874ab779cbSIlya Yanok #define CONFIG_BOOTP_DNS2
2884ab779cbSIlya Yanok #define CONFIG_BOOTP_SEND_HOSTNAME
2894ab779cbSIlya Yanok #define CONFIG_NET_RETRY_COUNT 10
2904ab779cbSIlya Yanok #endif
2914ab779cbSIlya Yanok 
2928f1fae26SStefano Babic #define CONFIG_SPLASH_SCREEN
2938f1fae26SStefano Babic #define CONFIG_VIDEO_BMP_RLE8
2948f1fae26SStefano Babic 
2954ab779cbSIlya Yanok #endif /* __CONFIG_H */
296