131b1e17fSStefan Agner /* SPDX-License-Identifier: GPL-2.0+ */
231b1e17fSStefan Agner /*
331b1e17fSStefan Agner  * Copyright 2018 Toradex AG
431b1e17fSStefan Agner  *
531b1e17fSStefan Agner  * Configuration settings for the Colibri iMX6ULL module.
631b1e17fSStefan Agner  *
731b1e17fSStefan Agner  * based on colibri_imx7.h
831b1e17fSStefan Agner  */
931b1e17fSStefan Agner 
1031b1e17fSStefan Agner #ifndef __COLIBRI_IMX6ULL_CONFIG_H
1131b1e17fSStefan Agner #define __COLIBRI_IMX6ULL_CONFIG_H
1231b1e17fSStefan Agner 
1331b1e17fSStefan Agner #include "mx6_common.h"
1431b1e17fSStefan Agner #define CONFIG_IOMUX_LPSR
1531b1e17fSStefan Agner 
1631b1e17fSStefan Agner #define PHYS_SDRAM_SIZE			SZ_512M
1731b1e17fSStefan Agner 
1831b1e17fSStefan Agner /* Size of malloc() pool */
1931b1e17fSStefan Agner #define CONFIG_SYS_MALLOC_LEN		(32 * SZ_1M)
2031b1e17fSStefan Agner 
2131b1e17fSStefan Agner /* Network */
2231b1e17fSStefan Agner #define CONFIG_FEC_XCV_TYPE             RMII
2331b1e17fSStefan Agner #define CONFIG_ETHPRIME                 "FEC"
2431b1e17fSStefan Agner #define CONFIG_FEC_MXC_PHYADDR		0
2531b1e17fSStefan Agner 
2631b1e17fSStefan Agner #define CONFIG_IP_DEFRAG
2731b1e17fSStefan Agner #define CONFIG_TFTP_BLOCKSIZE		16352
2831b1e17fSStefan Agner #define CONFIG_TFTP_TSIZE
2931b1e17fSStefan Agner 
3031b1e17fSStefan Agner /* ENET1 */
3131b1e17fSStefan Agner #define IMX_FEC_BASE			ENET2_BASE_ADDR
3231b1e17fSStefan Agner 
3331b1e17fSStefan Agner /* MMC Config*/
3431b1e17fSStefan Agner #define CONFIG_SYS_FSL_ESDHC_ADDR	0
3531b1e17fSStefan Agner #define CONFIG_SYS_FSL_USDHC_NUM	1
3631b1e17fSStefan Agner 
3731b1e17fSStefan Agner #undef CONFIG_BOOTM_PLAN9
3831b1e17fSStefan Agner #undef CONFIG_BOOTM_RTEMS
3931b1e17fSStefan Agner 
4031b1e17fSStefan Agner /* I2C configs */
4131b1e17fSStefan Agner #define CONFIG_SYS_I2C_SPEED		100000
4231b1e17fSStefan Agner 
4331b1e17fSStefan Agner #define CONFIG_IPADDR			192.168.10.2
4431b1e17fSStefan Agner #define CONFIG_NETMASK			255.255.255.0
4531b1e17fSStefan Agner #define CONFIG_SERVERIP			192.168.10.1
4631b1e17fSStefan Agner 
4731b1e17fSStefan Agner #define FDT_FILE "imx6ull-colibri${variant}-${fdt_board}.dtb"
4831b1e17fSStefan Agner 
4931b1e17fSStefan Agner #define MEM_LAYOUT_ENV_SETTINGS \
5031b1e17fSStefan Agner 	"bootm_size=0x10000000\0" \
5131b1e17fSStefan Agner 	"fdt_addr_r=0x82000000\0" \
5231b1e17fSStefan Agner 	"fdt_high=0xffffffff\0" \
5331b1e17fSStefan Agner 	"initrd_high=0xffffffff\0" \
5431b1e17fSStefan Agner 	"kernel_addr_r=0x81000000\0" \
5531b1e17fSStefan Agner 	"pxefile_addr_r=0x87100000\0" \
5631b1e17fSStefan Agner 	"ramdisk_addr_r=0x82100000\0" \
5731b1e17fSStefan Agner 	"scriptaddr=0x87000000\0"
5831b1e17fSStefan Agner 
5931b1e17fSStefan Agner #define NFS_BOOTCMD \
6031b1e17fSStefan Agner 	"nfsargs=ip=:::::eth0: root=/dev/nfs\0" \
6131b1e17fSStefan Agner 	"nfsboot=run setup; " \
6231b1e17fSStefan Agner 		"setenv bootargs ${defargs} ${nfsargs} " \
6331b1e17fSStefan Agner 		"${setupargs} ${vidargs}; echo Booting from NFS...;" \
6431b1e17fSStefan Agner 		"dhcp ${kernel_addr_r} && " \
6531b1e17fSStefan Agner 		"tftp ${fdt_addr_r} " FDT_FILE " && " \
6631b1e17fSStefan Agner 		"run fdt_fixup && bootz ${kernel_addr_r} - ${fdt_addr_r}\0" \
6731b1e17fSStefan Agner 
6831b1e17fSStefan Agner #define SD_BOOTCMD \
6931b1e17fSStefan Agner 	"sdargs=root=/dev/mmcblk0p2 ro rootwait\0" \
7031b1e17fSStefan Agner 	"sdboot=run setup; setenv bootargs ${defargs} ${sdargs} " \
7131b1e17fSStefan Agner 	"${setupargs} ${vidargs}; echo Booting from MMC/SD card...; " \
7231b1e17fSStefan Agner 	"load mmc 0:1 ${kernel_addr_r} ${kernel_file} && " \
7331b1e17fSStefan Agner 	"load mmc 0:1 ${fdt_addr_r} " FDT_FILE " && " \
7431b1e17fSStefan Agner 	"run fdt_fixup && bootz ${kernel_addr_r} - ${fdt_addr_r}\0" \
7531b1e17fSStefan Agner 
7631b1e17fSStefan Agner #define UBI_BOOTCMD \
7731b1e17fSStefan Agner 	"ubiargs=ubi.mtd=ubi root=ubi0:rootfs rw rootfstype=ubifs " \
7831b1e17fSStefan Agner 		"ubi.fm_autoconvert=1\0" \
7931b1e17fSStefan Agner 	"ubiboot=run setup; " \
8031b1e17fSStefan Agner 		"setenv bootargs ${defargs} ${ubiargs} " \
8131b1e17fSStefan Agner 		"${setupargs} ${vidargs}; echo Booting from NAND...; " \
8231b1e17fSStefan Agner 		"ubi part ubi &&" \
8331b1e17fSStefan Agner 		"ubi read ${kernel_addr_r} kernel && " \
8431b1e17fSStefan Agner 		"ubi read ${fdt_addr_r} dtb && " \
8531b1e17fSStefan Agner 		"run fdt_fixup && bootz ${kernel_addr_r} - ${fdt_addr_r}\0" \
8631b1e17fSStefan Agner 
8731b1e17fSStefan Agner #define CONFIG_BOOTCOMMAND "run ubiboot; " \
8831b1e17fSStefan Agner 	"setenv fdtfile " FDT_FILE " && run distro_bootcmd;"
8931b1e17fSStefan Agner 
9031b1e17fSStefan Agner #define BOOT_TARGET_DEVICES(func) \
9131b1e17fSStefan Agner 	func(MMC, mmc, 0) \
9231b1e17fSStefan Agner 	func(USB, usb, 0) \
9331b1e17fSStefan Agner 	func(DHCP, dhcp, na)
9431b1e17fSStefan Agner #include <config_distro_bootcmd.h>
9531b1e17fSStefan Agner 
9631b1e17fSStefan Agner #define DFU_ALT_NAND_INFO "imx6ull-bcb part 0,1;u-boot1 part 0,2;u-boot2 part 0,3;u-boot-env part 0,4;ubi partubi 0,5"
9731b1e17fSStefan Agner 
9831b1e17fSStefan Agner #define CONFIG_EXTRA_ENV_SETTINGS \
9931b1e17fSStefan Agner 	BOOTENV \
10031b1e17fSStefan Agner 	MEM_LAYOUT_ENV_SETTINGS \
10131b1e17fSStefan Agner 	NFS_BOOTCMD \
10231b1e17fSStefan Agner 	SD_BOOTCMD \
10331b1e17fSStefan Agner 	UBI_BOOTCMD \
10431b1e17fSStefan Agner 	"console=ttymxc0\0" \
10531b1e17fSStefan Agner 	"defargs=user_debug=30\0" \
10631b1e17fSStefan Agner 	"dfu_alt_info=" DFU_ALT_NAND_INFO "\0" \
10731b1e17fSStefan Agner 	"fdt_board=eval-v3\0" \
10831b1e17fSStefan Agner 	"fdt_fixup=;\0" \
10931b1e17fSStefan Agner 	"ip_dyn=yes\0" \
11031b1e17fSStefan Agner 	"kernel_file=zImage\0" \
111*f0306a14STom Rini 	"mtdparts=" CONFIG_MTDPARTS_DEFAULT "\0" \
11231b1e17fSStefan Agner 	"setethupdate=if env exists ethaddr; then; else setenv ethaddr " \
11331b1e17fSStefan Agner 		"00:14:2d:00:00:00; fi; tftpboot ${loadaddr} " \
11431b1e17fSStefan Agner 		"${board}/flash_eth.img && source ${loadaddr}\0" \
11531b1e17fSStefan Agner 	"setsdupdate=mmc rescan && setenv interface mmc && " \
11631b1e17fSStefan Agner 		"fatload ${interface} 0:1 ${loadaddr} " \
11731b1e17fSStefan Agner 		"${board}/flash_blk.img && source ${loadaddr}\0" \
11831b1e17fSStefan Agner 	"setup=setenv setupargs " \
11931b1e17fSStefan Agner 		"console=tty1 console=${console}" \
12031b1e17fSStefan Agner 		",${baudrate}n8 ${memargs} consoleblank=0\0" \
12131b1e17fSStefan Agner 	"setupdate=run setsdupdate || run setusbupdate || run setethupdate\0" \
12231b1e17fSStefan Agner 	"setusbupdate=usb start && setenv interface usb && " \
12331b1e17fSStefan Agner 		"fatload ${interface} 0:1 ${loadaddr} " \
12431b1e17fSStefan Agner 		"${board}/flash_blk.img && source ${loadaddr}\0" \
12531b1e17fSStefan Agner 	"splashpos=m,m\0" \
12631b1e17fSStefan Agner 	"videomode=video=ctfb:x:640,y:480,depth:18,pclk:39722,le:48,ri:16,up:33,lo:10,hs:96,vs:2,sync:0,vmode:0\0" \
12731b1e17fSStefan Agner 	"vidargs=video=mxsfb:640x480-16@60"
12831b1e17fSStefan Agner 
12931b1e17fSStefan Agner #define CONFIG_SYS_MEMTEST_START	0x80000000
13031b1e17fSStefan Agner #define CONFIG_SYS_MEMTEST_END		(CONFIG_SYS_MEMTEST_START + 0x08000000)
13131b1e17fSStefan Agner 
13231b1e17fSStefan Agner #define CONFIG_SYS_LOAD_ADDR		CONFIG_LOADADDR
13331b1e17fSStefan Agner 
13431b1e17fSStefan Agner /* Physical Memory Map */
13531b1e17fSStefan Agner #define PHYS_SDRAM			MMDC0_ARB_BASE_ADDR
13631b1e17fSStefan Agner 
13731b1e17fSStefan Agner #define CONFIG_SYS_SDRAM_BASE		PHYS_SDRAM
13831b1e17fSStefan Agner #define CONFIG_SYS_INIT_RAM_ADDR	IRAM_BASE_ADDR
13931b1e17fSStefan Agner #define CONFIG_SYS_INIT_RAM_SIZE	IRAM_SIZE
14031b1e17fSStefan Agner 
14131b1e17fSStefan Agner #define CONFIG_SYS_INIT_SP_OFFSET \
14231b1e17fSStefan Agner 	(CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
14331b1e17fSStefan Agner #define CONFIG_SYS_INIT_SP_ADDR \
14431b1e17fSStefan Agner 	(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)
14531b1e17fSStefan Agner 
14631b1e17fSStefan Agner #if defined(CONFIG_ENV_IS_IN_NAND)
14731b1e17fSStefan Agner #define CONFIG_ENV_SECT_SIZE		(128 * 1024)
14831b1e17fSStefan Agner #define CONFIG_ENV_OFFSET		(28 * CONFIG_ENV_SECT_SIZE)
14931b1e17fSStefan Agner #define CONFIG_ENV_SIZE			CONFIG_ENV_SECT_SIZE
15031b1e17fSStefan Agner #endif
15131b1e17fSStefan Agner 
15231b1e17fSStefan Agner /* NAND stuff */
15331b1e17fSStefan Agner #define CONFIG_SYS_MAX_NAND_DEVICE	1
15431b1e17fSStefan Agner /* used to initialize CONFIG_SYS_NAND_BASE_LIST which is unused */
15531b1e17fSStefan Agner #define CONFIG_SYS_NAND_BASE		-1
15631b1e17fSStefan Agner #define CONFIG_SYS_NAND_ONFI_DETECTION
15731b1e17fSStefan Agner #define CONFIG_SYS_NAND_USE_FLASH_BBT
15831b1e17fSStefan Agner 
15931b1e17fSStefan Agner /* USB Configs */
16031b1e17fSStefan Agner #define CONFIG_EHCI_HCD_INIT_AFTER_RESET
16131b1e17fSStefan Agner 
16231b1e17fSStefan Agner #define CONFIG_MXC_USB_PORTSC		(PORT_PTS_UTMI | PORT_PTS_PTW)
16331b1e17fSStefan Agner #define CONFIG_MXC_USB_FLAGS		0
16431b1e17fSStefan Agner #define CONFIG_USB_MAX_CONTROLLER_COUNT 2
16531b1e17fSStefan Agner 
16631b1e17fSStefan Agner #define CONFIG_IMX_THERMAL
16731b1e17fSStefan Agner 
16831b1e17fSStefan Agner #define CONFIG_USBD_HS
16931b1e17fSStefan Agner 
17031b1e17fSStefan Agner /* USB Device Firmware Update support */
17131b1e17fSStefan Agner #define CONFIG_SYS_DFU_DATA_BUF_SIZE	SZ_16M
17231b1e17fSStefan Agner #define DFU_DEFAULT_POLL_TIMEOUT	300
17331b1e17fSStefan Agner 
17431b1e17fSStefan Agner #ifdef CONFIG_VIDEO
17531b1e17fSStefan Agner #define CONFIG_VIDEO_MXS
17631b1e17fSStefan Agner #define MXS_LCDIF_BASE MX6UL_LCDIF1_BASE_ADDR
17731b1e17fSStefan Agner #define CONFIG_VIDEO_LOGO
17831b1e17fSStefan Agner #define CONFIG_SPLASH_SCREEN
17931b1e17fSStefan Agner #define CONFIG_SPLASH_SCREEN_ALIGN
18031b1e17fSStefan Agner #define CONFIG_BMP_16BPP
18131b1e17fSStefan Agner #define CONFIG_VIDEO_BMP_RLE8
18231b1e17fSStefan Agner #define CONFIG_VIDEO_BMP_LOGO
18331b1e17fSStefan Agner #endif
18431b1e17fSStefan Agner 
18531b1e17fSStefan Agner #endif
186