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 CONFIG_NR_DRAM_BANKS 1 121 #define PHYS_SDRAM MMDC0_ARB_BASE_ADDR 122 123 #define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM 124 #define CONFIG_SYS_INIT_RAM_ADDR IRAM_BASE_ADDR 125 #define CONFIG_SYS_INIT_RAM_SIZE IRAM_SIZE 126 127 #define CONFIG_SYS_INIT_SP_OFFSET (CONFIG_SYS_INIT_RAM_SIZE - \ 128 GENERATED_GBL_DATA_SIZE) 129 #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_INIT_RAM_ADDR + \ 130 CONFIG_SYS_INIT_SP_OFFSET) 131 132 /* UART */ 133 #ifdef CONFIG_MXC_UART 134 # ifdef CONFIG_MX6UL 135 # define CONFIG_MXC_UART_BASE UART1_BASE 136 # else 137 # define CONFIG_MXC_UART_BASE UART4_BASE 138 # endif 139 #endif 140 141 /* MMC */ 142 #ifdef CONFIG_FSL_USDHC 143 # define CONFIG_SYS_MMC_ENV_DEV 0 144 #endif 145 146 /* NAND */ 147 #ifdef CONFIG_NAND_MXS 148 # define CONFIG_SYS_MAX_NAND_DEVICE 1 149 # define CONFIG_SYS_NAND_BASE 0x40000000 150 # define CONFIG_SYS_NAND_5_ADDR_CYCLE 151 # define CONFIG_SYS_NAND_ONFI_DETECTION 152 # define CONFIG_SYS_NAND_U_BOOT_START CONFIG_SYS_TEXT_BASE 153 # define CONFIG_SYS_NAND_U_BOOT_OFFS 0x200000 154 155 /* MTD device */ 156 # define CONFIG_MTD_DEVICE 157 # define CONFIG_MTD_PARTITIONS 158 #endif 159 160 /* Ethernet */ 161 #ifdef CONFIG_FEC_MXC 162 # ifdef CONFIG_TARGET_MX6Q_ICORE_RQS 163 # define CONFIG_FEC_MXC_PHYADDR 3 164 # define CONFIG_FEC_XCV_TYPE RGMII 165 # else 166 # define CONFIG_FEC_MXC_PHYADDR 0 167 # define CONFIG_FEC_XCV_TYPE RMII 168 # endif 169 170 # define CONFIG_MII 171 #endif 172 173 /* Falcon Mode */ 174 #ifdef CONFIG_SPL_OS_BOOT 175 # define CONFIG_SPL_FS_LOAD_ARGS_NAME "args" 176 # define CONFIG_SPL_FS_LOAD_KERNEL_NAME "uImage" 177 # define CONFIG_CMD_SPL 178 # define CONFIG_SYS_SPL_ARGS_ADDR 0x18000000 179 # define CONFIG_CMD_SPL_WRITE_SIZE (128 * SZ_1K) 180 181 /* MMC support: args@1MB kernel@2MB */ 182 # define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTOR 0x800 /* 1MB */ 183 # define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTORS (CONFIG_CMD_SPL_WRITE_SIZE / 512) 184 # define CONFIG_SYS_MMCSD_RAW_MODE_KERNEL_SECTOR 0x1000 /* 2MB */ 185 #endif 186 187 /* Framebuffer */ 188 #ifdef CONFIG_VIDEO_IPUV3 189 # define CONFIG_IMX_VIDEO_SKIP 190 191 # define CONFIG_SPLASH_SCREEN 192 # define CONFIG_SPLASH_SCREEN_ALIGN 193 # define CONFIG_BMP_16BPP 194 # define CONFIG_VIDEO_BMP_RLE8 195 # define CONFIG_VIDEO_LOGO 196 # define CONFIG_VIDEO_BMP_LOGO 197 #endif 198 199 /* SPL */ 200 #ifdef CONFIG_SPL 201 # ifdef CONFIG_ENV_IS_IN_NAND 202 # define CONFIG_SPL_NAND_SUPPORT 203 # else 204 # define CONFIG_SPL_MMC_SUPPORT 205 # endif 206 207 # include "imx6_spl.h" 208 #endif 209 210 #endif /* __IMX6_ENGICAM_CONFIG_H */ 211