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 /* MXS uses FDT */ 455434caf5SMarek Vasut #define CONFIG_OF_LIBFDT 465434caf5SMarek Vasut 475434caf5SMarek Vasut /* Startup hooks */ 485434caf5SMarek Vasut #define CONFIG_BOARD_EARLY_INIT_F 495434caf5SMarek Vasut #define CONFIG_ARCH_MISC_INIT 505434caf5SMarek Vasut 515434caf5SMarek Vasut /* SPL */ 525434caf5SMarek Vasut #define CONFIG_SPL 535434caf5SMarek Vasut #define CONFIG_SPL_NO_CPU_SUPPORT_CODE 545434caf5SMarek Vasut #define CONFIG_SPL_START_S_PATH "arch/arm/cpu/arm926ejs/mxs" 555434caf5SMarek Vasut #define CONFIG_SPL_LDSCRIPT "arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds" 565434caf5SMarek Vasut #define CONFIG_SPL_LIBCOMMON_SUPPORT 575434caf5SMarek Vasut #define CONFIG_SPL_LIBGENERIC_SUPPORT 585434caf5SMarek Vasut #define CONFIG_SPL_GPIO_SUPPORT 595434caf5SMarek Vasut 605434caf5SMarek Vasut /* Memory sizes */ 615434caf5SMarek Vasut #define CONFIG_SYS_MALLOC_LEN 0x00400000 /* 4 MB for malloc */ 625434caf5SMarek Vasut #define CONFIG_SYS_MEMTEST_START 0x40000000 /* Memtest start adr */ 635434caf5SMarek Vasut #define CONFIG_SYS_MEMTEST_END 0x40400000 /* 4 MB RAM test */ 645434caf5SMarek Vasut 655434caf5SMarek Vasut /* OCRAM at 0x0 ; 32kB on MX23 ; 128kB on MX28 */ 665434caf5SMarek Vasut #define CONFIG_SYS_INIT_RAM_ADDR 0x00000000 675434caf5SMarek Vasut #if defined(CONFIG_MX23) 685434caf5SMarek Vasut #define CONFIG_SYS_INIT_RAM_SIZE (32 * 1024) 695434caf5SMarek Vasut #elif defined(CONFIG_MX28) 705434caf5SMarek Vasut #define CONFIG_SYS_INIT_RAM_SIZE (128 * 1024) 715434caf5SMarek Vasut #endif 725434caf5SMarek Vasut 735434caf5SMarek Vasut /* Point initial SP in SRAM so SPL can use it too. */ 745434caf5SMarek Vasut #define CONFIG_SYS_INIT_SP_OFFSET \ 755434caf5SMarek Vasut (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE) 765434caf5SMarek Vasut #define CONFIG_SYS_INIT_SP_ADDR \ 775434caf5SMarek Vasut (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET) 785434caf5SMarek Vasut 795434caf5SMarek Vasut /* 805434caf5SMarek Vasut * We need to sacrifice first 4 bytes of RAM here to avoid triggering some 815434caf5SMarek Vasut * strange BUG in ROM corrupting first 4 bytes of RAM when loading U-Boot 825434caf5SMarek Vasut * binary. In case there was more of this mess, 0x100 bytes are skipped. 839c2c8a31SMarek Vasut * 849c2c8a31SMarek Vasut * In case of a HAB boot, we cannot for some weird reason use the first 4KiB 859c2c8a31SMarek Vasut * of DRAM when loading. Moreover, we use the first 4 KiB for IVT and CST 869c2c8a31SMarek Vasut * blocks, thus U-Boot starts at offset +8 KiB of DRAM start. 879c2c8a31SMarek Vasut * 889c2c8a31SMarek Vasut * As for the SPL, we must avoid the first 4 KiB as well, but we load the 899c2c8a31SMarek Vasut * IVT and CST to 0x8000, so we don't need to waste the subsequent 4 KiB. 905434caf5SMarek Vasut */ 919c2c8a31SMarek Vasut #define CONFIG_SYS_TEXT_BASE 0x40002000 929c2c8a31SMarek Vasut #define CONFIG_SPL_TEXT_BASE 0x00001000 935434caf5SMarek Vasut 945434caf5SMarek Vasut /* U-Boot general configuration */ 955434caf5SMarek Vasut #define CONFIG_SYS_LONGHELP 965434caf5SMarek Vasut #ifndef CONFIG_SYS_PROMPT 975434caf5SMarek Vasut #endif 985434caf5SMarek Vasut #define CONFIG_SYS_CBSIZE 1024 /* Console I/O buffer size */ 995434caf5SMarek Vasut #define CONFIG_SYS_PBSIZE \ 1005434caf5SMarek Vasut (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16) 1015434caf5SMarek Vasut /* Print buffer size */ 1025434caf5SMarek Vasut #define CONFIG_SYS_MAXARGS 32 /* Max number of command args */ 1035434caf5SMarek Vasut #define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE 1045434caf5SMarek Vasut /* Boot argument buffer size */ 1055434caf5SMarek Vasut #define CONFIG_VERSION_VARIABLE /* U-BOOT version */ 1065434caf5SMarek Vasut #define CONFIG_AUTO_COMPLETE /* Command auto complete */ 1075434caf5SMarek Vasut #define CONFIG_CMDLINE_EDITING /* Command history etc */ 1085434caf5SMarek Vasut #define CONFIG_SYS_HUSH_PARSER 1095434caf5SMarek Vasut #define CONFIG_SYS_PROMPT_HUSH_PS2 "> " 1105434caf5SMarek Vasut 1115434caf5SMarek Vasut /* Booting Linux */ 1125434caf5SMarek Vasut #define CONFIG_CMDLINE_TAG 1135434caf5SMarek Vasut #define CONFIG_SETUP_MEMORY_TAGS 1145434caf5SMarek Vasut 1155434caf5SMarek Vasut /* 1165434caf5SMarek Vasut * Drivers 1175434caf5SMarek Vasut */ 1185434caf5SMarek Vasut 1195434caf5SMarek Vasut /* APBH DMA */ 1205434caf5SMarek Vasut #define CONFIG_APBH_DMA 1215434caf5SMarek Vasut 1225434caf5SMarek Vasut /* GPIO */ 1235434caf5SMarek Vasut #define CONFIG_MXS_GPIO 1245434caf5SMarek Vasut 1250cfb8afeSAndreas Wass /* 1260cfb8afeSAndreas Wass * DUART Serial Driver. 1270cfb8afeSAndreas Wass * Conflicts with AUART driver which can be set by board. 1280cfb8afeSAndreas Wass */ 1290cfb8afeSAndreas Wass #ifndef CONFIG_MXS_AUART 1305434caf5SMarek Vasut #define CONFIG_PL011_SERIAL 1315434caf5SMarek Vasut #define CONFIG_PL011_CLOCK 24000000 1325434caf5SMarek Vasut #define CONFIG_PL01x_PORTS { (void *)MXS_UARTDBG_BASE } 1335434caf5SMarek Vasut #define CONFIG_CONS_INDEX 0 1340cfb8afeSAndreas Wass #endif 1355434caf5SMarek Vasut /* Default baudrate can be overriden by board! */ 1365434caf5SMarek Vasut #ifndef CONFIG_BAUDRATE 1375434caf5SMarek Vasut #define CONFIG_BAUDRATE 115200 1385434caf5SMarek Vasut #endif 1395434caf5SMarek Vasut 1405434caf5SMarek Vasut /* FEC Ethernet on SoC */ 1415434caf5SMarek Vasut #ifdef CONFIG_FEC_MXC 1425434caf5SMarek Vasut #define CONFIG_MII 1435434caf5SMarek Vasut #ifndef CONFIG_ETHPRIME 1445434caf5SMarek Vasut #define CONFIG_ETHPRIME "FEC0" 1455434caf5SMarek Vasut #endif 1465434caf5SMarek Vasut #ifndef CONFIG_FEC_XCV_TYPE 1475434caf5SMarek Vasut #define CONFIG_FEC_XCV_TYPE RMII 1485434caf5SMarek Vasut #endif 1495434caf5SMarek Vasut #endif 1505434caf5SMarek Vasut 1515434caf5SMarek Vasut /* I2C */ 1525434caf5SMarek Vasut #ifdef CONFIG_CMD_I2C 1535434caf5SMarek Vasut #define CONFIG_I2C_MXS 1545434caf5SMarek Vasut #define CONFIG_HARD_I2C 1555434caf5SMarek Vasut #ifndef CONFIG_SYS_I2C_SPEED 1565434caf5SMarek Vasut #define CONFIG_SYS_I2C_SPEED 400000 1575434caf5SMarek Vasut #endif 1585434caf5SMarek Vasut #endif 1595434caf5SMarek Vasut 1605434caf5SMarek Vasut /* LCD */ 1615434caf5SMarek Vasut #ifdef CONFIG_VIDEO 1625434caf5SMarek Vasut #define CONFIG_CFB_CONSOLE 1635434caf5SMarek Vasut #define CONFIG_VIDEO_MXS 1645434caf5SMarek Vasut #define CONFIG_VIDEO_SW_CURSOR 1655434caf5SMarek Vasut #define CONFIG_VGA_AS_SINGLE_DEVICE 1665434caf5SMarek Vasut #define CONFIG_SYS_CONSOLE_IS_IN_ENV 1675434caf5SMarek Vasut #endif 1685434caf5SMarek Vasut 1695434caf5SMarek Vasut /* MMC */ 1705434caf5SMarek Vasut #ifdef CONFIG_CMD_MMC 1715434caf5SMarek Vasut #define CONFIG_MMC 1725434caf5SMarek Vasut #define CONFIG_GENERIC_MMC 1735434caf5SMarek Vasut #define CONFIG_BOUNCE_BUFFER 1745434caf5SMarek Vasut #define CONFIG_MXS_MMC 1755434caf5SMarek Vasut #endif 1765434caf5SMarek Vasut 1775434caf5SMarek Vasut /* NAND */ 1785434caf5SMarek Vasut #ifdef CONFIG_CMD_NAND 1795434caf5SMarek Vasut #define CONFIG_NAND_MXS 1805434caf5SMarek Vasut #define CONFIG_SYS_MAX_NAND_DEVICE 1 1815434caf5SMarek Vasut #define CONFIG_SYS_NAND_BASE 0x60000000 1825434caf5SMarek Vasut #define CONFIG_SYS_NAND_5_ADDR_CYCLE 1835434caf5SMarek Vasut #endif 1845434caf5SMarek Vasut 185*2bbcccf5SMarek Vasut /* OCOTP */ 186*2bbcccf5SMarek Vasut #ifdef CONFIG_CMD_FUSE 187*2bbcccf5SMarek Vasut #define CONFIG_MXS_OCOTP 188*2bbcccf5SMarek Vasut #endif 189*2bbcccf5SMarek Vasut 1905434caf5SMarek Vasut /* SPI */ 1915434caf5SMarek Vasut #ifdef CONFIG_CMD_SPI 1925434caf5SMarek Vasut #define CONFIG_HARD_SPI 1935434caf5SMarek Vasut #define CONFIG_MXS_SPI 1945434caf5SMarek Vasut #define CONFIG_SPI_HALF_DUPLEX 1955434caf5SMarek Vasut #endif 1965434caf5SMarek Vasut 1975434caf5SMarek Vasut /* USB */ 1985434caf5SMarek Vasut #ifdef CONFIG_CMD_USB 1995434caf5SMarek Vasut #define CONFIG_USB_EHCI 2005434caf5SMarek Vasut #define CONFIG_USB_EHCI_MXS 2015434caf5SMarek Vasut #define CONFIG_EHCI_IS_TDI 2025434caf5SMarek Vasut #endif 2035434caf5SMarek Vasut 2045434caf5SMarek Vasut #endif /* __CONFIGS_MXS_H__ */ 205