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 "fitboot=echo Booting FIT image from mmc ...; " \ 51 "run mmcargs; " \ 52 "bootm ${loadaddr}\0" \ 53 "_mmcboot=run mmcargs; " \ 54 "run mmcargs; " \ 55 "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ 56 "if run loadfdt; then " \ 57 "bootm ${loadaddr} - ${fdt_addr}; " \ 58 "else " \ 59 "if test ${boot_fdt} = try; then " \ 60 "bootm; " \ 61 "else " \ 62 "echo WARN: Cannot load the DT; " \ 63 "fi; " \ 64 "fi; " \ 65 "else " \ 66 "bootm; " \ 67 "fi\0" \ 68 "mmcboot=echo Booting from mmc ...; " \ 69 "if mmc rescan; then " \ 70 "if run loadbootscript; then " \ 71 "run bootscript; " \ 72 "else " \ 73 "if run loadfit; then " \ 74 "run fitboot; " \ 75 "else " \ 76 "if run loadimage; then " \ 77 "run _mmcboot; " \ 78 "fi; " \ 79 "fi; " \ 80 "fi; " \ 81 "fi\0" \ 82 "nandboot=echo Booting from nand ...; " \ 83 "if mtdparts; then " \ 84 "echo Starting nand boot ...; " \ 85 "else " \ 86 "mtdparts default; " \ 87 "fi; " \ 88 "run ubiargs; " \ 89 "nand read ${loadaddr} kernel 0x800000; " \ 90 "nand read ${fdt_addr} dtb 0x100000; " \ 91 "bootm ${loadaddr} - ${fdt_addr}\0" \ 92 "recoveryboot=if test ${modeboot} = mmcboot; then " \ 93 "run mmcboot; " \ 94 "else " \ 95 "run nandboot; " \ 96 "fi\0" 97 98 /* Miscellaneous configurable options */ 99 100 #ifdef CONFIG_MX6UL 101 # define DRAM_OFFSET(x) 0x87##x 102 # define FDT_ADDR __stringify(DRAM_OFFSET(800000)) 103 #else 104 # define DRAM_OFFSET(x) 0x1##x 105 # define FDT_ADDR __stringify(DRAM_OFFSET(8000000)) 106 #endif 107 108 /* Physical Memory Map */ 109 #define PHYS_SDRAM MMDC0_ARB_BASE_ADDR 110 111 #define CFG_SYS_SDRAM_BASE PHYS_SDRAM 112 #define CFG_SYS_INIT_RAM_ADDR IRAM_BASE_ADDR 113 #define CFG_SYS_INIT_RAM_SIZE IRAM_SIZE 114 115 /* UART */ 116 #ifdef CONFIG_MXC_UART 117 # ifdef CONFIG_MX6UL 118 # define CFG_MXC_UART_BASE UART1_BASE 119 # else 120 # define CFG_MXC_UART_BASE UART4_BASE 121 # endif 122 #endif 123 124 /* MMC */ 125 126 /* NAND */ 127 #ifdef CONFIG_NAND_MXS 128 # define CFG_SYS_NAND_BASE 0x40000000 129 # define CFG_SYS_NAND_U_BOOT_START CONFIG_TEXT_BASE 130 131 /* MTD device */ 132 #endif 133 134 #endif /* __IMX6_ENGICAM_CONFIG_H */ 135