1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * Copyright (C) 2015 Freescale Semiconductor, Inc.
4  *
5  * Configuration settings for the Freescale i.MX7D SABRESD board.
6  */
7 
8 #ifndef __MX7D_SABRESD_CONFIG_H
9 #define __MX7D_SABRESD_CONFIG_H
10 
11 #include "mx7_common.h"
12 
13 #define PHYS_SDRAM_SIZE			SZ_1G
14 
15 #define CONFIG_MXC_UART_BASE            UART1_IPS_BASE_ADDR
16 
17 /* Size of malloc() pool */
18 #define CONFIG_SYS_MALLOC_LEN		(32 * SZ_1M)
19 
20 /* MMC Config*/
21 #define CONFIG_SYS_FSL_ESDHC_ADDR       0
22 
23 /* I2C configs */
24 #define CONFIG_SYS_I2C_MXC
25 #define CONFIG_SYS_I2C_SPEED		100000
26 
27 #define CONFIG_SYS_MMC_IMG_LOAD_PART	1
28 
29 #ifdef CONFIG_IMX_BOOTAUX
30 /* Set to QSPI1 A flash at default */
31 #define CONFIG_SYS_AUXCORE_BOOTDATA 0x60000000
32 
33 #define UPDATE_M4_ENV \
34 	"m4image=m4_qspi.bin\0" \
35 	"loadm4image=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${m4image}\0" \
36 	"update_m4_from_sd=" \
37 		"if sf probe 0:0; then " \
38 			"if run loadm4image; then " \
39 				"setexpr fw_sz ${filesize} + 0xffff; " \
40 				"setexpr fw_sz ${fw_sz} / 0x10000; "	\
41 				"setexpr fw_sz ${fw_sz} * 0x10000; "	\
42 				"sf erase 0x0 ${fw_sz}; " \
43 				"sf write ${loadaddr} 0x0 ${filesize}; " \
44 			"fi; " \
45 		"fi\0" \
46 	"m4boot=sf probe 0:0; bootaux "__stringify(CONFIG_SYS_AUXCORE_BOOTDATA)"\0"
47 #else
48 #define UPDATE_M4_ENV ""
49 #endif
50 
51 #define CONFIG_MFG_ENV_SETTINGS \
52 	"mfgtool_args=setenv bootargs console=${console},${baudrate} " \
53 		"rdinit=/linuxrc " \
54 		"g_mass_storage.stall=0 g_mass_storage.removable=1 " \
55 		"g_mass_storage.idVendor=0x066F g_mass_storage.idProduct=0x37FF "\
56 		"g_mass_storage.iSerialNumber=\"\" "\
57 		"clk_ignore_unused "\
58 		"\0" \
59 	"initrd_addr=0x83800000\0" \
60 	"initrd_high=0xffffffff\0" \
61 	"bootcmd_mfg=run mfgtool_args;bootz ${loadaddr} ${initrd_addr} ${fdt_addr};\0" \
62 
63 #define CONFIG_DFU_ENV_SETTINGS \
64 	"dfu_alt_info=image raw 0 0x800000;"\
65 		"u-boot raw 0 0x4000;"\
66 		"bootimg part 0 1;"\
67 		"rootfs part 0 2\0" \
68 
69 #define CONFIG_EXTRA_ENV_SETTINGS \
70 	UPDATE_M4_ENV \
71 	CONFIG_MFG_ENV_SETTINGS \
72 	CONFIG_DFU_ENV_SETTINGS \
73 	"script=boot.scr\0" \
74 	"image=zImage\0" \
75 	"console=ttymxc0\0" \
76 	"fdt_high=0xffffffff\0" \
77 	"finduuid=part uuid mmc 0:1 uuid\0" \
78 	"initrd_high=0xffffffff\0" \
79 	"fdtfile=imx7d-sdb.dtb\0" \
80 	"fdt_addr=0x83000000\0" \
81 	"fdt_addr_r=0x83000000\0" \
82 	"kernel_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \
83 	"pxefile_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \
84 	"ramdisk_addr_r=0x83100000\0" \
85 	"ramdiskaddr=0x83100000\0" \
86 	"scriptaddr=" __stringify(CONFIG_LOADADDR) "\0" \
87 	"videomode=video=ctfb:x:480,y:272,depth:24,pclk:108695,le:8,ri:4,up:2,lo:4,hs:41,vs:10,sync:0,vmode:0\0" \
88 	BOOTENV
89 
90 #define BOOT_TARGET_DEVICES(func) \
91 	func(MMC, mmc, 0) \
92 	func(DHCP, dhcp, na) \
93 	func(PXE, pxe, na)
94 
95 #include <config_distro_bootcmd.h>
96 
97 #define CONFIG_SYS_LOAD_ADDR		CONFIG_LOADADDR
98 #define CONFIG_SYS_HZ			1000
99 
100 /* Physical Memory Map */
101 #define PHYS_SDRAM			MMDC0_ARB_BASE_ADDR
102 
103 #define CONFIG_SYS_SDRAM_BASE		PHYS_SDRAM
104 #define CONFIG_SYS_INIT_RAM_ADDR	IRAM_BASE_ADDR
105 #define CONFIG_SYS_INIT_RAM_SIZE	IRAM_SIZE
106 
107 #define CONFIG_SYS_INIT_SP_OFFSET \
108 	(CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
109 #define CONFIG_SYS_INIT_SP_ADDR \
110 	(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)
111 
112 /* environment organization */
113 
114 /*
115  * If want to use nand, define CONFIG_NAND_MXS and rework board
116  * to support nand, since emmc has pin conflicts with nand
117  */
118 #ifdef CONFIG_NAND_MXS
119 /* NAND stuff */
120 #define CONFIG_SYS_MAX_NAND_DEVICE	1
121 #define CONFIG_SYS_NAND_BASE		0x40000000
122 #define CONFIG_SYS_NAND_5_ADDR_CYCLE
123 #define CONFIG_SYS_NAND_ONFI_DETECTION
124 
125 /* DMA stuff, needed for GPMI/MXS NAND support */
126 #endif
127 
128 #ifdef CONFIG_NAND_MXS
129 #define CONFIG_SYS_FSL_USDHC_NUM	1
130 #else
131 #define CONFIG_SYS_FSL_USDHC_NUM	2
132 #endif
133 
134 /* USB Configs */
135 #define CONFIG_MXC_USB_PORTSC  (PORT_PTS_UTMI | PORT_PTS_PTW)
136 
137 #define CONFIG_USBD_HS
138 
139 #ifdef CONFIG_VIDEO
140 #define CONFIG_VIDEO_MXS
141 #define CONFIG_VIDEO_LOGO
142 #define CONFIG_VIDEO_BMP_LOGO
143 #endif
144 
145 #endif	/* __CONFIG_H */
146