10e689a61SJagan Teki /* 20e689a61SJagan Teki * Copyright (C) 2016 Amarula Solutions B.V. 30e689a61SJagan Teki * Copyright (C) 2016 Engicam S.r.l. 40e689a61SJagan Teki * 50e689a61SJagan Teki * Configuration settings for the Engicam i.MX6 SOM Starter Kits. 60e689a61SJagan Teki * 70e689a61SJagan Teki * SPDX-License-Identifier: GPL-2.0+ 80e689a61SJagan Teki */ 90e689a61SJagan Teki 100e689a61SJagan Teki #ifndef __IMX6_ENGICAM_CONFIG_H 110e689a61SJagan Teki #define __IMX6_ENGICAM_CONFIG_H 120e689a61SJagan Teki 130e689a61SJagan Teki #include <linux/sizes.h> 140e689a61SJagan Teki #include "mx6_common.h" 150e689a61SJagan Teki 160e689a61SJagan Teki /* Size of malloc() pool */ 170e689a61SJagan Teki #define CONFIG_SYS_MALLOC_LEN (16 * SZ_1M) 180e689a61SJagan Teki 190e689a61SJagan Teki /* Total Size of Environment Sector */ 200e689a61SJagan Teki #define CONFIG_ENV_SIZE SZ_128K 210e689a61SJagan Teki 220e689a61SJagan Teki /* Allow to overwrite serial and ethaddr */ 230e689a61SJagan Teki #define CONFIG_ENV_OVERWRITE 240e689a61SJagan Teki 250e689a61SJagan Teki /* Environment */ 260e689a61SJagan Teki #ifndef CONFIG_ENV_IS_NOWHERE 270e689a61SJagan Teki /* Environment in MMC */ 280e689a61SJagan Teki # if defined(CONFIG_ENV_IS_IN_MMC) 290e689a61SJagan Teki # define CONFIG_ENV_OFFSET 0x100000 300e689a61SJagan Teki /* Environment in NAND */ 310e689a61SJagan Teki # elif defined(CONFIG_ENV_IS_IN_NAND) 320e689a61SJagan Teki # define CONFIG_ENV_OFFSET 0x400000 330e689a61SJagan Teki # define CONFIG_ENV_SECT_SIZE CONFIG_ENV_SIZE 340e689a61SJagan Teki # endif 350e689a61SJagan Teki #endif 360e689a61SJagan Teki 370e689a61SJagan Teki /* Default environment */ 380e689a61SJagan Teki #define CONFIG_EXTRA_ENV_SETTINGS \ 390e689a61SJagan Teki "script=boot.scr\0" \ 400e689a61SJagan Teki "splashpos=m,m\0" \ 410e689a61SJagan Teki "image=uImage\0" \ 420e689a61SJagan Teki "fit_image=fit.itb\0" \ 430e689a61SJagan Teki "fdt_high=0xffffffff\0" \ 440e689a61SJagan Teki "fdt_addr=" FDT_ADDR "\0" \ 450e689a61SJagan Teki "boot_fdt=try\0" \ 460e689a61SJagan Teki "mmcpart=1\0" \ 470e689a61SJagan Teki "nandroot=ubi0:rootfs rootfstype=ubifs\0" \ 480e689a61SJagan Teki "mmcautodetect=yes\0" \ 490e689a61SJagan Teki "mmcargs=setenv bootargs console=${console},${baudrate} " \ 500e689a61SJagan Teki "root=${mmcroot}\0" \ 510e689a61SJagan Teki "ubiargs=setenv bootargs console=${console},${baudrate} " \ 520e689a61SJagan Teki "ubi.mtd=5 root=${nandroot} ${mtdparts}\0" \ 530e689a61SJagan Teki "loadbootscript=" \ 540e689a61SJagan Teki "fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \ 550e689a61SJagan Teki "bootscript=echo Running bootscript from mmc ...; " \ 560e689a61SJagan Teki "source\0" \ 570e689a61SJagan Teki "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \ 580e689a61SJagan Teki "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \ 590e689a61SJagan Teki "loadfit=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${fit_image}\0" \ 600e689a61SJagan Teki "fitboot=echo Booting FIT image from mmc ...; " \ 610e689a61SJagan Teki "run mmcargs; " \ 620e689a61SJagan Teki "bootm ${loadaddr}\0" \ 630e689a61SJagan Teki "_mmcboot=run mmcargs; " \ 640e689a61SJagan Teki "run mmcargs; " \ 650e689a61SJagan Teki "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ 660e689a61SJagan Teki "if run loadfdt; then " \ 670e689a61SJagan Teki "bootm ${loadaddr} - ${fdt_addr}; " \ 680e689a61SJagan Teki "else " \ 690e689a61SJagan Teki "if test ${boot_fdt} = try; then " \ 700e689a61SJagan Teki "bootm; " \ 710e689a61SJagan Teki "else " \ 720e689a61SJagan Teki "echo WARN: Cannot load the DT; " \ 730e689a61SJagan Teki "fi; " \ 740e689a61SJagan Teki "fi; " \ 750e689a61SJagan Teki "else " \ 760e689a61SJagan Teki "bootm; " \ 770e689a61SJagan Teki "fi\0" \ 780e689a61SJagan Teki "mmcboot=echo Booting from mmc ...; " \ 790e689a61SJagan Teki "if mmc rescan; then " \ 800e689a61SJagan Teki "if run loadbootscript; then " \ 810e689a61SJagan Teki "run bootscript; " \ 820e689a61SJagan Teki "else " \ 830e689a61SJagan Teki "if run loadfit; then " \ 840e689a61SJagan Teki "run fitboot; " \ 850e689a61SJagan Teki "else " \ 860e689a61SJagan Teki "if run loadimage; then " \ 870e689a61SJagan Teki "run _mmcboot; " \ 880e689a61SJagan Teki "fi; " \ 890e689a61SJagan Teki "fi; " \ 900e689a61SJagan Teki "fi; " \ 910e689a61SJagan Teki "fi\0" \ 920e689a61SJagan Teki "nandboot=echo Booting from nand ...; " \ 930e689a61SJagan Teki "if mtdparts; then " \ 940e689a61SJagan Teki "echo Starting nand boot ...; " \ 950e689a61SJagan Teki "else " \ 960e689a61SJagan Teki "mtdparts default; " \ 970e689a61SJagan Teki "fi; " \ 980e689a61SJagan Teki "run ubiargs; " \ 990e689a61SJagan Teki "nand read ${loadaddr} kernel 0x800000; " \ 1000e689a61SJagan Teki "nand read ${fdt_addr} dtb 0x100000; " \ 1010e689a61SJagan Teki "bootm ${loadaddr} - ${fdt_addr}\0" 1020e689a61SJagan Teki 1030e689a61SJagan Teki #define CONFIG_BOOTCOMMAND "run $modeboot" 1040e689a61SJagan Teki 1050e689a61SJagan Teki /* Miscellaneous configurable options */ 1060e689a61SJagan Teki #define CONFIG_SYS_MEMTEST_START 0x80000000 1070e689a61SJagan Teki #define CONFIG_SYS_MEMTEST_END (CONFIG_SYS_MEMTEST_START + 0x8000000) 1080e689a61SJagan Teki 1090e689a61SJagan Teki #define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR 1100e689a61SJagan Teki #define CONFIG_SYS_HZ 1000 1110e689a61SJagan Teki 1120e689a61SJagan Teki #ifdef CONFIG_MX6UL 1130e689a61SJagan Teki # define DRAM_OFFSET(x) 0x87##x 1140e689a61SJagan Teki # define FDT_ADDR __stringify(DRAM_OFFSET(800000)) 1150e689a61SJagan Teki #else 1160e689a61SJagan Teki # define DRAM_OFFSET(x) 0x1##x 1170e689a61SJagan Teki # define FDT_ADDR __stringify(DRAM_OFFSET(8000000)) 1180e689a61SJagan Teki #endif 1190e689a61SJagan Teki 1200e689a61SJagan Teki /* Physical Memory Map */ 1210e689a61SJagan Teki #define CONFIG_NR_DRAM_BANKS 1 1220e689a61SJagan Teki #define PHYS_SDRAM MMDC0_ARB_BASE_ADDR 1230e689a61SJagan Teki 1240e689a61SJagan Teki #define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM 1250e689a61SJagan Teki #define CONFIG_SYS_INIT_RAM_ADDR IRAM_BASE_ADDR 1260e689a61SJagan Teki #define CONFIG_SYS_INIT_RAM_SIZE IRAM_SIZE 1270e689a61SJagan Teki 1280e689a61SJagan Teki #define CONFIG_SYS_INIT_SP_OFFSET (CONFIG_SYS_INIT_RAM_SIZE - \ 1290e689a61SJagan Teki GENERATED_GBL_DATA_SIZE) 1300e689a61SJagan Teki #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_INIT_RAM_ADDR + \ 1310e689a61SJagan Teki CONFIG_SYS_INIT_SP_OFFSET) 1320e689a61SJagan Teki 1330e689a61SJagan Teki /* FIT */ 1340e689a61SJagan Teki #ifdef CONFIG_FIT 1350e689a61SJagan Teki # define CONFIG_IMAGE_FORMAT_LEGACY 1360e689a61SJagan Teki #endif 1370e689a61SJagan Teki 1380e689a61SJagan Teki /* UART */ 1390e689a61SJagan Teki #ifdef CONFIG_MXC_UART 1400e689a61SJagan Teki # ifdef CONFIG_MX6UL 1410e689a61SJagan Teki # define CONFIG_MXC_UART_BASE UART1_BASE 1420e689a61SJagan Teki # else 1430e689a61SJagan Teki # define CONFIG_MXC_UART_BASE UART4_BASE 1440e689a61SJagan Teki # endif 1450e689a61SJagan Teki #endif 1460e689a61SJagan Teki 1470e689a61SJagan Teki /* MMC */ 1480e689a61SJagan Teki #ifdef CONFIG_FSL_USDHC 1490e689a61SJagan Teki # define CONFIG_SYS_MMC_ENV_DEV 0 1500e689a61SJagan Teki #endif 1510e689a61SJagan Teki 1520e689a61SJagan Teki /* NAND */ 1530e689a61SJagan Teki #ifdef CONFIG_NAND_MXS 1540e689a61SJagan Teki # define CONFIG_SYS_MAX_NAND_DEVICE 1 1550e689a61SJagan Teki # define CONFIG_SYS_NAND_BASE 0x40000000 1560e689a61SJagan Teki # define CONFIG_SYS_NAND_5_ADDR_CYCLE 1570e689a61SJagan Teki # define CONFIG_SYS_NAND_ONFI_DETECTION 1580e689a61SJagan Teki # define CONFIG_SYS_NAND_U_BOOT_START CONFIG_SYS_TEXT_BASE 1590e689a61SJagan Teki # define CONFIG_SYS_NAND_U_BOOT_OFFS 0x200000 1600e689a61SJagan Teki 1610e689a61SJagan Teki /* MTD device */ 1620e689a61SJagan Teki #endif 1630e689a61SJagan Teki 1640e689a61SJagan Teki /* Ethernet */ 1650e689a61SJagan Teki #ifdef CONFIG_FEC_MXC 1660e689a61SJagan Teki # ifdef CONFIG_TARGET_MX6Q_ICORE_RQS 1670e689a61SJagan Teki # define CONFIG_FEC_MXC_PHYADDR 3 1680e689a61SJagan Teki # define CONFIG_FEC_XCV_TYPE RGMII 1690e689a61SJagan Teki # else 1700e689a61SJagan Teki # define CONFIG_FEC_MXC_PHYADDR 0 1710e689a61SJagan Teki # define CONFIG_FEC_XCV_TYPE RMII 1720e689a61SJagan Teki # endif 1730e689a61SJagan Teki 1740e689a61SJagan Teki # define CONFIG_MII 1750e689a61SJagan Teki #endif 1760e689a61SJagan Teki 177*63af4b0aSJagan Teki /* Falcon Mode */ 178*63af4b0aSJagan Teki #ifdef CONFIG_SPL_OS_BOOT 179*63af4b0aSJagan Teki # define CONFIG_SPL_FS_LOAD_ARGS_NAME "args" 180*63af4b0aSJagan Teki # define CONFIG_SPL_FS_LOAD_KERNEL_NAME "uImage" 181*63af4b0aSJagan Teki # define CONFIG_CMD_SPL 182*63af4b0aSJagan Teki # define CONFIG_SYS_SPL_ARGS_ADDR 0x18000000 183*63af4b0aSJagan Teki # define CONFIG_CMD_SPL_WRITE_SIZE (128 * SZ_1K) 184*63af4b0aSJagan Teki 185*63af4b0aSJagan Teki /* MMC support: args@1MB kernel@2MB */ 186*63af4b0aSJagan Teki # define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTOR 0x800 /* 1MB */ 187*63af4b0aSJagan Teki # define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTORS (CONFIG_CMD_SPL_WRITE_SIZE / 512) 188*63af4b0aSJagan Teki # define CONFIG_SYS_MMCSD_RAW_MODE_KERNEL_SECTOR 0x1000 /* 2MB */ 189*63af4b0aSJagan Teki #endif 190*63af4b0aSJagan Teki 1910e689a61SJagan Teki /* Framebuffer */ 1920e689a61SJagan Teki #ifdef CONFIG_VIDEO_IPUV3 1930e689a61SJagan Teki # define CONFIG_IPUV3_CLK 260000000 1940e689a61SJagan Teki # define CONFIG_IMX_VIDEO_SKIP 1950e689a61SJagan Teki 1960e689a61SJagan Teki # define CONFIG_SPLASH_SCREEN 1970e689a61SJagan Teki # define CONFIG_SPLASH_SCREEN_ALIGN 1980e689a61SJagan Teki # define CONFIG_BMP_16BPP 1990e689a61SJagan Teki # define CONFIG_VIDEO_BMP_RLE8 2000e689a61SJagan Teki # define CONFIG_VIDEO_LOGO 2010e689a61SJagan Teki # define CONFIG_VIDEO_BMP_LOGO 2020e689a61SJagan Teki #endif 2030e689a61SJagan Teki 2040e689a61SJagan Teki /* SPL */ 2050e689a61SJagan Teki #ifdef CONFIG_SPL 2060e689a61SJagan Teki # ifdef CONFIG_NAND_MXS 2070e689a61SJagan Teki # define CONFIG_SPL_NAND_SUPPORT 2080e689a61SJagan Teki # else 2090e689a61SJagan Teki # define CONFIG_SPL_MMC_SUPPORT 2100e689a61SJagan Teki # endif 2110e689a61SJagan Teki 2120e689a61SJagan Teki # include "imx6_spl.h" 2130e689a61SJagan Teki # ifdef CONFIG_SPL_BUILD 2140e689a61SJagan Teki # if defined(CONFIG_TARGET_MX6Q_ICORE_RQS) || defined(CONFIG_TARGET_MX6UL_ISIOT) 2150e689a61SJagan Teki # define CONFIG_SYS_FSL_USDHC_NUM 2 2160e689a61SJagan Teki # else 2170e689a61SJagan Teki # define CONFIG_SYS_FSL_USDHC_NUM 1 2180e689a61SJagan Teki # endif 2190e689a61SJagan Teki 2200e689a61SJagan Teki # define CONFIG_SYS_FSL_ESDHC_ADDR 0 2210e689a61SJagan Teki # undef CONFIG_DM_GPIO 2220e689a61SJagan Teki # undef CONFIG_DM_MMC 2230e689a61SJagan Teki # endif 2240e689a61SJagan Teki #endif 2250e689a61SJagan Teki 2260e689a61SJagan Teki #endif /* __IMX6_ENGICAM_CONFIG_H */ 227