xref: /openbmc/u-boot/include/configs/imx6_logic.h (revision 4da84d1b9b14f5ad8f86f0c69c85ac3d1f54cfd2)
183d290c5STom Rini /* SPDX-License-Identifier: GPL-2.0+ */
2f479cec3SAdam Ford /*
3f479cec3SAdam Ford  * Copyright (C) 2017 Logic PD, Inc.
4f479cec3SAdam Ford  *
5f479cec3SAdam Ford  * Configuration settings for the LogicPD i.MX6 SOM.
6f479cec3SAdam Ford  */
7f479cec3SAdam Ford 
8f479cec3SAdam Ford #ifndef __IMX6LOGIC_CONFIG_H
9f479cec3SAdam Ford #define __IMX6LOGIC_CONFIG_H
10f479cec3SAdam Ford 
11f479cec3SAdam Ford #define CONFIG_MXC_UART_BASE   UART1_BASE
12f479cec3SAdam Ford #define CONSOLE_DEV            "ttymxc0"
13f479cec3SAdam Ford 
14bbbb50f9SAdam Ford #ifdef CONFIG_SPL
15bbbb50f9SAdam Ford #include "imx6_spl.h"
16bbbb50f9SAdam Ford #endif
17bbbb50f9SAdam Ford 
18f479cec3SAdam Ford #include "mx6_common.h"
19f479cec3SAdam Ford 
20f479cec3SAdam Ford /* Size of malloc() pool */
21f479cec3SAdam Ford #define CONFIG_SYS_MALLOC_LEN          (10 * SZ_1M)
22f479cec3SAdam Ford 
23f479cec3SAdam Ford /* MMC Configs */
24f479cec3SAdam Ford #define CONFIG_SYS_FSL_ESDHC_ADDR      0
25f479cec3SAdam Ford #define CONFIG_SYS_FSL_USDHC_NUM       2
26*b7de88cdSAdam Ford 
27f479cec3SAdam Ford 
28f479cec3SAdam Ford /* Ethernet Configs */
29f479cec3SAdam Ford #define CONFIG_FEC_XCV_TYPE            RMII
30f479cec3SAdam Ford #define CONFIG_ETHPRIME                "FEC"
31f479cec3SAdam Ford #define CONFIG_FEC_MXC_PHYADDR         0
32f479cec3SAdam Ford 
33f479cec3SAdam Ford #define CONFIG_EXTRA_ENV_SETTINGS \
34f479cec3SAdam Ford 	"script=boot.scr\0" \
35f479cec3SAdam Ford 	"image=zImage\0" \
36f479cec3SAdam Ford 	"bootm_size=0x10000000\0" \
37f97f1671SAdam Ford 	"fdt_addr_r=0x13000000\0" \
38f97f1671SAdam Ford 	"ramdisk_addr_r=0x14000000\0" \
39f479cec3SAdam Ford 	"kernel_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \
40f479cec3SAdam Ford 	"ramdisk_file=rootfs.cpio.uboot\0" \
41f479cec3SAdam Ford 	"boot_fdt=try\0" \
42f479cec3SAdam Ford 	"ip_dyn=yes\0" \
43f479cec3SAdam Ford 	"console=" CONSOLE_DEV "\0" \
44f479cec3SAdam Ford 	"mmcdev=1\0" \
45f479cec3SAdam Ford 	"mmcpart=1\0" \
46*b7de88cdSAdam Ford 	"finduuid=part uuid mmc ${mmcdev}:2 uuid\0" \
47f479cec3SAdam Ford 	"nandroot=ubi0:rootfs rootfstype=ubifs\0" \
48f479cec3SAdam Ford 	"mmcargs=setenv bootargs console=${console},${baudrate}" \
49*b7de88cdSAdam Ford 	" root=PARTUUID=${uuid} rootwait rw\0 ${mtdparts}\0" \
50f479cec3SAdam Ford 	"nandargs=setenv bootargs console=${console},${baudrate}" \
51f479cec3SAdam Ford 	" ubi.mtd=fs root=${nandroot} ${mtdparts}\0" \
52f479cec3SAdam Ford 	"ramargs=setenv bootargs console=${console},${baudrate}" \
53f479cec3SAdam Ford 	" root=/dev/ram rw ${mtdparts}\0"                    \
54f479cec3SAdam Ford 	"loadbootscript=" \
55f479cec3SAdam Ford 	"fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \
56f479cec3SAdam Ford 	"bootscript=echo Running bootscript from mmc ...;" \
57f479cec3SAdam Ford 	" source\0" \
58f479cec3SAdam Ford 	"loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image};" \
59f479cec3SAdam Ford 	" setenv kernelsize ${filesize}\0" \
60f97f1671SAdam Ford 	"loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr_r} ${fdt_file}\0" \
61f97f1671SAdam Ford 	"loadramdisk=fatload mmc ${mmcdev}:${mmcpart} ${ramdisk_addr_r}" \
62f479cec3SAdam Ford 	" ${ramdisk_file}; setenv ramdisksize ${filesize}\0" \
63*b7de88cdSAdam Ford 	"mmcboot=echo Booting from mmc...; run finduuid; run mmcargs;" \
64*b7de88cdSAdam Ford 	"run loadimage; run loadfdt; bootz ${loadaddr} - ${fdt_addr_r}\0" \
65f479cec3SAdam Ford 	"mmcramboot=run ramargs; run loadimage;" \
66f479cec3SAdam Ford 	" run loadfdt; run loadramdisk;" \
67f97f1671SAdam Ford 	" bootz ${loadaddr} ${ramdisk_addr_r} ${fdt_addr_r}\0" \
68f479cec3SAdam Ford 	"nandboot=echo Booting from nand ...; " \
69f479cec3SAdam Ford 	" run nandargs;" \
70f479cec3SAdam Ford 	" nand read ${loadaddr} kernel ${kernelsize};" \
7112d64098SAdam Ford 	" nand read ${fdt_addr_r} dtb;" \
7212d64098SAdam Ford 	" bootz ${loadaddr} - ${fdt_addr_r}\0" \
73f479cec3SAdam Ford 	"nandramboot=echo Booting RAMdisk from nand ...; " \
74f97f1671SAdam Ford 	" nand read ${ramdisk_addr_r} fs ${ramdisksize};" \
75f479cec3SAdam Ford 	" nand read ${loadaddr} kernel ${kernelsize};" \
76f97f1671SAdam Ford 	" nand read ${fdt_addr_r} dtb;" \
77f479cec3SAdam Ford 	" run ramargs;" \
78f97f1671SAdam Ford 	" bootz ${loadaddr} ${ramdisk_addr_r} ${fdt_addr_r}\0" \
79f479cec3SAdam Ford 	"netargs=setenv bootargs console=${console},${baudrate} " \
80f479cec3SAdam Ford 	"root=/dev/nfs" \
81f479cec3SAdam Ford 	" ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \
82f479cec3SAdam Ford 	"netboot=echo Booting from net ...; " \
83f479cec3SAdam Ford 	"run netargs; " \
84f479cec3SAdam Ford 	"if test ${ip_dyn} = yes; then " \
85f479cec3SAdam Ford 		"setenv get_cmd dhcp; " \
86f479cec3SAdam Ford 	"else " \
87f479cec3SAdam Ford 		"setenv get_cmd tftp; " \
88f479cec3SAdam Ford 	"fi; " \
89f479cec3SAdam Ford 	"${get_cmd} ${image}; " \
90f479cec3SAdam Ford 	"if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
9112d64098SAdam Ford 		"if ${get_cmd} ${fdt_addr_r} ${fdt_file}; then " \
9212d64098SAdam Ford 			"bootz ${loadaddr} - ${fdt_addr_r}; " \
93f479cec3SAdam Ford 		"else " \
94f479cec3SAdam Ford 			"if test ${boot_fdt} = try; then " \
95f479cec3SAdam Ford 				"bootz; " \
96f479cec3SAdam Ford 				"else " \
97f479cec3SAdam Ford 				"echo WARN: Cannot load the DT; " \
98f479cec3SAdam Ford 			"fi; " \
99f479cec3SAdam Ford 		"fi; " \
100f479cec3SAdam Ford 	"else " \
101f479cec3SAdam Ford 	       "bootz; " \
102f479cec3SAdam Ford 	"fi;\0" \
103f479cec3SAdam Ford 	"autoboot=mmc dev ${mmcdev};" \
104f479cec3SAdam Ford 	"if mmc rescan; then " \
105f479cec3SAdam Ford 		"if run loadbootscript; then " \
106f479cec3SAdam Ford 			"run bootscript; " \
107f479cec3SAdam Ford 		"else " \
108f479cec3SAdam Ford 		"if run loadimage; then " \
109f479cec3SAdam Ford 			"run mmcboot; " \
110f479cec3SAdam Ford 		"else run netboot; " \
111f479cec3SAdam Ford 		"fi; " \
112f479cec3SAdam Ford 	"fi; " \
113f479cec3SAdam Ford 	"else run netboot; fi"
114f479cec3SAdam Ford #define CONFIG_BOOTCOMMAND \
115f479cec3SAdam Ford 	"run autoboot"
116f479cec3SAdam Ford 
117f479cec3SAdam Ford #define CONFIG_ARP_TIMEOUT     200UL
118f479cec3SAdam Ford 
119f479cec3SAdam Ford #define CONFIG_SYS_MEMTEST_START       0x10000000
120f479cec3SAdam Ford #define CONFIG_SYS_MEMTEST_END         0x10010000
121f479cec3SAdam Ford #define CONFIG_SYS_MEMTEST_SCRATCH     0x10800000
122f479cec3SAdam Ford 
123f479cec3SAdam Ford /* Physical Memory Map */
124f479cec3SAdam Ford #define PHYS_SDRAM                     MMDC0_ARB_BASE_ADDR
125f479cec3SAdam Ford #define CONFIG_SYS_SDRAM_BASE          PHYS_SDRAM
126f479cec3SAdam Ford #define CONFIG_SYS_INIT_RAM_ADDR       IRAM_BASE_ADDR
127f479cec3SAdam Ford #define CONFIG_SYS_INIT_RAM_SIZE       IRAM_SIZE
128f479cec3SAdam Ford 
129f479cec3SAdam Ford #define CONFIG_SYS_INIT_SP_OFFSET \
130f479cec3SAdam Ford 	(CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
131f479cec3SAdam Ford #define CONFIG_SYS_INIT_SP_ADDR \
132f479cec3SAdam Ford 	(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)
133f479cec3SAdam Ford 
134f479cec3SAdam Ford /* Environment organization */
135bbbb50f9SAdam Ford #define CONFIG_ENV_SIZE               (1024 * 1024)
136f479cec3SAdam Ford #define CONFIG_ENV_OFFSET             0x400000
137f479cec3SAdam Ford #define CONFIG_ENV_SECT_SIZE          CONFIG_ENV_SIZE
138f479cec3SAdam Ford 
139f479cec3SAdam Ford /* NAND stuff */
140f479cec3SAdam Ford #define CONFIG_SYS_MAX_NAND_DEVICE     1
141f479cec3SAdam Ford #define CONFIG_SYS_NAND_BASE           0x40000000
142f479cec3SAdam Ford #define CONFIG_SYS_NAND_5_ADDR_CYCLE
143f479cec3SAdam Ford #define CONFIG_SYS_NAND_ONFI_DETECTION
144f479cec3SAdam Ford #define CONFIG_SYS_NAND_U_BOOT_START	CONFIG_SYS_TEXT_BASE
145f479cec3SAdam Ford #define CONFIG_SYS_NAND_U_BOOT_OFFS	0x200000
146bbbb50f9SAdam Ford #define CONFIG_SYS_NAND_SPL_KERNEL_OFFS 0x00500000
14764f8340dSAdam Ford #define CONFIG_SYS_NAND_USE_FLASH_BBT
14864f8340dSAdam Ford 
149f479cec3SAdam Ford /* MTD device */
150f479cec3SAdam Ford 
151f479cec3SAdam Ford /* DMA stuff, needed for GPMI/MXS NAND support */
152f479cec3SAdam Ford 
153f479cec3SAdam Ford /* EEPROM  contains serial no, MAC addr and other Logic PD info */
154f479cec3SAdam Ford #define CONFIG_I2C_EEPROM
155f479cec3SAdam Ford 
156bbbb50f9SAdam Ford /* USB Configs */
157bbbb50f9SAdam Ford #ifdef CONFIG_CMD_USB
158bbbb50f9SAdam Ford #define CONFIG_EHCI_HCD_INIT_AFTER_RESET
159bbbb50f9SAdam Ford #define CONFIG_MXC_USB_PORTSC		(PORT_PTS_UTMI | PORT_PTS_PTW)
160bbbb50f9SAdam Ford #define CONFIG_MXC_USB_FLAGS		0
161bbbb50f9SAdam Ford #define CONFIG_USB_MAX_CONTROLLER_COUNT	1 /* Enabled USB controller number */
162bbbb50f9SAdam Ford #endif
163bbbb50f9SAdam Ford 
164bbbb50f9SAdam Ford /* Falcon Mode */
165bbbb50f9SAdam Ford #define CONFIG_SPL_FS_LOAD_ARGS_NAME	"args"
166bbbb50f9SAdam Ford #define CONFIG_SPL_FS_LOAD_KERNEL_NAME	"uImage"
16764f8340dSAdam Ford #define CONFIG_SYS_SPL_ARGS_ADDR       0x18000000
168bbbb50f9SAdam Ford 
169bbbb50f9SAdam Ford /* Falcon Mode - MMC support: args@1MB kernel@2MB */
170bbbb50f9SAdam Ford #define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTOR  0x800   /* 1MB */
171bbbb50f9SAdam Ford #define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTORS (CONFIG_CMD_SPL_WRITE_SIZE / 512)
172bbbb50f9SAdam Ford #define CONFIG_SYS_MMCSD_RAW_MODE_KERNEL_SECTOR        0x1000  /* 2MB */
173bbbb50f9SAdam Ford 
174f479cec3SAdam Ford #endif                         /* __IMX6LOGIC_CONFIG_H */
175