1 /* SPDX-License-Identifier: GPL-2.0+ */ 2 /* 3 * Copyright (C) 2016 Amarula Solutions B.V. 4 * Copyright (C) 2016 Engicam S.r.l. 5 * 6 * Configuration settings for the Engicam i.MX6 SOM Starter Kits. 7 */ 8 9 #ifndef __IMX6_ENGICAM_CONFIG_H 10 #define __IMX6_ENGICAM_CONFIG_H 11 12 #include <linux/sizes.h> 13 #include "mx6_common.h" 14 15 /* Size of malloc() pool */ 16 #define CONFIG_SYS_MALLOC_LEN (16 * SZ_1M) 17 18 /* Total Size of Environment Sector */ 19 #define CONFIG_ENV_SIZE SZ_128K 20 21 /* Allow to overwrite serial and ethaddr */ 22 #define CONFIG_ENV_OVERWRITE 23 24 /* Environment */ 25 #ifndef CONFIG_ENV_IS_NOWHERE 26 /* Environment in MMC */ 27 # if defined(CONFIG_ENV_IS_IN_MMC) 28 # define CONFIG_ENV_OFFSET 0x100000 29 /* Environment in NAND */ 30 # elif defined(CONFIG_ENV_IS_IN_NAND) 31 # define CONFIG_ENV_OFFSET 0x400000 32 # define CONFIG_ENV_SECT_SIZE CONFIG_ENV_SIZE 33 # endif 34 #endif 35 36 /* Default environment */ 37 #define CONFIG_EXTRA_ENV_SETTINGS \ 38 "script=boot.scr\0" \ 39 "splashpos=m,m\0" \ 40 "image=uImage\0" \ 41 "fit_image=fit.itb\0" \ 42 "fdt_high=0xffffffff\0" \ 43 "fdt_addr=" FDT_ADDR "\0" \ 44 "boot_fdt=try\0" \ 45 "mmcpart=1\0" \ 46 "nandroot=ubi0:rootfs rootfstype=ubifs\0" \ 47 "mmcautodetect=yes\0" \ 48 "mmcargs=setenv bootargs console=${console},${baudrate} " \ 49 "root=${mmcroot}\0" \ 50 "ubiargs=setenv bootargs console=${console},${baudrate} " \ 51 "ubi.mtd=5 root=${nandroot} ${mtdparts}\0" \ 52 "loadbootscript=" \ 53 "fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \ 54 "bootscript=echo Running bootscript from mmc ...; " \ 55 "source\0" \ 56 "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \ 57 "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \ 58 "loadfit=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${fit_image}\0" \ 59 "fitboot=echo Booting FIT image from mmc ...; " \ 60 "run mmcargs; " \ 61 "bootm ${loadaddr}\0" \ 62 "_mmcboot=run mmcargs; " \ 63 "run mmcargs; " \ 64 "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ 65 "if run loadfdt; then " \ 66 "bootm ${loadaddr} - ${fdt_addr}; " \ 67 "else " \ 68 "if test ${boot_fdt} = try; then " \ 69 "bootm; " \ 70 "else " \ 71 "echo WARN: Cannot load the DT; " \ 72 "fi; " \ 73 "fi; " \ 74 "else " \ 75 "bootm; " \ 76 "fi\0" \ 77 "mmcboot=echo Booting from mmc ...; " \ 78 "if mmc rescan; then " \ 79 "if run loadbootscript; then " \ 80 "run bootscript; " \ 81 "else " \ 82 "if run loadfit; then " \ 83 "run fitboot; " \ 84 "else " \ 85 "if run loadimage; then " \ 86 "run _mmcboot; " \ 87 "fi; " \ 88 "fi; " \ 89 "fi; " \ 90 "fi\0" \ 91 "nandboot=echo Booting from nand ...; " \ 92 "if mtdparts; then " \ 93 "echo Starting nand boot ...; " \ 94 "else " \ 95 "mtdparts default; " \ 96 "fi; " \ 97 "run ubiargs; " \ 98 "nand read ${loadaddr} kernel 0x800000; " \ 99 "nand read ${fdt_addr} dtb 0x100000; " \ 100 "bootm ${loadaddr} - ${fdt_addr}\0" 101 102 #define CONFIG_BOOTCOMMAND "run $modeboot" 103 104 /* Miscellaneous configurable options */ 105 #define CONFIG_SYS_MEMTEST_START 0x80000000 106 #define CONFIG_SYS_MEMTEST_END (CONFIG_SYS_MEMTEST_START + 0x8000000) 107 108 #define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR 109 #define CONFIG_SYS_HZ 1000 110 111 #ifdef CONFIG_MX6UL 112 # define DRAM_OFFSET(x) 0x87##x 113 # define FDT_ADDR __stringify(DRAM_OFFSET(800000)) 114 #else 115 # define DRAM_OFFSET(x) 0x1##x 116 # define FDT_ADDR __stringify(DRAM_OFFSET(8000000)) 117 #endif 118 119 /* Physical Memory Map */ 120 #define PHYS_SDRAM MMDC0_ARB_BASE_ADDR 121 122 #define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM 123 #define CONFIG_SYS_INIT_RAM_ADDR IRAM_BASE_ADDR 124 #define CONFIG_SYS_INIT_RAM_SIZE IRAM_SIZE 125 126 #define CONFIG_SYS_INIT_SP_OFFSET (CONFIG_SYS_INIT_RAM_SIZE - \ 127 GENERATED_GBL_DATA_SIZE) 128 #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_INIT_RAM_ADDR + \ 129 CONFIG_SYS_INIT_SP_OFFSET) 130 131 /* UART */ 132 #ifdef CONFIG_MXC_UART 133 # ifdef CONFIG_MX6UL 134 # define CONFIG_MXC_UART_BASE UART1_BASE 135 # else 136 # define CONFIG_MXC_UART_BASE UART4_BASE 137 # endif 138 #endif 139 140 /* MMC */ 141 #ifdef CONFIG_FSL_USDHC 142 # define CONFIG_SYS_MMC_ENV_DEV 0 143 #endif 144 145 /* NAND */ 146 #ifdef CONFIG_NAND_MXS 147 # define CONFIG_SYS_MAX_NAND_DEVICE 1 148 # define CONFIG_SYS_NAND_BASE 0x40000000 149 # define CONFIG_SYS_NAND_5_ADDR_CYCLE 150 # define CONFIG_SYS_NAND_ONFI_DETECTION 151 # define CONFIG_SYS_NAND_U_BOOT_START CONFIG_SYS_TEXT_BASE 152 # define CONFIG_SYS_NAND_U_BOOT_OFFS 0x200000 153 154 /* MTD device */ 155 #endif 156 157 /* Ethernet */ 158 #ifdef CONFIG_FEC_MXC 159 # ifdef CONFIG_TARGET_MX6Q_ICORE_RQS 160 # define CONFIG_FEC_MXC_PHYADDR 3 161 # define CONFIG_FEC_XCV_TYPE RGMII 162 # else 163 # define CONFIG_FEC_MXC_PHYADDR 0 164 # define CONFIG_FEC_XCV_TYPE RMII 165 # endif 166 #endif 167 168 /* Falcon Mode */ 169 #ifdef CONFIG_SPL_OS_BOOT 170 # define CONFIG_SPL_FS_LOAD_ARGS_NAME "args" 171 # define CONFIG_SPL_FS_LOAD_KERNEL_NAME "uImage" 172 # define CONFIG_CMD_SPL 173 # define CONFIG_SYS_SPL_ARGS_ADDR 0x18000000 174 # define CONFIG_CMD_SPL_WRITE_SIZE (128 * SZ_1K) 175 176 /* MMC support: args@1MB kernel@2MB */ 177 # define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTOR 0x800 /* 1MB */ 178 # define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTORS (CONFIG_CMD_SPL_WRITE_SIZE / 512) 179 # define CONFIG_SYS_MMCSD_RAW_MODE_KERNEL_SECTOR 0x1000 /* 2MB */ 180 #endif 181 182 /* Framebuffer */ 183 #ifdef CONFIG_VIDEO_IPUV3 184 # define CONFIG_IMX_VIDEO_SKIP 185 186 # define CONFIG_SPLASH_SCREEN 187 # define CONFIG_SPLASH_SCREEN_ALIGN 188 # define CONFIG_BMP_16BPP 189 # define CONFIG_VIDEO_BMP_RLE8 190 # define CONFIG_VIDEO_LOGO 191 # define CONFIG_VIDEO_BMP_LOGO 192 #endif 193 194 /* SPL */ 195 #ifdef CONFIG_SPL 196 # ifdef CONFIG_ENV_IS_IN_NAND 197 # define CONFIG_SPL_NAND_SUPPORT 198 # else 199 # define CONFIG_SPL_MMC_SUPPORT 200 # endif 201 202 # include "imx6_spl.h" 203 #endif 204 205 #endif /* __IMX6_ENGICAM_CONFIG_H */ 206