1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun * Copyright 2013-2015 Toradex, Inc. 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * Configuration settings for the Toradex Apalis iMX6 5*4882a593Smuzhiyun * 6*4882a593Smuzhiyun * SPDX-License-Identifier: GPL-2.0+ 7*4882a593Smuzhiyun */ 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun #ifndef __CONFIG_H 10*4882a593Smuzhiyun #define __CONFIG_H 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun #include "mx6_common.h" 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun #undef CONFIG_DISPLAY_BOARDINFO 15*4882a593Smuzhiyun #define CONFIG_DISPLAY_BOARDINFO_LATE /* Calls show_board_info() */ 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun #define CONFIG_MACH_TYPE 4886 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun #define CONFIG_SYS_GENERIC_BOARD 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun #include <asm/arch/imx-regs.h> 22*4882a593Smuzhiyun #include <asm/mach-imx/gpio.h> 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun #ifdef CONFIG_SPL 25*4882a593Smuzhiyun #include "imx6_spl.h" 26*4882a593Smuzhiyun #define CONFIG_SPL_PAD_TO 0x11000 /* 4k IVT/DCD, 64k SPL */ 27*4882a593Smuzhiyun #endif 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun #define CONFIG_CMDLINE_TAG 30*4882a593Smuzhiyun #define CONFIG_SETUP_MEMORY_TAGS 31*4882a593Smuzhiyun #define CONFIG_INITRD_TAG 32*4882a593Smuzhiyun #define CONFIG_REVISION_TAG 33*4882a593Smuzhiyun #define CONFIG_SERIAL_TAG 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun /* Size of malloc() pool */ 36*4882a593Smuzhiyun #define CONFIG_SYS_MALLOC_LEN (32 * 1024 * 1024) 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun #define CONFIG_MISC_INIT_R 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun #define CONFIG_MXC_UART 41*4882a593Smuzhiyun #define CONFIG_MXC_UART_BASE UART1_BASE 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun /* Make the HW version stuff available in U-Boot env */ 44*4882a593Smuzhiyun #define CONFIG_VERSION_VARIABLE /* ver environment variable */ 45*4882a593Smuzhiyun #define CONFIG_ENV_VARS_UBOOT_CONFIG 46*4882a593Smuzhiyun #define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun /* I2C Configs */ 49*4882a593Smuzhiyun #define CONFIG_SYS_I2C 50*4882a593Smuzhiyun #define CONFIG_SYS_I2C_MXC 51*4882a593Smuzhiyun #define CONFIG_SYS_I2C_MXC_I2C1 /* enable I2C bus 1 */ 52*4882a593Smuzhiyun #define CONFIG_SYS_I2C_MXC_I2C2 /* enable I2C bus 2 */ 53*4882a593Smuzhiyun #define CONFIG_SYS_I2C_MXC_I2C3 /* enable I2C bus 3 */ 54*4882a593Smuzhiyun #define CONFIG_SYS_I2C_SPEED 100000 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun /* OCOTP Configs */ 57*4882a593Smuzhiyun #ifdef CONFIG_CMD_FUSE 58*4882a593Smuzhiyun #define CONFIG_MXC_OCOTP 59*4882a593Smuzhiyun #endif 60*4882a593Smuzhiyun 61*4882a593Smuzhiyun /* MMC Configs */ 62*4882a593Smuzhiyun #define CONFIG_FSL_ESDHC 63*4882a593Smuzhiyun #define CONFIG_FSL_USDHC 64*4882a593Smuzhiyun #define CONFIG_SYS_FSL_ESDHC_ADDR 0 65*4882a593Smuzhiyun #define CONFIG_SYS_FSL_USDHC_NUM 3 66*4882a593Smuzhiyun 67*4882a593Smuzhiyun #define CONFIG_SUPPORT_EMMC_BOOT /* eMMC specific */ 68*4882a593Smuzhiyun #define CONFIG_BOUNCE_BUFFER 69*4882a593Smuzhiyun 70*4882a593Smuzhiyun /* 71*4882a593Smuzhiyun * SATA Configs 72*4882a593Smuzhiyun */ 73*4882a593Smuzhiyun #ifdef CONFIG_CMD_SATA 74*4882a593Smuzhiyun #define CONFIG_DWC_AHSATA 75*4882a593Smuzhiyun #define CONFIG_SYS_SATA_MAX_DEVICE 1 76*4882a593Smuzhiyun #define CONFIG_DWC_AHSATA_PORT_ID 0 77*4882a593Smuzhiyun #define CONFIG_DWC_AHSATA_BASE_ADDR SATA_ARB_BASE_ADDR 78*4882a593Smuzhiyun #define CONFIG_LBA48 79*4882a593Smuzhiyun #define CONFIG_LIBATA 80*4882a593Smuzhiyun #endif 81*4882a593Smuzhiyun 82*4882a593Smuzhiyun /* Network */ 83*4882a593Smuzhiyun #define CONFIG_FEC_MXC 84*4882a593Smuzhiyun #define CONFIG_MII 85*4882a593Smuzhiyun #define IMX_FEC_BASE ENET_BASE_ADDR 86*4882a593Smuzhiyun #define CONFIG_FEC_XCV_TYPE RGMII 87*4882a593Smuzhiyun #define CONFIG_ETHPRIME "FEC" 88*4882a593Smuzhiyun #define CONFIG_FEC_MXC_PHYADDR 6 89*4882a593Smuzhiyun #define CONFIG_IP_DEFRAG 90*4882a593Smuzhiyun #define CONFIG_TFTP_BLOCKSIZE 4096 91*4882a593Smuzhiyun #define CONFIG_TFTP_TSIZE 92*4882a593Smuzhiyun 93*4882a593Smuzhiyun /* USB Configs */ 94*4882a593Smuzhiyun /* Host */ 95*4882a593Smuzhiyun #define CONFIG_USB_MAX_CONTROLLER_COUNT 2 96*4882a593Smuzhiyun #define CONFIG_EHCI_HCD_INIT_AFTER_RESET /* For OTG port */ 97*4882a593Smuzhiyun #define CONFIG_MXC_USB_PORTSC (PORT_PTS_UTMI | PORT_PTS_PTW) 98*4882a593Smuzhiyun #define CONFIG_MXC_USB_FLAGS 0 99*4882a593Smuzhiyun /* Client */ 100*4882a593Smuzhiyun #define CONFIG_USBD_HS 101*4882a593Smuzhiyun 102*4882a593Smuzhiyun #define CONFIG_USB_GADGET_MASS_STORAGE 103*4882a593Smuzhiyun #define CONFIG_USB_FUNCTION_MASS_STORAGE 104*4882a593Smuzhiyun /* USB DFU */ 105*4882a593Smuzhiyun #define CONFIG_DFU_MMC 106*4882a593Smuzhiyun 107*4882a593Smuzhiyun /* Miscellaneous commands */ 108*4882a593Smuzhiyun #define CONFIG_MXC_GPIO 109*4882a593Smuzhiyun 110*4882a593Smuzhiyun /* Framebuffer and LCD */ 111*4882a593Smuzhiyun #define CONFIG_VIDEO_IPUV3 112*4882a593Smuzhiyun #define CONFIG_SYS_CONSOLE_IS_IN_ENV 113*4882a593Smuzhiyun #define CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE 114*4882a593Smuzhiyun #define CONFIG_VIDEO_BMP_RLE8 115*4882a593Smuzhiyun #define CONFIG_SPLASH_SCREEN 116*4882a593Smuzhiyun #define CONFIG_SPLASH_SCREEN_ALIGN 117*4882a593Smuzhiyun #define CONFIG_BMP_16BPP 118*4882a593Smuzhiyun #define CONFIG_VIDEO_LOGO 119*4882a593Smuzhiyun #define CONFIG_VIDEO_BMP_LOGO 120*4882a593Smuzhiyun #define CONFIG_IPUV3_CLK 260000000 121*4882a593Smuzhiyun #define CONFIG_CONSOLE_MUX 122*4882a593Smuzhiyun #define CONFIG_IMX_HDMI 123*4882a593Smuzhiyun #define CONFIG_IMX_VIDEO_SKIP 124*4882a593Smuzhiyun 125*4882a593Smuzhiyun /* allow to overwrite serial and ethaddr */ 126*4882a593Smuzhiyun #define CONFIG_ENV_OVERWRITE 127*4882a593Smuzhiyun #define CONFIG_CONS_INDEX 1 128*4882a593Smuzhiyun 129*4882a593Smuzhiyun /* Command definition */ 130*4882a593Smuzhiyun #undef CONFIG_CMD_LOADB 131*4882a593Smuzhiyun #undef CONFIG_CMD_LOADS 132*4882a593Smuzhiyun #undef CONFIG_CMD_NFS 133*4882a593Smuzhiyun #undef CONFIG_CMD_FLASH 134*4882a593Smuzhiyun 135*4882a593Smuzhiyun #undef CONFIG_IPADDR 136*4882a593Smuzhiyun #define CONFIG_IPADDR 192.168.10.2 137*4882a593Smuzhiyun #define CONFIG_NETMASK 255.255.255.0 138*4882a593Smuzhiyun #undef CONFIG_SERVERIP 139*4882a593Smuzhiyun #define CONFIG_SERVERIP 192.168.10.1 140*4882a593Smuzhiyun 141*4882a593Smuzhiyun #define CONFIG_LOADADDR 0x12000000 142*4882a593Smuzhiyun #define CONFIG_SYS_TEXT_BASE 0x17800000 143*4882a593Smuzhiyun 144*4882a593Smuzhiyun #ifdef CONFIG_CMD_SATA 145*4882a593Smuzhiyun #define CONFIG_DRIVE_SATA "sata " 146*4882a593Smuzhiyun #else 147*4882a593Smuzhiyun #define CONFIG_DRIVE_SATA 148*4882a593Smuzhiyun #endif 149*4882a593Smuzhiyun 150*4882a593Smuzhiyun #ifdef CONFIG_CMD_MMC 151*4882a593Smuzhiyun #define CONFIG_DRIVE_MMC "mmc " 152*4882a593Smuzhiyun #else 153*4882a593Smuzhiyun #define CONFIG_DRIVE_MMC 154*4882a593Smuzhiyun #endif 155*4882a593Smuzhiyun 156*4882a593Smuzhiyun #define CONFIG_DRIVE_TYPES CONFIG_DRIVE_SATA CONFIG_DRIVE_MMC 157*4882a593Smuzhiyun 158*4882a593Smuzhiyun #define DFU_ALT_EMMC_INFO \ 159*4882a593Smuzhiyun "u-boot.imx raw 0x2 0x3ff mmcpart 0;" \ 160*4882a593Smuzhiyun "boot part 0 1;" \ 161*4882a593Smuzhiyun "rootfs part 0 2;" \ 162*4882a593Smuzhiyun "uImage fat 0 1;" \ 163*4882a593Smuzhiyun "imx6q-colibri-eval-v3.dtb fat 0 1;" \ 164*4882a593Smuzhiyun "imx6q-colibri-cam-eval-v3.dtb fat 0 1" 165*4882a593Smuzhiyun 166*4882a593Smuzhiyun #define EMMC_BOOTCMD \ 167*4882a593Smuzhiyun "emmcargs=ip=off root=/dev/mmcblk0p2 rw,noatime rootfstype=ext3 " \ 168*4882a593Smuzhiyun "rootwait\0" \ 169*4882a593Smuzhiyun "emmcboot=run setup; " \ 170*4882a593Smuzhiyun "setenv bootargs ${defargs} ${emmcargs} ${setupargs} " \ 171*4882a593Smuzhiyun "${vidargs}; echo Booting from internal eMMC chip...; " \ 172*4882a593Smuzhiyun "run emmcdtbload; load mmc 0:1 ${kernel_addr_r} " \ 173*4882a593Smuzhiyun "${boot_file} && run fdt_fixup && " \ 174*4882a593Smuzhiyun "bootm ${kernel_addr_r} ${dtbparam}\0" \ 175*4882a593Smuzhiyun "emmcdtbload=setenv dtbparam; load mmc 0:1 ${fdt_addr_r} " \ 176*4882a593Smuzhiyun "${fdt_file} && setenv dtbparam \" - ${fdt_addr_r}\" && true\0" 177*4882a593Smuzhiyun 178*4882a593Smuzhiyun #define MEM_LAYOUT_ENV_SETTINGS \ 179*4882a593Smuzhiyun "bootm_size=0x20000000\0" \ 180*4882a593Smuzhiyun "fdt_addr_r=0x12000000\0" \ 181*4882a593Smuzhiyun "fdt_high=0xffffffff\0" \ 182*4882a593Smuzhiyun "initrd_high=0xffffffff\0" \ 183*4882a593Smuzhiyun "kernel_addr_r=0x11000000\0" \ 184*4882a593Smuzhiyun "ramdisk_addr_r=0x12100000\0" 185*4882a593Smuzhiyun 186*4882a593Smuzhiyun #define NFS_BOOTCMD \ 187*4882a593Smuzhiyun "nfsargs=ip=:::::eth0:on root=/dev/nfs rw\0" \ 188*4882a593Smuzhiyun "nfsboot=run setup; " \ 189*4882a593Smuzhiyun "setenv bootargs ${defargs} ${nfsargs} ${setupargs} " \ 190*4882a593Smuzhiyun "${vidargs}; echo Booting via DHCP/TFTP/NFS...; " \ 191*4882a593Smuzhiyun "run nfsdtbload; dhcp ${kernel_addr_r} " \ 192*4882a593Smuzhiyun "&& run fdt_fixup && bootm ${kernel_addr_r} ${dtbparam}\0" \ 193*4882a593Smuzhiyun "nfsdtbload=setenv dtbparam; tftp ${fdt_addr_r} ${fdt_file} " \ 194*4882a593Smuzhiyun "&& setenv dtbparam \" - ${fdt_addr_r}\" && true\0" 195*4882a593Smuzhiyun 196*4882a593Smuzhiyun #define SD_BOOTCMD \ 197*4882a593Smuzhiyun "sdargs=ip=off root=/dev/mmcblk1p2 rw,noatime rootfstype=ext3 " \ 198*4882a593Smuzhiyun "rootwait\0" \ 199*4882a593Smuzhiyun "sdboot=run setup; " \ 200*4882a593Smuzhiyun "setenv bootargs ${defargs} ${sdargs} ${setupargs} " \ 201*4882a593Smuzhiyun "${vidargs}; echo Booting from SD card; " \ 202*4882a593Smuzhiyun "run sddtbload; load mmc 1:1 ${kernel_addr_r} " \ 203*4882a593Smuzhiyun "${boot_file} && run fdt_fixup && " \ 204*4882a593Smuzhiyun "bootm ${kernel_addr_r} ${dtbparam}\0" \ 205*4882a593Smuzhiyun "sddtbload=setenv dtbparam; load mmc 1:1 ${fdt_addr_r} " \ 206*4882a593Smuzhiyun "${fdt_file} && setenv dtbparam \" - ${fdt_addr_r}\" && true\0" 207*4882a593Smuzhiyun 208*4882a593Smuzhiyun #define USB_BOOTCMD \ 209*4882a593Smuzhiyun "usbargs=ip=off root=/dev/sda2 rw,noatime rootfstype=ext3 " \ 210*4882a593Smuzhiyun "rootwait\0" \ 211*4882a593Smuzhiyun "usbboot=run setup; setenv bootargs ${defargs} ${setupargs} " \ 212*4882a593Smuzhiyun "${usbargs} ${vidargs}; echo Booting from USB stick...; " \ 213*4882a593Smuzhiyun "usb start && run usbdtbload; load usb 0:1 ${kernel_addr_r} " \ 214*4882a593Smuzhiyun "${boot_file} && run fdt_fixup && " \ 215*4882a593Smuzhiyun "bootm ${kernel_addr_r} ${dtbparam}\0" \ 216*4882a593Smuzhiyun "usbdtbload=setenv dtbparam; load usb 0:1 ${fdt_addr_r} " \ 217*4882a593Smuzhiyun "${fdt_file} && setenv dtbparam \" - ${fdt_addr_r}\" && true\0" 218*4882a593Smuzhiyun 219*4882a593Smuzhiyun #ifndef CONFIG_TDX_APALIS_IMX6_V1_0 220*4882a593Smuzhiyun #define FDT_FILE "imx6q-apalis-eval.dtb" 221*4882a593Smuzhiyun #define FDT_FILE_V1_0 "imx6q-apalis_v1_0-eval.dtb" 222*4882a593Smuzhiyun #else 223*4882a593Smuzhiyun #define FDT_FILE "imx6q-apalis_v1_0-eval.dtb" 224*4882a593Smuzhiyun #endif 225*4882a593Smuzhiyun #define CONFIG_EXTRA_ENV_SETTINGS \ 226*4882a593Smuzhiyun "bootcmd=run emmcboot ; echo ; echo emmcboot failed ; " \ 227*4882a593Smuzhiyun "run nfsboot ; echo ; echo nfsboot failed ; " \ 228*4882a593Smuzhiyun "usb start ;" \ 229*4882a593Smuzhiyun "setenv stdout serial,vga ; setenv stdin serial,usbkbd\0" \ 230*4882a593Smuzhiyun "boot_file=uImage\0" \ 231*4882a593Smuzhiyun "console=ttymxc0\0" \ 232*4882a593Smuzhiyun "defargs=enable_wait_mode=off vmalloc=400M\0" \ 233*4882a593Smuzhiyun "dfu_alt_info=" DFU_ALT_EMMC_INFO "\0" \ 234*4882a593Smuzhiyun EMMC_BOOTCMD \ 235*4882a593Smuzhiyun "fdt_file=" FDT_FILE "\0" \ 236*4882a593Smuzhiyun "fdt_fixup=;\0" \ 237*4882a593Smuzhiyun MEM_LAYOUT_ENV_SETTINGS \ 238*4882a593Smuzhiyun NFS_BOOTCMD \ 239*4882a593Smuzhiyun SD_BOOTCMD \ 240*4882a593Smuzhiyun "setethupdate=if env exists ethaddr; then; else setenv ethaddr " \ 241*4882a593Smuzhiyun "00:14:2d:00:00:00; fi; tftpboot ${loadaddr} " \ 242*4882a593Smuzhiyun "flash_eth.img && source ${loadaddr}\0" \ 243*4882a593Smuzhiyun "setsdupdate=setenv interface mmc; setenv drive 1; mmc rescan; load " \ 244*4882a593Smuzhiyun "${interface} ${drive}:1 ${loadaddr} flash_blk.img && " \ 245*4882a593Smuzhiyun "source ${loadaddr}\0" \ 246*4882a593Smuzhiyun "setup=setenv setupargs fec_mac=${ethaddr} " \ 247*4882a593Smuzhiyun "consoleblank=0 no_console_suspend=1 console=tty1 " \ 248*4882a593Smuzhiyun "console=${console},${baudrate}n8\0 " \ 249*4882a593Smuzhiyun "setupdate=run setsdupdate || run setusbupdate || run setethupdate\0" \ 250*4882a593Smuzhiyun "setusbupdate=usb start && setenv interface usb; setenv drive 0; " \ 251*4882a593Smuzhiyun "load ${interface} ${drive}:1 ${loadaddr} flash_blk.img && " \ 252*4882a593Smuzhiyun "source ${loadaddr}\0" \ 253*4882a593Smuzhiyun "splashpos=m,m\0" \ 254*4882a593Smuzhiyun "vidargs=mxc_hdmi.only_cea=1 " \ 255*4882a593Smuzhiyun "video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24 " \ 256*4882a593Smuzhiyun "video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off " \ 257*4882a593Smuzhiyun "fbmem=32M\0 " 258*4882a593Smuzhiyun 259*4882a593Smuzhiyun /* Miscellaneous configurable options */ 260*4882a593Smuzhiyun #define CONFIG_SYS_LONGHELP 261*4882a593Smuzhiyun #define CONFIG_AUTO_COMPLETE 262*4882a593Smuzhiyun #undef CONFIG_SYS_CBSIZE 263*4882a593Smuzhiyun #define CONFIG_SYS_CBSIZE 1024 264*4882a593Smuzhiyun #undef CONFIG_SYS_MAXARGS 265*4882a593Smuzhiyun #define CONFIG_SYS_MAXARGS 48 266*4882a593Smuzhiyun 267*4882a593Smuzhiyun #define CONFIG_SYS_ALT_MEMTEST 268*4882a593Smuzhiyun #define CONFIG_SYS_MEMTEST_START 0x10000000 269*4882a593Smuzhiyun #define CONFIG_SYS_MEMTEST_END 0x10010000 270*4882a593Smuzhiyun #define CONFIG_SYS_MEMTEST_SCRATCH 0x10800000 271*4882a593Smuzhiyun 272*4882a593Smuzhiyun #define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR 273*4882a593Smuzhiyun 274*4882a593Smuzhiyun #define CONFIG_CMDLINE_EDITING 275*4882a593Smuzhiyun 276*4882a593Smuzhiyun /* Physical Memory Map */ 277*4882a593Smuzhiyun #define CONFIG_NR_DRAM_BANKS 1 278*4882a593Smuzhiyun #define PHYS_SDRAM MMDC0_ARB_BASE_ADDR 279*4882a593Smuzhiyun 280*4882a593Smuzhiyun #define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM 281*4882a593Smuzhiyun #define CONFIG_SYS_INIT_RAM_ADDR IRAM_BASE_ADDR 282*4882a593Smuzhiyun #define CONFIG_SYS_INIT_RAM_SIZE IRAM_SIZE 283*4882a593Smuzhiyun 284*4882a593Smuzhiyun #define CONFIG_SYS_INIT_SP_OFFSET \ 285*4882a593Smuzhiyun (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE) 286*4882a593Smuzhiyun #define CONFIG_SYS_INIT_SP_ADDR \ 287*4882a593Smuzhiyun (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET) 288*4882a593Smuzhiyun 289*4882a593Smuzhiyun /* environment organization */ 290*4882a593Smuzhiyun 291*4882a593Smuzhiyun #define CONFIG_ENV_SIZE (8 * 1024) 292*4882a593Smuzhiyun 293*4882a593Smuzhiyun #if defined(CONFIG_ENV_IS_IN_MMC) 294*4882a593Smuzhiyun /* Environment in eMMC, before config block at the end of 1st "boot sector" */ 295*4882a593Smuzhiyun #define CONFIG_ENV_OFFSET (-CONFIG_ENV_SIZE + \ 296*4882a593Smuzhiyun CONFIG_TDX_CFG_BLOCK_OFFSET) 297*4882a593Smuzhiyun #define CONFIG_SYS_MMC_ENV_DEV 0 298*4882a593Smuzhiyun #define CONFIG_SYS_MMC_ENV_PART 1 299*4882a593Smuzhiyun #endif 300*4882a593Smuzhiyun 301*4882a593Smuzhiyun #define CONFIG_OF_SYSTEM_SETUP 302*4882a593Smuzhiyun 303*4882a593Smuzhiyun #define CONFIG_CMD_TIME 304*4882a593Smuzhiyun 305*4882a593Smuzhiyun #define CONFIG_SUPPORT_RAW_INITRD 306*4882a593Smuzhiyun 307*4882a593Smuzhiyun #endif /* __CONFIG_H */ 308