1f0ff57b0SPeng Fan /* 2f0ff57b0SPeng Fan * Copyright (C) 2015 Freescale Semiconductor, Inc. 3f0ff57b0SPeng Fan * 4f0ff57b0SPeng Fan * Configuration settings for the Freescale i.MX6UL 14x14 EVK board. 5f0ff57b0SPeng Fan * 6f0ff57b0SPeng Fan * SPDX-License-Identifier: GPL-2.0+ 7f0ff57b0SPeng Fan */ 8f0ff57b0SPeng Fan #ifndef __MX6UL_14X14_EVK_CONFIG_H 9f0ff57b0SPeng Fan #define __MX6UL_14X14_EVK_CONFIG_H 10f0ff57b0SPeng Fan 11f0ff57b0SPeng Fan 12f0ff57b0SPeng Fan #include <asm/arch/imx-regs.h> 13f0ff57b0SPeng Fan #include <linux/sizes.h> 14f0ff57b0SPeng Fan #include "mx6_common.h" 15f0ff57b0SPeng Fan #include <asm/imx-common/gpio.h> 16f0ff57b0SPeng Fan 17*d9cbb264SPeng Fan #define is_mx6ul_9x9_evk() CONFIG_IS_ENABLED(TARGET_MX6UL_9X9_EVK) 18*d9cbb264SPeng Fan 19f0ff57b0SPeng Fan /* SPL options */ 20f0ff57b0SPeng Fan #define CONFIG_SPL_LIBCOMMON_SUPPORT 21f0ff57b0SPeng Fan #define CONFIG_SPL_MMC_SUPPORT 22f0ff57b0SPeng Fan #define CONFIG_SPL_FAT_SUPPORT 23f0ff57b0SPeng Fan #include "imx6_spl.h" 24f0ff57b0SPeng Fan 25*d9cbb264SPeng Fan #define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG 26*d9cbb264SPeng Fan 27f0ff57b0SPeng Fan #define CONFIG_ROM_UNIFIED_SECTIONS 28f0ff57b0SPeng Fan #define CONFIG_SYS_GENERIC_BOARD 29f0ff57b0SPeng Fan #define CONFIG_DISPLAY_CPUINFO 30f0ff57b0SPeng Fan #define CONFIG_DISPLAY_BOARDINFO 31f0ff57b0SPeng Fan 32f0ff57b0SPeng Fan /* Size of malloc() pool */ 33f0ff57b0SPeng Fan #define CONFIG_SYS_MALLOC_LEN (16 * SZ_1M) 34f0ff57b0SPeng Fan 35f0ff57b0SPeng Fan #define CONFIG_BOARD_EARLY_INIT_F 36f0ff57b0SPeng Fan #define CONFIG_BOARD_LATE_INIT 37f0ff57b0SPeng Fan 38f0ff57b0SPeng Fan #define CONFIG_MXC_UART 39f0ff57b0SPeng Fan #define CONFIG_MXC_UART_BASE UART1_BASE 40f0ff57b0SPeng Fan 41f0ff57b0SPeng Fan /* MMC Configs */ 42f0ff57b0SPeng Fan #ifdef CONFIG_FSL_USDHC 43f0ff57b0SPeng Fan #define CONFIG_SYS_FSL_ESDHC_ADDR USDHC2_BASE_ADDR 44f0ff57b0SPeng Fan 45f0ff57b0SPeng Fan /* NAND pin conflicts with usdhc2 */ 46f0ff57b0SPeng Fan #ifdef CONFIG_NAND_MXS 47f0ff57b0SPeng Fan #define CONFIG_SYS_FSL_USDHC_NUM 1 48f0ff57b0SPeng Fan #else 49f0ff57b0SPeng Fan #define CONFIG_SYS_FSL_USDHC_NUM 2 50f0ff57b0SPeng Fan #endif 51f0ff57b0SPeng Fan 52f0ff57b0SPeng Fan #define CONFIG_SUPPORT_EMMC_BOOT /* eMMC specific */ 53f0ff57b0SPeng Fan #endif 54f0ff57b0SPeng Fan 55f0ff57b0SPeng Fan #undef CONFIG_BOOTM_NETBSD 56f0ff57b0SPeng Fan #undef CONFIG_BOOTM_PLAN9 57f0ff57b0SPeng Fan #undef CONFIG_BOOTM_RTEMS 58f0ff57b0SPeng Fan 59f0ff57b0SPeng Fan #undef CONFIG_CMD_EXPORTENV 60f0ff57b0SPeng Fan #undef CONFIG_CMD_IMPORTENV 61f0ff57b0SPeng Fan 62f0ff57b0SPeng Fan /* I2C configs */ 63f0ff57b0SPeng Fan #define CONFIG_CMD_I2C 64f0ff57b0SPeng Fan #ifdef CONFIG_CMD_I2C 65f0ff57b0SPeng Fan #define CONFIG_SYS_I2C 66f0ff57b0SPeng Fan #define CONFIG_SYS_I2C_MXC 67f0ff57b0SPeng Fan #define CONFIG_SYS_I2C_SPEED 100000 68f0ff57b0SPeng Fan 69*d9cbb264SPeng Fan /* PMIC only for 9X9 EVK */ 70*d9cbb264SPeng Fan #define CONFIG_POWER 71*d9cbb264SPeng Fan #define CONFIG_POWER_I2C 72*d9cbb264SPeng Fan #define CONFIG_POWER_PFUZE3000 73*d9cbb264SPeng Fan #define CONFIG_POWER_PFUZE3000_I2C_ADDR 0x08 74*d9cbb264SPeng Fan #endif 75f0ff57b0SPeng Fan 76f0ff57b0SPeng Fan #undef CONFIG_CMD_IMLS 77f0ff57b0SPeng Fan 78f0ff57b0SPeng Fan #define CONFIG_SYS_MMC_IMG_LOAD_PART 1 79f0ff57b0SPeng Fan 80f0ff57b0SPeng Fan #define CONFIG_EXTRA_ENV_SETTINGS \ 81f0ff57b0SPeng Fan "script=boot.scr\0" \ 82f0ff57b0SPeng Fan "image=zImage\0" \ 83f0ff57b0SPeng Fan "console=ttymxc0\0" \ 84f0ff57b0SPeng Fan "fdt_high=0xffffffff\0" \ 85f0ff57b0SPeng Fan "initrd_high=0xffffffff\0" \ 86*d9cbb264SPeng Fan "fdt_file=undefined\0" \ 87f0ff57b0SPeng Fan "fdt_addr=0x83000000\0" \ 88f0ff57b0SPeng Fan "boot_fdt=try\0" \ 89f0ff57b0SPeng Fan "ip_dyn=yes\0" \ 90f0ff57b0SPeng Fan "mmcdev="__stringify(CONFIG_SYS_MMC_ENV_DEV)"\0" \ 91f0ff57b0SPeng Fan "mmcpart=" __stringify(CONFIG_SYS_MMC_IMG_LOAD_PART) "\0" \ 92f0ff57b0SPeng Fan "mmcroot=" CONFIG_MMCROOT " rootwait rw\0" \ 93f0ff57b0SPeng Fan "mmcautodetect=yes\0" \ 94f0ff57b0SPeng Fan "mmcargs=setenv bootargs console=${console},${baudrate} " \ 95f0ff57b0SPeng Fan "root=${mmcroot}\0" \ 96f0ff57b0SPeng Fan "loadbootscript=" \ 97f0ff57b0SPeng Fan "fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \ 98f0ff57b0SPeng Fan "bootscript=echo Running bootscript from mmc ...; " \ 99f0ff57b0SPeng Fan "source\0" \ 100f0ff57b0SPeng Fan "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \ 101f0ff57b0SPeng Fan "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \ 102f0ff57b0SPeng Fan "mmcboot=echo Booting from mmc ...; " \ 103f0ff57b0SPeng Fan "run mmcargs; " \ 104f0ff57b0SPeng Fan "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ 105f0ff57b0SPeng Fan "if run loadfdt; then " \ 106f0ff57b0SPeng Fan "bootz ${loadaddr} - ${fdt_addr}; " \ 107f0ff57b0SPeng Fan "else " \ 108f0ff57b0SPeng Fan "if test ${boot_fdt} = try; then " \ 109f0ff57b0SPeng Fan "bootz; " \ 110f0ff57b0SPeng Fan "else " \ 111f0ff57b0SPeng Fan "echo WARN: Cannot load the DT; " \ 112f0ff57b0SPeng Fan "fi; " \ 113f0ff57b0SPeng Fan "fi; " \ 114f0ff57b0SPeng Fan "else " \ 115f0ff57b0SPeng Fan "bootz; " \ 116f0ff57b0SPeng Fan "fi;\0" \ 117f0ff57b0SPeng Fan "netargs=setenv bootargs console=${console},${baudrate} " \ 118f0ff57b0SPeng Fan "root=/dev/nfs " \ 119f0ff57b0SPeng Fan "ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \ 120f0ff57b0SPeng Fan "netboot=echo Booting from net ...; " \ 121f0ff57b0SPeng Fan "run netargs; " \ 122f0ff57b0SPeng Fan "if test ${ip_dyn} = yes; then " \ 123f0ff57b0SPeng Fan "setenv get_cmd dhcp; " \ 124f0ff57b0SPeng Fan "else " \ 125f0ff57b0SPeng Fan "setenv get_cmd tftp; " \ 126f0ff57b0SPeng Fan "fi; " \ 127f0ff57b0SPeng Fan "${get_cmd} ${image}; " \ 128f0ff57b0SPeng Fan "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ 129f0ff57b0SPeng Fan "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \ 130f0ff57b0SPeng Fan "bootz ${loadaddr} - ${fdt_addr}; " \ 131f0ff57b0SPeng Fan "else " \ 132f0ff57b0SPeng Fan "if test ${boot_fdt} = try; then " \ 133f0ff57b0SPeng Fan "bootz; " \ 134f0ff57b0SPeng Fan "else " \ 135f0ff57b0SPeng Fan "echo WARN: Cannot load the DT; " \ 136f0ff57b0SPeng Fan "fi; " \ 137f0ff57b0SPeng Fan "fi; " \ 138f0ff57b0SPeng Fan "else " \ 139f0ff57b0SPeng Fan "bootz; " \ 140*d9cbb264SPeng Fan "fi;\0" \ 141*d9cbb264SPeng Fan "findfdt="\ 142*d9cbb264SPeng Fan "if test $fdt_file = undefined; then " \ 143*d9cbb264SPeng Fan "if test $board_name = EVK && test $board_rev = 9X9; then " \ 144*d9cbb264SPeng Fan "setenv fdt_file imx6ul-9x9-evk.dtb; fi; " \ 145*d9cbb264SPeng Fan "if test $board_name = EVK && test $board_rev = 14X14; then " \ 146*d9cbb264SPeng Fan "setenv fdt_file imx6ul-14x14-evk.dtb; fi; " \ 147*d9cbb264SPeng Fan "if test $fdt_file = undefined; then " \ 148*d9cbb264SPeng Fan "echo WARNING: Could not determine dtb to use; fi; " \ 149*d9cbb264SPeng Fan "fi;\0" \ 150f0ff57b0SPeng Fan 151f0ff57b0SPeng Fan #define CONFIG_BOOTCOMMAND \ 152*d9cbb264SPeng Fan "run findfdt;" \ 153f0ff57b0SPeng Fan "mmc dev ${mmcdev};" \ 154f0ff57b0SPeng Fan "mmc dev ${mmcdev}; if mmc rescan; then " \ 155f0ff57b0SPeng Fan "if run loadbootscript; then " \ 156f0ff57b0SPeng Fan "run bootscript; " \ 157f0ff57b0SPeng Fan "else " \ 158f0ff57b0SPeng Fan "if run loadimage; then " \ 159f0ff57b0SPeng Fan "run mmcboot; " \ 160f0ff57b0SPeng Fan "else run netboot; " \ 161f0ff57b0SPeng Fan "fi; " \ 162f0ff57b0SPeng Fan "fi; " \ 163f0ff57b0SPeng Fan "else run netboot; fi" 164f0ff57b0SPeng Fan 165f0ff57b0SPeng Fan /* Miscellaneous configurable options */ 166f0ff57b0SPeng Fan /* Print Buffer Size */ 167f0ff57b0SPeng Fan #define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16) 168f0ff57b0SPeng Fan 169f0ff57b0SPeng Fan #define CONFIG_CMD_MEMTEST 170f0ff57b0SPeng Fan #define CONFIG_SYS_MEMTEST_START 0x80000000 171f0ff57b0SPeng Fan #define CONFIG_SYS_MEMTEST_END (CONFIG_SYS_MEMTEST_START + 0x10000000) 172f0ff57b0SPeng Fan 173f0ff57b0SPeng Fan #define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR 174f0ff57b0SPeng Fan #define CONFIG_SYS_HZ 1000 175f0ff57b0SPeng Fan 176f0ff57b0SPeng Fan #define CONFIG_CMDLINE_EDITING 177f0ff57b0SPeng Fan #define CONFIG_STACKSIZE SZ_128K 178f0ff57b0SPeng Fan 179f0ff57b0SPeng Fan /* Physical Memory Map */ 180f0ff57b0SPeng Fan #define CONFIG_NR_DRAM_BANKS 1 181f0ff57b0SPeng Fan #define PHYS_SDRAM MMDC0_ARB_BASE_ADDR 182f0ff57b0SPeng Fan 183f0ff57b0SPeng Fan #define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM 184f0ff57b0SPeng Fan #define CONFIG_SYS_INIT_RAM_ADDR IRAM_BASE_ADDR 185f0ff57b0SPeng Fan #define CONFIG_SYS_INIT_RAM_SIZE IRAM_SIZE 186f0ff57b0SPeng Fan 187f0ff57b0SPeng Fan #define CONFIG_SYS_INIT_SP_OFFSET \ 188f0ff57b0SPeng Fan (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE) 189f0ff57b0SPeng Fan #define CONFIG_SYS_INIT_SP_ADDR \ 190f0ff57b0SPeng Fan (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET) 191f0ff57b0SPeng Fan 192f0ff57b0SPeng Fan /* FLASH and environment organization */ 193f0ff57b0SPeng Fan #define CONFIG_SYS_NO_FLASH 194f0ff57b0SPeng Fan 195f0ff57b0SPeng Fan #define CONFIG_ENV_SIZE SZ_8K 196f0ff57b0SPeng Fan #define CONFIG_ENV_IS_IN_MMC 197f0ff57b0SPeng Fan #define CONFIG_ENV_OFFSET (8 * SZ_64K) 198f0ff57b0SPeng Fan #define CONFIG_SYS_MMC_ENV_DEV 1 /* USDHC2 */ 199f0ff57b0SPeng Fan #define CONFIG_SYS_MMC_ENV_PART 0 /* user area */ 200f0ff57b0SPeng Fan #define CONFIG_MMCROOT "/dev/mmcblk1p2" /* USDHC2 */ 201f0ff57b0SPeng Fan 202f0ff57b0SPeng Fan #define CONFIG_OF_LIBFDT 203f0ff57b0SPeng Fan #define CONFIG_CMD_BOOTZ 204f0ff57b0SPeng Fan #define CONFIG_CMD_BMODE 205f0ff57b0SPeng Fan 206f0ff57b0SPeng Fan #ifndef CONFIG_SYS_DCACHE_OFF 207f0ff57b0SPeng Fan #define CONFIG_CMD_CACHE 208f0ff57b0SPeng Fan #endif 209f0ff57b0SPeng Fan 210f0ff57b0SPeng Fan #define CONFIG_FSL_QSPI 211f0ff57b0SPeng Fan #ifdef CONFIG_FSL_QSPI 212f0ff57b0SPeng Fan #define CONFIG_CMD_SF 213f0ff57b0SPeng Fan #define CONFIG_SPI_FLASH 214f0ff57b0SPeng Fan #define CONFIG_SPI_FLASH_STMICRO 215f0ff57b0SPeng Fan #define CONFIG_SPI_FLASH_BAR 216f0ff57b0SPeng Fan #define CONFIG_SF_DEFAULT_BUS 0 217f0ff57b0SPeng Fan #define CONFIG_SF_DEFAULT_CS 0 218f0ff57b0SPeng Fan #define CONFIG_SF_DEFAULT_SPEED 40000000 219f0ff57b0SPeng Fan #define CONFIG_SF_DEFAULT_MODE SPI_MODE_0 220f0ff57b0SPeng Fan #define FSL_QSPI_FLASH_NUM 1 221f0ff57b0SPeng Fan #define FSL_QSPI_FLASH_SIZE SZ_32M 222f0ff57b0SPeng Fan #endif 223f0ff57b0SPeng Fan 224f0ff57b0SPeng Fan /* USB Configs */ 225f0ff57b0SPeng Fan #define CONFIG_CMD_USB 226f0ff57b0SPeng Fan #ifdef CONFIG_CMD_USB 227f0ff57b0SPeng Fan #define CONFIG_USB_EHCI 228f0ff57b0SPeng Fan #define CONFIG_USB_EHCI_MX6 229f0ff57b0SPeng Fan #define CONFIG_USB_STORAGE 230f0ff57b0SPeng Fan #define CONFIG_EHCI_HCD_INIT_AFTER_RESET 231f0ff57b0SPeng Fan #define CONFIG_MXC_USB_PORTSC (PORT_PTS_UTMI | PORT_PTS_PTW) 232f0ff57b0SPeng Fan #define CONFIG_MXC_USB_FLAGS 0 233f0ff57b0SPeng Fan #define CONFIG_USB_MAX_CONTROLLER_COUNT 2 234f0ff57b0SPeng Fan #endif 235f0ff57b0SPeng Fan 2360d4cdb56SPeng Fan #ifdef CONFIG_CMD_NET 2370d4cdb56SPeng Fan #define CONFIG_FEC_MXC 2380d4cdb56SPeng Fan #define CONFIG_MII 2390d4cdb56SPeng Fan #define CONFIG_FEC_ENET_DEV 1 2400d4cdb56SPeng Fan 2410d4cdb56SPeng Fan #if (CONFIG_FEC_ENET_DEV == 0) 2420d4cdb56SPeng Fan #define IMX_FEC_BASE ENET_BASE_ADDR 2430d4cdb56SPeng Fan #define CONFIG_FEC_MXC_PHYADDR 0x2 2440d4cdb56SPeng Fan #define CONFIG_FEC_XCV_TYPE RMII 2450d4cdb56SPeng Fan #elif (CONFIG_FEC_ENET_DEV == 1) 2460d4cdb56SPeng Fan #define IMX_FEC_BASE ENET2_BASE_ADDR 2470d4cdb56SPeng Fan #define CONFIG_FEC_MXC_PHYADDR 0x1 2480d4cdb56SPeng Fan #define CONFIG_FEC_XCV_TYPE RMII 2490d4cdb56SPeng Fan #endif 2500d4cdb56SPeng Fan #define CONFIG_ETHPRIME "FEC" 2510d4cdb56SPeng Fan 2520d4cdb56SPeng Fan #define CONFIG_PHYLIB 2530d4cdb56SPeng Fan #define CONFIG_PHY_MICREL 2540d4cdb56SPeng Fan #define CONFIG_FEC_DMA_MINALIGN 64 2550d4cdb56SPeng Fan #endif 2560d4cdb56SPeng Fan 2571368f993SAdrian Alonso #define CONFIG_IMX_THERMAL 258f0ff57b0SPeng Fan 259f0ff57b0SPeng Fan #endif 260