xref: /rk3399_rockchip-uboot/include/configs/vexpress_aemv8a.h (revision da3e620d68ba06d7cb501f4756db7a3caf90e215)
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 
22e593bf5eSAlexander Graf /* MMU Definitions */
23e593bf5eSAlexander Graf #define CONFIG_SYS_CACHELINE_SIZE	64
2412916829SDavid Feng 
2512916829SDavid Feng #define CONFIG_IDENT_STRING		" vexpress_aemv8a"
26a187559eSBin Meng #define CONFIG_BOOTP_VCI_STRING		"U-Boot.armv8.vexpress_aemv8a"
2712916829SDavid Feng 
2812916829SDavid Feng /* Link Definitions */
29fc04b923SRyan Harkin #if defined(CONFIG_TARGET_VEXPRESS64_BASE_FVP) || \
30fc04b923SRyan Harkin 	defined(CONFIG_TARGET_VEXPRESS64_BASE_FVP_DRAM)
31261d2760SDarwin Rambo /* ATF loads u-boot here for BASE_FVP model */
32261d2760SDarwin Rambo #define CONFIG_SYS_TEXT_BASE		0x88000000
33261d2760SDarwin Rambo #define CONFIG_SYS_INIT_SP_ADDR         (CONFIG_SYS_SDRAM_BASE + 0x03f00000)
34ffc10373SLinus Walleij #elif CONFIG_TARGET_VEXPRESS64_JUNO
35ffc10373SLinus Walleij #define CONFIG_SYS_TEXT_BASE		0xe0000000
36ffc10373SLinus Walleij #define CONFIG_SYS_INIT_SP_ADDR         (CONFIG_SYS_SDRAM_BASE + 0x7fff0)
37261d2760SDarwin Rambo #endif
3812916829SDavid Feng 
390d3012afSRyan Harkin #define CONFIG_SYS_BOOTM_LEN (64 << 20)      /* Increase max gunzip size */
400d3012afSRyan Harkin 
4112916829SDavid Feng /* CS register bases for the original memory map. */
4212916829SDavid Feng #define V2M_PA_CS0			0x00000000
4312916829SDavid Feng #define V2M_PA_CS1			0x14000000
4412916829SDavid Feng #define V2M_PA_CS2			0x18000000
4512916829SDavid Feng #define V2M_PA_CS3			0x1c000000
4612916829SDavid Feng #define V2M_PA_CS4			0x0c000000
4712916829SDavid Feng #define V2M_PA_CS5			0x10000000
4812916829SDavid Feng 
4912916829SDavid Feng #define V2M_PERIPH_OFFSET(x)		(x << 16)
5012916829SDavid Feng #define V2M_SYSREGS			(V2M_PA_CS3 + V2M_PERIPH_OFFSET(1))
5112916829SDavid Feng #define V2M_SYSCTL			(V2M_PA_CS3 + V2M_PERIPH_OFFSET(2))
5212916829SDavid Feng #define V2M_SERIAL_BUS_PCI		(V2M_PA_CS3 + V2M_PERIPH_OFFSET(3))
5312916829SDavid Feng 
5412916829SDavid Feng #define V2M_BASE			0x80000000
5512916829SDavid Feng 
5612916829SDavid Feng /* Common peripherals relative to CS7. */
5712916829SDavid Feng #define V2M_AACI			(V2M_PA_CS3 + V2M_PERIPH_OFFSET(4))
5812916829SDavid Feng #define V2M_MMCI			(V2M_PA_CS3 + V2M_PERIPH_OFFSET(5))
5912916829SDavid Feng #define V2M_KMI0			(V2M_PA_CS3 + V2M_PERIPH_OFFSET(6))
6012916829SDavid Feng #define V2M_KMI1			(V2M_PA_CS3 + V2M_PERIPH_OFFSET(7))
6112916829SDavid Feng 
62ffc10373SLinus Walleij #ifdef CONFIG_TARGET_VEXPRESS64_JUNO
63ffc10373SLinus Walleij #define V2M_UART0			0x7ff80000
64ffc10373SLinus Walleij #define V2M_UART1			0x7ff70000
65ffc10373SLinus Walleij #else /* Not Juno */
6612916829SDavid Feng #define V2M_UART0			(V2M_PA_CS3 + V2M_PERIPH_OFFSET(9))
6712916829SDavid Feng #define V2M_UART1			(V2M_PA_CS3 + V2M_PERIPH_OFFSET(10))
6812916829SDavid Feng #define V2M_UART2			(V2M_PA_CS3 + V2M_PERIPH_OFFSET(11))
6912916829SDavid Feng #define V2M_UART3			(V2M_PA_CS3 + V2M_PERIPH_OFFSET(12))
70ffc10373SLinus Walleij #endif
7112916829SDavid Feng 
7212916829SDavid Feng #define V2M_WDT				(V2M_PA_CS3 + V2M_PERIPH_OFFSET(15))
7312916829SDavid Feng 
7412916829SDavid Feng #define V2M_TIMER01			(V2M_PA_CS3 + V2M_PERIPH_OFFSET(17))
7512916829SDavid Feng #define V2M_TIMER23			(V2M_PA_CS3 + V2M_PERIPH_OFFSET(18))
7612916829SDavid Feng 
7712916829SDavid Feng #define V2M_SERIAL_BUS_DVI		(V2M_PA_CS3 + V2M_PERIPH_OFFSET(22))
7812916829SDavid Feng #define V2M_RTC				(V2M_PA_CS3 + V2M_PERIPH_OFFSET(23))
7912916829SDavid Feng 
8012916829SDavid Feng #define V2M_CF				(V2M_PA_CS3 + V2M_PERIPH_OFFSET(26))
8112916829SDavid Feng 
8212916829SDavid Feng #define V2M_CLCD			(V2M_PA_CS3 + V2M_PERIPH_OFFSET(31))
8312916829SDavid Feng 
8412916829SDavid Feng /* System register offsets. */
8512916829SDavid Feng #define V2M_SYS_CFGDATA			(V2M_SYSREGS + 0x0a0)
8612916829SDavid Feng #define V2M_SYS_CFGCTRL			(V2M_SYSREGS + 0x0a4)
8712916829SDavid Feng #define V2M_SYS_CFGSTAT			(V2M_SYSREGS + 0x0a8)
8812916829SDavid Feng 
8912916829SDavid Feng /* Generic Timer Definitions */
9012916829SDavid Feng #define COUNTER_FREQUENCY		(0x1800000)	/* 24MHz */
9112916829SDavid Feng 
9212916829SDavid Feng /* Generic Interrupt Controller Definitions */
93c71645adSDavid Feng #ifdef CONFIG_GICV3
94c71645adSDavid Feng #define GICD_BASE			(0x2f000000)
95c71645adSDavid Feng #define GICR_BASE			(0x2f100000)
96c71645adSDavid Feng #else
97261d2760SDarwin Rambo 
98fc04b923SRyan Harkin #if defined(CONFIG_TARGET_VEXPRESS64_BASE_FVP) || \
99fc04b923SRyan Harkin 	defined(CONFIG_TARGET_VEXPRESS64_BASE_FVP_DRAM)
100261d2760SDarwin Rambo #define GICD_BASE			(0x2f000000)
101261d2760SDarwin Rambo #define GICC_BASE			(0x2c000000)
102ffc10373SLinus Walleij #elif CONFIG_TARGET_VEXPRESS64_JUNO
103ffc10373SLinus Walleij #define GICD_BASE			(0x2C010000)
104ffc10373SLinus Walleij #define GICC_BASE			(0x2C02f000)
105c71645adSDavid Feng #endif
10603314f0eSLinus Walleij #endif /* !CONFIG_GICV3 */
10712916829SDavid Feng 
10812916829SDavid Feng /* Size of malloc() pool */
1095bcae13eSTom Rini #define CONFIG_SYS_MALLOC_LEN		(CONFIG_ENV_SIZE + (8 << 20))
11012916829SDavid Feng 
111b31f9d7aSLinus Walleij /* Ethernet Configuration */
112b31f9d7aSLinus Walleij #ifdef CONFIG_TARGET_VEXPRESS64_JUNO
113b31f9d7aSLinus Walleij /* The real hardware Versatile express uses SMSC9118 */
114b31f9d7aSLinus Walleij #define CONFIG_SMC911X			1
115b31f9d7aSLinus Walleij #define CONFIG_SMC911X_32_BIT		1
116b31f9d7aSLinus Walleij #define CONFIG_SMC911X_BASE		(0x018000000)
117b31f9d7aSLinus Walleij #else
118b31f9d7aSLinus Walleij /* The Vexpress64 simulators use SMSC91C111 */
1193865ceb7SBhupesh Sharma #define CONFIG_SMC91111			1
1203865ceb7SBhupesh Sharma #define CONFIG_SMC91111_BASE		(0x01A000000)
121b31f9d7aSLinus Walleij #endif
12212916829SDavid Feng 
12312916829SDavid Feng /* PL011 Serial Configuration */
124d280ea00SLinus Walleij #define CONFIG_BAUDRATE			115200
125d8bafe13SDavid Feng #define CONFIG_CONS_INDEX		0
126d280ea00SLinus Walleij #define CONFIG_PL01X_SERIAL
12712916829SDavid Feng #define CONFIG_PL011_SERIAL
128ffc10373SLinus Walleij #ifdef CONFIG_TARGET_VEXPRESS64_JUNO
129ffc10373SLinus Walleij #define CONFIG_PL011_CLOCK		7273800
130ffc10373SLinus Walleij #else
13112916829SDavid Feng #define CONFIG_PL011_CLOCK		24000000
132ffc10373SLinus Walleij #endif
13312916829SDavid Feng 
13412916829SDavid Feng /* Command line configuration */
13512916829SDavid Feng #define CONFIG_MENU
13612916829SDavid Feng /*#define CONFIG_MENU_SHOW*/
13712916829SDavid Feng #define CONFIG_CMD_CACHE
13867172528STom Rini #define CONFIG_CMD_BOOTI
13967172528STom Rini #define CONFIG_CMD_UNZIP
14012916829SDavid Feng #define CONFIG_CMD_DHCP
14112916829SDavid Feng #define CONFIG_CMD_PXE
14212916829SDavid Feng #define CONFIG_CMD_ENV
14312916829SDavid Feng #define CONFIG_CMD_MII
14412916829SDavid Feng #define CONFIG_CMD_PING
14512916829SDavid Feng #define CONFIG_CMD_FAT
14612916829SDavid Feng #define CONFIG_DOS_PARTITION
14712916829SDavid Feng 
14812916829SDavid Feng /* BOOTP options */
14912916829SDavid Feng #define CONFIG_BOOTP_BOOTFILESIZE
15012916829SDavid Feng #define CONFIG_BOOTP_BOOTPATH
15112916829SDavid Feng #define CONFIG_BOOTP_GATEWAY
15212916829SDavid Feng #define CONFIG_BOOTP_HOSTNAME
15312916829SDavid Feng #define CONFIG_BOOTP_PXE
15412916829SDavid Feng #define CONFIG_BOOTP_PXE_CLIENTARCH	0x100
15512916829SDavid Feng 
15612916829SDavid Feng /* Miscellaneous configurable options */
15712916829SDavid Feng #define CONFIG_SYS_LOAD_ADDR		(V2M_BASE + 0x10000000)
15812916829SDavid Feng 
15912916829SDavid Feng /* Physical Memory Map */
16012916829SDavid Feng #define PHYS_SDRAM_1			(V2M_BASE)	/* SDRAM Bank #1 */
16130355708SLinus Walleij /* Top 16MB reserved for secure world use */
16230355708SLinus Walleij #define DRAM_SEC_SIZE		0x01000000
16330355708SLinus Walleij #define PHYS_SDRAM_1_SIZE	0x80000000 - DRAM_SEC_SIZE
16412916829SDavid Feng #define CONFIG_SYS_SDRAM_BASE	PHYS_SDRAM_1
16512916829SDavid Feng 
1662c2b2183SRyan Harkin #ifdef CONFIG_TARGET_VEXPRESS64_JUNO
1672c2b2183SRyan Harkin #define CONFIG_NR_DRAM_BANKS		2
1682c2b2183SRyan Harkin #define PHYS_SDRAM_2			(0x880000000)
1692c2b2183SRyan Harkin #define PHYS_SDRAM_2_SIZE		0x180000000
1702c2b2183SRyan Harkin #else
1712c2b2183SRyan Harkin #define CONFIG_NR_DRAM_BANKS		1
1722c2b2183SRyan Harkin #endif
1732c2b2183SRyan Harkin 
17430355708SLinus Walleij /* Enable memtest */
17530355708SLinus Walleij #define CONFIG_CMD_MEMTEST
17630355708SLinus Walleij #define CONFIG_SYS_MEMTEST_START	PHYS_SDRAM_1
17730355708SLinus Walleij #define CONFIG_SYS_MEMTEST_END		(PHYS_SDRAM_1 + PHYS_SDRAM_1_SIZE)
17830355708SLinus Walleij 
17912916829SDavid Feng /* Initial environment variables */
18010d1491bSLinus Walleij #ifdef CONFIG_TARGET_VEXPRESS64_JUNO
18110d1491bSLinus Walleij /*
18210d1491bSLinus Walleij  * Defines where the kernel and FDT exist in NOR flash and where it will
18310d1491bSLinus Walleij  * be copied into DRAM
18410d1491bSLinus Walleij  */
18510d1491bSLinus Walleij #define CONFIG_EXTRA_ENV_SETTINGS	\
186ecbed5d6SRyan Harkin 				"kernel_name=norkern\0"	\
187ecbed5d6SRyan Harkin 				"kernel_alt_name=Image\0"	\
1887babe482SAndre Przywara 				"kernel_addr=0x80080000\0" \
1894a6bdb59SRyan Harkin 				"initrd_name=ramdisk.img\0"	\
1904a6bdb59SRyan Harkin 				"initrd_addr=0x84000000\0"	\
191*da3e620dSAlexander Graf 				"fdtfile=board.dtb\0" \
192ecbed5d6SRyan Harkin 				"fdt_alt_name=juno\0" \
19310d1491bSLinus Walleij 				"fdt_addr=0x83000000\0" \
19410d1491bSLinus Walleij 				"fdt_high=0xffffffffffffffff\0" \
19510d1491bSLinus Walleij 				"initrd_high=0xffffffffffffffff\0" \
19610d1491bSLinus Walleij 
19710d1491bSLinus Walleij /* Assume we boot with root on the first partition of a USB stick */
19810d1491bSLinus Walleij #define CONFIG_BOOTARGS		"console=ttyAMA0,115200n8 " \
199492f24e8SRyan Harkin 				"root=/dev/sda2 rw " \
20033665f7cSLinus Walleij 				"rootwait "\
201c0ae9703SRyan Harkin 				"earlyprintk=pl011,0x7ff80000 debug "\
202c0ae9703SRyan Harkin 				"user_debug=31 "\
20374e264b4SRyan Harkin 				"androidboot.hardware=juno "\
20410d1491bSLinus Walleij 				"loglevel=9"
20510d1491bSLinus Walleij 
20610d1491bSLinus Walleij /* Copy the kernel and FDT to DRAM memory and boot */
20710d1491bSLinus Walleij #define CONFIG_BOOTCOMMAND	"afs load ${kernel_name} ${kernel_addr} ; " \
208ecbed5d6SRyan Harkin 				"if test $? -eq 1; then "\
209ecbed5d6SRyan Harkin 				"  echo Loading ${kernel_alt_name} instead of "\
210ecbed5d6SRyan Harkin 				"${kernel_name}; "\
211ecbed5d6SRyan Harkin 				"  afs load ${kernel_alt_name} ${kernel_addr};"\
212ecbed5d6SRyan Harkin 				"fi ; "\
213*da3e620dSAlexander Graf 				"afs load  ${fdtfile} ${fdt_addr} ; " \
214ecbed5d6SRyan Harkin 				"if test $? -eq 1; then "\
215ecbed5d6SRyan Harkin 				"  echo Loading ${fdt_alt_name} instead of "\
216*da3e620dSAlexander Graf 				"${fdtfile}; "\
217ecbed5d6SRyan Harkin 				"  afs load ${fdt_alt_name} ${fdt_addr}; "\
218ecbed5d6SRyan Harkin 				"fi ; "\
21910d1491bSLinus Walleij 				"fdt addr ${fdt_addr}; fdt resize; " \
2204a6bdb59SRyan Harkin 				"if afs load  ${initrd_name} ${initrd_addr} ; "\
2214a6bdb59SRyan Harkin 				"then "\
2224a6bdb59SRyan Harkin 				"  setenv initrd_param ${initrd_addr}; "\
2234a6bdb59SRyan Harkin 				"  else setenv initrd_param -; "\
2244a6bdb59SRyan Harkin 				"fi ; " \
2254a6bdb59SRyan Harkin 				"booti ${kernel_addr} ${initrd_param} ${fdt_addr}"
22610d1491bSLinus Walleij 
22710d1491bSLinus Walleij #define CONFIG_BOOTDELAY		1
22810d1491bSLinus Walleij 
22910d1491bSLinus Walleij #elif CONFIG_TARGET_VEXPRESS64_BASE_FVP
23012916829SDavid Feng #define CONFIG_EXTRA_ENV_SETTINGS	\
2311fd0f92eSLinus Walleij 				"kernel_name=Image\0"		\
2327babe482SAndre Przywara 				"kernel_addr=0x80080000\0"	\
233261d2760SDarwin Rambo 				"initrd_name=ramdisk.img\0"	\
23449995ffeSLinus Walleij 				"initrd_addr=0x88000000\0"	\
235*da3e620dSAlexander Graf 				"fdtfile=devtree.dtb\0"		\
23649995ffeSLinus Walleij 				"fdt_addr=0x83000000\0"		\
237261d2760SDarwin Rambo 				"fdt_high=0xffffffffffffffff\0"	\
238261d2760SDarwin Rambo 				"initrd_high=0xffffffffffffffff\0"
239261d2760SDarwin Rambo 
240261d2760SDarwin Rambo #define CONFIG_BOOTARGS		"console=ttyAMA0 earlyprintk=pl011,"\
241261d2760SDarwin Rambo 				"0x1c090000 debug user_debug=31 "\
242261d2760SDarwin Rambo 				"loglevel=9"
243261d2760SDarwin Rambo 
24449995ffeSLinus Walleij #define CONFIG_BOOTCOMMAND	"smhload ${kernel_name} ${kernel_addr}; " \
245*da3e620dSAlexander Graf 				"smhload ${fdtfile} ${fdt_addr}; " \
246c0ae9703SRyan Harkin 				"smhload ${initrd_name} ${initrd_addr} "\
247c0ae9703SRyan Harkin 				"initrd_end; " \
2481fd0f92eSLinus Walleij 				"fdt addr ${fdt_addr}; fdt resize; " \
2491fd0f92eSLinus Walleij 				"fdt chosen ${initrd_addr} ${initrd_end}; " \
2501fd0f92eSLinus Walleij 				"booti $kernel_addr - $fdt_addr"
251261d2760SDarwin Rambo 
252261d2760SDarwin Rambo #define CONFIG_BOOTDELAY		1
253261d2760SDarwin Rambo 
254fc04b923SRyan Harkin #elif CONFIG_TARGET_VEXPRESS64_BASE_FVP_DRAM
255fc04b923SRyan Harkin #define CONFIG_EXTRA_ENV_SETTINGS	\
256fc04b923SRyan Harkin 				"kernel_addr=0x80080000\0"	\
257fc04b923SRyan Harkin 				"initrd_addr=0x84000000\0"	\
258fc04b923SRyan Harkin 				"fdt_addr=0x83000000\0"		\
259fc04b923SRyan Harkin 				"fdt_high=0xffffffffffffffff\0"	\
260fc04b923SRyan Harkin 				"initrd_high=0xffffffffffffffff\0"
261fc04b923SRyan Harkin 
262fc04b923SRyan Harkin #define CONFIG_BOOTARGS		"console=ttyAMA0 earlyprintk=pl011,"\
263fc04b923SRyan Harkin 				"0x1c090000 debug user_debug=31 "\
264fc04b923SRyan Harkin 				"androidboot.hardware=fvpbase "\
265fc04b923SRyan Harkin 				"root=/dev/vda2 rw "\
266fc04b923SRyan Harkin 				"rootwait "\
267fc04b923SRyan Harkin 				"loglevel=9"
268fc04b923SRyan Harkin 
269fc04b923SRyan Harkin #define CONFIG_BOOTCOMMAND	"booti $kernel_addr $initrd_addr $fdt_addr"
270fc04b923SRyan Harkin 
271fc04b923SRyan Harkin #define CONFIG_BOOTDELAY		1
272fc04b923SRyan Harkin 
273261d2760SDarwin Rambo #endif
27412916829SDavid Feng 
27512916829SDavid Feng /* Monitor Command Prompt */
27612916829SDavid Feng #define CONFIG_SYS_CBSIZE		512	/* Console I/O Buffer Size */
27712916829SDavid Feng #define CONFIG_SYS_PBSIZE		(CONFIG_SYS_CBSIZE + \
27812916829SDavid Feng 					sizeof(CONFIG_SYS_PROMPT) + 16)
27912916829SDavid Feng #define CONFIG_SYS_HUSH_PARSER
28012916829SDavid Feng #define CONFIG_SYS_BARGSIZE		CONFIG_SYS_CBSIZE
28112916829SDavid Feng #define CONFIG_SYS_LONGHELP
2825bcae13eSTom Rini #define CONFIG_CMDLINE_EDITING
28312916829SDavid Feng #define CONFIG_SYS_MAXARGS		64	/* max command args */
28412916829SDavid Feng 
285f3c71c93SRyan Harkin #ifdef CONFIG_TARGET_VEXPRESS64_JUNO
286f3c71c93SRyan Harkin #define CONFIG_SYS_FLASH_BASE		0x08000000
287f3c71c93SRyan Harkin /* 255 x 256KiB sectors + 4 x 64KiB sectors at the end = 259 */
288f3c71c93SRyan Harkin #define CONFIG_SYS_MAX_FLASH_SECT	259
289f3c71c93SRyan Harkin /* Store environment at top of flash in the same location as blank.img */
290f3c71c93SRyan Harkin /* in the Juno firmware. */
291f3c71c93SRyan Harkin #define CONFIG_ENV_ADDR			0x0BFC0000
292f3c71c93SRyan Harkin #define CONFIG_ENV_SECT_SIZE		0x00010000
29314f264e6SLinus Walleij #else
294f3c71c93SRyan Harkin #define CONFIG_SYS_FLASH_BASE		0x0C000000
295f3c71c93SRyan Harkin /* 256 x 256KiB sectors */
296f3c71c93SRyan Harkin #define CONFIG_SYS_MAX_FLASH_SECT	256
297f3c71c93SRyan Harkin /* Store environment at top of flash */
298f3c71c93SRyan Harkin #define CONFIG_ENV_ADDR			0x0FFC0000
299f3c71c93SRyan Harkin #define CONFIG_ENV_SECT_SIZE		0x00040000
300f3c71c93SRyan Harkin #endif
301f3c71c93SRyan Harkin 
30210d1491bSLinus Walleij #define CONFIG_CMD_ARMFLASH
30314f264e6SLinus Walleij #define CONFIG_SYS_FLASH_CFI		1
30414f264e6SLinus Walleij #define CONFIG_FLASH_CFI_DRIVER		1
305f19f389fSRyan Harkin #define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_32BIT
306f3c71c93SRyan Harkin #define CONFIG_SYS_MAX_FLASH_BANKS	1
30714f264e6SLinus Walleij 
30814f264e6SLinus Walleij #define CONFIG_SYS_FLASH_USE_BUFFER_WRITE /* use buffered writes */
30914f264e6SLinus Walleij #define CONFIG_SYS_FLASH_PROTECTION	/* The devices have real protection */
31014f264e6SLinus Walleij #define CONFIG_SYS_FLASH_EMPTY_INFO	/* flinfo indicates empty blocks */
311f3c71c93SRyan Harkin #define FLASH_MAX_SECTOR_SIZE		0x00040000
312f3c71c93SRyan Harkin #define CONFIG_ENV_SIZE			CONFIG_ENV_SECT_SIZE
313f3c71c93SRyan Harkin #define CONFIG_ENV_IS_IN_FLASH		1
31414f264e6SLinus Walleij 
31514f264e6SLinus Walleij 
31612916829SDavid Feng #endif /* __VEXPRESS_AEMV8A_H */
317