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	USDHC3_BASE_ADDR
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	"mmcautodetect=yes\0" \
83	PICO_BOOT_ENV
84
85#define BOOT_TARGET_DEVICES(func) \
86	func(MMC, mmc, 1) \
87	func(MMC, mmc, 0) \
88	func(USB, usb, 0) \
89	func(PXE, pxe, na) \
90	func(DHCP, dhcp, na)
91
92#include <config_distro_bootcmd.h>
93#include <linux/stringify.h>
94
95/* Physical Memory Map */
96#define PHYS_SDRAM			MMDC0_ARB_BASE_ADDR
97
98#define CFG_SYS_SDRAM_BASE		PHYS_SDRAM
99#define CFG_SYS_INIT_RAM_ADDR	IRAM_BASE_ADDR
100#define CFG_SYS_INIT_RAM_SIZE	IRAM_SIZE
101
102/* FLASH and environment organization */
103
104/* Environment starts at 768k = 768 * 1024 = 786432 */
105
106#define CFG_SYS_FSL_USDHC_NUM		2
107
108/* USB Configs */
109#define CFG_MXC_USB_PORTSC			(PORT_PTS_UTMI | PORT_PTS_PTW)
110#define CFG_MXC_USB_FLAGS			0
111
112#endif
113