1*5434caf5SMarek Vasut /* 2*5434caf5SMarek Vasut * Copyright (C) 2013 Marek Vasut <marex@denx.de> 3*5434caf5SMarek Vasut * 4*5434caf5SMarek Vasut * This program is free software; you can redistribute it and/or 5*5434caf5SMarek Vasut * modify it under the terms of the GNU General Public License as 6*5434caf5SMarek Vasut * published by the Free Software Foundation; either version 2 of 7*5434caf5SMarek Vasut * the License, or (at your option) any later version. 8*5434caf5SMarek Vasut * 9*5434caf5SMarek Vasut * This program is distributed in the hope that it will be useful, 10*5434caf5SMarek Vasut * but WITHOUT ANY WARRANTY; without even the implied warranty of 11*5434caf5SMarek Vasut * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12*5434caf5SMarek Vasut * GNU General Public License for more details. 13*5434caf5SMarek Vasut * 14*5434caf5SMarek Vasut * You should have received a copy of the GNU General Public License 15*5434caf5SMarek Vasut * along with this program; if not, write to the Free Software 16*5434caf5SMarek Vasut * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 17*5434caf5SMarek Vasut * MA 02111-1307 USA 18*5434caf5SMarek Vasut */ 19*5434caf5SMarek Vasut #ifndef __CONFIGS_MXS_H__ 20*5434caf5SMarek Vasut #define __CONFIGS_MXS_H__ 21*5434caf5SMarek Vasut 22*5434caf5SMarek Vasut /* 23*5434caf5SMarek Vasut * Includes 24*5434caf5SMarek Vasut */ 25*5434caf5SMarek Vasut 26*5434caf5SMarek Vasut #if defined(CONFIG_MX23) && defined(CONFIG_MX28) 27*5434caf5SMarek Vasut #error Select either CONFIG_MX23 or CONFIG_MX28 , never both! 28*5434caf5SMarek Vasut #elif !defined(CONFIG_MX23) && !defined(CONFIG_MX28) 29*5434caf5SMarek Vasut #error Select one of CONFIG_MX23 or CONFIG_MX28 ! 30*5434caf5SMarek Vasut #endif 31*5434caf5SMarek Vasut 32*5434caf5SMarek Vasut #include <asm/arch/regs-base.h> 33*5434caf5SMarek Vasut 34*5434caf5SMarek Vasut #if defined(CONFIG_MX23) 35*5434caf5SMarek Vasut #include <asm/arch/iomux-mx23.h> 36*5434caf5SMarek Vasut #elif defined(CONFIG_MX28) 37*5434caf5SMarek Vasut #include <asm/arch/iomux-mx28.h> 38*5434caf5SMarek Vasut #endif 39*5434caf5SMarek Vasut 40*5434caf5SMarek Vasut /* 41*5434caf5SMarek Vasut * CPU specifics 42*5434caf5SMarek Vasut */ 43*5434caf5SMarek Vasut 44*5434caf5SMarek Vasut /* Ticks per second */ 45*5434caf5SMarek Vasut #define CONFIG_SYS_HZ 1000 46*5434caf5SMarek Vasut 47*5434caf5SMarek Vasut /* MXS uses FDT */ 48*5434caf5SMarek Vasut #define CONFIG_OF_LIBFDT 49*5434caf5SMarek Vasut 50*5434caf5SMarek Vasut /* Startup hooks */ 51*5434caf5SMarek Vasut #define CONFIG_BOARD_EARLY_INIT_F 52*5434caf5SMarek Vasut #define CONFIG_ARCH_MISC_INIT 53*5434caf5SMarek Vasut 54*5434caf5SMarek Vasut /* SPL */ 55*5434caf5SMarek Vasut #define CONFIG_SPL 56*5434caf5SMarek Vasut #define CONFIG_SPL_NO_CPU_SUPPORT_CODE 57*5434caf5SMarek Vasut #define CONFIG_SPL_START_S_PATH "arch/arm/cpu/arm926ejs/mxs" 58*5434caf5SMarek Vasut #define CONFIG_SPL_LDSCRIPT "arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds" 59*5434caf5SMarek Vasut #define CONFIG_SPL_LIBCOMMON_SUPPORT 60*5434caf5SMarek Vasut #define CONFIG_SPL_LIBGENERIC_SUPPORT 61*5434caf5SMarek Vasut #define CONFIG_SPL_GPIO_SUPPORT 62*5434caf5SMarek Vasut 63*5434caf5SMarek Vasut /* Memory sizes */ 64*5434caf5SMarek Vasut #define CONFIG_SYS_MALLOC_LEN 0x00400000 /* 4 MB for malloc */ 65*5434caf5SMarek Vasut #define CONFIG_SYS_GBL_DATA_SIZE 128 /* Initial data */ 66*5434caf5SMarek Vasut #define CONFIG_SYS_MEMTEST_START 0x40000000 /* Memtest start adr */ 67*5434caf5SMarek Vasut #define CONFIG_SYS_MEMTEST_END 0x40400000 /* 4 MB RAM test */ 68*5434caf5SMarek Vasut 69*5434caf5SMarek Vasut /* OCRAM at 0x0 ; 32kB on MX23 ; 128kB on MX28 */ 70*5434caf5SMarek Vasut #define CONFIG_SYS_INIT_RAM_ADDR 0x00000000 71*5434caf5SMarek Vasut #if defined(CONFIG_MX23) 72*5434caf5SMarek Vasut #define CONFIG_SYS_INIT_RAM_SIZE (32 * 1024) 73*5434caf5SMarek Vasut #elif defined(CONFIG_MX28) 74*5434caf5SMarek Vasut #define CONFIG_SYS_INIT_RAM_SIZE (128 * 1024) 75*5434caf5SMarek Vasut #endif 76*5434caf5SMarek Vasut 77*5434caf5SMarek Vasut /* Point initial SP in SRAM so SPL can use it too. */ 78*5434caf5SMarek Vasut #define CONFIG_SYS_INIT_SP_OFFSET \ 79*5434caf5SMarek Vasut (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE) 80*5434caf5SMarek Vasut #define CONFIG_SYS_INIT_SP_ADDR \ 81*5434caf5SMarek Vasut (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET) 82*5434caf5SMarek Vasut 83*5434caf5SMarek Vasut /* 84*5434caf5SMarek Vasut * We need to sacrifice first 4 bytes of RAM here to avoid triggering some 85*5434caf5SMarek Vasut * strange BUG in ROM corrupting first 4 bytes of RAM when loading U-Boot 86*5434caf5SMarek Vasut * binary. In case there was more of this mess, 0x100 bytes are skipped. 87*5434caf5SMarek Vasut */ 88*5434caf5SMarek Vasut #define CONFIG_SYS_TEXT_BASE 0x40000100 89*5434caf5SMarek Vasut 90*5434caf5SMarek Vasut /* U-Boot general configuration */ 91*5434caf5SMarek Vasut #define CONFIG_SYS_LONGHELP 92*5434caf5SMarek Vasut #ifndef CONFIG_SYS_PROMPT 93*5434caf5SMarek Vasut #define CONFIG_SYS_PROMPT "=> " 94*5434caf5SMarek Vasut #endif 95*5434caf5SMarek Vasut #define CONFIG_SYS_CBSIZE 1024 /* Console I/O buffer size */ 96*5434caf5SMarek Vasut #define CONFIG_SYS_PBSIZE \ 97*5434caf5SMarek Vasut (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16) 98*5434caf5SMarek Vasut /* Print buffer size */ 99*5434caf5SMarek Vasut #define CONFIG_SYS_MAXARGS 32 /* Max number of command args */ 100*5434caf5SMarek Vasut #define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE 101*5434caf5SMarek Vasut /* Boot argument buffer size */ 102*5434caf5SMarek Vasut #define CONFIG_VERSION_VARIABLE /* U-BOOT version */ 103*5434caf5SMarek Vasut #define CONFIG_AUTO_COMPLETE /* Command auto complete */ 104*5434caf5SMarek Vasut #define CONFIG_CMDLINE_EDITING /* Command history etc */ 105*5434caf5SMarek Vasut #define CONFIG_SYS_HUSH_PARSER 106*5434caf5SMarek Vasut #define CONFIG_SYS_PROMPT_HUSH_PS2 "> " 107*5434caf5SMarek Vasut 108*5434caf5SMarek Vasut /* Booting Linux */ 109*5434caf5SMarek Vasut #define CONFIG_CMDLINE_TAG 110*5434caf5SMarek Vasut #define CONFIG_SETUP_MEMORY_TAGS 111*5434caf5SMarek Vasut 112*5434caf5SMarek Vasut /* 113*5434caf5SMarek Vasut * Drivers 114*5434caf5SMarek Vasut */ 115*5434caf5SMarek Vasut 116*5434caf5SMarek Vasut /* APBH DMA */ 117*5434caf5SMarek Vasut #define CONFIG_APBH_DMA 118*5434caf5SMarek Vasut 119*5434caf5SMarek Vasut /* GPIO */ 120*5434caf5SMarek Vasut #define CONFIG_MXS_GPIO 121*5434caf5SMarek Vasut 122*5434caf5SMarek Vasut /* DUART Serial Driver */ 123*5434caf5SMarek Vasut #define CONFIG_PL011_SERIAL 124*5434caf5SMarek Vasut #define CONFIG_PL011_CLOCK 24000000 125*5434caf5SMarek Vasut #define CONFIG_PL01x_PORTS { (void *)MXS_UARTDBG_BASE } 126*5434caf5SMarek Vasut #define CONFIG_CONS_INDEX 0 127*5434caf5SMarek Vasut /* Default baudrate can be overriden by board! */ 128*5434caf5SMarek Vasut #ifndef CONFIG_BAUDRATE 129*5434caf5SMarek Vasut #define CONFIG_BAUDRATE 115200 130*5434caf5SMarek Vasut #endif 131*5434caf5SMarek Vasut 132*5434caf5SMarek Vasut /* FEC Ethernet on SoC */ 133*5434caf5SMarek Vasut #ifdef CONFIG_FEC_MXC 134*5434caf5SMarek Vasut #define CONFIG_MII 135*5434caf5SMarek Vasut #ifndef CONFIG_ETHPRIME 136*5434caf5SMarek Vasut #define CONFIG_ETHPRIME "FEC0" 137*5434caf5SMarek Vasut #endif 138*5434caf5SMarek Vasut #ifndef CONFIG_FEC_XCV_TYPE 139*5434caf5SMarek Vasut #define CONFIG_FEC_XCV_TYPE RMII 140*5434caf5SMarek Vasut #endif 141*5434caf5SMarek Vasut #endif 142*5434caf5SMarek Vasut 143*5434caf5SMarek Vasut /* I2C */ 144*5434caf5SMarek Vasut #ifdef CONFIG_CMD_I2C 145*5434caf5SMarek Vasut #define CONFIG_I2C_MXS 146*5434caf5SMarek Vasut #define CONFIG_HARD_I2C 147*5434caf5SMarek Vasut #ifndef CONFIG_SYS_I2C_SPEED 148*5434caf5SMarek Vasut #define CONFIG_SYS_I2C_SPEED 400000 149*5434caf5SMarek Vasut #endif 150*5434caf5SMarek Vasut #endif 151*5434caf5SMarek Vasut 152*5434caf5SMarek Vasut /* LCD */ 153*5434caf5SMarek Vasut #ifdef CONFIG_VIDEO 154*5434caf5SMarek Vasut #define CONFIG_CFB_CONSOLE 155*5434caf5SMarek Vasut #define CONFIG_VIDEO_MXS 156*5434caf5SMarek Vasut #define CONFIG_VIDEO_SW_CURSOR 157*5434caf5SMarek Vasut #define CONFIG_VGA_AS_SINGLE_DEVICE 158*5434caf5SMarek Vasut #define CONFIG_SYS_CONSOLE_IS_IN_ENV 159*5434caf5SMarek Vasut #endif 160*5434caf5SMarek Vasut 161*5434caf5SMarek Vasut /* MMC */ 162*5434caf5SMarek Vasut #ifdef CONFIG_CMD_MMC 163*5434caf5SMarek Vasut #define CONFIG_MMC 164*5434caf5SMarek Vasut #define CONFIG_GENERIC_MMC 165*5434caf5SMarek Vasut #define CONFIG_BOUNCE_BUFFER 166*5434caf5SMarek Vasut #define CONFIG_MXS_MMC 167*5434caf5SMarek Vasut #endif 168*5434caf5SMarek Vasut 169*5434caf5SMarek Vasut /* NAND */ 170*5434caf5SMarek Vasut #ifdef CONFIG_CMD_NAND 171*5434caf5SMarek Vasut #define CONFIG_NAND_MXS 172*5434caf5SMarek Vasut #define CONFIG_SYS_MAX_NAND_DEVICE 1 173*5434caf5SMarek Vasut #define CONFIG_SYS_NAND_BASE 0x60000000 174*5434caf5SMarek Vasut #define CONFIG_SYS_NAND_5_ADDR_CYCLE 175*5434caf5SMarek Vasut #endif 176*5434caf5SMarek Vasut 177*5434caf5SMarek Vasut /* SPI */ 178*5434caf5SMarek Vasut #ifdef CONFIG_CMD_SPI 179*5434caf5SMarek Vasut #define CONFIG_HARD_SPI 180*5434caf5SMarek Vasut #define CONFIG_MXS_SPI 181*5434caf5SMarek Vasut #define CONFIG_SPI_HALF_DUPLEX 182*5434caf5SMarek Vasut #endif 183*5434caf5SMarek Vasut 184*5434caf5SMarek Vasut /* USB */ 185*5434caf5SMarek Vasut #ifdef CONFIG_CMD_USB 186*5434caf5SMarek Vasut #define CONFIG_USB_EHCI 187*5434caf5SMarek Vasut #define CONFIG_USB_EHCI_MXS 188*5434caf5SMarek Vasut #define CONFIG_EHCI_IS_TDI 189*5434caf5SMarek Vasut #endif 190*5434caf5SMarek Vasut 191*5434caf5SMarek Vasut #endif /* __CONFIGS_MXS_H__ */ 192