xref: /rk3399_rockchip-uboot/include/configs/tricorder.h (revision 0dff13a9aed670e9f1eefdb1ee62b15ef2487532)
18167af14SThomas Weber /*
28167af14SThomas Weber  * (C) Copyright 2006-2008
38167af14SThomas Weber  * Texas Instruments.
48167af14SThomas Weber  * Richard Woodruff <r-woodruff2@ti.com>
58167af14SThomas Weber  * Syed Mohammed Khasim <x0khasim@ti.com>
68167af14SThomas Weber  *
78167af14SThomas Weber  * (C) Copyright 2012
88167af14SThomas Weber  * Corscience GmbH & Co. KG
98167af14SThomas Weber  * Thomas Weber <weber@corscience.de>
108167af14SThomas Weber  *
118167af14SThomas Weber  * Configuration settings for the Tricorder board.
128167af14SThomas Weber  *
131a459660SWolfgang Denk  * SPDX-License-Identifier:	GPL-2.0+
148167af14SThomas Weber  */
158167af14SThomas Weber 
168167af14SThomas Weber #ifndef __CONFIG_H
178167af14SThomas Weber #define __CONFIG_H
188167af14SThomas Weber 
198167af14SThomas Weber /* High Level Configuration Options */
208167af14SThomas Weber #define CONFIG_OMAP			/* in a TI OMAP core */
218167af14SThomas Weber #define CONFIG_OMAP34XX			/* which is a 34XX */
22806d2792SLokesh Vutla #define CONFIG_OMAP_COMMON
238167af14SThomas Weber 
248167af14SThomas Weber #define CONFIG_MACH_TYPE		MACH_TYPE_TRICORDER
258167af14SThomas Weber /*
268167af14SThomas Weber  * 1MB into the SDRAM to allow for SPL's bss at the beginning of SDRAM
278167af14SThomas Weber  * 64 bytes before this address should be set aside for u-boot.img's
288167af14SThomas Weber  * header. That is 0x800FFFC0--0x80100000 should not be used for any
298167af14SThomas Weber  * other needs.
308167af14SThomas Weber  */
318167af14SThomas Weber #define CONFIG_SYS_TEXT_BASE		0x80100000
328167af14SThomas Weber 
338167af14SThomas Weber #define CONFIG_SDRC			/* The chip has SDRC controller */
348167af14SThomas Weber 
358167af14SThomas Weber #include <asm/arch/cpu.h>		/* get chip and board defs */
368167af14SThomas Weber #include <asm/arch/omap3.h>
378167af14SThomas Weber 
388167af14SThomas Weber /* Display CPU and Board information */
398167af14SThomas Weber #define CONFIG_DISPLAY_CPUINFO
408167af14SThomas Weber #define CONFIG_DISPLAY_BOARDINFO
418167af14SThomas Weber 
428167af14SThomas Weber /* Clock Defines */
438167af14SThomas Weber #define V_OSCK				26000000 /* Clock output from T2 */
448167af14SThomas Weber #define V_SCLK				(V_OSCK >> 1)
458167af14SThomas Weber 
468167af14SThomas Weber #define CONFIG_MISC_INIT_R
478167af14SThomas Weber 
488167af14SThomas Weber #define CONFIG_CMDLINE_TAG		/* enable passing of ATAGs */
498167af14SThomas Weber #define CONFIG_SETUP_MEMORY_TAGS
508167af14SThomas Weber #define CONFIG_INITRD_TAG
518167af14SThomas Weber #define CONFIG_REVISION_TAG
528167af14SThomas Weber 
538167af14SThomas Weber #define CONFIG_OF_LIBFDT
548167af14SThomas Weber 
558167af14SThomas Weber /* Size of malloc() pool */
5636f3aab2SBernhard Walle #define CONFIG_SYS_MALLOC_LEN		(1024*1024)
578167af14SThomas Weber 
588167af14SThomas Weber /* Hardware drivers */
598167af14SThomas Weber 
608167af14SThomas Weber /* NS16550 Configuration */
618167af14SThomas Weber #define CONFIG_SYS_NS16550
628167af14SThomas Weber #define CONFIG_SYS_NS16550_SERIAL
638167af14SThomas Weber #define CONFIG_SYS_NS16550_REG_SIZE	(-4)
648167af14SThomas Weber #define CONFIG_SYS_NS16550_CLK		48000000 /* 48MHz (APLL96/2) */
658167af14SThomas Weber 
668167af14SThomas Weber /* select serial console configuration */
678167af14SThomas Weber #define CONFIG_CONS_INDEX		3
688167af14SThomas Weber #define CONFIG_SYS_NS16550_COM3		OMAP34XX_UART3
698167af14SThomas Weber #define CONFIG_SERIAL3			3
708167af14SThomas Weber #define CONFIG_BAUDRATE			115200
718167af14SThomas Weber #define CONFIG_SYS_BAUDRATE_TABLE	{4800, 9600, 19200, 38400, 57600,\
728167af14SThomas Weber 					115200}
738167af14SThomas Weber 
748167af14SThomas Weber /* MMC */
758167af14SThomas Weber #define CONFIG_GENERIC_MMC
768167af14SThomas Weber #define CONFIG_MMC
778167af14SThomas Weber #define CONFIG_OMAP_HSMMC
788167af14SThomas Weber #define CONFIG_DOS_PARTITION
798167af14SThomas Weber 
808167af14SThomas Weber /* I2C */
818167af14SThomas Weber #define CONFIG_HARD_I2C
828167af14SThomas Weber #define CONFIG_SYS_I2C_SPEED		100000
838167af14SThomas Weber #define CONFIG_SYS_I2C_SLAVE		1
848167af14SThomas Weber #define CONFIG_DRIVER_OMAP34XX_I2C	1
858167af14SThomas Weber 
868167af14SThomas Weber /* TWL4030 */
878167af14SThomas Weber #define CONFIG_TWL4030_POWER
888167af14SThomas Weber #define CONFIG_TWL4030_LED
898167af14SThomas Weber 
908167af14SThomas Weber /* Board NAND Info */
918167af14SThomas Weber #define CONFIG_SYS_NO_FLASH		/* no NOR flash */
928167af14SThomas Weber #define CONFIG_MTD_DEVICE		/* needed for mtdparts commands */
935c68f123SAndreas Bießmann #define MTDIDS_DEFAULT			"nand0=omap2-nand.0"
945c68f123SAndreas Bießmann #define MTDPARTS_DEFAULT		"mtdparts=omap2-nand.0:" \
955c68f123SAndreas Bießmann 						"128k(SPL)," \
965c68f123SAndreas Bießmann 						"1m(u-boot)," \
975c68f123SAndreas Bießmann 						"384k(u-boot-env1)," \
985c68f123SAndreas Bießmann 						"1152k(mtdoops)," \
995c68f123SAndreas Bießmann 						"384k(u-boot-env2)," \
1005c68f123SAndreas Bießmann 						"5m(kernel)," \
1015c68f123SAndreas Bießmann 						"2m(fdt)," \
1025c68f123SAndreas Bießmann 						"-(ubi)"
1038167af14SThomas Weber 
1048167af14SThomas Weber #define CONFIG_NAND_OMAP_GPMC
1058167af14SThomas Weber #define CONFIG_SYS_NAND_ADDR		NAND_BASE	/* physical address */
1068167af14SThomas Weber 							/* to access nand */
1078167af14SThomas Weber #define CONFIG_SYS_NAND_BASE		NAND_BASE	/* physical address */
1088167af14SThomas Weber 							/* to access nand at */
1098167af14SThomas Weber 							/* CS0 */
1108167af14SThomas Weber #define GPMC_NAND_ECC_LP_x16_LAYOUT	1
1118167af14SThomas Weber 
1128167af14SThomas Weber #define CONFIG_SYS_MAX_NAND_DEVICE	1		/* Max number of NAND */
1138167af14SThomas Weber 							/* devices */
114616cf60eSAndreas Bießmann #define CONFIG_NAND_OMAP_BCH8
115616cf60eSAndreas Bießmann #define CONFIG_BCH
1168167af14SThomas Weber 
1178167af14SThomas Weber /* commands to include */
1188167af14SThomas Weber #include <config_cmd_default.h>
1198167af14SThomas Weber 
1208167af14SThomas Weber #define CONFIG_CMD_EXT2			/* EXT2 Support */
1218167af14SThomas Weber #define CONFIG_CMD_FAT			/* FAT support */
1228167af14SThomas Weber #define CONFIG_CMD_I2C			/* I2C serial bus support */
1238167af14SThomas Weber #define CONFIG_CMD_MMC			/* MMC support */
1248167af14SThomas Weber #define CONFIG_CMD_MTDPARTS		/* Enable MTD parts commands */
1258167af14SThomas Weber #define CONFIG_CMD_NAND			/* NAND support */
1268167af14SThomas Weber #define CONFIG_CMD_NAND_LOCK_UNLOCK	/* nand (un)lock commands */
12736f3aab2SBernhard Walle #define CONFIG_CMD_UBI			/* UBI commands */
12836f3aab2SBernhard Walle #define CONFIG_CMD_UBIFS		/* UBIFS commands */
12936f3aab2SBernhard Walle #define CONFIG_LZO			/* LZO is needed for UBIFS */
1308167af14SThomas Weber 
1318167af14SThomas Weber #undef CONFIG_CMD_NET
1328167af14SThomas Weber #undef CONFIG_CMD_NFS
1338167af14SThomas Weber #undef CONFIG_CMD_FPGA			/* FPGA configuration Support */
1348167af14SThomas Weber #undef CONFIG_CMD_IMI			/* iminfo */
1358167af14SThomas Weber #undef CONFIG_CMD_JFFS2			/* JFFS2 Support */
1368167af14SThomas Weber 
1378167af14SThomas Weber /* needed for ubi */
1388167af14SThomas Weber #define CONFIG_RBTREE
1398167af14SThomas Weber #define CONFIG_MTD_DEVICE       /* needed for mtdparts commands */
1408167af14SThomas Weber #define CONFIG_MTD_PARTITIONS
1418167af14SThomas Weber 
1428167af14SThomas Weber /* Environment information */
1438167af14SThomas Weber #define CONFIG_ENV_OVERWRITE /* allow to overwrite serial and ethaddr */
1448167af14SThomas Weber 
1458167af14SThomas Weber #define CONFIG_BOOTDELAY		3
1468167af14SThomas Weber 
147*0dff13a9SAndreas Bießmann /* the loadaddr is the same as CONFIG_SYS_LOAD_ADDR, unfortunately the defiend
148*0dff13a9SAndreas Bießmann  * value can not be used here! */
149*0dff13a9SAndreas Bießmann #define CONFIG_LOADADDR		0x82000000
150*0dff13a9SAndreas Bießmann 
1518167af14SThomas Weber #define CONFIG_EXTRA_ENV_SETTINGS \
1528167af14SThomas Weber 	"console=ttyO2,115200n8\0" \
1535605979aSThomas Weber 	"mmcdev=0\0" \
15483976f1dSThomas Weber 	"vram=3M\0" \
1558167af14SThomas Weber 	"defaultdisplay=lcd\0" \
1568167af14SThomas Weber 	"kernelopts=rw rootwait\0" \
1578167af14SThomas Weber 	"commonargs=" \
1588167af14SThomas Weber 		"setenv bootargs console=${console} " \
1595c68f123SAndreas Bießmann 		"${mtdparts} " \
1608167af14SThomas Weber 		"vram=${vram} " \
1618167af14SThomas Weber 		"omapdss.def_disp=${defaultdisplay}\0" \
1628167af14SThomas Weber 	"mmcargs=" \
1638167af14SThomas Weber 		"run commonargs; " \
1648167af14SThomas Weber 		"setenv bootargs ${bootargs} " \
1658167af14SThomas Weber 		"root=/dev/mmcblk0p2 " \
1668167af14SThomas Weber 		"${kernelopts}\0" \
1678167af14SThomas Weber 	"nandargs=" \
1688167af14SThomas Weber 		"run commonargs; " \
1698167af14SThomas Weber 		"setenv bootargs ${bootargs} " \
1708167af14SThomas Weber 		"omapdss.def_disp=${defaultdisplay} " \
171008ec950SBernhard Walle 		"root=ubi0:root " \
1725c68f123SAndreas Bießmann 		"ubi.mtd=7 " \
1738167af14SThomas Weber 		"rootfstype=ubifs " \
1748167af14SThomas Weber 		"${kernelopts}\0" \
1755605979aSThomas Weber 	"loadbootscript=fatload mmc ${mmcdev} ${loadaddr} boot.scr\0" \
1768167af14SThomas Weber 	"bootscript=echo Running bootscript from mmc ...; " \
1778167af14SThomas Weber 		"source ${loadaddr}\0" \
1785605979aSThomas Weber 	"loaduimage=fatload mmc ${mmcdev} ${loadaddr} uImage\0" \
1798167af14SThomas Weber 	"mmcboot=echo Booting from mmc ...; " \
1808167af14SThomas Weber 		"run mmcargs; " \
1818167af14SThomas Weber 		"bootm ${loadaddr}\0" \
182008ec950SBernhard Walle 	"loaduimage_ubi=mtd default; " \
1835c68f123SAndreas Bießmann 		"ubi part ubi; " \
184949a7710SJoe Hershberger 		"ubifsmount ubi:root; " \
185008ec950SBernhard Walle 		"ubifsload ${loadaddr} /boot/uImage\0" \
1868167af14SThomas Weber 	"nandboot=echo Booting from nand ...; " \
1878167af14SThomas Weber 		"run nandargs; " \
188008ec950SBernhard Walle 		"run loaduimage_ubi; " \
1898167af14SThomas Weber 		"bootm ${loadaddr}\0" \
1905c68f123SAndreas Bießmann 	"autoboot=mtdparts default;" \
1915c68f123SAndreas Bießmann 			"mmc dev ${mmcdev}; if mmc rescan; then " \
1928167af14SThomas Weber 			"if run loadbootscript; then " \
1938167af14SThomas Weber 				"run bootscript; " \
1948167af14SThomas Weber 			"else " \
1958167af14SThomas Weber 				"if run loaduimage; then " \
1968167af14SThomas Weber 					"run mmcboot; " \
1978167af14SThomas Weber 				"else run nandboot; " \
1988167af14SThomas Weber 				"fi; " \
1998167af14SThomas Weber 			"fi; " \
2008167af14SThomas Weber 		"else run nandboot; fi\0"
2018167af14SThomas Weber 
2028167af14SThomas Weber #define CONFIG_BOOTCOMMAND "run autoboot"
2038167af14SThomas Weber 
2048167af14SThomas Weber /* Miscellaneous configurable options */
2058167af14SThomas Weber #define CONFIG_SYS_LONGHELP		/* undef to save memory */
2068167af14SThomas Weber #define CONFIG_SYS_HUSH_PARSER		/* use "hush" command parser */
2078167af14SThomas Weber #define CONFIG_AUTO_COMPLETE
2088167af14SThomas Weber #define CONFIG_SYS_PROMPT		"OMAP3 Tricorder # "
2098167af14SThomas Weber #define CONFIG_SYS_CBSIZE		512	/* Console I/O Buffer Size */
2108167af14SThomas Weber /* Print Buffer Size */
2118167af14SThomas Weber #define CONFIG_SYS_PBSIZE		(CONFIG_SYS_CBSIZE + \
2128167af14SThomas Weber 					sizeof(CONFIG_SYS_PROMPT) + 16)
2138167af14SThomas Weber #define CONFIG_SYS_MAXARGS		16	/* max number of command args */
2148167af14SThomas Weber 
2158167af14SThomas Weber /* Boot Argument Buffer Size */
2168167af14SThomas Weber #define CONFIG_SYS_BARGSIZE		(CONFIG_SYS_CBSIZE)
2178167af14SThomas Weber 
2188167af14SThomas Weber #define CONFIG_SYS_MEMTEST_START	(OMAP34XX_SDRC_CS0 + 0x07000000)
2198167af14SThomas Weber #define CONFIG_SYS_MEMTEST_END		(CONFIG_SYS_MEMTEST_START + \
2208167af14SThomas Weber 					0x01000000) /* 16MB */
2218167af14SThomas Weber 
2228167af14SThomas Weber #define CONFIG_SYS_LOAD_ADDR		(OMAP34XX_SDRC_CS0 + 0x02000000)
2238167af14SThomas Weber 
2248167af14SThomas Weber /*
2258167af14SThomas Weber  * OMAP3 has 12 GP timers, they can be driven by the system clock
2268167af14SThomas Weber  * (12/13/16.8/19.2/38.4MHz) or by 32KHz clock. We use 13MHz (V_SCLK).
2278167af14SThomas Weber  * This rate is divided by a local divisor.
2288167af14SThomas Weber  */
2298167af14SThomas Weber #define CONFIG_SYS_TIMERBASE		(OMAP34XX_GPT2)
2308167af14SThomas Weber #define CONFIG_SYS_PTV			2 /* Divisor: 2^(PTV+1) => 8 */
2318167af14SThomas Weber #define CONFIG_SYS_HZ			1000
2328167af14SThomas Weber 
2338167af14SThomas Weber /*  Physical Memory Map  */
2348167af14SThomas Weber #define CONFIG_NR_DRAM_BANKS		2 /* CS1 may or may not be populated */
2358167af14SThomas Weber #define PHYS_SDRAM_1			OMAP34XX_SDRC_CS0
2368167af14SThomas Weber #define PHYS_SDRAM_2			OMAP34XX_SDRC_CS1
2378167af14SThomas Weber 
2388167af14SThomas Weber /* NAND and environment organization  */
2398167af14SThomas Weber #define PISMO1_NAND_SIZE		GPMC_SIZE_128M
2408167af14SThomas Weber 
2418167af14SThomas Weber #define CONFIG_SYS_MONITOR_LEN		(256 << 10)	/* Reserve 2 sectors */
2428167af14SThomas Weber 
2435c68f123SAndreas Bießmann #define CONFIG_ENV_IS_IN_NAND
2445c68f123SAndreas Bießmann #define CONFIG_ENV_OFFSET		0x120000    /* env start */
2455c68f123SAndreas Bießmann #define CONFIG_ENV_OFFSET_REDUND	0x2A0000    /* redundant env start */
2465c68f123SAndreas Bießmann #define CONFIG_ENV_SIZE			(16 << 10)  /* use 16KiB for env */
2475c68f123SAndreas Bießmann #define CONFIG_ENV_RANGE		(384 << 10) /* allow badblocks in env */
2488167af14SThomas Weber 
2498167af14SThomas Weber #define CONFIG_SYS_SDRAM_BASE		PHYS_SDRAM_1
2508167af14SThomas Weber #define CONFIG_SYS_INIT_RAM_ADDR	0x4020f800
2518167af14SThomas Weber #define CONFIG_SYS_INIT_RAM_SIZE	0x800
2528167af14SThomas Weber #define CONFIG_SYS_INIT_SP_ADDR	(CONFIG_SYS_INIT_RAM_ADDR + \
2538167af14SThomas Weber 						CONFIG_SYS_INIT_RAM_SIZE - \
2548167af14SThomas Weber 						GENERATED_GBL_DATA_SIZE)
2558167af14SThomas Weber 
2568167af14SThomas Weber /* SRAM config */
2578167af14SThomas Weber #define CONFIG_SYS_SRAM_START		0x40200000
2588167af14SThomas Weber #define CONFIG_SYS_SRAM_SIZE		0x10000
2598167af14SThomas Weber 
2608167af14SThomas Weber /* Defines for SPL */
2618167af14SThomas Weber #define CONFIG_SPL
26247f7bcaeSTom Rini #define CONFIG_SPL_FRAMEWORK
2638167af14SThomas Weber #define CONFIG_SPL_NAND_SIMPLE
2648167af14SThomas Weber 
26549175c49STom Rini #define CONFIG_SPL_BOARD_INIT
2668167af14SThomas Weber #define CONFIG_SPL_LIBCOMMON_SUPPORT
2678167af14SThomas Weber #define CONFIG_SPL_LIBDISK_SUPPORT
2688167af14SThomas Weber #define CONFIG_SPL_I2C_SUPPORT
2698167af14SThomas Weber #define CONFIG_SPL_LIBGENERIC_SUPPORT
2708167af14SThomas Weber #define CONFIG_SPL_SERIAL_SUPPORT
2718167af14SThomas Weber #define CONFIG_SPL_POWER_SUPPORT
2728167af14SThomas Weber #define CONFIG_SPL_NAND_SUPPORT
2736f2f01b9SScott Wood #define CONFIG_SPL_NAND_BASE
2746f2f01b9SScott Wood #define CONFIG_SPL_NAND_DRIVERS
2756f2f01b9SScott Wood #define CONFIG_SPL_NAND_ECC
2768167af14SThomas Weber #define CONFIG_SPL_MMC_SUPPORT
2778167af14SThomas Weber #define CONFIG_SPL_FAT_SUPPORT
2788167af14SThomas Weber #define CONFIG_SPL_LDSCRIPT		"$(CPUDIR)/omap-common/u-boot-spl.lds"
2798167af14SThomas Weber #define CONFIG_SPL_FAT_LOAD_PAYLOAD_NAME        "u-boot.img"
2808167af14SThomas Weber #define CONFIG_SYS_MMC_SD_FAT_BOOT_PARTITION    1
2818167af14SThomas Weber #define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR 0x300 /* address 0x60000 */
2828167af14SThomas Weber 
2838167af14SThomas Weber #define CONFIG_SPL_TEXT_BASE		0x40200000 /*CONFIG_SYS_SRAM_START*/
284616cf60eSAndreas Bießmann #define CONFIG_SPL_MAX_SIZE		(55 * 1024)	/* 7 KB for stack */
2858167af14SThomas Weber #define CONFIG_SPL_STACK		LOW_LEVEL_SRAM_STACK
2868167af14SThomas Weber 
2878167af14SThomas Weber #define CONFIG_SPL_BSS_START_ADDR	0x80000000 /*CONFIG_SYS_SDRAM_BASE*/
2888167af14SThomas Weber #define CONFIG_SPL_BSS_MAX_SIZE		0x80000
2898167af14SThomas Weber 
2908167af14SThomas Weber /* NAND boot config */
2918167af14SThomas Weber #define CONFIG_SYS_NAND_5_ADDR_CYCLE
2928167af14SThomas Weber #define CONFIG_SYS_NAND_PAGE_COUNT	64
2938167af14SThomas Weber #define CONFIG_SYS_NAND_PAGE_SIZE	2048
2948167af14SThomas Weber #define CONFIG_SYS_NAND_OOBSIZE		64
2958167af14SThomas Weber #define CONFIG_SYS_NAND_BLOCK_SIZE	(128*1024)
2968167af14SThomas Weber #define CONFIG_SYS_NAND_BAD_BLOCK_POS	NAND_LARGE_BADBLOCK_POS
297616cf60eSAndreas Bießmann #define CONFIG_SYS_NAND_ECCPOS		{12, 13, 14, 15, 16, 17, 18, 19, 20,\
298616cf60eSAndreas Bießmann 			21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,\
299616cf60eSAndreas Bießmann 			34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,\
300616cf60eSAndreas Bießmann 			47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,\
301616cf60eSAndreas Bießmann 			60, 61, 62, 63}
3028167af14SThomas Weber 
3038167af14SThomas Weber #define CONFIG_SYS_NAND_ECCSIZE		512
304616cf60eSAndreas Bießmann #define CONFIG_SYS_NAND_ECCBYTES	13
3058167af14SThomas Weber 
3068167af14SThomas Weber #define CONFIG_SYS_NAND_U_BOOT_START	CONFIG_SYS_TEXT_BASE
3078167af14SThomas Weber 
3085c68f123SAndreas Bießmann #define CONFIG_SYS_NAND_U_BOOT_OFFS	0x20000
3095c68f123SAndreas Bießmann #define CONFIG_SYS_NAND_U_BOOT_SIZE	0x100000
3108167af14SThomas Weber 
3118167af14SThomas Weber #define CONFIG_SYS_SPL_MALLOC_START	0x80208000
3128167af14SThomas Weber #define CONFIG_SYS_SPL_MALLOC_SIZE	0x100000	/* 1 MB */
3138167af14SThomas Weber 
3148167af14SThomas Weber #endif /* __CONFIG_H */
315