blob: 26d7a88ebde82958245acc1726be15dc7ae2cbcb [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 Teki0d6d48b2016-10-08 18:00:11 +053099/* Miscellaneous configurable options */
Jagan Teki0d6d48b2016-10-08 18:00:11 +0530100
Jagan Teki8dde7362017-05-12 17:18:28 +0530101#ifdef CONFIG_MX6UL
102# define DRAM_OFFSET(x) 0x87##x
103# define FDT_ADDR __stringify(DRAM_OFFSET(800000))
Wolfgang Denk9d328a62021-09-27 17:42:38 +0200104#else
Jagan Teki8dde7362017-05-12 17:18:28 +0530105# define DRAM_OFFSET(x) 0x1##x
106# define FDT_ADDR __stringify(DRAM_OFFSET(8000000))
107#endif
Jagan Tekid0529002017-05-12 17:18:27 +0530108
Jagan Teki0d6d48b2016-10-08 18:00:11 +0530109/* Physical Memory Map */
Jagan Teki0d6d48b2016-10-08 18:00:11 +0530110#define PHYS_SDRAM MMDC0_ARB_BASE_ADDR
111
112#define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM
113#define CONFIG_SYS_INIT_RAM_ADDR IRAM_BASE_ADDR
114#define CONFIG_SYS_INIT_RAM_SIZE IRAM_SIZE
115
116#define CONFIG_SYS_INIT_SP_OFFSET (CONFIG_SYS_INIT_RAM_SIZE - \
117 GENERATED_GBL_DATA_SIZE)
118#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_INIT_RAM_ADDR + \
119 CONFIG_SYS_INIT_SP_OFFSET)
120
121/* UART */
122#ifdef CONFIG_MXC_UART
Jagan Teki8dde7362017-05-12 17:18:28 +0530123# ifdef CONFIG_MX6UL
124# define CONFIG_MXC_UART_BASE UART1_BASE
125# else
126# define CONFIG_MXC_UART_BASE UART4_BASE
127# endif
Jagan Teki0d6d48b2016-10-08 18:00:11 +0530128#endif
129
130/* MMC */
Jagan Teki0d6d48b2016-10-08 18:00:11 +0530131
Jagan Teki0313c132016-10-25 11:53:23 +0530132/* NAND */
133#ifdef CONFIG_NAND_MXS
134# define CONFIG_SYS_MAX_NAND_DEVICE 1
135# define CONFIG_SYS_NAND_BASE 0x40000000
Jagan Teki0313c132016-10-25 11:53:23 +0530136# define CONFIG_SYS_NAND_U_BOOT_START CONFIG_SYS_TEXT_BASE
Jagan Teki0313c132016-10-25 11:53:23 +0530137
Jagan Teki51d7a532016-10-08 18:00:27 +0530138/* MTD device */
Jagan Teki0313c132016-10-25 11:53:23 +0530139#endif
140
Jagan Teki88d8f882017-08-28 16:45:48 +0530141/* Falcon Mode */
142#ifdef CONFIG_SPL_OS_BOOT
143# define CONFIG_SPL_FS_LOAD_ARGS_NAME "args"
144# define CONFIG_SPL_FS_LOAD_KERNEL_NAME "uImage"
Jagan Teki88d8f882017-08-28 16:45:48 +0530145# define CONFIG_SYS_SPL_ARGS_ADDR 0x18000000
Jagan Teki88d8f882017-08-28 16:45:48 +0530146
147/* MMC support: args@1MB kernel@2MB */
148# define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTOR 0x800 /* 1MB */
149# define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTORS (CONFIG_CMD_SPL_WRITE_SIZE / 512)
Jagan Teki88d8f882017-08-28 16:45:48 +0530150#endif
151
Jagan Tekib62dc482016-12-06 00:00:55 +0100152/* Framebuffer */
153#ifdef CONFIG_VIDEO_IPUV3
Jagan Tekib62dc482016-12-06 00:00:55 +0100154# define CONFIG_IMX_VIDEO_SKIP
Jagan Tekib62dc482016-12-06 00:00:55 +0100155#endif
156
Jagan Teki0d6d48b2016-10-08 18:00:11 +0530157/* SPL */
158#ifdef CONFIG_SPL
Jagan Teki0d6d48b2016-10-08 18:00:11 +0530159# include "imx6_spl.h"
Jagan Teki0d6d48b2016-10-08 18:00:11 +0530160#endif
161
Jagan Teki8dde7362017-05-12 17:18:28 +0530162#endif /* __IMX6_ENGICAM_CONFIG_H */