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