1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * Copyright 2022 Marek Vasut <marex@denx.de>
4  */
5 
6 #ifndef __IMX8MM_DATA_MODUL_EDM_SBC_H
7 #define __IMX8MM_DATA_MODUL_EDM_SBC_H
8 
9 #include <linux/sizes.h>
10 #include <linux/stringify.h>
11 #include <asm/arch/imx-regs.h>
12 
13 #ifdef CONFIG_XPL_BUILD
14 #define CFG_MALLOC_F_ADDR		0x930000
15 
16 /* For RAW image gives a error info not panic */
17 
18 #endif
19 
20 /* Link Definitions */
21 #define CFG_SYS_INIT_RAM_ADDR	0x40000000
22 #define CFG_SYS_INIT_RAM_SIZE	0x200000
23 
24 #define CFG_SYS_SDRAM_BASE		0x40000000
25 #define PHYS_SDRAM			0x40000000
26 #define PHYS_SDRAM_SIZE			0x40000000 /* Minimum 1 GiB DDR */
27 
28 #define CFG_MXC_UART_BASE		UART3_BASE_ADDR
29 
30 /* PHY needs a longer autonegotiation timeout after reset */
31 
32 /* USDHC */
33 #define CFG_SYS_FSL_USDHC_NUM	2
34 #define CFG_SYS_FSL_ESDHC_ADDR	0
35 
36 #define CFG_EXTRA_ENV_SETTINGS						\
37 	"bootlimit=3\0"							\
38 	"devtype=mmc\0"							\
39 	"devpart=1\0"							\
40 	"dfu_alt_info="							\
41 		/* RAM block at DRAM offset 256..768 MiB */		\
42 		"ram ram0=ram ram 0x50000000 0x20000000&"		\
43 		/* 16 MiB SPI NOR */					\
44 		"mtd nor0=sf raw 0x0 0x1000000\0"			\
45 	"dmo_preboot="							\
46 		"sf probe ; " /* Scan for SPI NOR, needed by DFU */	\
47 		/* Attempt to start USB and Network console */		\
48 		"run dmo_usb_cdc_acm_start ; "				\
49 		"run dmo_netconsole_start\0"				\
50 	"dmo_update_env="						\
51 		"setenv dmo_update_env true ; saveenv ; saveenv\0"	\
52 	"dmo_usb_cdc_acm_start="					\
53 		"if test \"${dmo_usb_cdc_acm_enabled}\" = \"true\" ; then "\
54 			/* Ungate IMX8MM_CLK_USB1_CTRL_ROOT */		\
55 			"mw 0x303844d0 3 ; "				\
56 			/* Read USBNC_n_PHY_STATUS BIT(4) VBUS_VLD */	\
57 			"setexpr.l usbnc_n_phy_status *0x32e4023c \\\\& 0x8 ; "	\
58 			/* If USB OTG has valid VBUS, enable CDC ACM */	\
59 			"if test \"${usbnc_n_phy_status}\" -eq 8 ; then "\
60 				"usb start && "				\
61 				"setenv stderr ${stderr},usbacm && "	\
62 				"setenv stdout ${stdout},usbacm && "	\
63 				"setenv stdin ${stdin},usbacm ; "	\
64 			"fi ; "						\
65 		"fi\0"							\
66 	"dmo_netconsole_start="						\
67 		"if test \"${dmo_netconsole_enabled}\" = \"true\" ; then "\
68 			"setenv autoload false && "			\
69 			"dhcp && "					\
70 			"setenv autoload && "				\
71 			"setenv ncip ${serverip} && "			\
72 			"setenv stderr ${stderr},nc && "		\
73 			"setenv stdout ${stdout},nc && "		\
74 			"setenv stdin ${stdin},nc ; "			\
75 		"fi\0"							\
76 	"stdin=serial\0"						\
77 	"stdout=serial\0"						\
78 	"stderr=serial\0"						\
79 	/* Give slow devices beyond USB HUB chance to come up. */	\
80 	"usb_pgood_delay=2000\0"
81 
82 #endif
83