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 <linux/stringify.h> 14 #include "mx6_common.h" 15 16 /* Total Size of Environment Sector */ 17 18 /* Environment */ 19 #ifndef CONFIG_ENV_IS_NOWHERE 20 /* Environment in MMC */ 21 # if defined(CONFIG_ENV_IS_IN_MMC) 22 /* Environment in NAND */ 23 # endif 24 #endif 25 26 /* Default environment */ 27 #define CFG_EXTRA_ENV_SETTINGS \ 28 "script=boot.scr\0" \ 29 "splashpos=m,m\0" \ 30 "splashimage=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \ 31 "image=uImage\0" \ 32 "fit_image=fit.itb\0" \ 33 "fdt_high=0xffffffff\0" \ 34 "fdt_addr=" FDT_ADDR "\0" \ 35 "boot_fdt=try\0" \ 36 "mmcpart=1\0" \ 37 "nandroot=ubi0:rootfs rootfstype=ubifs\0" \ 38 "mmcautodetect=yes\0" \ 39 "mmcargs=setenv bootargs console=${console},${baudrate} " \ 40 "root=${mmcroot}\0" \ 41 "ubiargs=setenv bootargs console=${console},${baudrate} " \ 42 "ubi.mtd=5 root=${nandroot} ${mtdparts}\0" \ 43 "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" \ 49 "loadfit=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${fit_image}\0" \ 50 "altbootcmd=run recoveryboot\0"\ 51 "fitboot=echo Booting FIT image from mmc ...; " \ 52 "run mmcargs; " \ 53 "bootm ${loadaddr}\0" \ 54 "_mmcboot=run mmcargs; " \ 55 "run mmcargs; " \ 56 "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ 57 "if run loadfdt; then " \ 58 "bootm ${loadaddr} - ${fdt_addr}; " \ 59 "else " \ 60 "if test ${boot_fdt} = try; then " \ 61 "bootm; " \ 62 "else " \ 63 "echo WARN: Cannot load the DT; " \ 64 "fi; " \ 65 "fi; " \ 66 "else " \ 67 "bootm; " \ 68 "fi\0" \ 69 "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" \ 83 "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; " \ 92 "bootm ${loadaddr} - ${fdt_addr}\0" \ 93 "recoveryboot=if test ${modeboot} = mmcboot; then " \ 94 "run mmcboot; " \ 95 "else " \ 96 "run nandboot; " \ 97 "fi\0" 98 99 /* Miscellaneous configurable options */ 100 101 #ifdef CONFIG_MX6UL 102 # define DRAM_OFFSET(x) 0x87##x 103 # define FDT_ADDR __stringify(DRAM_OFFSET(800000)) 104 #else 105 # define DRAM_OFFSET(x) 0x1##x 106 # define FDT_ADDR __stringify(DRAM_OFFSET(8000000)) 107 #endif 108 109 /* Physical Memory Map */ 110 #define PHYS_SDRAM MMDC0_ARB_BASE_ADDR 111 112 #define CFG_SYS_SDRAM_BASE PHYS_SDRAM 113 #define CFG_SYS_INIT_RAM_ADDR IRAM_BASE_ADDR 114 #define CFG_SYS_INIT_RAM_SIZE IRAM_SIZE 115 116 /* UART */ 117 #ifdef CONFIG_MXC_UART 118 # ifdef CONFIG_MX6UL 119 # define CFG_MXC_UART_BASE UART1_BASE 120 # else 121 # define CFG_MXC_UART_BASE UART4_BASE 122 # endif 123 #endif 124 125 /* MMC */ 126 127 /* NAND */ 128 #ifdef CONFIG_NAND_MXS 129 # define CFG_SYS_NAND_BASE 0x40000000 130 # define CFG_SYS_NAND_U_BOOT_START CONFIG_TEXT_BASE 131 132 /* MTD device */ 133 #endif 134 135 #endif /* __IMX6_ENGICAM_CONFIG_H */ 136