1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * Copyright 2013-2019 Toradex, Inc.
4  *
5  * Configuration settings for the Toradex Apalis iMX6
6  */
7 
8 #ifndef __CONFIG_H
9 #define __CONFIG_H
10 
11 #include <linux/stringify.h>
12 
13 #include "mx6_common.h"
14 
15 #include <asm/arch/imx-regs.h>
16 #include <asm/mach-imx/gpio.h>
17 
18 #define CFG_MXC_UART_BASE		UART1_BASE
19 
20 /* MMC Configs */
21 #define CFG_SYS_FSL_ESDHC_ADDR	0
22 #define CFG_SYS_FSL_USDHC_NUM	3
23 
24 /* Network */
25 
26 /* Framebuffer and LCD */
27 
28 /* Command definition */
29 
30 #define BOOT_TARGET_DEVICES(func) \
31 	func(MMC, mmc, 1) \
32 	func(MMC, mmc, 2) \
33 	func(MMC, mmc, 0) \
34 	func(USB, usb, 0) \
35 	func(DHCP, dhcp, na)
36 #include <config_distro_bootcmd.h>
37 #undef BOOTENV_RUN_NET_USB_START
38 #define BOOTENV_RUN_NET_USB_START ""
39 
40 #define UBOOT_UPDATE \
41 	"uboot_hwpart=1\0" \
42 	"uboot_blk=8a\0" \
43 	"uboot_spl_blk=2\0" \
44 	"set_blkcnt=setexpr blkcnt ${filesize} + 0x1ff && " \
45 		"setexpr blkcnt ${blkcnt} / 0x200\0" \
46 	"update_uboot=run set_blkcnt && mmc dev 0 ${uboot_hwpart} && " \
47 		"mmc write ${loadaddr} ${uboot_blk} ${blkcnt}\0" \
48 	"update_spl=run set_blkcnt && mmc dev 0 ${uboot_hwpart} && " \
49 		"mmc write ${loadaddr} ${uboot_spl_blk} ${blkcnt}\0"
50 
51 #define MEM_LAYOUT_ENV_SETTINGS \
52 	"bootm_size=0x20000000\0" \
53 	"fdt_addr_r=0x18200000\0" \
54 	"kernel_addr_r=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \
55 	"pxefile_addr_r=0x18300000\0" \
56 	"ramdisk_addr_r=0x18400000\0" \
57 	"scriptaddr=0x18280000\0"
58 
59 #define CFG_EXTRA_ENV_SETTINGS \
60 	BOOTENV \
61 	"boot_script_dhcp=boot.scr\0" \
62 	"console=ttymxc0\0" \
63 	"fdt_board=eval\0" \
64 	MEM_LAYOUT_ENV_SETTINGS \
65 	UBOOT_UPDATE \
66 	"setethupdate=if env exists ethaddr; then; else setenv ethaddr " \
67 		"00:14:2d:00:00:00; fi; tftpboot ${loadaddr} " \
68 		"flash_eth.img && source ${loadaddr}\0" \
69 	"setsdupdate=setenv interface mmc; setenv drive 1; mmc rescan; " \
70 		"load ${interface} ${drive}:1 ${loadaddr} flash_blk.img " \
71 		"|| setenv drive 2; mmc rescan; load ${interface} ${drive}:1" \
72 		" ${loadaddr} flash_blk.img && " \
73 		"source ${loadaddr}\0" \
74 	"setupdate=run setsdupdate || run setusbupdate || run setethupdate\0" \
75 	"setusbupdate=usb start && setenv interface usb; setenv drive 0; " \
76 		"load ${interface} ${drive}:1 ${loadaddr} flash_blk.img && " \
77 		"source ${loadaddr}\0" \
78 	"splashpos=m,m\0" \
79 	"splashimage=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0"
80 
81 /* Miscellaneous configurable options */
82 
83 /* Physical Memory Map */
84 #define PHYS_SDRAM			MMDC0_ARB_BASE_ADDR
85 
86 #define CFG_SYS_SDRAM_BASE		PHYS_SDRAM
87 #define CFG_SYS_INIT_RAM_ADDR	IRAM_BASE_ADDR
88 #define CFG_SYS_INIT_RAM_SIZE	IRAM_SIZE
89 
90 #endif	/* __CONFIG_H */
91