1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * Copyright (C) 2015 Freescale Semiconductor, Inc.
4  *
5  * Configuration settings for the SolidRun mx6 based boards
6  */
7 #ifndef __MX6CUBOXI_CONFIG_H
8 #define __MX6CUBOXI_CONFIG_H
9 
10 #include <linux/stringify.h>
11 
12 #include "mx6_common.h"
13 
14 /* MMC Configs */
15 #define CFG_SYS_FSL_ESDHC_ADDR	USDHC2_BASE_ADDR
16 
17 /* Command definition */
18 
19 #define CFG_MXC_UART_BASE	UART1_BASE
20 
21 #define CFG_EXTRA_ENV_SETTINGS \
22 	"som_rev=undefined\0" \
23 	"has_emmc=undefined\0" \
24 	"fdtfile=undefined\0" \
25 	"fdt_addr_r=0x18000000\0" \
26 	"fdt_addr=0x18000000\0" \
27 	"kernel_addr_r=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0"  \
28 	"pxefile_addr_r=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \
29 	"scriptaddr=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \
30 	"ramdisk_addr_r=0x13000000\0" \
31 	"ramdiskaddr=0x13000000\0" \
32 	"initrd_high=0xffffffff\0" \
33 	"ip_dyn=yes\0" \
34 	"console=ttymxc0\0" \
35 	"bootm_size=0x10000000\0" \
36 	"mmcdev=" __stringify(CONFIG_ENV_MMC_DEVICE_INDEX) "\0" \
37 	"finduuid=part uuid mmc 1:1 uuid\0" \
38 	"update_sd_firmware=" \
39 		"if test ${ip_dyn} = yes; then " \
40 			"setenv get_cmd dhcp; " \
41 		"else " \
42 			"setenv get_cmd tftp; " \
43 		"fi; " \
44 		"if mmc dev ${mmcdev}; then "	\
45 			"if ${get_cmd} ${update_sd_firmware_filename}; then " \
46 				"setexpr fw_sz ${filesize} / 0x200; " \
47 				"setexpr fw_sz ${fw_sz} + 1; "	\
48 				"mmc write ${loadaddr} 0x2 ${fw_sz}; " \
49 			"fi; "	\
50 		"fi\0" \
51 	"findfdt="\
52 		"if test ${board_rev} = MX6Q; then " \
53 			"setenv fdtprefix imx6q; fi; " \
54 		"if test ${board_rev} = MX6DL; then " \
55 			"setenv fdtprefix imx6dl; fi; " \
56 		"if test ${som_rev} = V15; then " \
57 			"setenv fdtsuffix -som-v15; fi; " \
58 		"if test ${has_emmc} = yes; then " \
59 			"setenv emmcsuffix -emmc; fi; " \
60 		"if test ${board_name} = HUMMINGBOARD2 ; then " \
61 			"setenv fdtfile ${fdtprefix}-hummingboard2${emmcsuffix}${fdtsuffix}.dtb; fi; " \
62 		"if test ${board_name} = HUMMINGBOARD ; then " \
63 			"setenv fdtfile ${fdtprefix}-hummingboard${emmcsuffix}${fdtsuffix}.dtb; fi; " \
64 		"if test ${board_name} = CUBOXI ; then " \
65 			"setenv fdtfile ${fdtprefix}-cubox-i${emmcsuffix}${fdtsuffix}.dtb; fi; " \
66 		"if test ${fdtfile} = undefined; then " \
67 			"echo WARNING: Could not determine dtb to use; fi; \0" \
68 	BOOTENV
69 
70 #define BOOT_TARGET_DEVICES(func) \
71 	func(MMC, mmc, 1) \
72 	func(MMC, mmc, 2) \
73 	func(SATA, sata, 0) \
74 	func(USB, usb, 0) \
75 	func(PXE, pxe, na) \
76 	func(DHCP, dhcp, na)
77 
78 #include <config_distro_bootcmd.h>
79 
80 /* Physical Memory Map */
81 #define CFG_SYS_SDRAM_BASE          MMDC0_ARB_BASE_ADDR
82 #define CFG_SYS_INIT_RAM_ADDR       IRAM_BASE_ADDR
83 #define CFG_SYS_INIT_RAM_SIZE       IRAM_SIZE
84 
85 /* Environment organization */
86 
87 #endif                         /* __MX6CUBOXI_CONFIG_H */
88