blob: 9af0a0404031c60090d55affbf0f260efb799889 [file] [log] [blame]
Tom Rini10e47792018-05-06 17:58:06 -04001/* SPDX-License-Identifier: GPL-2.0+ */
Jagan Teki0d6d48b2016-10-08 18:00:11 +05302/*
3 * Copyright (C) 2016 Amarula Solutions B.V.
4 * Copyright (C) 2016 Engicam S.r.l.
5 *
Jagan Teki8dde7362017-05-12 17:18:28 +05306 * Configuration settings for the Engicam i.MX6 SOM Starter Kits.
Jagan Teki0d6d48b2016-10-08 18:00:11 +05307 */
8
Jagan Teki8dde7362017-05-12 17:18:28 +05309#ifndef __IMX6_ENGICAM_CONFIG_H
10#define __IMX6_ENGICAM_CONFIG_H
Jagan Teki0d6d48b2016-10-08 18:00:11 +053011
12#include <linux/sizes.h>
Simon Glassfb64e362020-05-10 11:40:09 -060013#include <linux/stringify.h>
Jagan Teki0d6d48b2016-10-08 18:00:11 +053014#include "mx6_common.h"
15
Jagan Teki0d6d48b2016-10-08 18:00:11 +053016/* Total Size of Environment Sector */
Jagan Teki0d6d48b2016-10-08 18:00:11 +053017
Jagan Teki0d6d48b2016-10-08 18:00:11 +053018/* Environment */
19#ifndef CONFIG_ENV_IS_NOWHERE
20/* Environment in MMC */
21# if defined(CONFIG_ENV_IS_IN_MMC)
Jagan Teki0313c132016-10-25 11:53:23 +053022/* Environment in NAND */
Jagan Teki0d6d48b2016-10-08 18:00:11 +053023# endif
24#endif
25
26/* Default environment */
27#define CONFIG_EXTRA_ENV_SETTINGS \
28 "script=boot.scr\0" \
Jagan Teki77df9012016-12-06 00:00:56 +010029 "splashpos=m,m\0" \
Tom Rini9004ee02021-08-23 10:25:30 -040030 "splashimage=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \
Jagan Teki7f3ff5e2016-12-21 12:00:21 +010031 "image=uImage\0" \
Jagan Tekibddd17e2016-12-21 12:00:29 +010032 "fit_image=fit.itb\0" \
Jagan Teki0d6d48b2016-10-08 18:00:11 +053033 "fdt_high=0xffffffff\0" \
Jagan Tekid0529002017-05-12 17:18:27 +053034 "fdt_addr=" FDT_ADDR "\0" \
Jagan Teki0d6d48b2016-10-08 18:00:11 +053035 "boot_fdt=try\0" \
Jagan Teki0d6d48b2016-10-08 18:00:11 +053036 "mmcpart=1\0" \
Jagan Teki9cb7d032016-12-21 12:00:25 +010037 "nandroot=ubi0:rootfs rootfstype=ubifs\0" \
Jagan Teki0d6d48b2016-10-08 18:00:11 +053038 "mmcautodetect=yes\0" \
39 "mmcargs=setenv bootargs console=${console},${baudrate} " \
40 "root=${mmcroot}\0" \
Jagan Teki9cb7d032016-12-21 12:00:25 +010041 "ubiargs=setenv bootargs console=${console},${baudrate} " \
42 "ubi.mtd=5 root=${nandroot} ${mtdparts}\0" \
Jagan Teki0d6d48b2016-10-08 18:00:11 +053043 "loadbootscript=" \
44 "fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \
45 "bootscript=echo Running bootscript from mmc ...; " \
46 "source\0" \
47 "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \
48 "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \
Jagan Tekibddd17e2016-12-21 12:00:29 +010049 "loadfit=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${fit_image}\0" \
Jagan Teki6ff40a42019-04-26 14:31:46 +053050 "altbootcmd=run recoveryboot\0"\
Jagan Tekibddd17e2016-12-21 12:00:29 +010051 "fitboot=echo Booting FIT image from mmc ...; " \
52 "run mmcargs; " \
53 "bootm ${loadaddr}\0" \
Jagan Teki5e53ac02017-05-07 02:43:00 +053054 "_mmcboot=run mmcargs; " \
Jagan Teki0d6d48b2016-10-08 18:00:11 +053055 "run mmcargs; " \
56 "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
57 "if run loadfdt; then " \
Jagan Teki7f3ff5e2016-12-21 12:00:21 +010058 "bootm ${loadaddr} - ${fdt_addr}; " \
Jagan Teki0d6d48b2016-10-08 18:00:11 +053059 "else " \
60 "if test ${boot_fdt} = try; then " \
Jagan Teki7f3ff5e2016-12-21 12:00:21 +010061 "bootm; " \
Jagan Teki0d6d48b2016-10-08 18:00:11 +053062 "else " \
63 "echo WARN: Cannot load the DT; " \
64 "fi; " \
65 "fi; " \
66 "else " \
Jagan Teki7f3ff5e2016-12-21 12:00:21 +010067 "bootm; " \
Jagan Teki9cb7d032016-12-21 12:00:25 +010068 "fi\0" \
Jagan Teki5e53ac02017-05-07 02:43:00 +053069 "mmcboot=echo Booting from mmc ...; " \
70 "if mmc rescan; then " \
71 "if run loadbootscript; then " \
72 "run bootscript; " \
73 "else " \
74 "if run loadfit; then " \
75 "run fitboot; " \
76 "else " \
77 "if run loadimage; then " \
78 "run _mmcboot; " \
79 "fi; " \
80 "fi; " \
81 "fi; " \
82 "fi\0" \
Jagan Teki9cb7d032016-12-21 12:00:25 +010083 "nandboot=echo Booting from nand ...; " \
84 "if mtdparts; then " \
85 "echo Starting nand boot ...; " \
86 "else " \
87 "mtdparts default; " \
88 "fi; " \
89 "run ubiargs; " \
90 "nand read ${loadaddr} kernel 0x800000; " \
91 "nand read ${fdt_addr} dtb 0x100000; " \
Jagan Teki6ff40a42019-04-26 14:31:46 +053092 "bootm ${loadaddr} - ${fdt_addr}\0" \
93 "recoveryboot=if test ${modeboot} = mmcboot; then " \
94 "run mmcboot; " \
95 "else " \
96 "run nandboot; " \
97 "fi\0"
Jagan Teki0d6d48b2016-10-08 18:00:11 +053098
Jagan Teki5e53ac02017-05-07 02:43:00 +053099#define CONFIG_BOOTCOMMAND "run $modeboot"
Jagan Teki0d6d48b2016-10-08 18:00:11 +0530100
101/* Miscellaneous configurable options */
Jagan Teki0d6d48b2016-10-08 18:00:11 +0530102
Jagan Teki0d6d48b2016-10-08 18:00:11 +0530103#define CONFIG_SYS_HZ 1000
104
Jagan Teki8dde7362017-05-12 17:18:28 +0530105#ifdef CONFIG_MX6UL
106# define DRAM_OFFSET(x) 0x87##x
107# define FDT_ADDR __stringify(DRAM_OFFSET(800000))
Wolfgang Denk9d328a62021-09-27 17:42:38 +0200108#else
Jagan Teki8dde7362017-05-12 17:18:28 +0530109# define DRAM_OFFSET(x) 0x1##x
110# define FDT_ADDR __stringify(DRAM_OFFSET(8000000))
111#endif
Jagan Tekid0529002017-05-12 17:18:27 +0530112
Jagan Teki0d6d48b2016-10-08 18:00:11 +0530113/* Physical Memory Map */
Jagan Teki0d6d48b2016-10-08 18:00:11 +0530114#define PHYS_SDRAM MMDC0_ARB_BASE_ADDR
115
116#define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM
117#define CONFIG_SYS_INIT_RAM_ADDR IRAM_BASE_ADDR
118#define CONFIG_SYS_INIT_RAM_SIZE IRAM_SIZE
119
120#define CONFIG_SYS_INIT_SP_OFFSET (CONFIG_SYS_INIT_RAM_SIZE - \
121 GENERATED_GBL_DATA_SIZE)
122#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_INIT_RAM_ADDR + \
123 CONFIG_SYS_INIT_SP_OFFSET)
124
125/* UART */
126#ifdef CONFIG_MXC_UART
Jagan Teki8dde7362017-05-12 17:18:28 +0530127# ifdef CONFIG_MX6UL
128# define CONFIG_MXC_UART_BASE UART1_BASE
129# else
130# define CONFIG_MXC_UART_BASE UART4_BASE
131# endif
Jagan Teki0d6d48b2016-10-08 18:00:11 +0530132#endif
133
134/* MMC */
Jagan Teki0d6d48b2016-10-08 18:00:11 +0530135
Jagan Teki0313c132016-10-25 11:53:23 +0530136/* NAND */
137#ifdef CONFIG_NAND_MXS
138# define CONFIG_SYS_MAX_NAND_DEVICE 1
139# define CONFIG_SYS_NAND_BASE 0x40000000
Jagan Teki0313c132016-10-25 11:53:23 +0530140# define CONFIG_SYS_NAND_U_BOOT_START CONFIG_SYS_TEXT_BASE
Jagan Teki0313c132016-10-25 11:53:23 +0530141
Jagan Teki51d7a532016-10-08 18:00:27 +0530142/* MTD device */
Jagan Teki0313c132016-10-25 11:53:23 +0530143#endif
144
Jagan Teki88d8f882017-08-28 16:45:48 +0530145/* Falcon Mode */
146#ifdef CONFIG_SPL_OS_BOOT
147# define CONFIG_SPL_FS_LOAD_ARGS_NAME "args"
148# define CONFIG_SPL_FS_LOAD_KERNEL_NAME "uImage"
Jagan Teki88d8f882017-08-28 16:45:48 +0530149# define CONFIG_SYS_SPL_ARGS_ADDR 0x18000000
Jagan Teki88d8f882017-08-28 16:45:48 +0530150
151/* MMC support: args@1MB kernel@2MB */
152# define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTOR 0x800 /* 1MB */
153# define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTORS (CONFIG_CMD_SPL_WRITE_SIZE / 512)
154# define CONFIG_SYS_MMCSD_RAW_MODE_KERNEL_SECTOR 0x1000 /* 2MB */
155#endif
156
Jagan Tekib62dc482016-12-06 00:00:55 +0100157/* Framebuffer */
158#ifdef CONFIG_VIDEO_IPUV3
Jagan Tekib62dc482016-12-06 00:00:55 +0100159# define CONFIG_IMX_VIDEO_SKIP
160
Jagan Tekib62dc482016-12-06 00:00:55 +0100161# define CONFIG_VIDEO_LOGO
162# define CONFIG_VIDEO_BMP_LOGO
163#endif
164
Jagan Teki0d6d48b2016-10-08 18:00:11 +0530165/* SPL */
166#ifdef CONFIG_SPL
Jagan Tekicd19d312018-01-10 00:19:52 +0530167# ifdef CONFIG_ENV_IS_IN_NAND
Jagan Teki0313c132016-10-25 11:53:23 +0530168# define CONFIG_SPL_NAND_SUPPORT
169# else
Simon Glassb58bfe02021-08-08 12:20:09 -0600170# define CONFIG_SPL_MMC
Jagan Teki0313c132016-10-25 11:53:23 +0530171# endif
172
Jagan Teki0d6d48b2016-10-08 18:00:11 +0530173# include "imx6_spl.h"
Jagan Teki0d6d48b2016-10-08 18:00:11 +0530174#endif
175
Jagan Teki8dde7362017-05-12 17:18:28 +0530176#endif /* __IMX6_ENGICAM_CONFIG_H */