1 /* SPDX-License-Identifier: GPL-2.0+ */ 2 /* 3 * Copyright 2013-2019 Toradex, Inc. 4 * 5 * Configuration settings for the Toradex Colibri iMX6 6 */ 7 8 #ifndef __CONFIG_H 9 #define __CONFIG_H 10 11 #include "mx6_common.h" 12 13 #undef CONFIG_DISPLAY_BOARDINFO 14 15 #include <asm/arch/imx-regs.h> 16 #include <asm/mach-imx/gpio.h> 17 18 #ifdef CONFIG_SPL 19 #include "imx6_spl.h" 20 #endif 21 22 #define CONFIG_CMDLINE_TAG 23 #define CONFIG_SETUP_MEMORY_TAGS 24 #define CONFIG_INITRD_TAG 25 #define CONFIG_REVISION_TAG 26 #define CONFIG_SERIAL_TAG 27 28 /* Size of malloc() pool */ 29 #define CONFIG_SYS_MALLOC_LEN (32 * 1024 * 1024) 30 31 #define CONFIG_MXC_UART 32 #define CONFIG_MXC_UART_BASE UART1_BASE 33 34 /* I2C Configs */ 35 #define CONFIG_SYS_I2C_MXC 36 #define CONFIG_SYS_I2C_MXC_I2C1 /* enable I2C bus 1 */ 37 #define CONFIG_SYS_I2C_MXC_I2C2 /* enable I2C bus 2 */ 38 #define CONFIG_SYS_I2C_MXC_I2C3 /* enable I2C bus 3 */ 39 #define CONFIG_SYS_I2C_SPEED 100000 40 #define CONFIG_SYS_MXC_I2C3_SPEED 400000 41 42 /* MMC Configs */ 43 #define CONFIG_SYS_FSL_ESDHC_ADDR 0 44 #define CONFIG_SYS_FSL_USDHC_NUM 2 45 46 /* Network */ 47 #define CONFIG_FEC_MXC 48 #define IMX_FEC_BASE ENET_BASE_ADDR 49 #define CONFIG_FEC_XCV_TYPE RMII 50 #define CONFIG_ETHPRIME "FEC" 51 #define CONFIG_FEC_MXC_PHYADDR 1 52 #define CONFIG_TFTP_TSIZE 53 54 /* USB Configs */ 55 /* Host */ 56 #define CONFIG_USB_MAX_CONTROLLER_COUNT 2 57 #define CONFIG_EHCI_HCD_INIT_AFTER_RESET /* For OTG port */ 58 #define CONFIG_MXC_USB_PORTSC (PORT_PTS_UTMI | PORT_PTS_PTW) 59 #define CONFIG_MXC_USB_FLAGS 0 60 /* Client */ 61 #define CONFIG_USBD_HS 62 63 /* Framebuffer and LCD */ 64 #define CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE 65 #define CONFIG_VIDEO_BMP_RLE8 66 #define CONFIG_SPLASH_SCREEN 67 #define CONFIG_SPLASH_SCREEN_ALIGN 68 #define CONFIG_BMP_16BPP 69 #define CONFIG_VIDEO_LOGO 70 #define CONFIG_VIDEO_BMP_LOGO 71 #define CONFIG_CONSOLE_MUX 72 #define CONFIG_IMX_HDMI 73 #define CONFIG_IMX_VIDEO_SKIP 74 75 /* allow to overwrite serial and ethaddr */ 76 #define CONFIG_ENV_OVERWRITE 77 78 /* Command definition */ 79 #undef CONFIG_CMD_LOADB 80 #undef CONFIG_CMD_LOADS 81 #undef CONFIG_CMD_NFS 82 #undef CONFIG_CMD_FLASH 83 84 #undef CONFIG_IPADDR 85 #define CONFIG_IPADDR 192.168.10.2 86 #define CONFIG_NETMASK 255.255.255.0 87 #undef CONFIG_SERVERIP 88 #define CONFIG_SERVERIP 192.168.10.1 89 90 #define CONFIG_LOADADDR 0x12000000 91 92 #ifndef CONFIG_SPL_BUILD 93 #define BOOT_TARGET_DEVICES(func) \ 94 func(MMC, mmc, 0) \ 95 func(MMC, mmc, 1) \ 96 func(USB, usb, 0) \ 97 func(DHCP, dhcp, na) 98 #include <config_distro_bootcmd.h> 99 #undef BOOTENV_RUN_NET_USB_START 100 #define BOOTENV_RUN_NET_USB_START "" 101 #else /* CONFIG_SPL_BUILD */ 102 #define BOOTENV 103 #endif /* CONFIG_SPL_BUILD */ 104 105 #define DFU_ALT_EMMC_INFO \ 106 "u-boot.imx raw 0x2 0x3ff mmcpart 0;" \ 107 "boot part 0 1;" \ 108 "rootfs part 0 2;" \ 109 "zImage fat 0 1;" \ 110 "imx6dl-colibri-eval-v3.dtb fat 0 1;" \ 111 "imx6dl-colibri-cam-eval-v3.dtb fat 0 1" 112 113 #define EMMC_BOOTCMD \ 114 "set_emmcargs=setenv emmcargs ip=off root=PARTUUID=${uuid} "\ 115 "rw,noatime rootfstype=ext4 " \ 116 "rootwait\0" \ 117 "emmcboot=run setup; run emmcfinduuid; run set_emmcargs; " \ 118 "setenv bootargs ${defargs} ${emmcargs} ${setupargs} " \ 119 "${vidargs}; echo Booting from internal eMMC chip...; " \ 120 "run emmcdtbload; load mmc ${emmcdev}:${emmcbootpart} " \ 121 "${kernel_addr_r} ${boot_file} && run fdt_fixup && " \ 122 "bootz ${kernel_addr_r} ${dtbparam}\0" \ 123 "emmcbootpart=1\0" \ 124 "emmcdev=0\0" \ 125 "emmcdtbload=setenv dtbparam; load mmc ${emmcdev}:${emmcbootpart} " \ 126 "${fdt_addr_r} ${fdt_file} && " \ 127 "setenv dtbparam \" - ${fdt_addr_r}\" && true\0" \ 128 "emmcfinduuid=part uuid mmc ${mmcdev}:${emmcrootpart} uuid\0" \ 129 "emmcrootpart=2\0" 130 131 #define MEM_LAYOUT_ENV_SETTINGS \ 132 "bootm_size=0x10000000\0" \ 133 "fdt_addr_r=0x12100000\0" \ 134 "fdt_high=0xffffffff\0" \ 135 "initrd_high=0xffffffff\0" \ 136 "kernel_addr_r=0x11000000\0" \ 137 "pxefile_addr_r=0x17100000\0" \ 138 "ramdisk_addr_r=0x12200000\0" \ 139 "scriptaddr=0x17000000\0" 140 141 #define NFS_BOOTCMD \ 142 "nfsargs=ip=:::::eth0:on root=/dev/nfs rw\0" \ 143 "nfsboot=run setup; " \ 144 "setenv bootargs ${defargs} ${nfsargs} ${setupargs} " \ 145 "${vidargs}; echo Booting via DHCP/TFTP/NFS...; " \ 146 "run nfsdtbload; dhcp ${kernel_addr_r} " \ 147 "&& run fdt_fixup && bootz ${kernel_addr_r} ${dtbparam}\0" \ 148 "nfsdtbload=setenv dtbparam; tftp ${fdt_addr_r} ${fdt_file} " \ 149 "&& setenv dtbparam \" - ${fdt_addr_r}\" && true\0" 150 151 #define FDT_FILE "imx6dl-colibri-eval-v3.dtb" 152 #define CONFIG_EXTRA_ENV_SETTINGS \ 153 BOOTENV \ 154 "bootcmd=setenv fdtfile ${fdt_file}; run distro_bootcmd; " \ 155 "usb start ; " \ 156 "setenv stdout serial,vga ; setenv stdin serial,usbkbd\0" \ 157 "boot_file=zImage\0" \ 158 "console=ttymxc0\0" \ 159 "defargs=enable_wait_mode=off galcore.contiguousSize=50331648\0" \ 160 "dfu_alt_info=" DFU_ALT_EMMC_INFO "\0" \ 161 EMMC_BOOTCMD \ 162 "fdt_file=" FDT_FILE "\0" \ 163 "fdt_fixup=;\0" \ 164 MEM_LAYOUT_ENV_SETTINGS \ 165 NFS_BOOTCMD \ 166 "setethupdate=if env exists ethaddr; then; else setenv ethaddr " \ 167 "00:14:2d:00:00:00; fi; tftpboot ${loadaddr} " \ 168 "flash_eth.img && source ${loadaddr}\0" \ 169 "setsdupdate=setenv interface mmc; setenv drive 1; mmc rescan; load " \ 170 "${interface} ${drive}:1 ${loadaddr} flash_blk.img && " \ 171 "source ${loadaddr}\0" \ 172 "setup=setenv setupargs fec_mac=${ethaddr} " \ 173 "consoleblank=0 no_console_suspend=1 console=tty1 " \ 174 "console=${console},${baudrate}n8\0 " \ 175 "setupdate=run setsdupdate || run setusbupdate || run setethupdate\0" \ 176 "setusbupdate=usb start && setenv interface usb; setenv drive 0; " \ 177 "load ${interface} ${drive}:1 ${loadaddr} flash_blk.img && " \ 178 "source ${loadaddr}\0" \ 179 "splashpos=m,m\0" \ 180 "splashimage=" __stringify(CONFIG_LOADADDR) "\0" \ 181 "vidargs=video=mxcfb0:dev=lcd,640x480M@60,if=RGB666 " \ 182 "video=mxcfb1:off fbmem=8M\0 " 183 184 /* Miscellaneous configurable options */ 185 #undef CONFIG_SYS_CBSIZE 186 #define CONFIG_SYS_CBSIZE 1024 187 #undef CONFIG_SYS_MAXARGS 188 #define CONFIG_SYS_MAXARGS 48 189 190 #define CONFIG_SYS_MEMTEST_START 0x10000000 191 #define CONFIG_SYS_MEMTEST_END 0x10010000 192 #define CONFIG_SYS_MEMTEST_SCRATCH 0x10800000 193 194 #define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR 195 196 /* Physical Memory Map */ 197 #define PHYS_SDRAM MMDC0_ARB_BASE_ADDR 198 199 #define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM 200 #define CONFIG_SYS_INIT_RAM_ADDR IRAM_BASE_ADDR 201 #define CONFIG_SYS_INIT_RAM_SIZE IRAM_SIZE 202 203 #define CONFIG_SYS_INIT_SP_OFFSET \ 204 (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE) 205 #define CONFIG_SYS_INIT_SP_ADDR \ 206 (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET) 207 208 /* environment organization */ 209 210 #if defined(CONFIG_ENV_IS_IN_MMC) 211 /* Environment in eMMC, before config block at the end of 1st "boot sector" */ 212 #define CONFIG_SYS_MMC_ENV_DEV 0 213 #define CONFIG_SYS_MMC_ENV_PART 1 214 #endif 215 216 #define CONFIG_CMD_TIME 217 218 #endif /* __CONFIG_H */ 219