xref: /rk3399_rockchip-uboot/include/configs/vexpress_aemv8a.h (revision e593bf5eb36669a5f8a55271eb8c14cb4cf93961)
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 
11f91afc4dSLinus Walleij #ifdef CONFIG_TARGET_VEXPRESS64_BASE_FVP
12261d2760SDarwin Rambo #ifndef CONFIG_SEMIHOSTING
13f91afc4dSLinus Walleij #error CONFIG_TARGET_VEXPRESS64_BASE_FVP requires CONFIG_SEMIHOSTING
14261d2760SDarwin Rambo #endif
15261d2760SDarwin Rambo #define CONFIG_ARMV8_SWITCH_TO_EL1
16261d2760SDarwin Rambo #endif
17261d2760SDarwin Rambo 
1812916829SDavid Feng #define CONFIG_REMAKE_ELF
1912916829SDavid Feng 
2012916829SDavid Feng #define CONFIG_SUPPORT_RAW_INITRD
2112916829SDavid Feng 
22*e593bf5eSAlexander Graf /* MMU Definitions */
23*e593bf5eSAlexander Graf #define CONFIG_SYS_CACHELINE_SIZE	64
24*e593bf5eSAlexander Graf #define CONFIG_SYS_FULL_VA
2512916829SDavid Feng 
2612916829SDavid Feng #define CONFIG_IDENT_STRING		" vexpress_aemv8a"
27a187559eSBin Meng #define CONFIG_BOOTP_VCI_STRING		"U-Boot.armv8.vexpress_aemv8a"
2812916829SDavid Feng 
2912916829SDavid Feng /* Link Definitions */
30fc04b923SRyan Harkin #if defined(CONFIG_TARGET_VEXPRESS64_BASE_FVP) || \
31fc04b923SRyan Harkin 	defined(CONFIG_TARGET_VEXPRESS64_BASE_FVP_DRAM)
32261d2760SDarwin Rambo /* ATF loads u-boot here for BASE_FVP model */
33261d2760SDarwin Rambo #define CONFIG_SYS_TEXT_BASE		0x88000000
34261d2760SDarwin Rambo #define CONFIG_SYS_INIT_SP_ADDR         (CONFIG_SYS_SDRAM_BASE + 0x03f00000)
35ffc10373SLinus Walleij #elif CONFIG_TARGET_VEXPRESS64_JUNO
36ffc10373SLinus Walleij #define CONFIG_SYS_TEXT_BASE		0xe0000000
37ffc10373SLinus Walleij #define CONFIG_SYS_INIT_SP_ADDR         (CONFIG_SYS_SDRAM_BASE + 0x7fff0)
38261d2760SDarwin Rambo #endif
3912916829SDavid Feng 
400d3012afSRyan Harkin #define CONFIG_SYS_BOOTM_LEN (64 << 20)      /* Increase max gunzip size */
410d3012afSRyan Harkin 
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 /* Common peripherals relative to CS7. */
5812916829SDavid Feng #define V2M_AACI			(V2M_PA_CS3 + V2M_PERIPH_OFFSET(4))
5912916829SDavid Feng #define V2M_MMCI			(V2M_PA_CS3 + V2M_PERIPH_OFFSET(5))
6012916829SDavid Feng #define V2M_KMI0			(V2M_PA_CS3 + V2M_PERIPH_OFFSET(6))
6112916829SDavid Feng #define V2M_KMI1			(V2M_PA_CS3 + V2M_PERIPH_OFFSET(7))
6212916829SDavid Feng 
63ffc10373SLinus Walleij #ifdef CONFIG_TARGET_VEXPRESS64_JUNO
64ffc10373SLinus Walleij #define V2M_UART0			0x7ff80000
65ffc10373SLinus Walleij #define V2M_UART1			0x7ff70000
66ffc10373SLinus Walleij #else /* Not Juno */
6712916829SDavid Feng #define V2M_UART0			(V2M_PA_CS3 + V2M_PERIPH_OFFSET(9))
6812916829SDavid Feng #define V2M_UART1			(V2M_PA_CS3 + V2M_PERIPH_OFFSET(10))
6912916829SDavid Feng #define V2M_UART2			(V2M_PA_CS3 + V2M_PERIPH_OFFSET(11))
7012916829SDavid Feng #define V2M_UART3			(V2M_PA_CS3 + V2M_PERIPH_OFFSET(12))
71ffc10373SLinus Walleij #endif
7212916829SDavid Feng 
7312916829SDavid Feng #define V2M_WDT				(V2M_PA_CS3 + V2M_PERIPH_OFFSET(15))
7412916829SDavid Feng 
7512916829SDavid Feng #define V2M_TIMER01			(V2M_PA_CS3 + V2M_PERIPH_OFFSET(17))
7612916829SDavid Feng #define V2M_TIMER23			(V2M_PA_CS3 + V2M_PERIPH_OFFSET(18))
7712916829SDavid Feng 
7812916829SDavid Feng #define V2M_SERIAL_BUS_DVI		(V2M_PA_CS3 + V2M_PERIPH_OFFSET(22))
7912916829SDavid Feng #define V2M_RTC				(V2M_PA_CS3 + V2M_PERIPH_OFFSET(23))
8012916829SDavid Feng 
8112916829SDavid Feng #define V2M_CF				(V2M_PA_CS3 + V2M_PERIPH_OFFSET(26))
8212916829SDavid Feng 
8312916829SDavid Feng #define V2M_CLCD			(V2M_PA_CS3 + V2M_PERIPH_OFFSET(31))
8412916829SDavid Feng 
8512916829SDavid Feng /* System register offsets. */
8612916829SDavid Feng #define V2M_SYS_CFGDATA			(V2M_SYSREGS + 0x0a0)
8712916829SDavid Feng #define V2M_SYS_CFGCTRL			(V2M_SYSREGS + 0x0a4)
8812916829SDavid Feng #define V2M_SYS_CFGSTAT			(V2M_SYSREGS + 0x0a8)
8912916829SDavid Feng 
9012916829SDavid Feng /* Generic Timer Definitions */
9112916829SDavid Feng #define COUNTER_FREQUENCY		(0x1800000)	/* 24MHz */
9212916829SDavid Feng 
9312916829SDavid Feng /* Generic Interrupt Controller Definitions */
94c71645adSDavid Feng #ifdef CONFIG_GICV3
95c71645adSDavid Feng #define GICD_BASE			(0x2f000000)
96c71645adSDavid Feng #define GICR_BASE			(0x2f100000)
97c71645adSDavid Feng #else
98261d2760SDarwin Rambo 
99fc04b923SRyan Harkin #if defined(CONFIG_TARGET_VEXPRESS64_BASE_FVP) || \
100fc04b923SRyan Harkin 	defined(CONFIG_TARGET_VEXPRESS64_BASE_FVP_DRAM)
101261d2760SDarwin Rambo #define GICD_BASE			(0x2f000000)
102261d2760SDarwin Rambo #define GICC_BASE			(0x2c000000)
103ffc10373SLinus Walleij #elif CONFIG_TARGET_VEXPRESS64_JUNO
104ffc10373SLinus Walleij #define GICD_BASE			(0x2C010000)
105ffc10373SLinus Walleij #define GICC_BASE			(0x2C02f000)
106c71645adSDavid Feng #endif
10703314f0eSLinus Walleij #endif /* !CONFIG_GICV3 */
10812916829SDavid Feng 
10912916829SDavid Feng /* Size of malloc() pool */
1105bcae13eSTom Rini #define CONFIG_SYS_MALLOC_LEN		(CONFIG_ENV_SIZE + (8 << 20))
11112916829SDavid Feng 
112b31f9d7aSLinus Walleij /* Ethernet Configuration */
113b31f9d7aSLinus Walleij #ifdef CONFIG_TARGET_VEXPRESS64_JUNO
114b31f9d7aSLinus Walleij /* The real hardware Versatile express uses SMSC9118 */
115b31f9d7aSLinus Walleij #define CONFIG_SMC911X			1
116b31f9d7aSLinus Walleij #define CONFIG_SMC911X_32_BIT		1
117b31f9d7aSLinus Walleij #define CONFIG_SMC911X_BASE		(0x018000000)
118b31f9d7aSLinus Walleij #else
119b31f9d7aSLinus Walleij /* The Vexpress64 simulators use SMSC91C111 */
1203865ceb7SBhupesh Sharma #define CONFIG_SMC91111			1
1213865ceb7SBhupesh Sharma #define CONFIG_SMC91111_BASE		(0x01A000000)
122b31f9d7aSLinus Walleij #endif
12312916829SDavid Feng 
12412916829SDavid Feng /* PL011 Serial Configuration */
125d280ea00SLinus Walleij #define CONFIG_BAUDRATE			115200
126d8bafe13SDavid Feng #define CONFIG_CONS_INDEX		0
127d280ea00SLinus Walleij #define CONFIG_PL01X_SERIAL
12812916829SDavid Feng #define CONFIG_PL011_SERIAL
129ffc10373SLinus Walleij #ifdef CONFIG_TARGET_VEXPRESS64_JUNO
130ffc10373SLinus Walleij #define CONFIG_PL011_CLOCK		7273800
131ffc10373SLinus Walleij #else
13212916829SDavid Feng #define CONFIG_PL011_CLOCK		24000000
133ffc10373SLinus Walleij #endif
13412916829SDavid Feng 
13512916829SDavid Feng /* Command line configuration */
13612916829SDavid Feng #define CONFIG_MENU
13712916829SDavid Feng /*#define CONFIG_MENU_SHOW*/
13812916829SDavid Feng #define CONFIG_CMD_CACHE
13967172528STom Rini #define CONFIG_CMD_BOOTI
14067172528STom Rini #define CONFIG_CMD_UNZIP
14112916829SDavid Feng #define CONFIG_CMD_DHCP
14212916829SDavid Feng #define CONFIG_CMD_PXE
14312916829SDavid Feng #define CONFIG_CMD_ENV
14412916829SDavid Feng #define CONFIG_CMD_MII
14512916829SDavid Feng #define CONFIG_CMD_PING
14612916829SDavid Feng #define CONFIG_CMD_FAT
14712916829SDavid Feng #define CONFIG_DOS_PARTITION
14812916829SDavid Feng 
14912916829SDavid Feng /* BOOTP options */
15012916829SDavid Feng #define CONFIG_BOOTP_BOOTFILESIZE
15112916829SDavid Feng #define CONFIG_BOOTP_BOOTPATH
15212916829SDavid Feng #define CONFIG_BOOTP_GATEWAY
15312916829SDavid Feng #define CONFIG_BOOTP_HOSTNAME
15412916829SDavid Feng #define CONFIG_BOOTP_PXE
15512916829SDavid Feng #define CONFIG_BOOTP_PXE_CLIENTARCH	0x100
15612916829SDavid Feng 
15712916829SDavid Feng /* Miscellaneous configurable options */
15812916829SDavid Feng #define CONFIG_SYS_LOAD_ADDR		(V2M_BASE + 0x10000000)
15912916829SDavid Feng 
16012916829SDavid Feng /* Physical Memory Map */
16112916829SDavid Feng #define PHYS_SDRAM_1			(V2M_BASE)	/* SDRAM Bank #1 */
16230355708SLinus Walleij /* Top 16MB reserved for secure world use */
16330355708SLinus Walleij #define DRAM_SEC_SIZE		0x01000000
16430355708SLinus Walleij #define PHYS_SDRAM_1_SIZE	0x80000000 - DRAM_SEC_SIZE
16512916829SDavid Feng #define CONFIG_SYS_SDRAM_BASE	PHYS_SDRAM_1
16612916829SDavid Feng 
1672c2b2183SRyan Harkin #ifdef CONFIG_TARGET_VEXPRESS64_JUNO
1682c2b2183SRyan Harkin #define CONFIG_NR_DRAM_BANKS		2
1692c2b2183SRyan Harkin #define PHYS_SDRAM_2			(0x880000000)
1702c2b2183SRyan Harkin #define PHYS_SDRAM_2_SIZE		0x180000000
1712c2b2183SRyan Harkin #else
1722c2b2183SRyan Harkin #define CONFIG_NR_DRAM_BANKS		1
1732c2b2183SRyan Harkin #endif
1742c2b2183SRyan Harkin 
17530355708SLinus Walleij /* Enable memtest */
17630355708SLinus Walleij #define CONFIG_CMD_MEMTEST
17730355708SLinus Walleij #define CONFIG_SYS_MEMTEST_START	PHYS_SDRAM_1
17830355708SLinus Walleij #define CONFIG_SYS_MEMTEST_END		(PHYS_SDRAM_1 + PHYS_SDRAM_1_SIZE)
17930355708SLinus Walleij 
18012916829SDavid Feng /* Initial environment variables */
18110d1491bSLinus Walleij #ifdef CONFIG_TARGET_VEXPRESS64_JUNO
18210d1491bSLinus Walleij /*
18310d1491bSLinus Walleij  * Defines where the kernel and FDT exist in NOR flash and where it will
18410d1491bSLinus Walleij  * be copied into DRAM
18510d1491bSLinus Walleij  */
18610d1491bSLinus Walleij #define CONFIG_EXTRA_ENV_SETTINGS	\
187ecbed5d6SRyan Harkin 				"kernel_name=norkern\0"	\
188ecbed5d6SRyan Harkin 				"kernel_alt_name=Image\0"	\
1897babe482SAndre Przywara 				"kernel_addr=0x80080000\0" \
1904a6bdb59SRyan Harkin 				"initrd_name=ramdisk.img\0"	\
1914a6bdb59SRyan Harkin 				"initrd_addr=0x84000000\0"	\
192ecbed5d6SRyan Harkin 				"fdt_name=board.dtb\0" \
193ecbed5d6SRyan Harkin 				"fdt_alt_name=juno\0" \
19410d1491bSLinus Walleij 				"fdt_addr=0x83000000\0" \
19510d1491bSLinus Walleij 				"fdt_high=0xffffffffffffffff\0" \
19610d1491bSLinus Walleij 				"initrd_high=0xffffffffffffffff\0" \
19710d1491bSLinus Walleij 
19810d1491bSLinus Walleij /* Assume we boot with root on the first partition of a USB stick */
19910d1491bSLinus Walleij #define CONFIG_BOOTARGS		"console=ttyAMA0,115200n8 " \
200492f24e8SRyan Harkin 				"root=/dev/sda2 rw " \
20133665f7cSLinus Walleij 				"rootwait "\
202c0ae9703SRyan Harkin 				"earlyprintk=pl011,0x7ff80000 debug "\
203c0ae9703SRyan Harkin 				"user_debug=31 "\
20474e264b4SRyan Harkin 				"androidboot.hardware=juno "\
20510d1491bSLinus Walleij 				"loglevel=9"
20610d1491bSLinus Walleij 
20710d1491bSLinus Walleij /* Copy the kernel and FDT to DRAM memory and boot */
20810d1491bSLinus Walleij #define CONFIG_BOOTCOMMAND	"afs load ${kernel_name} ${kernel_addr} ; " \
209ecbed5d6SRyan Harkin 				"if test $? -eq 1; then "\
210ecbed5d6SRyan Harkin 				"  echo Loading ${kernel_alt_name} instead of "\
211ecbed5d6SRyan Harkin 				"${kernel_name}; "\
212ecbed5d6SRyan Harkin 				"  afs load ${kernel_alt_name} ${kernel_addr};"\
213ecbed5d6SRyan Harkin 				"fi ; "\
21410d1491bSLinus Walleij 				"afs load  ${fdt_name} ${fdt_addr} ; " \
215ecbed5d6SRyan Harkin 				"if test $? -eq 1; then "\
216ecbed5d6SRyan Harkin 				"  echo Loading ${fdt_alt_name} instead of "\
217ecbed5d6SRyan Harkin 				"${fdt_name}; "\
218ecbed5d6SRyan Harkin 				"  afs load ${fdt_alt_name} ${fdt_addr}; "\
219ecbed5d6SRyan Harkin 				"fi ; "\
22010d1491bSLinus Walleij 				"fdt addr ${fdt_addr}; fdt resize; " \
2214a6bdb59SRyan Harkin 				"if afs load  ${initrd_name} ${initrd_addr} ; "\
2224a6bdb59SRyan Harkin 				"then "\
2234a6bdb59SRyan Harkin 				"  setenv initrd_param ${initrd_addr}; "\
2244a6bdb59SRyan Harkin 				"  else setenv initrd_param -; "\
2254a6bdb59SRyan Harkin 				"fi ; " \
2264a6bdb59SRyan Harkin 				"booti ${kernel_addr} ${initrd_param} ${fdt_addr}"
22710d1491bSLinus Walleij 
22810d1491bSLinus Walleij #define CONFIG_BOOTDELAY		1
22910d1491bSLinus Walleij 
23010d1491bSLinus Walleij #elif CONFIG_TARGET_VEXPRESS64_BASE_FVP
23112916829SDavid Feng #define CONFIG_EXTRA_ENV_SETTINGS	\
2321fd0f92eSLinus Walleij 				"kernel_name=Image\0"		\
2337babe482SAndre Przywara 				"kernel_addr=0x80080000\0"	\
234261d2760SDarwin Rambo 				"initrd_name=ramdisk.img\0"	\
23549995ffeSLinus Walleij 				"initrd_addr=0x88000000\0"	\
236261d2760SDarwin Rambo 				"fdt_name=devtree.dtb\0"	\
23749995ffeSLinus Walleij 				"fdt_addr=0x83000000\0"		\
238261d2760SDarwin Rambo 				"fdt_high=0xffffffffffffffff\0"	\
239261d2760SDarwin Rambo 				"initrd_high=0xffffffffffffffff\0"
240261d2760SDarwin Rambo 
241261d2760SDarwin Rambo #define CONFIG_BOOTARGS		"console=ttyAMA0 earlyprintk=pl011,"\
242261d2760SDarwin Rambo 				"0x1c090000 debug user_debug=31 "\
243261d2760SDarwin Rambo 				"loglevel=9"
244261d2760SDarwin Rambo 
24549995ffeSLinus Walleij #define CONFIG_BOOTCOMMAND	"smhload ${kernel_name} ${kernel_addr}; " \
2461fd0f92eSLinus Walleij 				"smhload ${fdt_name} ${fdt_addr}; " \
247c0ae9703SRyan Harkin 				"smhload ${initrd_name} ${initrd_addr} "\
248c0ae9703SRyan Harkin 				"initrd_end; " \
2491fd0f92eSLinus Walleij 				"fdt addr ${fdt_addr}; fdt resize; " \
2501fd0f92eSLinus Walleij 				"fdt chosen ${initrd_addr} ${initrd_end}; " \
2511fd0f92eSLinus Walleij 				"booti $kernel_addr - $fdt_addr"
252261d2760SDarwin Rambo 
253261d2760SDarwin Rambo #define CONFIG_BOOTDELAY		1
254261d2760SDarwin Rambo 
255fc04b923SRyan Harkin #elif CONFIG_TARGET_VEXPRESS64_BASE_FVP_DRAM
256fc04b923SRyan Harkin #define CONFIG_EXTRA_ENV_SETTINGS	\
257fc04b923SRyan Harkin 				"kernel_addr=0x80080000\0"	\
258fc04b923SRyan Harkin 				"initrd_addr=0x84000000\0"	\
259fc04b923SRyan Harkin 				"fdt_addr=0x83000000\0"		\
260fc04b923SRyan Harkin 				"fdt_high=0xffffffffffffffff\0"	\
261fc04b923SRyan Harkin 				"initrd_high=0xffffffffffffffff\0"
262fc04b923SRyan Harkin 
263fc04b923SRyan Harkin #define CONFIG_BOOTARGS		"console=ttyAMA0 earlyprintk=pl011,"\
264fc04b923SRyan Harkin 				"0x1c090000 debug user_debug=31 "\
265fc04b923SRyan Harkin 				"androidboot.hardware=fvpbase "\
266fc04b923SRyan Harkin 				"root=/dev/vda2 rw "\
267fc04b923SRyan Harkin 				"rootwait "\
268fc04b923SRyan Harkin 				"loglevel=9"
269fc04b923SRyan Harkin 
270fc04b923SRyan Harkin #define CONFIG_BOOTCOMMAND	"booti $kernel_addr $initrd_addr $fdt_addr"
271fc04b923SRyan Harkin 
272fc04b923SRyan Harkin #define CONFIG_BOOTDELAY		1
273fc04b923SRyan Harkin 
274261d2760SDarwin Rambo #endif
27512916829SDavid Feng 
27612916829SDavid Feng /* Monitor Command Prompt */
27712916829SDavid Feng #define CONFIG_SYS_CBSIZE		512	/* Console I/O Buffer Size */
27812916829SDavid Feng #define CONFIG_SYS_PBSIZE		(CONFIG_SYS_CBSIZE + \
27912916829SDavid Feng 					sizeof(CONFIG_SYS_PROMPT) + 16)
28012916829SDavid Feng #define CONFIG_SYS_HUSH_PARSER
28112916829SDavid Feng #define CONFIG_SYS_BARGSIZE		CONFIG_SYS_CBSIZE
28212916829SDavid Feng #define CONFIG_SYS_LONGHELP
2835bcae13eSTom Rini #define CONFIG_CMDLINE_EDITING
28412916829SDavid Feng #define CONFIG_SYS_MAXARGS		64	/* max command args */
28512916829SDavid Feng 
286f3c71c93SRyan Harkin #ifdef CONFIG_TARGET_VEXPRESS64_JUNO
287f3c71c93SRyan Harkin #define CONFIG_SYS_FLASH_BASE		0x08000000
288f3c71c93SRyan Harkin /* 255 x 256KiB sectors + 4 x 64KiB sectors at the end = 259 */
289f3c71c93SRyan Harkin #define CONFIG_SYS_MAX_FLASH_SECT	259
290f3c71c93SRyan Harkin /* Store environment at top of flash in the same location as blank.img */
291f3c71c93SRyan Harkin /* in the Juno firmware. */
292f3c71c93SRyan Harkin #define CONFIG_ENV_ADDR			0x0BFC0000
293f3c71c93SRyan Harkin #define CONFIG_ENV_SECT_SIZE		0x00010000
29414f264e6SLinus Walleij #else
295f3c71c93SRyan Harkin #define CONFIG_SYS_FLASH_BASE		0x0C000000
296f3c71c93SRyan Harkin /* 256 x 256KiB sectors */
297f3c71c93SRyan Harkin #define CONFIG_SYS_MAX_FLASH_SECT	256
298f3c71c93SRyan Harkin /* Store environment at top of flash */
299f3c71c93SRyan Harkin #define CONFIG_ENV_ADDR			0x0FFC0000
300f3c71c93SRyan Harkin #define CONFIG_ENV_SECT_SIZE		0x00040000
301f3c71c93SRyan Harkin #endif
302f3c71c93SRyan Harkin 
30310d1491bSLinus Walleij #define CONFIG_CMD_ARMFLASH
30414f264e6SLinus Walleij #define CONFIG_SYS_FLASH_CFI		1
30514f264e6SLinus Walleij #define CONFIG_FLASH_CFI_DRIVER		1
306f19f389fSRyan Harkin #define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_32BIT
307f3c71c93SRyan Harkin #define CONFIG_SYS_MAX_FLASH_BANKS	1
30814f264e6SLinus Walleij 
30914f264e6SLinus Walleij #define CONFIG_SYS_FLASH_USE_BUFFER_WRITE /* use buffered writes */
31014f264e6SLinus Walleij #define CONFIG_SYS_FLASH_PROTECTION	/* The devices have real protection */
31114f264e6SLinus Walleij #define CONFIG_SYS_FLASH_EMPTY_INFO	/* flinfo indicates empty blocks */
312f3c71c93SRyan Harkin #define FLASH_MAX_SECTOR_SIZE		0x00040000
313f3c71c93SRyan Harkin #define CONFIG_ENV_SIZE			CONFIG_ENV_SECT_SIZE
314f3c71c93SRyan Harkin #define CONFIG_ENV_IS_IN_FLASH		1
31514f264e6SLinus Walleij 
31614f264e6SLinus Walleij 
31712916829SDavid Feng #endif /* __VEXPRESS_AEMV8A_H */
318