15434caf5SMarek Vasut /* 25434caf5SMarek Vasut * Copyright (C) 2013 Marek Vasut <marex@denx.de> 35434caf5SMarek Vasut * 45434caf5SMarek Vasut * This program is free software; you can redistribute it and/or 55434caf5SMarek Vasut * modify it under the terms of the GNU General Public License as 65434caf5SMarek Vasut * published by the Free Software Foundation; either version 2 of 75434caf5SMarek Vasut * the License, or (at your option) any later version. 85434caf5SMarek Vasut * 95434caf5SMarek Vasut * This program is distributed in the hope that it will be useful, 105434caf5SMarek Vasut * but WITHOUT ANY WARRANTY; without even the implied warranty of 115434caf5SMarek Vasut * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 125434caf5SMarek Vasut * GNU General Public License for more details. 135434caf5SMarek Vasut * 145434caf5SMarek Vasut * You should have received a copy of the GNU General Public License 155434caf5SMarek Vasut * along with this program; if not, write to the Free Software 165434caf5SMarek Vasut * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 175434caf5SMarek Vasut * MA 02111-1307 USA 185434caf5SMarek Vasut */ 195434caf5SMarek Vasut #ifndef __CONFIGS_MXS_H__ 205434caf5SMarek Vasut #define __CONFIGS_MXS_H__ 215434caf5SMarek Vasut 225434caf5SMarek Vasut /* 235434caf5SMarek Vasut * Includes 245434caf5SMarek Vasut */ 255434caf5SMarek Vasut 265434caf5SMarek Vasut #if defined(CONFIG_MX23) && defined(CONFIG_MX28) 275434caf5SMarek Vasut #error Select either CONFIG_MX23 or CONFIG_MX28 , never both! 285434caf5SMarek Vasut #elif !defined(CONFIG_MX23) && !defined(CONFIG_MX28) 295434caf5SMarek Vasut #error Select one of CONFIG_MX23 or CONFIG_MX28 ! 305434caf5SMarek Vasut #endif 315434caf5SMarek Vasut 325434caf5SMarek Vasut #include <asm/arch/regs-base.h> 335434caf5SMarek Vasut 345434caf5SMarek Vasut #if defined(CONFIG_MX23) 355434caf5SMarek Vasut #include <asm/arch/iomux-mx23.h> 365434caf5SMarek Vasut #elif defined(CONFIG_MX28) 375434caf5SMarek Vasut #include <asm/arch/iomux-mx28.h> 385434caf5SMarek Vasut #endif 395434caf5SMarek Vasut 405434caf5SMarek Vasut /* 415434caf5SMarek Vasut * CPU specifics 425434caf5SMarek Vasut */ 435434caf5SMarek Vasut 445434caf5SMarek Vasut /* Ticks per second */ 455434caf5SMarek Vasut #define CONFIG_SYS_HZ 1000 465434caf5SMarek Vasut 475434caf5SMarek Vasut /* MXS uses FDT */ 485434caf5SMarek Vasut #define CONFIG_OF_LIBFDT 495434caf5SMarek Vasut 505434caf5SMarek Vasut /* Startup hooks */ 515434caf5SMarek Vasut #define CONFIG_BOARD_EARLY_INIT_F 525434caf5SMarek Vasut #define CONFIG_ARCH_MISC_INIT 535434caf5SMarek Vasut 545434caf5SMarek Vasut /* SPL */ 555434caf5SMarek Vasut #define CONFIG_SPL 565434caf5SMarek Vasut #define CONFIG_SPL_NO_CPU_SUPPORT_CODE 575434caf5SMarek Vasut #define CONFIG_SPL_START_S_PATH "arch/arm/cpu/arm926ejs/mxs" 585434caf5SMarek Vasut #define CONFIG_SPL_LDSCRIPT "arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds" 595434caf5SMarek Vasut #define CONFIG_SPL_LIBCOMMON_SUPPORT 605434caf5SMarek Vasut #define CONFIG_SPL_LIBGENERIC_SUPPORT 615434caf5SMarek Vasut #define CONFIG_SPL_GPIO_SUPPORT 625434caf5SMarek Vasut 635434caf5SMarek Vasut /* Memory sizes */ 645434caf5SMarek Vasut #define CONFIG_SYS_MALLOC_LEN 0x00400000 /* 4 MB for malloc */ 655434caf5SMarek Vasut #define CONFIG_SYS_GBL_DATA_SIZE 128 /* Initial data */ 665434caf5SMarek Vasut #define CONFIG_SYS_MEMTEST_START 0x40000000 /* Memtest start adr */ 675434caf5SMarek Vasut #define CONFIG_SYS_MEMTEST_END 0x40400000 /* 4 MB RAM test */ 685434caf5SMarek Vasut 695434caf5SMarek Vasut /* OCRAM at 0x0 ; 32kB on MX23 ; 128kB on MX28 */ 705434caf5SMarek Vasut #define CONFIG_SYS_INIT_RAM_ADDR 0x00000000 715434caf5SMarek Vasut #if defined(CONFIG_MX23) 725434caf5SMarek Vasut #define CONFIG_SYS_INIT_RAM_SIZE (32 * 1024) 735434caf5SMarek Vasut #elif defined(CONFIG_MX28) 745434caf5SMarek Vasut #define CONFIG_SYS_INIT_RAM_SIZE (128 * 1024) 755434caf5SMarek Vasut #endif 765434caf5SMarek Vasut 775434caf5SMarek Vasut /* Point initial SP in SRAM so SPL can use it too. */ 785434caf5SMarek Vasut #define CONFIG_SYS_INIT_SP_OFFSET \ 795434caf5SMarek Vasut (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE) 805434caf5SMarek Vasut #define CONFIG_SYS_INIT_SP_ADDR \ 815434caf5SMarek Vasut (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET) 825434caf5SMarek Vasut 835434caf5SMarek Vasut /* 845434caf5SMarek Vasut * We need to sacrifice first 4 bytes of RAM here to avoid triggering some 855434caf5SMarek Vasut * strange BUG in ROM corrupting first 4 bytes of RAM when loading U-Boot 865434caf5SMarek Vasut * binary. In case there was more of this mess, 0x100 bytes are skipped. 875434caf5SMarek Vasut */ 885434caf5SMarek Vasut #define CONFIG_SYS_TEXT_BASE 0x40000100 895434caf5SMarek Vasut 905434caf5SMarek Vasut /* U-Boot general configuration */ 915434caf5SMarek Vasut #define CONFIG_SYS_LONGHELP 925434caf5SMarek Vasut #ifndef CONFIG_SYS_PROMPT 935434caf5SMarek Vasut #define CONFIG_SYS_PROMPT "=> " 945434caf5SMarek Vasut #endif 955434caf5SMarek Vasut #define CONFIG_SYS_CBSIZE 1024 /* Console I/O buffer size */ 965434caf5SMarek Vasut #define CONFIG_SYS_PBSIZE \ 975434caf5SMarek Vasut (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16) 985434caf5SMarek Vasut /* Print buffer size */ 995434caf5SMarek Vasut #define CONFIG_SYS_MAXARGS 32 /* Max number of command args */ 1005434caf5SMarek Vasut #define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE 1015434caf5SMarek Vasut /* Boot argument buffer size */ 1025434caf5SMarek Vasut #define CONFIG_VERSION_VARIABLE /* U-BOOT version */ 1035434caf5SMarek Vasut #define CONFIG_AUTO_COMPLETE /* Command auto complete */ 1045434caf5SMarek Vasut #define CONFIG_CMDLINE_EDITING /* Command history etc */ 1055434caf5SMarek Vasut #define CONFIG_SYS_HUSH_PARSER 1065434caf5SMarek Vasut #define CONFIG_SYS_PROMPT_HUSH_PS2 "> " 1075434caf5SMarek Vasut 1085434caf5SMarek Vasut /* Booting Linux */ 1095434caf5SMarek Vasut #define CONFIG_CMDLINE_TAG 1105434caf5SMarek Vasut #define CONFIG_SETUP_MEMORY_TAGS 1115434caf5SMarek Vasut 1125434caf5SMarek Vasut /* 1135434caf5SMarek Vasut * Drivers 1145434caf5SMarek Vasut */ 1155434caf5SMarek Vasut 1165434caf5SMarek Vasut /* APBH DMA */ 1175434caf5SMarek Vasut #define CONFIG_APBH_DMA 1185434caf5SMarek Vasut 1195434caf5SMarek Vasut /* GPIO */ 1205434caf5SMarek Vasut #define CONFIG_MXS_GPIO 1215434caf5SMarek Vasut 122*0cfb8afeSAndreas Wass /* 123*0cfb8afeSAndreas Wass * DUART Serial Driver. 124*0cfb8afeSAndreas Wass * Conflicts with AUART driver which can be set by board. 125*0cfb8afeSAndreas Wass */ 126*0cfb8afeSAndreas Wass #ifndef CONFIG_MXS_AUART 1275434caf5SMarek Vasut #define CONFIG_PL011_SERIAL 1285434caf5SMarek Vasut #define CONFIG_PL011_CLOCK 24000000 1295434caf5SMarek Vasut #define CONFIG_PL01x_PORTS { (void *)MXS_UARTDBG_BASE } 1305434caf5SMarek Vasut #define CONFIG_CONS_INDEX 0 131*0cfb8afeSAndreas Wass #endif 1325434caf5SMarek Vasut /* Default baudrate can be overriden by board! */ 1335434caf5SMarek Vasut #ifndef CONFIG_BAUDRATE 1345434caf5SMarek Vasut #define CONFIG_BAUDRATE 115200 1355434caf5SMarek Vasut #endif 1365434caf5SMarek Vasut 1375434caf5SMarek Vasut /* FEC Ethernet on SoC */ 1385434caf5SMarek Vasut #ifdef CONFIG_FEC_MXC 1395434caf5SMarek Vasut #define CONFIG_MII 1405434caf5SMarek Vasut #ifndef CONFIG_ETHPRIME 1415434caf5SMarek Vasut #define CONFIG_ETHPRIME "FEC0" 1425434caf5SMarek Vasut #endif 1435434caf5SMarek Vasut #ifndef CONFIG_FEC_XCV_TYPE 1445434caf5SMarek Vasut #define CONFIG_FEC_XCV_TYPE RMII 1455434caf5SMarek Vasut #endif 1465434caf5SMarek Vasut #endif 1475434caf5SMarek Vasut 1485434caf5SMarek Vasut /* I2C */ 1495434caf5SMarek Vasut #ifdef CONFIG_CMD_I2C 1505434caf5SMarek Vasut #define CONFIG_I2C_MXS 1515434caf5SMarek Vasut #define CONFIG_HARD_I2C 1525434caf5SMarek Vasut #ifndef CONFIG_SYS_I2C_SPEED 1535434caf5SMarek Vasut #define CONFIG_SYS_I2C_SPEED 400000 1545434caf5SMarek Vasut #endif 1555434caf5SMarek Vasut #endif 1565434caf5SMarek Vasut 1575434caf5SMarek Vasut /* LCD */ 1585434caf5SMarek Vasut #ifdef CONFIG_VIDEO 1595434caf5SMarek Vasut #define CONFIG_CFB_CONSOLE 1605434caf5SMarek Vasut #define CONFIG_VIDEO_MXS 1615434caf5SMarek Vasut #define CONFIG_VIDEO_SW_CURSOR 1625434caf5SMarek Vasut #define CONFIG_VGA_AS_SINGLE_DEVICE 1635434caf5SMarek Vasut #define CONFIG_SYS_CONSOLE_IS_IN_ENV 1645434caf5SMarek Vasut #endif 1655434caf5SMarek Vasut 1665434caf5SMarek Vasut /* MMC */ 1675434caf5SMarek Vasut #ifdef CONFIG_CMD_MMC 1685434caf5SMarek Vasut #define CONFIG_MMC 1695434caf5SMarek Vasut #define CONFIG_GENERIC_MMC 1705434caf5SMarek Vasut #define CONFIG_BOUNCE_BUFFER 1715434caf5SMarek Vasut #define CONFIG_MXS_MMC 1725434caf5SMarek Vasut #endif 1735434caf5SMarek Vasut 1745434caf5SMarek Vasut /* NAND */ 1755434caf5SMarek Vasut #ifdef CONFIG_CMD_NAND 1765434caf5SMarek Vasut #define CONFIG_NAND_MXS 1775434caf5SMarek Vasut #define CONFIG_SYS_MAX_NAND_DEVICE 1 1785434caf5SMarek Vasut #define CONFIG_SYS_NAND_BASE 0x60000000 1795434caf5SMarek Vasut #define CONFIG_SYS_NAND_5_ADDR_CYCLE 1805434caf5SMarek Vasut #endif 1815434caf5SMarek Vasut 1825434caf5SMarek Vasut /* SPI */ 1835434caf5SMarek Vasut #ifdef CONFIG_CMD_SPI 1845434caf5SMarek Vasut #define CONFIG_HARD_SPI 1855434caf5SMarek Vasut #define CONFIG_MXS_SPI 1865434caf5SMarek Vasut #define CONFIG_SPI_HALF_DUPLEX 1875434caf5SMarek Vasut #endif 1885434caf5SMarek Vasut 1895434caf5SMarek Vasut /* USB */ 1905434caf5SMarek Vasut #ifdef CONFIG_CMD_USB 1915434caf5SMarek Vasut #define CONFIG_USB_EHCI 1925434caf5SMarek Vasut #define CONFIG_USB_EHCI_MXS 1935434caf5SMarek Vasut #define CONFIG_EHCI_IS_TDI 1945434caf5SMarek Vasut #endif 1955434caf5SMarek Vasut 1965434caf5SMarek Vasut #endif /* __CONFIGS_MXS_H__ */ 197