xref: /rk3399_rockchip-uboot/include/configs/imx6-engicam.h (revision 577968e5669858e1d5bcb651ab28d60d20166252)
10e689a61SJagan Teki /*
20e689a61SJagan Teki  * Copyright (C) 2016 Amarula Solutions B.V.
30e689a61SJagan Teki  * Copyright (C) 2016 Engicam S.r.l.
40e689a61SJagan Teki  *
50e689a61SJagan Teki  * Configuration settings for the Engicam i.MX6 SOM Starter Kits.
60e689a61SJagan Teki  *
70e689a61SJagan Teki  * SPDX-License-Identifier:	GPL-2.0+
80e689a61SJagan Teki  */
90e689a61SJagan Teki 
100e689a61SJagan Teki #ifndef __IMX6_ENGICAM_CONFIG_H
110e689a61SJagan Teki #define __IMX6_ENGICAM_CONFIG_H
120e689a61SJagan Teki 
130e689a61SJagan Teki #include <linux/sizes.h>
140e689a61SJagan Teki #include "mx6_common.h"
150e689a61SJagan Teki 
160e689a61SJagan Teki /* Size of malloc() pool */
170e689a61SJagan Teki #define CONFIG_SYS_MALLOC_LEN		(16 * SZ_1M)
180e689a61SJagan Teki 
190e689a61SJagan Teki /* Total Size of Environment Sector */
200e689a61SJagan Teki #define CONFIG_ENV_SIZE			SZ_128K
210e689a61SJagan Teki 
220e689a61SJagan Teki /* Allow to overwrite serial and ethaddr */
230e689a61SJagan Teki #define CONFIG_ENV_OVERWRITE
240e689a61SJagan Teki 
250e689a61SJagan Teki /* Environment */
260e689a61SJagan Teki #ifndef CONFIG_ENV_IS_NOWHERE
270e689a61SJagan Teki /* Environment in MMC */
280e689a61SJagan Teki # if defined(CONFIG_ENV_IS_IN_MMC)
290e689a61SJagan Teki #  define CONFIG_ENV_OFFSET		0x100000
300e689a61SJagan Teki /* Environment in NAND */
310e689a61SJagan Teki # elif defined(CONFIG_ENV_IS_IN_NAND)
320e689a61SJagan Teki #  define CONFIG_ENV_OFFSET		0x400000
330e689a61SJagan Teki #  define CONFIG_ENV_SECT_SIZE		CONFIG_ENV_SIZE
340e689a61SJagan Teki # endif
350e689a61SJagan Teki #endif
360e689a61SJagan Teki 
370e689a61SJagan Teki /* Default environment */
380e689a61SJagan Teki #define CONFIG_EXTRA_ENV_SETTINGS \
390e689a61SJagan Teki 	"script=boot.scr\0" \
400e689a61SJagan Teki 	"splashpos=m,m\0" \
410e689a61SJagan Teki 	"image=uImage\0" \
420e689a61SJagan Teki 	"fit_image=fit.itb\0" \
430e689a61SJagan Teki 	"fdt_high=0xffffffff\0" \
440e689a61SJagan Teki 	"fdt_addr=" FDT_ADDR "\0" \
450e689a61SJagan Teki 	"boot_fdt=try\0" \
460e689a61SJagan Teki 	"mmcpart=1\0" \
470e689a61SJagan Teki 	"nandroot=ubi0:rootfs rootfstype=ubifs\0" \
480e689a61SJagan Teki 	"mmcautodetect=yes\0" \
490e689a61SJagan Teki 	"mmcargs=setenv bootargs console=${console},${baudrate} " \
500e689a61SJagan Teki 		"root=${mmcroot}\0" \
510e689a61SJagan Teki 	"ubiargs=setenv bootargs console=${console},${baudrate} " \
520e689a61SJagan Teki 		"ubi.mtd=5 root=${nandroot} ${mtdparts}\0" \
530e689a61SJagan Teki 	"loadbootscript=" \
540e689a61SJagan Teki 		"fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \
550e689a61SJagan Teki 	"bootscript=echo Running bootscript from mmc ...; " \
560e689a61SJagan Teki 		"source\0" \
570e689a61SJagan Teki 	"loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \
580e689a61SJagan Teki 	"loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \
590e689a61SJagan Teki 	"loadfit=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${fit_image}\0" \
600e689a61SJagan Teki 	"fitboot=echo Booting FIT image from mmc ...; " \
610e689a61SJagan Teki 		"run mmcargs; " \
620e689a61SJagan Teki 		"bootm ${loadaddr}\0" \
630e689a61SJagan Teki 	"_mmcboot=run mmcargs; " \
640e689a61SJagan Teki 		"run mmcargs; " \
650e689a61SJagan Teki 		"if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
660e689a61SJagan Teki 			"if run loadfdt; then " \
670e689a61SJagan Teki 				"bootm ${loadaddr} - ${fdt_addr}; " \
680e689a61SJagan Teki 			"else " \
690e689a61SJagan Teki 				"if test ${boot_fdt} = try; then " \
700e689a61SJagan Teki 					"bootm; " \
710e689a61SJagan Teki 				"else " \
720e689a61SJagan Teki 					"echo WARN: Cannot load the DT; " \
730e689a61SJagan Teki 				"fi; " \
740e689a61SJagan Teki 			"fi; " \
750e689a61SJagan Teki 		"else " \
760e689a61SJagan Teki 			"bootm; " \
770e689a61SJagan Teki 		"fi\0" \
780e689a61SJagan Teki 	"mmcboot=echo Booting from mmc ...; " \
790e689a61SJagan Teki 		"if mmc rescan; then " \
800e689a61SJagan Teki 			"if run loadbootscript; then " \
810e689a61SJagan Teki 				"run bootscript; " \
820e689a61SJagan Teki 			"else " \
830e689a61SJagan Teki 				"if run loadfit; then " \
840e689a61SJagan Teki 					"run fitboot; " \
850e689a61SJagan Teki 				"else " \
860e689a61SJagan Teki 					"if run loadimage; then " \
870e689a61SJagan Teki 						"run _mmcboot; " \
880e689a61SJagan Teki 					"fi; " \
890e689a61SJagan Teki 				"fi; " \
900e689a61SJagan Teki 			"fi; " \
910e689a61SJagan Teki 		"fi\0" \
920e689a61SJagan Teki 	"nandboot=echo Booting from nand ...; " \
930e689a61SJagan Teki 		"if mtdparts; then " \
940e689a61SJagan Teki 			"echo Starting nand boot ...; " \
950e689a61SJagan Teki 		"else " \
960e689a61SJagan Teki 			"mtdparts default; " \
970e689a61SJagan Teki 		"fi; " \
980e689a61SJagan Teki 		"run ubiargs; " \
990e689a61SJagan Teki 		"nand read ${loadaddr} kernel 0x800000; " \
1000e689a61SJagan Teki 		"nand read ${fdt_addr} dtb 0x100000; " \
1010e689a61SJagan Teki 		"bootm ${loadaddr} - ${fdt_addr}\0"
1020e689a61SJagan Teki 
1030e689a61SJagan Teki #define CONFIG_BOOTCOMMAND		"run $modeboot"
1040e689a61SJagan Teki 
1050e689a61SJagan Teki /* Miscellaneous configurable options */
1060e689a61SJagan Teki #define CONFIG_SYS_MEMTEST_START	0x80000000
1070e689a61SJagan Teki #define CONFIG_SYS_MEMTEST_END		(CONFIG_SYS_MEMTEST_START + 0x8000000)
1080e689a61SJagan Teki 
1090e689a61SJagan Teki #define CONFIG_SYS_LOAD_ADDR		CONFIG_LOADADDR
1100e689a61SJagan Teki #define CONFIG_SYS_HZ			1000
1110e689a61SJagan Teki 
1120e689a61SJagan Teki #ifdef CONFIG_MX6UL
1130e689a61SJagan Teki # define DRAM_OFFSET(x)			0x87##x
1140e689a61SJagan Teki # define FDT_ADDR			__stringify(DRAM_OFFSET(800000))
1150e689a61SJagan Teki #else
1160e689a61SJagan Teki # define DRAM_OFFSET(x)			0x1##x
1170e689a61SJagan Teki # define FDT_ADDR			__stringify(DRAM_OFFSET(8000000))
1180e689a61SJagan Teki #endif
1190e689a61SJagan Teki 
1200e689a61SJagan Teki /* Physical Memory Map */
1210e689a61SJagan Teki #define CONFIG_NR_DRAM_BANKS		1
1220e689a61SJagan Teki #define PHYS_SDRAM			MMDC0_ARB_BASE_ADDR
1230e689a61SJagan Teki 
1240e689a61SJagan Teki #define CONFIG_SYS_SDRAM_BASE		PHYS_SDRAM
1250e689a61SJagan Teki #define CONFIG_SYS_INIT_RAM_ADDR	IRAM_BASE_ADDR
1260e689a61SJagan Teki #define CONFIG_SYS_INIT_RAM_SIZE	IRAM_SIZE
1270e689a61SJagan Teki 
1280e689a61SJagan Teki #define CONFIG_SYS_INIT_SP_OFFSET	(CONFIG_SYS_INIT_RAM_SIZE - \
1290e689a61SJagan Teki 					GENERATED_GBL_DATA_SIZE)
1300e689a61SJagan Teki #define CONFIG_SYS_INIT_SP_ADDR		(CONFIG_SYS_INIT_RAM_ADDR + \
1310e689a61SJagan Teki 					CONFIG_SYS_INIT_SP_OFFSET)
1320e689a61SJagan Teki 
1330e689a61SJagan Teki /* FIT */
1340e689a61SJagan Teki #ifdef CONFIG_FIT
1350e689a61SJagan Teki # define CONFIG_IMAGE_FORMAT_LEGACY
1360e689a61SJagan Teki #endif
1370e689a61SJagan Teki 
1380e689a61SJagan Teki /* UART */
1390e689a61SJagan Teki #ifdef CONFIG_MXC_UART
1400e689a61SJagan Teki # ifdef CONFIG_MX6UL
1410e689a61SJagan Teki #  define CONFIG_MXC_UART_BASE		UART1_BASE
1420e689a61SJagan Teki # else
1430e689a61SJagan Teki #  define CONFIG_MXC_UART_BASE		UART4_BASE
1440e689a61SJagan Teki # endif
1450e689a61SJagan Teki #endif
1460e689a61SJagan Teki 
1470e689a61SJagan Teki /* MMC */
1480e689a61SJagan Teki #ifdef CONFIG_FSL_USDHC
1490e689a61SJagan Teki # define CONFIG_SYS_MMC_ENV_DEV		0
1500e689a61SJagan Teki #endif
1510e689a61SJagan Teki 
1520e689a61SJagan Teki /* NAND */
1530e689a61SJagan Teki #ifdef CONFIG_NAND_MXS
1540e689a61SJagan Teki # define CONFIG_SYS_MAX_NAND_DEVICE	1
1550e689a61SJagan Teki # define CONFIG_SYS_NAND_BASE		0x40000000
1560e689a61SJagan Teki # define CONFIG_SYS_NAND_5_ADDR_CYCLE
1570e689a61SJagan Teki # define CONFIG_SYS_NAND_ONFI_DETECTION
1580e689a61SJagan Teki # define CONFIG_SYS_NAND_U_BOOT_START	CONFIG_SYS_TEXT_BASE
1590e689a61SJagan Teki # define CONFIG_SYS_NAND_U_BOOT_OFFS	0x200000
1600e689a61SJagan Teki 
1610e689a61SJagan Teki /* MTD device */
1620e689a61SJagan Teki #endif
1630e689a61SJagan Teki 
1640e689a61SJagan Teki /* Ethernet */
1650e689a61SJagan Teki #ifdef CONFIG_FEC_MXC
1660e689a61SJagan Teki # ifdef CONFIG_TARGET_MX6Q_ICORE_RQS
1670e689a61SJagan Teki #  define CONFIG_FEC_MXC_PHYADDR	3
1680e689a61SJagan Teki #  define CONFIG_FEC_XCV_TYPE		RGMII
1690e689a61SJagan Teki # else
1700e689a61SJagan Teki #  define CONFIG_FEC_MXC_PHYADDR	0
1710e689a61SJagan Teki #  define CONFIG_FEC_XCV_TYPE		RMII
1720e689a61SJagan Teki # endif
1730e689a61SJagan Teki 
1740e689a61SJagan Teki # define CONFIG_MII
1750e689a61SJagan Teki #endif
1760e689a61SJagan Teki 
177*63af4b0aSJagan Teki /* Falcon Mode */
178*63af4b0aSJagan Teki #ifdef CONFIG_SPL_OS_BOOT
179*63af4b0aSJagan Teki # define CONFIG_SPL_FS_LOAD_ARGS_NAME	"args"
180*63af4b0aSJagan Teki # define CONFIG_SPL_FS_LOAD_KERNEL_NAME	"uImage"
181*63af4b0aSJagan Teki # define CONFIG_CMD_SPL
182*63af4b0aSJagan Teki # define CONFIG_SYS_SPL_ARGS_ADDR	0x18000000
183*63af4b0aSJagan Teki # define CONFIG_CMD_SPL_WRITE_SIZE	(128 * SZ_1K)
184*63af4b0aSJagan Teki 
185*63af4b0aSJagan Teki /* MMC support: args@1MB kernel@2MB */
186*63af4b0aSJagan Teki # define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTOR		0x800   /* 1MB */
187*63af4b0aSJagan Teki # define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTORS		(CONFIG_CMD_SPL_WRITE_SIZE / 512)
188*63af4b0aSJagan Teki # define CONFIG_SYS_MMCSD_RAW_MODE_KERNEL_SECTOR	0x1000  /* 2MB */
189*63af4b0aSJagan Teki #endif
190*63af4b0aSJagan Teki 
1910e689a61SJagan Teki /* Framebuffer */
1920e689a61SJagan Teki #ifdef CONFIG_VIDEO_IPUV3
1930e689a61SJagan Teki # define CONFIG_IPUV3_CLK		260000000
1940e689a61SJagan Teki # define CONFIG_IMX_VIDEO_SKIP
1950e689a61SJagan Teki 
1960e689a61SJagan Teki # define CONFIG_SPLASH_SCREEN
1970e689a61SJagan Teki # define CONFIG_SPLASH_SCREEN_ALIGN
1980e689a61SJagan Teki # define CONFIG_BMP_16BPP
1990e689a61SJagan Teki # define CONFIG_VIDEO_BMP_RLE8
2000e689a61SJagan Teki # define CONFIG_VIDEO_LOGO
2010e689a61SJagan Teki # define CONFIG_VIDEO_BMP_LOGO
2020e689a61SJagan Teki #endif
2030e689a61SJagan Teki 
2040e689a61SJagan Teki /* SPL */
2050e689a61SJagan Teki #ifdef CONFIG_SPL
2060e689a61SJagan Teki # ifdef CONFIG_NAND_MXS
2070e689a61SJagan Teki #  define CONFIG_SPL_NAND_SUPPORT
2080e689a61SJagan Teki # else
2090e689a61SJagan Teki #  define CONFIG_SPL_MMC_SUPPORT
2100e689a61SJagan Teki # endif
2110e689a61SJagan Teki 
2120e689a61SJagan Teki # include "imx6_spl.h"
2130e689a61SJagan Teki # ifdef CONFIG_SPL_BUILD
2140e689a61SJagan Teki #  if defined(CONFIG_TARGET_MX6Q_ICORE_RQS) || defined(CONFIG_TARGET_MX6UL_ISIOT)
2150e689a61SJagan Teki #   define CONFIG_SYS_FSL_USDHC_NUM	2
2160e689a61SJagan Teki #  else
2170e689a61SJagan Teki #   define CONFIG_SYS_FSL_USDHC_NUM	1
2180e689a61SJagan Teki #  endif
2190e689a61SJagan Teki 
2200e689a61SJagan Teki #  define CONFIG_SYS_FSL_ESDHC_ADDR	0
2210e689a61SJagan Teki #  undef CONFIG_DM_GPIO
2220e689a61SJagan Teki #  undef CONFIG_DM_MMC
2230e689a61SJagan Teki # endif
2240e689a61SJagan Teki #endif
2250e689a61SJagan Teki 
2260e689a61SJagan Teki #endif /* __IMX6_ENGICAM_CONFIG_H */
227