1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * Copyright (C) 2017 NXP Semiconductors
4  *
5  * Configuration settings for the i.MX7D Pico board.
6  */
7 
8 #ifndef __PICO_IMX7D_CONFIG_H
9 #define __PICO_IMX7D_CONFIG_H
10 
11 #include "mx7_common.h"
12 
13 #define CFG_MXC_UART_BASE		UART5_IPS_BASE_ADDR
14 
15 /* MMC Config */
16 #define CFG_SYS_FSL_ESDHC_ADDR	0
17 
18 #define CFG_DFU_ENV_SETTINGS \
19 	"dfu_alt_info=" \
20 		"spl raw 0x2 0x400;" \
21 		"u-boot raw 0x8a 0x1000;" \
22 		"/boot/zImage ext4 0 1;" \
23 		"/boot/imx7d-pico-hobbit.dtb ext4 0 1;" \
24 		"/boot/imx7d-pico-pi.dtb ext4 0 1;" \
25 		"rootfs part 0 1\0" \
26 
27 /* When booting with FIT specify the node entry containing boot.scr */
28 #if defined(CONFIG_FIT)
29 #define PICO_BOOT_ENV \
30 	BOOTENV								\
31 	"fdtovaddr=0x83100000\0"					\
32 	"scriptaddr=0x83200000\0"					\
33 	"mmcargs=setenv bootargs console=${console},${baudrate} "	\
34 		"rootwait rw\0"						\
35 	"boot_a_script="						\
36 		"load ${devtype} ${devnum}:${distro_bootpart} "		\
37 			"${scriptaddr} ${prefix}${script}; "		\
38 		"iminfo ${scriptaddr};"					\
39 		"if test $? -eq 1; then hab_failsafe; fi;"		\
40 		"source ${scriptaddr}:bootscr\0"
41 #else
42 #define PICO_BOOT_ENV \
43 	"bootmenu_0=Boot using PICO-Hobbit baseboard=" \
44 		"setenv fdtfile imx7d-pico-hobbit.dtb\0" \
45 	"bootmenu_1=Boot using PICO-Dwarf baseboard=" \
46 		"setenv fdtfile imx7d-pico-dwarf.dtb\0" \
47 	"bootmenu_2=Boot using PICO-Nymph baseboard=" \
48 		"setenv fdtfile imx7d-pico-nymph.dtb\0" \
49 	"bootmenu_3=Boot using PICO-Pi baseboard=" \
50 		"setenv fdtfile imx7d-pico-pi.dtb\0" \
51 	BOOTENV
52 #endif
53 
54 #define CFG_EXTRA_ENV_SETTINGS \
55 	"image=zImage\0" \
56 	"splashpos=m,m\0" \
57 	"splashimage=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \
58 	"console=ttymxc4\0" \
59 	"fdt_high=0xffffffff\0" \
60 	"initrd_high=0xffffffff\0" \
61 	"fdtfile=" CONFIG_DEFAULT_FDT_FILE "\0" \
62 	"videomode=video=ctfb:x:800,y:480,depth:24,mode:0,pclk:30000,le:46,ri:210,up:22,lo:23,hs:20,vs:10,sync:0,vmode:0\0" \
63 	"fdt_addr=0x83000000\0" \
64 	"fdt_addr_r=0x83000000\0" \
65 	"kernel_addr_r=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \
66 	"pxefile_addr_r=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \
67 	"ramdisk_addr_r=0x83000000\0" \
68 	"ramdiskaddr=0x83000000\0" \
69 	"scriptaddr=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \
70 	CFG_DFU_ENV_SETTINGS \
71 	"findfdt=" \
72 		"if test $fdtfile = ask ; then " \
73 			"bootmenu -1; fi;" \
74 		"if test $fdtfile != ask ; then " \
75 			"saveenv; fi;\0" \
76 	"finduuid=part uuid mmc 0:1 uuid\0" \
77 	"partitions=" \
78 		"uuid_disk=${uuid_gpt_disk};" \
79 		"name=rootfs,size=0,uuid=${uuid_gpt_rootfs}\0" \
80 	"fastboot_partition_alias_system=rootfs\0" \
81 	"setup_emmc=mmc dev 0; gpt write mmc 0 $partitions; reset;\0" \
82 	PICO_BOOT_ENV
83 
84 #define BOOT_TARGET_DEVICES(func) \
85 	func(MMC, mmc, 0) \
86 	func(USB, usb, 0) \
87 	func(PXE, pxe, na) \
88 	func(DHCP, dhcp, na)
89 
90 #include <config_distro_bootcmd.h>
91 #include <linux/stringify.h>
92 
93 /* Physical Memory Map */
94 #define PHYS_SDRAM			MMDC0_ARB_BASE_ADDR
95 
96 #define CFG_SYS_SDRAM_BASE		PHYS_SDRAM
97 #define CFG_SYS_INIT_RAM_ADDR	IRAM_BASE_ADDR
98 #define CFG_SYS_INIT_RAM_SIZE	IRAM_SIZE
99 
100 /* FLASH and environment organization */
101 
102 /* Environment starts at 768k = 768 * 1024 = 786432 */
103 
104 #define CFG_SYS_FSL_USDHC_NUM		2
105 
106 /* USB Configs */
107 #define CFG_MXC_USB_PORTSC			(PORT_PTS_UTMI | PORT_PTS_PTW)
108 #define CFG_MXC_USB_FLAGS			0
109 
110 #endif
111