129f75a5cSFabio Estevam /* 229f75a5cSFabio Estevam * (C) Copyright 2011 Freescale Semiconductor, Inc. 329f75a5cSFabio Estevam * Author: Fabio Estevam <fabio.estevam@freescale.com> 429f75a5cSFabio Estevam * 529f75a5cSFabio Estevam * Based on m28evk.h: 629f75a5cSFabio Estevam * Copyright (C) 2011 Marek Vasut <marek.vasut@gmail.com> 729f75a5cSFabio Estevam * on behalf of DENX Software Engineering GmbH 829f75a5cSFabio Estevam * 929f75a5cSFabio Estevam * This program is free software; you can redistribute it and/or 1029f75a5cSFabio Estevam * modify it under the terms of the GNU General Public License as 1129f75a5cSFabio Estevam * published by the Free Software Foundation; either version 2 of 1229f75a5cSFabio Estevam * the License, or (at your option) any later version. 1329f75a5cSFabio Estevam * 1429f75a5cSFabio Estevam * This program is distributed in the hope that it will be useful, 1529f75a5cSFabio Estevam * but WITHOUT ANY WARRANTY; without even the implied warranty of 1629f75a5cSFabio Estevam * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1729f75a5cSFabio Estevam * GNU General Public License for more details. 1829f75a5cSFabio Estevam */ 19*5434caf5SMarek Vasut #ifndef __CONFIGS_MX28EVK_H__ 20*5434caf5SMarek Vasut #define __CONFIGS_MX28EVK_H__ 2129f75a5cSFabio Estevam 22*5434caf5SMarek Vasut /* System configurations */ 2329f75a5cSFabio Estevam #define CONFIG_MX28 /* i.MX28 SoC */ 2429f75a5cSFabio Estevam #define CONFIG_MACH_TYPE MACH_TYPE_MX28EVK 25*5434caf5SMarek Vasut #define CONFIG_SYS_PROMPT "MX28EVK U-Boot > " 2629f75a5cSFabio Estevam 2740f1daa0SFabio Estevam /* U-Boot Commands */ 28*5434caf5SMarek Vasut #define CONFIG_SYS_NO_FLASH 2929f75a5cSFabio Estevam #include <config_cmd_default.h> 3029f75a5cSFabio Estevam #define CONFIG_DISPLAY_CPUINFO 3129f75a5cSFabio Estevam #define CONFIG_DOS_PARTITION 3229f75a5cSFabio Estevam 3329f75a5cSFabio Estevam #define CONFIG_CMD_CACHE 349588d942SMatthias Fuchs #define CONFIG_CMD_DATE 3529f75a5cSFabio Estevam #define CONFIG_CMD_DHCP 363b4efee9SOtavio Salvador #define CONFIG_CMD_FAT 3729f75a5cSFabio Estevam #define CONFIG_CMD_GPIO 3829f75a5cSFabio Estevam #define CONFIG_CMD_MII 3929f75a5cSFabio Estevam #define CONFIG_CMD_MMC 4029f75a5cSFabio Estevam #define CONFIG_CMD_NET 4129f75a5cSFabio Estevam #define CONFIG_CMD_NFS 4229f75a5cSFabio Estevam #define CONFIG_CMD_PING 43*5434caf5SMarek Vasut #define CONFIG_CMD_SAVEENV 447577a4b3SOtavio Salvador #define CONFIG_CMD_SETEXPR 45ed97abedSMatthias Fuchs #define CONFIG_CMD_SF 46ed97abedSMatthias Fuchs #define CONFIG_CMD_SPI 47598aa2bbSMatthias Fuchs #define CONFIG_CMD_USB 4834990e12SFabio Estevam #define CONFIG_CMD_BOOTZ 49ab461be6SFabio Estevam #define CONFIG_CMD_NAND 508b360c06SEric Benard #define CONFIG_CMD_NAND_TRIMFFS 5168661db2SFabio Estevam #define CONFIG_VIDEO 5229f75a5cSFabio Estevam 53*5434caf5SMarek Vasut /* Memory configuration */ 5429f75a5cSFabio Estevam #define CONFIG_NR_DRAM_BANKS 1 /* 1 bank of DRAM */ 5529f75a5cSFabio Estevam #define PHYS_SDRAM_1 0x40000000 /* Base address */ 5629f75a5cSFabio Estevam #define PHYS_SDRAM_1_SIZE 0x40000000 /* Max 1 GB RAM */ 5729f75a5cSFabio Estevam #define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_1 5829f75a5cSFabio Estevam 59*5434caf5SMarek Vasut /* Environment */ 6029f75a5cSFabio Estevam #define CONFIG_ENV_SIZE (16 * 1024) 61*5434caf5SMarek Vasut #define CONFIG_ENV_OVERWRITE 62*5434caf5SMarek Vasut 63*5434caf5SMarek Vasut /* Environment is in MMC */ 64*5434caf5SMarek Vasut #if defined(CONFIG_CMD_MMC) && defined(CONFIG_ENV_IS_IN_MMC) 65*5434caf5SMarek Vasut #define CONFIG_ENV_OFFSET (256 * 1024) 6629f75a5cSFabio Estevam #define CONFIG_SYS_MMC_ENV_DEV 0 67ed97abedSMatthias Fuchs #endif 68ab461be6SFabio Estevam 69ab461be6SFabio Estevam /* Environment is in NAND */ 70*5434caf5SMarek Vasut #if defined(CONFIG_CMD_NAND) && defined(CONFIG_ENV_IS_IN_NAND) 71ab461be6SFabio Estevam #define CONFIG_ENV_SIZE_REDUND CONFIG_ENV_SIZE 72ab461be6SFabio Estevam #define CONFIG_ENV_SECT_SIZE (128 * 1024) 73ab461be6SFabio Estevam #define CONFIG_ENV_RANGE (512 * 1024) 74ab461be6SFabio Estevam #define CONFIG_ENV_OFFSET 0x300000 75ab461be6SFabio Estevam #define CONFIG_ENV_OFFSET_REDUND \ 76ab461be6SFabio Estevam (CONFIG_ENV_OFFSET + CONFIG_ENV_RANGE) 77da85c9c8STom Rini #endif 78ab461be6SFabio Estevam 79*5434caf5SMarek Vasut /* Environemnt is in SPI flash */ 80*5434caf5SMarek Vasut #if defined(CONFIG_CMD_SF) && defined(CONFIG_ENV_IS_IN_SPI_FLASH) 81*5434caf5SMarek Vasut #define CONFIG_SYS_REDUNDAND_ENVIRONMENT 82*5434caf5SMarek Vasut #define CONFIG_ENV_SIZE 0x1000 /* 4KB */ 83*5434caf5SMarek Vasut #define CONFIG_ENV_OFFSET 0x40000 /* 256K */ 84*5434caf5SMarek Vasut #define CONFIG_ENV_OFFSET_REDUND (CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE) 85*5434caf5SMarek Vasut #define CONFIG_ENV_SECT_SIZE 0x1000 86*5434caf5SMarek Vasut #define CONFIG_ENV_SPI_CS 0 87*5434caf5SMarek Vasut #define CONFIG_ENV_SPI_BUS 2 88*5434caf5SMarek Vasut #define CONFIG_ENV_SPI_MAX_HZ 24000000 89*5434caf5SMarek Vasut #define CONFIG_ENV_SPI_MODE SPI_MODE_0 90*5434caf5SMarek Vasut #endif 91*5434caf5SMarek Vasut 92*5434caf5SMarek Vasut /* UBI and NAND partitioning */ 93*5434caf5SMarek Vasut #ifdef CONFIG_CMD_NAND 94ab461be6SFabio Estevam #define CONFIG_CMD_UBI 95ab461be6SFabio Estevam #define CONFIG_CMD_UBIFS 96ab461be6SFabio Estevam #define CONFIG_CMD_MTDPARTS 97ab461be6SFabio Estevam #define CONFIG_RBTREE 98ab461be6SFabio Estevam #define CONFIG_LZO 99ab461be6SFabio Estevam #define CONFIG_MTD_DEVICE 100ab461be6SFabio Estevam #define CONFIG_MTD_PARTITIONS 101ab461be6SFabio Estevam #define MTDIDS_DEFAULT "nand0=gpmi-nand" 102ab461be6SFabio Estevam #define MTDPARTS_DEFAULT \ 103ab461be6SFabio Estevam "mtdparts=gpmi-nand:" \ 104ab461be6SFabio Estevam "3m(bootloader)ro," \ 105ab461be6SFabio Estevam "512k(environment)," \ 106ab461be6SFabio Estevam "512k(redundant-environment)," \ 107ab461be6SFabio Estevam "4m(kernel)," \ 108ab461be6SFabio Estevam "128k(fdt)," \ 109ab461be6SFabio Estevam "8m(ramdisk)," \ 110ab461be6SFabio Estevam "-(filesystem)" 111ecb7be29SLauri Hintsala #endif 112ecb7be29SLauri Hintsala 113*5434caf5SMarek Vasut /* FEC Ethernet on SoC */ 11429f75a5cSFabio Estevam #ifdef CONFIG_CMD_NET 11529f75a5cSFabio Estevam #define CONFIG_FEC_MXC 116*5434caf5SMarek Vasut #define CONFIG_NET_MULTI 11729f75a5cSFabio Estevam #define CONFIG_MX28_FEC_MAC_IN_OCOTP 11829f75a5cSFabio Estevam #endif 11929f75a5cSFabio Estevam 12040f1daa0SFabio Estevam /* RTC */ 1219588d942SMatthias Fuchs #ifdef CONFIG_CMD_DATE 1229588d942SMatthias Fuchs #define CONFIG_RTC_MXS 1239588d942SMatthias Fuchs #endif 1249588d942SMatthias Fuchs 12540f1daa0SFabio Estevam /* USB */ 126598aa2bbSMatthias Fuchs #ifdef CONFIG_CMD_USB 127598aa2bbSMatthias Fuchs #define CONFIG_EHCI_MXS_PORT1 128afa87210SMarek Vasut #define CONFIG_USB_MAX_CONTROLLER_COUNT 1 129598aa2bbSMatthias Fuchs #define CONFIG_USB_STORAGE 13091dd7ca6SFabio Estevam #define CONFIG_USB_HOST_ETHER 13191dd7ca6SFabio Estevam #define CONFIG_USB_ETHER_ASIX 13291dd7ca6SFabio Estevam #define CONFIG_USB_ETHER_SMSC95XX 133598aa2bbSMatthias Fuchs #endif 134598aa2bbSMatthias Fuchs 13540f1daa0SFabio Estevam /* SPI */ 136ed97abedSMatthias Fuchs #ifdef CONFIG_CMD_SPI 137ed97abedSMatthias Fuchs #define CONFIG_DEFAULT_SPI_BUS 2 138ed97abedSMatthias Fuchs #define CONFIG_DEFAULT_SPI_MODE SPI_MODE_0 139ed97abedSMatthias Fuchs 140ed97abedSMatthias Fuchs /* SPI Flash */ 141ed97abedSMatthias Fuchs #ifdef CONFIG_CMD_SF 142ed97abedSMatthias Fuchs #define CONFIG_SPI_FLASH 1431fc3bbd1SFabio Estevam #define CONFIG_SF_DEFAULT_BUS 2 1441fc3bbd1SFabio Estevam #define CONFIG_SF_DEFAULT_CS 0 145ed97abedSMatthias Fuchs /* this may vary and depends on the installed chip */ 146ed97abedSMatthias Fuchs #define CONFIG_SPI_FLASH_SST 147ed97abedSMatthias Fuchs #define CONFIG_SF_DEFAULT_MODE SPI_MODE_0 148ed97abedSMatthias Fuchs #define CONFIG_SF_DEFAULT_SPEED 24000000 149*5434caf5SMarek Vasut #endif 150ed97abedSMatthias Fuchs 151ed97abedSMatthias Fuchs #endif 152ed97abedSMatthias Fuchs 15368661db2SFabio Estevam /* Framebuffer support */ 15468661db2SFabio Estevam #ifdef CONFIG_VIDEO 15568661db2SFabio Estevam #define CONFIG_VIDEO_LOGO 15668661db2SFabio Estevam #define CONFIG_SPLASH_SCREEN 15768661db2SFabio Estevam #define CONFIG_CMD_BMP 15868661db2SFabio Estevam #define CONFIG_BMP_16BPP 15968661db2SFabio Estevam #define CONFIG_VIDEO_BMP_RLE8 16068661db2SFabio Estevam #define CONFIG_VIDEO_BMP_GZIP 16168661db2SFabio Estevam #define CONFIG_SYS_VIDEO_LOGO_MAX_SIZE (512 << 10) 16268661db2SFabio Estevam #endif 16368661db2SFabio Estevam 16440f1daa0SFabio Estevam /* Boot Linux */ 16527856943SFabio Estevam #define CONFIG_BOOTDELAY 1 16629f75a5cSFabio Estevam #define CONFIG_BOOTFILE "uImage" 16729f75a5cSFabio Estevam #define CONFIG_LOADADDR 0x42000000 16829f75a5cSFabio Estevam #define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR 16929f75a5cSFabio Estevam 170*5434caf5SMarek Vasut /* Extra Environment */ 17129f75a5cSFabio Estevam #define CONFIG_EXTRA_ENV_SETTINGS \ 172f994dc5eSOtavio Salvador "update_nand_full_filename=u-boot.nand\0" \ 173f994dc5eSOtavio Salvador "update_nand_firmware_filename=u-boot.sb\0" \ 174f994dc5eSOtavio Salvador "update_sd_firmware_filename=u-boot.sd\0" \ 175f994dc5eSOtavio Salvador "update_nand_firmware_maxsz=0x100000\0" \ 176f994dc5eSOtavio Salvador "update_nand_stride=0x40\0" /* MX28 datasheet ch. 12.12 */ \ 177f994dc5eSOtavio Salvador "update_nand_count=0x4\0" /* MX28 datasheet ch. 12.12 */ \ 178f994dc5eSOtavio Salvador "update_nand_get_fcb_size=" /* Get size of FCB blocks */ \ 179f994dc5eSOtavio Salvador "nand device 0 ; " \ 180f994dc5eSOtavio Salvador "nand info ; " \ 181f994dc5eSOtavio Salvador "setexpr fcb_sz ${update_nand_stride} * ${update_nand_count};" \ 182f994dc5eSOtavio Salvador "setexpr update_nand_fcb ${fcb_sz} * ${nand_writesize}\0" \ 183f994dc5eSOtavio Salvador "update_nand_full=" /* Update FCB, DBBT and FW */ \ 184f994dc5eSOtavio Salvador "if tftp ${update_nand_full_filename} ; then " \ 185f994dc5eSOtavio Salvador "run update_nand_get_fcb_size ; " \ 186f994dc5eSOtavio Salvador "nand scrub -y 0x0 ${filesize} ; " \ 18771779d5bSEric Benard "nand write.raw ${loadaddr} 0x0 ${fcb_sz} ; " \ 188f994dc5eSOtavio Salvador "setexpr update_off ${loadaddr} + ${update_nand_fcb} ; " \ 189f994dc5eSOtavio Salvador "setexpr update_sz ${filesize} - ${update_nand_fcb} ; " \ 190f994dc5eSOtavio Salvador "nand write ${update_off} ${update_nand_fcb} ${update_sz} ; " \ 191f994dc5eSOtavio Salvador "fi\0" \ 192f994dc5eSOtavio Salvador "update_nand_firmware=" /* Update only firmware */ \ 193f994dc5eSOtavio Salvador "if tftp ${update_nand_firmware_filename} ; then " \ 194f994dc5eSOtavio Salvador "run update_nand_get_fcb_size ; " \ 195f994dc5eSOtavio Salvador "setexpr fcb_sz ${update_nand_fcb} * 2 ; " /* FCB + DBBT */ \ 196f994dc5eSOtavio Salvador "setexpr fw_sz ${update_nand_firmware_maxsz} * 2 ; " \ 197f994dc5eSOtavio Salvador "setexpr fw_off ${fcb_sz} + ${update_nand_firmware_maxsz};" \ 198f994dc5eSOtavio Salvador "nand erase ${fcb_sz} ${fw_sz} ; " \ 199f994dc5eSOtavio Salvador "nand write ${loadaddr} ${fcb_sz} ${filesize} ; " \ 200f994dc5eSOtavio Salvador "nand write ${loadaddr} ${fw_off} ${filesize} ; " \ 201f994dc5eSOtavio Salvador "fi\0" \ 202f994dc5eSOtavio Salvador "update_sd_firmware=" /* Update the SD firmware partition */ \ 203f994dc5eSOtavio Salvador "if mmc rescan ; then " \ 204f994dc5eSOtavio Salvador "if tftp ${update_sd_firmware_filename} ; then " \ 205f994dc5eSOtavio Salvador "setexpr fw_sz ${filesize} / 0x200 ; " /* SD block size */ \ 206f994dc5eSOtavio Salvador "setexpr fw_sz ${fw_sz} + 1 ; " \ 207f994dc5eSOtavio Salvador "mmc write ${loadaddr} 0x800 ${fw_sz} ; " \ 208f994dc5eSOtavio Salvador "fi ; " \ 209f994dc5eSOtavio Salvador "fi\0" \ 210f994dc5eSOtavio Salvador "script=boot.scr\0" \ 211f994dc5eSOtavio Salvador "uimage=uImage\0" \ 212f994dc5eSOtavio Salvador "console_fsl=ttyAM0\0" \ 213f994dc5eSOtavio Salvador "console_mainline=ttyAMA0\0" \ 2144c6b2350SOtavio Salvador "fdt_file=imx28-evk.dtb\0" \ 2154c6b2350SOtavio Salvador "fdt_addr=0x41000000\0" \ 2164c6b2350SOtavio Salvador "boot_fdt=try\0" \ 2174c6b2350SOtavio Salvador "ip_dyn=yes\0" \ 218f994dc5eSOtavio Salvador "mmcdev=0\0" \ 219f994dc5eSOtavio Salvador "mmcpart=2\0" \ 2203c41e901SOtavio Salvador "mmcroot=/dev/mmcblk0p3 rw rootwait\0" \ 221f994dc5eSOtavio Salvador "mmcargs=setenv bootargs console=${console_mainline},${baudrate} " \ 2223c41e901SOtavio Salvador "root=${mmcroot}\0" \ 223f994dc5eSOtavio Salvador "loadbootscript=" \ 224f994dc5eSOtavio Salvador "fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \ 225f994dc5eSOtavio Salvador "bootscript=echo Running bootscript from mmc ...; " \ 226f994dc5eSOtavio Salvador "source\0" \ 227f994dc5eSOtavio Salvador "loaduimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${uimage}\0" \ 2284c6b2350SOtavio Salvador "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \ 229f994dc5eSOtavio Salvador "mmcboot=echo Booting from mmc ...; " \ 230f994dc5eSOtavio Salvador "run mmcargs; " \ 2314c6b2350SOtavio Salvador "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ 2324c6b2350SOtavio Salvador "if run loadfdt; then " \ 2334c6b2350SOtavio Salvador "bootm ${loadaddr} - ${fdt_addr}; " \ 2344c6b2350SOtavio Salvador "else " \ 2354c6b2350SOtavio Salvador "if test ${boot_fdt} = try; then " \ 2364c6b2350SOtavio Salvador "bootm; " \ 2374c6b2350SOtavio Salvador "else " \ 2384c6b2350SOtavio Salvador "echo WARN: Cannot load the DT; " \ 2394c6b2350SOtavio Salvador "fi; " \ 2404c6b2350SOtavio Salvador "fi; " \ 2414c6b2350SOtavio Salvador "else " \ 2424c6b2350SOtavio Salvador "bootm; " \ 2434c6b2350SOtavio Salvador "fi;\0" \ 244f994dc5eSOtavio Salvador "netargs=setenv bootargs console=${console_mainline},${baudrate} " \ 24529f75a5cSFabio Estevam "root=/dev/nfs " \ 246f994dc5eSOtavio Salvador "ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \ 247f994dc5eSOtavio Salvador "netboot=echo Booting from net ...; " \ 24829f75a5cSFabio Estevam "run netargs; " \ 2494c6b2350SOtavio Salvador "if test ${ip_dyn} = yes; then " \ 2504c6b2350SOtavio Salvador "setenv get_cmd dhcp; " \ 2514c6b2350SOtavio Salvador "else " \ 2524c6b2350SOtavio Salvador "setenv get_cmd tftp; " \ 2534c6b2350SOtavio Salvador "fi; " \ 2544c6b2350SOtavio Salvador "${get_cmd} ${uimage}; " \ 2554c6b2350SOtavio Salvador "if test ${boot_fdt} = yes; then " \ 2564c6b2350SOtavio Salvador "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \ 2574c6b2350SOtavio Salvador "bootm ${loadaddr} - ${fdt_addr}; " \ 2584c6b2350SOtavio Salvador "else " \ 2594c6b2350SOtavio Salvador "if test ${boot_fdt} = try; then " \ 2604c6b2350SOtavio Salvador "bootm; " \ 2614c6b2350SOtavio Salvador "else " \ 2624c6b2350SOtavio Salvador "echo WARN: Cannot load the DT; " \ 2634c6b2350SOtavio Salvador "fi;" \ 2644c6b2350SOtavio Salvador "fi; " \ 2654c6b2350SOtavio Salvador "else " \ 2664c6b2350SOtavio Salvador "bootm; " \ 2674c6b2350SOtavio Salvador "fi;\0" 268f994dc5eSOtavio Salvador 269f994dc5eSOtavio Salvador #define CONFIG_BOOTCOMMAND \ 27066968110SAndrew Bradford "mmc dev ${mmcdev}; if mmc rescan; then " \ 271f994dc5eSOtavio Salvador "if run loadbootscript; then " \ 272f994dc5eSOtavio Salvador "run bootscript; " \ 273f994dc5eSOtavio Salvador "else " \ 274f994dc5eSOtavio Salvador "if run loaduimage; then " \ 275f994dc5eSOtavio Salvador "run mmcboot; " \ 276f994dc5eSOtavio Salvador "else run netboot; " \ 277f994dc5eSOtavio Salvador "fi; " \ 278f994dc5eSOtavio Salvador "fi; " \ 279f994dc5eSOtavio Salvador "else run netboot; fi" 28029f75a5cSFabio Estevam 281*5434caf5SMarek Vasut /* The rest of the configuration is shared */ 282*5434caf5SMarek Vasut #include <configs/mxs.h> 283*5434caf5SMarek Vasut 284*5434caf5SMarek Vasut #endif /* __CONFIGS_MX28EVK_H__ */ 285