xref: /rk3399_rockchip-uboot/include/configs/mxs.h (revision 0cfb8afed3939e2db4e028a86ea4803f7475941f)
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