blob: cf46b54718a6225a41fca9fe79cc0b91bdb76ad4 [file] [log] [blame]
Tom Rini83d290c2018-05-06 17:58:06 -04001/* SPDX-License-Identifier: GPL-2.0+ */
Jagan Tekif4b75322016-10-08 18:00:11 +05302/*
3 * Copyright (C) 2016 Amarula Solutions B.V.
4 * Copyright (C) 2016 Engicam S.r.l.
5 *
Jagan Teki0e689a62017-05-12 17:18:28 +05306 * Configuration settings for the Engicam i.MX6 SOM Starter Kits.
Jagan Tekif4b75322016-10-08 18:00:11 +05307 */
8
Jagan Teki0e689a62017-05-12 17:18:28 +05309#ifndef __IMX6_ENGICAM_CONFIG_H
10#define __IMX6_ENGICAM_CONFIG_H
Jagan Tekif4b75322016-10-08 18:00:11 +053011
12#include <linux/sizes.h>
Simon Glass1af3c7f2020-05-10 11:40:09 -060013#include <linux/stringify.h>
Jagan Tekif4b75322016-10-08 18:00:11 +053014#include "mx6_common.h"
15
Jagan Tekif4b75322016-10-08 18:00:11 +053016/* Total Size of Environment Sector */
Jagan Tekif4b75322016-10-08 18:00:11 +053017
Jagan Tekif4b75322016-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 Teki023ff2f2016-10-25 11:53:23 +053022/* Environment in NAND */
Jagan Tekif4b75322016-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 Teki37135712016-12-06 00:00:56 +010029 "splashpos=m,m\0" \
Tom Rini72d81362021-08-23 10:25:30 -040030 "splashimage=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \
Jagan Tekibfd96402016-12-21 12:00:21 +010031 "image=uImage\0" \
Jagan Teki66d1d682016-12-21 12:00:29 +010032 "fit_image=fit.itb\0" \
Jagan Tekif4b75322016-10-08 18:00:11 +053033 "fdt_high=0xffffffff\0" \
Jagan Teki5ed7d312017-05-12 17:18:27 +053034 "fdt_addr=" FDT_ADDR "\0" \
Jagan Tekif4b75322016-10-08 18:00:11 +053035 "boot_fdt=try\0" \
Jagan Tekif4b75322016-10-08 18:00:11 +053036 "mmcpart=1\0" \
Jagan Tekiddd90662016-12-21 12:00:25 +010037 "nandroot=ubi0:rootfs rootfstype=ubifs\0" \
Jagan Tekif4b75322016-10-08 18:00:11 +053038 "mmcautodetect=yes\0" \
39 "mmcargs=setenv bootargs console=${console},${baudrate} " \
40 "root=${mmcroot}\0" \
Jagan Tekiddd90662016-12-21 12:00:25 +010041 "ubiargs=setenv bootargs console=${console},${baudrate} " \
42 "ubi.mtd=5 root=${nandroot} ${mtdparts}\0" \
Jagan Tekif4b75322016-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 Teki66d1d682016-12-21 12:00:29 +010049 "loadfit=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${fit_image}\0" \
Jagan Tekib1f82422019-04-26 14:31:46 +053050 "altbootcmd=run recoveryboot\0"\
Jagan Teki66d1d682016-12-21 12:00:29 +010051 "fitboot=echo Booting FIT image from mmc ...; " \
52 "run mmcargs; " \
53 "bootm ${loadaddr}\0" \
Jagan Teki98f566102017-05-07 02:43:00 +053054 "_mmcboot=run mmcargs; " \
Jagan Tekif4b75322016-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 Tekibfd96402016-12-21 12:00:21 +010058 "bootm ${loadaddr} - ${fdt_addr}; " \
Jagan Tekif4b75322016-10-08 18:00:11 +053059 "else " \
60 "if test ${boot_fdt} = try; then " \
Jagan Tekibfd96402016-12-21 12:00:21 +010061 "bootm; " \
Jagan Tekif4b75322016-10-08 18:00:11 +053062 "else " \
63 "echo WARN: Cannot load the DT; " \
64 "fi; " \
65 "fi; " \
66 "else " \
Jagan Tekibfd96402016-12-21 12:00:21 +010067 "bootm; " \
Jagan Tekiddd90662016-12-21 12:00:25 +010068 "fi\0" \
Jagan Teki98f566102017-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 Tekiddd90662016-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 Tekib1f82422019-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 Tekif4b75322016-10-08 18:00:11 +053098
Jagan Teki98f566102017-05-07 02:43:00 +053099#define CONFIG_BOOTCOMMAND "run $modeboot"
Jagan Tekif4b75322016-10-08 18:00:11 +0530100
101/* Miscellaneous configurable options */
Jagan Tekif4b75322016-10-08 18:00:11 +0530102
Jagan Tekif4b75322016-10-08 18:00:11 +0530103#define CONFIG_SYS_HZ 1000
104
Jagan Teki0e689a62017-05-12 17:18:28 +0530105#ifdef CONFIG_MX6UL
106# define DRAM_OFFSET(x) 0x87##x
107# define FDT_ADDR __stringify(DRAM_OFFSET(800000))
108#else
109# define DRAM_OFFSET(x) 0x1##x
110# define FDT_ADDR __stringify(DRAM_OFFSET(8000000))
111#endif
Jagan Teki5ed7d312017-05-12 17:18:27 +0530112
Jagan Tekif4b75322016-10-08 18:00:11 +0530113/* Physical Memory Map */
Jagan Tekif4b75322016-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 Teki0e689a62017-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 Tekif4b75322016-10-08 18:00:11 +0530132#endif
133
134/* MMC */
Jagan Tekif4b75322016-10-08 18:00:11 +0530135
Jagan Teki023ff2f2016-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
140# define CONFIG_SYS_NAND_5_ADDR_CYCLE
141# define CONFIG_SYS_NAND_ONFI_DETECTION
142# define CONFIG_SYS_NAND_U_BOOT_START CONFIG_SYS_TEXT_BASE
143# define CONFIG_SYS_NAND_U_BOOT_OFFS 0x200000
144
Jagan Teki310db712016-10-08 18:00:27 +0530145/* MTD device */
Jagan Teki023ff2f2016-10-25 11:53:23 +0530146#endif
147
Jagan Teki63af4b02017-08-28 16:45:48 +0530148/* Falcon Mode */
149#ifdef CONFIG_SPL_OS_BOOT
150# define CONFIG_SPL_FS_LOAD_ARGS_NAME "args"
151# define CONFIG_SPL_FS_LOAD_KERNEL_NAME "uImage"
Jagan Teki63af4b02017-08-28 16:45:48 +0530152# define CONFIG_SYS_SPL_ARGS_ADDR 0x18000000
Jagan Teki63af4b02017-08-28 16:45:48 +0530153
154/* MMC support: args@1MB kernel@2MB */
155# define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTOR 0x800 /* 1MB */
156# define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTORS (CONFIG_CMD_SPL_WRITE_SIZE / 512)
157# define CONFIG_SYS_MMCSD_RAW_MODE_KERNEL_SECTOR 0x1000 /* 2MB */
158#endif
159
Jagan Tekica7463c2016-12-06 00:00:55 +0100160/* Framebuffer */
161#ifdef CONFIG_VIDEO_IPUV3
Jagan Tekica7463c2016-12-06 00:00:55 +0100162# define CONFIG_IMX_VIDEO_SKIP
163
Jagan Tekica7463c2016-12-06 00:00:55 +0100164# define CONFIG_VIDEO_LOGO
165# define CONFIG_VIDEO_BMP_LOGO
166#endif
167
Jagan Tekif4b75322016-10-08 18:00:11 +0530168/* SPL */
169#ifdef CONFIG_SPL
Jagan Tekic282eae2018-01-10 00:19:52 +0530170# ifdef CONFIG_ENV_IS_IN_NAND
Jagan Teki023ff2f2016-10-25 11:53:23 +0530171# define CONFIG_SPL_NAND_SUPPORT
172# else
Simon Glass103c5f12021-08-08 12:20:09 -0600173# define CONFIG_SPL_MMC
Jagan Teki023ff2f2016-10-25 11:53:23 +0530174# endif
175
Jagan Tekif4b75322016-10-08 18:00:11 +0530176# include "imx6_spl.h"
Jagan Tekif4b75322016-10-08 18:00:11 +0530177#endif
178
Jagan Teki0e689a62017-05-12 17:18:28 +0530179#endif /* __IMX6_ENGICAM_CONFIG_H */