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 #ifdef CONFIG_IMX_BOOTAUX
16 
17 #define UPDATE_M4_ENV \
18 	"m4image=m4_qspi.bin\0" \
19 	"loadm4image=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${m4image}\0" \
20 	"update_m4_from_sd=" \
21 		"if sf probe 0:0; then " \
22 			"if run loadm4image; then " \
23 				"setexpr fw_sz ${filesize} + 0xffff; " \
24 				"setexpr fw_sz ${fw_sz} / 0x10000; "	\
25 				"setexpr fw_sz ${fw_sz} * 0x10000; "	\
26 				"sf erase 0x0 ${fw_sz}; " \
27 				"sf write ${loadaddr} 0x0 ${filesize}; " \
28 			"fi; " \
29 		"fi\0" \
30 	"m4boot=sf probe 0:0; bootaux 0x60000000\0"
31 #else
32 #define UPDATE_M4_ENV ""
33 #endif
34 
35 #define CFG_MFG_ENV_SETTINGS \
36 	"mfgtool_args=setenv bootargs console=${console},${baudrate} " \
37 		"rdinit=/linuxrc " \
38 		"g_mass_storage.stall=0 g_mass_storage.removable=1 " \
39 		"g_mass_storage.idVendor=0x066F g_mass_storage.idProduct=0x37FF "\
40 		"g_mass_storage.iSerialNumber=\"\" "\
41 		"clk_ignore_unused "\
42 		"\0" \
43 	"initrd_addr=0x83800000\0" \
44 	"initrd_high=0xffffffff\0" \
45 	"bootcmd_mfg=run mfgtool_args;bootz ${loadaddr} ${initrd_addr} ${fdt_addr};\0" \
46 
47 #define CFG_DFU_ENV_SETTINGS \
48 	"dfu_alt_info=image raw 0 0x800000;"\
49 		"u-boot raw 0 0x4000;"\
50 		"bootimg part 0 1;"\
51 		"rootfs part 0 2\0" \
52 
53 #define CFG_EXTRA_ENV_SETTINGS \
54 	UPDATE_M4_ENV \
55 	CFG_MFG_ENV_SETTINGS \
56 	CFG_DFU_ENV_SETTINGS \
57 	"script=boot.scr\0" \
58 	"image=zImage\0" \
59 	"console=ttymxc0\0" \
60 	"fdt_high=0xffffffff\0" \
61 	"finduuid=part uuid mmc 0:1 uuid\0" \
62 	"initrd_high=0xffffffff\0" \
63 	"fdtfile=imx7d-sdb.dtb\0" \
64 	"fdt_addr=0x83000000\0" \
65 	"fdt_addr_r=0x83000000\0" \
66 	"kernel_addr_r=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \
67 	"pxefile_addr_r=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \
68 	"ramdisk_addr_r=0x83100000\0" \
69 	"ramdiskaddr=0x83100000\0" \
70 	"scriptaddr=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \
71 	"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" \
72 	BOOTENV
73 
74 #define BOOT_TARGET_DEVICES(func) \
75 	func(MMC, mmc, 0) \
76 	func(DHCP, dhcp, na) \
77 	func(PXE, pxe, na)
78 
79 #include <config_distro_bootcmd.h>
80 
81 /* Physical Memory Map */
82 #define PHYS_SDRAM			MMDC0_ARB_BASE_ADDR
83 
84 #define CFG_SYS_SDRAM_BASE		PHYS_SDRAM
85 #define CFG_SYS_INIT_RAM_ADDR	IRAM_BASE_ADDR
86 #define CFG_SYS_INIT_RAM_SIZE	IRAM_SIZE
87 
88 /* environment organization */
89 
90 /*
91  * If want to use nand, define CONFIG_NAND_MXS and rework board
92  * to support nand, since emmc has pin conflicts with nand
93  */
94 #ifdef CONFIG_NAND_MXS
95 /* NAND stuff */
96 #define CFG_SYS_NAND_BASE		0x40000000
97 
98 /* DMA stuff, needed for GPMI/MXS NAND support */
99 #endif
100 
101 /* USB Configs */
102 #define CFG_MXC_USB_PORTSC  (PORT_PTS_UTMI | PORT_PTS_PTW)
103 
104 #endif	/* __CONFIG_H */
105