xref: /openbmc/u-boot/include/configs/mxs.h (revision 2acc24fc28ef782f4baef1aa0193d520ee9610b9)
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 /* Startup hooks */
455434caf5SMarek Vasut 
465434caf5SMarek Vasut /* SPL */
47*07a8f79eSMans Rullgard #ifndef CONFIG_SPL_FRAMEWORK
485434caf5SMarek Vasut #define CONFIG_SPL_NO_CPU_SUPPORT_CODE
495434caf5SMarek Vasut #define CONFIG_SPL_START_S_PATH	"arch/arm/cpu/arm926ejs/mxs"
50*07a8f79eSMans Rullgard #endif
515434caf5SMarek Vasut 
525434caf5SMarek Vasut /* Memory sizes */
535434caf5SMarek Vasut #define CONFIG_SYS_MALLOC_LEN		0x00400000	/* 4 MB for malloc */
545434caf5SMarek Vasut #define CONFIG_SYS_MEMTEST_START	0x40000000	/* Memtest start adr */
555434caf5SMarek Vasut #define CONFIG_SYS_MEMTEST_END		0x40400000	/* 4 MB RAM test */
565434caf5SMarek Vasut 
575434caf5SMarek Vasut /* OCRAM at 0x0 ; 32kB on MX23 ; 128kB on MX28 */
585434caf5SMarek Vasut #define CONFIG_SYS_INIT_RAM_ADDR	0x00000000
595434caf5SMarek Vasut #if defined(CONFIG_MX23)
605434caf5SMarek Vasut #define CONFIG_SYS_INIT_RAM_SIZE	(32 * 1024)
615434caf5SMarek Vasut #elif defined(CONFIG_MX28)
625434caf5SMarek Vasut #define CONFIG_SYS_INIT_RAM_SIZE	(128 * 1024)
635434caf5SMarek Vasut #endif
645434caf5SMarek Vasut 
655434caf5SMarek Vasut /* Point initial SP in SRAM so SPL can use it too. */
665434caf5SMarek Vasut #define CONFIG_SYS_INIT_SP_OFFSET \
675434caf5SMarek Vasut 	(CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
685434caf5SMarek Vasut #define CONFIG_SYS_INIT_SP_ADDR \
695434caf5SMarek Vasut 	(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)
705434caf5SMarek Vasut 
715434caf5SMarek Vasut /*
725434caf5SMarek Vasut  * We need to sacrifice first 4 bytes of RAM here to avoid triggering some
735434caf5SMarek Vasut  * strange BUG in ROM corrupting first 4 bytes of RAM when loading U-Boot
745434caf5SMarek Vasut  * binary. In case there was more of this mess, 0x100 bytes are skipped.
759c2c8a31SMarek Vasut  *
769c2c8a31SMarek Vasut  * In case of a HAB boot, we cannot for some weird reason use the first 4KiB
779c2c8a31SMarek Vasut  * of DRAM when loading. Moreover, we use the first 4 KiB for IVT and CST
789c2c8a31SMarek Vasut  * blocks, thus U-Boot starts at offset +8 KiB of DRAM start.
799c2c8a31SMarek Vasut  *
809c2c8a31SMarek Vasut  * As for the SPL, we must avoid the first 4 KiB as well, but we load the
819c2c8a31SMarek Vasut  * IVT and CST to 0x8000, so we don't need to waste the subsequent 4 KiB.
825434caf5SMarek Vasut  */
839c2c8a31SMarek Vasut #define CONFIG_SPL_TEXT_BASE		0x00001000
845434caf5SMarek Vasut 
855434caf5SMarek Vasut /* U-Boot general configuration */
865434caf5SMarek Vasut #define CONFIG_SYS_CBSIZE	1024		/* Console I/O buffer size */
875434caf5SMarek Vasut #define CONFIG_SYS_MAXARGS	32		/* Max number of command args */
885434caf5SMarek Vasut #define CONFIG_SYS_BARGSIZE	CONFIG_SYS_CBSIZE
895434caf5SMarek Vasut 						/* Boot argument buffer size */
905434caf5SMarek Vasut 
915434caf5SMarek Vasut /* Booting Linux */
925434caf5SMarek Vasut #define CONFIG_CMDLINE_TAG
935434caf5SMarek Vasut #define CONFIG_SETUP_MEMORY_TAGS
945434caf5SMarek Vasut 
955434caf5SMarek Vasut /*
965434caf5SMarek Vasut  * Drivers
975434caf5SMarek Vasut  */
985434caf5SMarek Vasut 
995434caf5SMarek Vasut /* APBH DMA */
1005434caf5SMarek Vasut 
1015434caf5SMarek Vasut /* GPIO */
1025434caf5SMarek Vasut #define CONFIG_MXS_GPIO
1035434caf5SMarek Vasut 
1040cfb8afeSAndreas Wass /*
1050cfb8afeSAndreas Wass  * DUART Serial Driver.
1060cfb8afeSAndreas Wass  * Conflicts with AUART driver which can be set by board.
1070cfb8afeSAndreas Wass  */
1085434caf5SMarek Vasut #define CONFIG_PL011_CLOCK		24000000
1095434caf5SMarek Vasut #define CONFIG_PL01x_PORTS		{ (void *)MXS_UARTDBG_BASE }
11062a3b7ddSRobert P. J. Day /* Default baudrate can be overridden by board! */
1115434caf5SMarek Vasut 
1125434caf5SMarek Vasut /* FEC Ethernet on SoC */
1135434caf5SMarek Vasut #ifdef CONFIG_FEC_MXC
1145434caf5SMarek Vasut #ifndef CONFIG_ETHPRIME
1155434caf5SMarek Vasut #define CONFIG_ETHPRIME			"FEC0"
1165434caf5SMarek Vasut #endif
1175434caf5SMarek Vasut #ifndef CONFIG_FEC_XCV_TYPE
1185434caf5SMarek Vasut #define CONFIG_FEC_XCV_TYPE		RMII
1195434caf5SMarek Vasut #endif
1205434caf5SMarek Vasut #endif
1215434caf5SMarek Vasut 
1225434caf5SMarek Vasut /* LCD */
1235434caf5SMarek Vasut #ifdef CONFIG_VIDEO
1245434caf5SMarek Vasut #define CONFIG_VIDEO_MXS
1255434caf5SMarek Vasut #endif
1265434caf5SMarek Vasut 
1275434caf5SMarek Vasut /* NAND */
1285434caf5SMarek Vasut #ifdef CONFIG_CMD_NAND
1295434caf5SMarek Vasut #define CONFIG_SYS_MAX_NAND_DEVICE	1
1305434caf5SMarek Vasut #define CONFIG_SYS_NAND_BASE		0x60000000
1315434caf5SMarek Vasut #define CONFIG_SYS_NAND_5_ADDR_CYCLE
1325434caf5SMarek Vasut #endif
1335434caf5SMarek Vasut 
1342bbcccf5SMarek Vasut /* OCOTP */
1352bbcccf5SMarek Vasut #ifdef CONFIG_CMD_FUSE
1362bbcccf5SMarek Vasut #define CONFIG_MXS_OCOTP
1372bbcccf5SMarek Vasut #endif
1382bbcccf5SMarek Vasut 
1395434caf5SMarek Vasut /* SPI */
1405434caf5SMarek Vasut #ifdef CONFIG_CMD_SPI
1415434caf5SMarek Vasut #define CONFIG_SPI_HALF_DUPLEX
1425434caf5SMarek Vasut #endif
1435434caf5SMarek Vasut 
1445434caf5SMarek Vasut /* USB */
1455434caf5SMarek Vasut #ifdef CONFIG_CMD_USB
1465434caf5SMarek Vasut #define CONFIG_USB_EHCI_MXS
1475434caf5SMarek Vasut #define CONFIG_EHCI_IS_TDI
1485434caf5SMarek Vasut #endif
1495434caf5SMarek Vasut 
1505434caf5SMarek Vasut #endif	/* __CONFIGS_MXS_H__ */
151