xref: /rk3399_rockchip-uboot/include/configs/vexpress_aemv8a.h (revision 3865ceb726d997731b14756b70ebf1e083c213fa)
112916829SDavid Feng /*
212916829SDavid Feng  * Configuration for Versatile Express. Parts were derived from other ARM
312916829SDavid Feng  *   configurations.
412916829SDavid Feng  *
512916829SDavid Feng  * SPDX-License-Identifier:	GPL-2.0+
612916829SDavid Feng  */
712916829SDavid Feng 
812916829SDavid Feng #ifndef __VEXPRESS_AEMV8A_H
912916829SDavid Feng #define __VEXPRESS_AEMV8A_H
1012916829SDavid Feng 
1112916829SDavid Feng #define DEBUG
1212916829SDavid Feng 
1312916829SDavid Feng #define CONFIG_REMAKE_ELF
1412916829SDavid Feng 
1512916829SDavid Feng /*#define CONFIG_ARMV8_SWITCH_TO_EL1*/
1612916829SDavid Feng 
1712916829SDavid Feng /*#define CONFIG_SYS_GENERIC_BOARD*/
1812916829SDavid Feng 
1912916829SDavid Feng #define CONFIG_SYS_NO_FLASH
2012916829SDavid Feng 
2112916829SDavid Feng #define CONFIG_SUPPORT_RAW_INITRD
2212916829SDavid Feng 
2312916829SDavid Feng /* Cache Definitions */
2412916829SDavid Feng #define CONFIG_SYS_DCACHE_OFF
2512916829SDavid Feng #define CONFIG_SYS_ICACHE_OFF
2612916829SDavid Feng 
2712916829SDavid Feng #define CONFIG_IDENT_STRING		" vexpress_aemv8a"
2812916829SDavid Feng #define CONFIG_BOOTP_VCI_STRING		"U-boot.armv8.vexpress_aemv8a"
2912916829SDavid Feng 
3012916829SDavid Feng /* Link Definitions */
3112916829SDavid Feng #define CONFIG_SYS_TEXT_BASE		0x80000000
3212916829SDavid Feng #define CONFIG_SYS_INIT_SP_ADDR         (CONFIG_SYS_SDRAM_BASE + 0x7fff0)
3312916829SDavid Feng 
3412916829SDavid Feng /* Flat Device Tree Definitions */
3512916829SDavid Feng #define CONFIG_OF_LIBFDT
3612916829SDavid Feng 
3712916829SDavid Feng #define CONFIG_DEFAULT_DEVICE_TREE	vexpress64
3812916829SDavid Feng 
3912916829SDavid Feng /* SMP Spin Table Definitions */
4012916829SDavid Feng #define CPU_RELEASE_ADDR		(CONFIG_SYS_SDRAM_BASE + 0x7fff0)
4112916829SDavid Feng 
4212916829SDavid Feng /* CS register bases for the original memory map. */
4312916829SDavid Feng #define V2M_PA_CS0			0x00000000
4412916829SDavid Feng #define V2M_PA_CS1			0x14000000
4512916829SDavid Feng #define V2M_PA_CS2			0x18000000
4612916829SDavid Feng #define V2M_PA_CS3			0x1c000000
4712916829SDavid Feng #define V2M_PA_CS4			0x0c000000
4812916829SDavid Feng #define V2M_PA_CS5			0x10000000
4912916829SDavid Feng 
5012916829SDavid Feng #define V2M_PERIPH_OFFSET(x)		(x << 16)
5112916829SDavid Feng #define V2M_SYSREGS			(V2M_PA_CS3 + V2M_PERIPH_OFFSET(1))
5212916829SDavid Feng #define V2M_SYSCTL			(V2M_PA_CS3 + V2M_PERIPH_OFFSET(2))
5312916829SDavid Feng #define V2M_SERIAL_BUS_PCI		(V2M_PA_CS3 + V2M_PERIPH_OFFSET(3))
5412916829SDavid Feng 
5512916829SDavid Feng #define V2M_BASE			0x80000000
5612916829SDavid Feng 
5712916829SDavid Feng /*
5812916829SDavid Feng  * Physical addresses, offset from V2M_PA_CS0-3
5912916829SDavid Feng  */
6012916829SDavid Feng #define V2M_NOR0			(V2M_PA_CS0)
6112916829SDavid Feng #define V2M_NOR1			(V2M_PA_CS4)
6212916829SDavid Feng #define V2M_SRAM			(V2M_PA_CS1)
6312916829SDavid Feng 
6412916829SDavid Feng /* Common peripherals relative to CS7. */
6512916829SDavid Feng #define V2M_AACI			(V2M_PA_CS3 + V2M_PERIPH_OFFSET(4))
6612916829SDavid Feng #define V2M_MMCI			(V2M_PA_CS3 + V2M_PERIPH_OFFSET(5))
6712916829SDavid Feng #define V2M_KMI0			(V2M_PA_CS3 + V2M_PERIPH_OFFSET(6))
6812916829SDavid Feng #define V2M_KMI1			(V2M_PA_CS3 + V2M_PERIPH_OFFSET(7))
6912916829SDavid Feng 
7012916829SDavid Feng #define V2M_UART0			(V2M_PA_CS3 + V2M_PERIPH_OFFSET(9))
7112916829SDavid Feng #define V2M_UART1			(V2M_PA_CS3 + V2M_PERIPH_OFFSET(10))
7212916829SDavid Feng #define V2M_UART2			(V2M_PA_CS3 + V2M_PERIPH_OFFSET(11))
7312916829SDavid Feng #define V2M_UART3			(V2M_PA_CS3 + V2M_PERIPH_OFFSET(12))
7412916829SDavid Feng 
7512916829SDavid Feng #define V2M_WDT				(V2M_PA_CS3 + V2M_PERIPH_OFFSET(15))
7612916829SDavid Feng 
7712916829SDavid Feng #define V2M_TIMER01			(V2M_PA_CS3 + V2M_PERIPH_OFFSET(17))
7812916829SDavid Feng #define V2M_TIMER23			(V2M_PA_CS3 + V2M_PERIPH_OFFSET(18))
7912916829SDavid Feng 
8012916829SDavid Feng #define V2M_SERIAL_BUS_DVI		(V2M_PA_CS3 + V2M_PERIPH_OFFSET(22))
8112916829SDavid Feng #define V2M_RTC				(V2M_PA_CS3 + V2M_PERIPH_OFFSET(23))
8212916829SDavid Feng 
8312916829SDavid Feng #define V2M_CF				(V2M_PA_CS3 + V2M_PERIPH_OFFSET(26))
8412916829SDavid Feng 
8512916829SDavid Feng #define V2M_CLCD			(V2M_PA_CS3 + V2M_PERIPH_OFFSET(31))
8612916829SDavid Feng 
8712916829SDavid Feng /* System register offsets. */
8812916829SDavid Feng #define V2M_SYS_CFGDATA			(V2M_SYSREGS + 0x0a0)
8912916829SDavid Feng #define V2M_SYS_CFGCTRL			(V2M_SYSREGS + 0x0a4)
9012916829SDavid Feng #define V2M_SYS_CFGSTAT			(V2M_SYSREGS + 0x0a8)
9112916829SDavid Feng 
9212916829SDavid Feng /* Generic Timer Definitions */
9312916829SDavid Feng #define COUNTER_FREQUENCY		(0x1800000)	/* 24MHz */
9412916829SDavid Feng 
9512916829SDavid Feng /* Generic Interrupt Controller Definitions */
9612916829SDavid Feng #define GICD_BASE			(0x2C001000)
9712916829SDavid Feng #define GICC_BASE			(0x2C002000)
9812916829SDavid Feng 
9912916829SDavid Feng #define CONFIG_SYS_MEMTEST_START	V2M_BASE
10012916829SDavid Feng #define CONFIG_SYS_MEMTEST_END		(V2M_BASE + 0x80000000)
10112916829SDavid Feng 
10212916829SDavid Feng /* Size of malloc() pool */
10312916829SDavid Feng #define CONFIG_SYS_MALLOC_LEN		(CONFIG_ENV_SIZE + 128 * 1024)
10412916829SDavid Feng 
105*3865ceb7SBhupesh Sharma /* SMSC91C111 Ethernet Configuration */
106*3865ceb7SBhupesh Sharma #define CONFIG_SMC91111			1
107*3865ceb7SBhupesh Sharma #define CONFIG_SMC91111_BASE		(0x01A000000)
10812916829SDavid Feng 
10912916829SDavid Feng /* PL011 Serial Configuration */
11012916829SDavid Feng #define CONFIG_PL011_SERIAL
11112916829SDavid Feng #define CONFIG_PL011_CLOCK		24000000
11212916829SDavid Feng #define CONFIG_PL01x_PORTS		{(void *)CONFIG_SYS_SERIAL0, \
11312916829SDavid Feng 					 (void *)CONFIG_SYS_SERIAL1}
11412916829SDavid Feng #define CONFIG_CONS_INDEX		0
11512916829SDavid Feng 
11612916829SDavid Feng #define CONFIG_BAUDRATE			115200
11712916829SDavid Feng #define CONFIG_SYS_BAUDRATE_TABLE	{ 9600, 19200, 38400, 57600, 115200 }
11812916829SDavid Feng #define CONFIG_SYS_SERIAL0		V2M_UART0
11912916829SDavid Feng #define CONFIG_SYS_SERIAL1		V2M_UART1
12012916829SDavid Feng 
12112916829SDavid Feng /* Command line configuration */
12212916829SDavid Feng #define CONFIG_MENU
12312916829SDavid Feng /*#define CONFIG_MENU_SHOW*/
12412916829SDavid Feng #define CONFIG_CMD_CACHE
12512916829SDavid Feng #define CONFIG_CMD_BDI
12612916829SDavid Feng #define CONFIG_CMD_DHCP
12712916829SDavid Feng #define CONFIG_CMD_PXE
12812916829SDavid Feng #define CONFIG_CMD_ENV
12912916829SDavid Feng #define CONFIG_CMD_FLASH
13012916829SDavid Feng #define CONFIG_CMD_IMI
13112916829SDavid Feng #define CONFIG_CMD_MEMORY
13212916829SDavid Feng #define CONFIG_CMD_MII
13312916829SDavid Feng #define CONFIG_CMD_NET
13412916829SDavid Feng #define CONFIG_CMD_PING
13512916829SDavid Feng #define CONFIG_CMD_SAVEENV
13612916829SDavid Feng #define CONFIG_CMD_RUN
13712916829SDavid Feng #define CONFIG_CMD_BOOTD
13812916829SDavid Feng #define CONFIG_CMD_ECHO
13912916829SDavid Feng #define CONFIG_CMD_SOURCE
14012916829SDavid Feng #define CONFIG_CMD_FAT
14112916829SDavid Feng #define CONFIG_DOS_PARTITION
14212916829SDavid Feng 
14312916829SDavid Feng /* BOOTP options */
14412916829SDavid Feng #define CONFIG_BOOTP_BOOTFILESIZE
14512916829SDavid Feng #define CONFIG_BOOTP_BOOTPATH
14612916829SDavid Feng #define CONFIG_BOOTP_GATEWAY
14712916829SDavid Feng #define CONFIG_BOOTP_HOSTNAME
14812916829SDavid Feng #define CONFIG_BOOTP_PXE
14912916829SDavid Feng #define CONFIG_BOOTP_PXE_CLIENTARCH	0x100
15012916829SDavid Feng 
15112916829SDavid Feng /* Miscellaneous configurable options */
15212916829SDavid Feng #define CONFIG_SYS_LOAD_ADDR		(V2M_BASE + 0x10000000)
15312916829SDavid Feng 
15412916829SDavid Feng /* Physical Memory Map */
15512916829SDavid Feng #define CONFIG_NR_DRAM_BANKS		1
15612916829SDavid Feng #define PHYS_SDRAM_1			(V2M_BASE)	/* SDRAM Bank #1 */
15712916829SDavid Feng #define PHYS_SDRAM_1_SIZE		0x80000000	/* 2048 MB */
15812916829SDavid Feng #define CONFIG_SYS_SDRAM_BASE		PHYS_SDRAM_1
15912916829SDavid Feng 
16012916829SDavid Feng /* Initial environment variables */
16112916829SDavid Feng #define CONFIG_EXTRA_ENV_SETTINGS	\
16212916829SDavid Feng 					"kernel_addr=0x200000\0"	\
16312916829SDavid Feng 					"initrd_addr=0xa00000\0"	\
16412916829SDavid Feng 					"initrd_size=0x2000000\0"	\
16512916829SDavid Feng 					"fdt_addr=0x100000\0"		\
16612916829SDavid Feng 					"fdt_high=0xa0000000\0"
16712916829SDavid Feng 
16812916829SDavid Feng #define CONFIG_BOOTARGS			"console=ttyAMA0 root=/dev/ram0"
16912916829SDavid Feng #define CONFIG_BOOTCOMMAND		"bootm $kernel_addr " \
17012916829SDavid Feng 					"$initrd_addr:$initrd_size $fdt_addr"
17112916829SDavid Feng #define CONFIG_BOOTDELAY		-1
17212916829SDavid Feng 
17312916829SDavid Feng /* Do not preserve environment */
17412916829SDavid Feng #define CONFIG_ENV_IS_NOWHERE		1
17512916829SDavid Feng #define CONFIG_ENV_SIZE			0x1000
17612916829SDavid Feng 
17712916829SDavid Feng /* Monitor Command Prompt */
17812916829SDavid Feng #define CONFIG_SYS_CBSIZE		512	/* Console I/O Buffer Size */
17912916829SDavid Feng #define CONFIG_SYS_PROMPT		"VExpress64# "
18012916829SDavid Feng #define CONFIG_SYS_PBSIZE		(CONFIG_SYS_CBSIZE + \
18112916829SDavid Feng 					sizeof(CONFIG_SYS_PROMPT) + 16)
18212916829SDavid Feng #define CONFIG_SYS_HUSH_PARSER
18312916829SDavid Feng #define CONFIG_SYS_PROMPT_HUSH_PS2	"> "
18412916829SDavid Feng #define CONFIG_SYS_BARGSIZE		CONFIG_SYS_CBSIZE
18512916829SDavid Feng #define CONFIG_SYS_LONGHELP
18612916829SDavid Feng #define CONFIG_CMDLINE_EDITING		1
18712916829SDavid Feng #define CONFIG_SYS_MAXARGS		64	/* max command args */
18812916829SDavid Feng 
18912916829SDavid Feng #endif /* __VEXPRESS_AEMV8A_H */
190