xref: /rk3399_rockchip-uboot/include/configs/microblaze-generic.h (revision 1490eb89f4697b02cfb8f826d2f5eaf37edcbd47)
152a822edSMichal Simek /*
24aecfb16SMichal Simek  * (C) Copyright 2007-2010 Michal Simek
352a822edSMichal Simek  *
452a822edSMichal Simek  * Michal SIMEK <monstr@monstr.eu>
552a822edSMichal Simek  *
61a459660SWolfgang Denk  * SPDX-License-Identifier:	GPL-2.0+
752a822edSMichal Simek  */
852a822edSMichal Simek 
952a822edSMichal Simek #ifndef __CONFIG_H
1052a822edSMichal Simek #define __CONFIG_H
1152a822edSMichal Simek 
1252a822edSMichal Simek #include "../board/xilinx/microblaze-generic/xparameters.h"
1352a822edSMichal Simek 
144aecfb16SMichal Simek /* MicroBlaze CPU */
1552a822edSMichal Simek #define	MICROBLAZE_V5		1
1652a822edSMichal Simek 
17bcec8f49SStephan Linz /* linear and spi flash memory */
181fe7e8faSStephan Linz #ifdef XILINX_FLASH_START
191fe7e8faSStephan Linz #define	FLASH
20bcec8f49SStephan Linz #undef	SPIFLASH
21bcec8f49SStephan Linz #undef	RAMENV	/* hold environment in flash */
22bcec8f49SStephan Linz #else
23bcec8f49SStephan Linz #ifdef XILINX_SPI_FLASH_BASEADDR
24bcec8f49SStephan Linz #undef	FLASH
25bcec8f49SStephan Linz #define	SPIFLASH
261fe7e8faSStephan Linz #undef	RAMENV	/* hold environment in flash */
271fe7e8faSStephan Linz #else
281fe7e8faSStephan Linz #undef	FLASH
29bcec8f49SStephan Linz #undef	SPIFLASH
301fe7e8faSStephan Linz #define	RAMENV	/* hold environment in RAM */
311fe7e8faSStephan Linz #endif
32bcec8f49SStephan Linz #endif
331fe7e8faSStephan Linz 
3452a822edSMichal Simek /* uart */
3567659e2eSMichal Simek /* The following table includes the supported baudrates */
3667659e2eSMichal Simek # define CONFIG_SYS_BAUDRATE_TABLE \
3767659e2eSMichal Simek 	{300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400}
3867659e2eSMichal Simek 
3952a822edSMichal Simek /* setting reset address */
4014d0a02aSWolfgang Denk /*#define	CONFIG_SYS_RESET_ADDRESS	CONFIG_SYS_TEXT_BASE*/
4152a822edSMichal Simek 
4252a822edSMichal Simek /* gpio */
4352a822edSMichal Simek #ifdef XILINX_GPIO_BASEADDR
444e779ad2SMichal Simek # define CONFIG_XILINX_GPIO
4552a822edSMichal Simek # define CONFIG_SYS_GPIO_0_ADDR		XILINX_GPIO_BASEADDR
4652a822edSMichal Simek #endif
4752a822edSMichal Simek 
480f21f98dSMichal Simek /* watchdog */
490f21f98dSMichal Simek #if defined(XILINX_WATCHDOG_BASEADDR) && defined(XILINX_WATCHDOG_IRQ)
500f21f98dSMichal Simek # define CONFIG_WATCHDOG_BASEADDR	XILINX_WATCHDOG_BASEADDR
510f21f98dSMichal Simek # define CONFIG_WATCHDOG_IRQ		XILINX_WATCHDOG_IRQ
52b5e9b9a9SMichal Simek # ifndef CONFIG_SPL_BUILD
530f21f98dSMichal Simek #  define CONFIG_HW_WATCHDOG
540f21f98dSMichal Simek #  define CONFIG_XILINX_TB_WATCHDOG
550f21f98dSMichal Simek # endif
56b5e9b9a9SMichal Simek #endif
570f21f98dSMichal Simek 
58e945f6dcSMichal Simek #define CONFIG_SYS_MALLOC_LEN	0xC0000
5952a822edSMichal Simek 
60e945f6dcSMichal Simek /* Stack location before relocation */
614fcd0b33SMichal Simek #define CONFIG_SYS_INIT_SP_OFFSET	(CONFIG_SYS_TEXT_BASE - \
624fcd0b33SMichal Simek 					 CONFIG_SYS_MALLOC_F_LEN)
6352a822edSMichal Simek 
648f371b18SStephan Linz /*
658f371b18SStephan Linz  * CFI flash memory layout - Example
668f371b18SStephan Linz  * CONFIG_SYS_FLASH_BASE = 0x2200_0000;
678f371b18SStephan Linz  * CONFIG_SYS_FLASH_SIZE = 0x0080_0000;	  8MB
688f371b18SStephan Linz  *
698f371b18SStephan Linz  * SECT_SIZE = 0x20000;			128kB is one sector
708f371b18SStephan Linz  * CONFIG_ENV_SIZE = SECT_SIZE;		128kB environment store
718f371b18SStephan Linz  *
728f371b18SStephan Linz  * 0x2200_0000	CONFIG_SYS_FLASH_BASE
738f371b18SStephan Linz  *					FREE		256kB
748f371b18SStephan Linz  * 0x2204_0000	CONFIG_ENV_ADDR
758f371b18SStephan Linz  *					ENV_AREA	128kB
768f371b18SStephan Linz  * 0x2206_0000
778f371b18SStephan Linz  *					FREE
788f371b18SStephan Linz  * 0x2280_0000	CONFIG_SYS_FLASH_BASE + CONFIG_SYS_FLASH_SIZE
798f371b18SStephan Linz  *
808f371b18SStephan Linz  */
818f371b18SStephan Linz 
8252a822edSMichal Simek #ifdef FLASH
8352a822edSMichal Simek # define CONFIG_SYS_FLASH_BASE		XILINX_FLASH_START
8452a822edSMichal Simek # define CONFIG_SYS_FLASH_SIZE		XILINX_FLASH_SIZE
8552a822edSMichal Simek # define CONFIG_SYS_FLASH_CFI		1
8652a822edSMichal Simek # define CONFIG_FLASH_CFI_DRIVER	1
874aecfb16SMichal Simek /* ?empty sector */
884aecfb16SMichal Simek # define CONFIG_SYS_FLASH_EMPTY_INFO	1
894aecfb16SMichal Simek /* max number of memory banks */
904aecfb16SMichal Simek # define CONFIG_SYS_MAX_FLASH_BANKS	1
914aecfb16SMichal Simek /* max number of sectors on one chip */
924aecfb16SMichal Simek # define CONFIG_SYS_MAX_FLASH_SECT	512
934aecfb16SMichal Simek /* hardware flash protection */
944aecfb16SMichal Simek # define CONFIG_SYS_FLASH_PROTECTION
9522ff7f4dSMichal Simek /* use buffered writes (20x faster) */
9622ff7f4dSMichal Simek # define	CONFIG_SYS_FLASH_USE_BUFFER_WRITE	1
9752a822edSMichal Simek # ifdef	RAMENV
9852a822edSMichal Simek #  define CONFIG_ENV_SIZE	0x1000
9952a822edSMichal Simek #  define CONFIG_ENV_ADDR	(CONFIG_SYS_MONITOR_BASE - CONFIG_ENV_SIZE)
10052a822edSMichal Simek 
101bcec8f49SStephan Linz # else	/* FLASH && !RAMENV */
1024aecfb16SMichal Simek /* 128K(one sector) for env */
1034aecfb16SMichal Simek #  define CONFIG_ENV_SECT_SIZE	0x20000
1044aecfb16SMichal Simek #  define CONFIG_ENV_ADDR \
1054aecfb16SMichal Simek 			(CONFIG_SYS_FLASH_BASE + (2 * CONFIG_ENV_SECT_SIZE))
106330e5545SMichal Simek #  define CONFIG_ENV_SIZE	0x20000
107bcec8f49SStephan Linz # endif /* FLASH && !RAMBOOT */
10852a822edSMichal Simek #else /* !FLASH */
109bcec8f49SStephan Linz 
110bcec8f49SStephan Linz #ifdef SPIFLASH
111bcec8f49SStephan Linz # define CONFIG_SYS_SPI_BASE		XILINX_SPI_FLASH_BASEADDR
112bcec8f49SStephan Linz # define CONFIG_SF_DEFAULT_MODE		SPI_MODE_3
113bcec8f49SStephan Linz # define CONFIG_SF_DEFAULT_SPEED	XILINX_SPI_FLASH_MAX_FREQ
114bcec8f49SStephan Linz # define CONFIG_SF_DEFAULT_CS		XILINX_SPI_FLASH_CS
115bcec8f49SStephan Linz 
116bcec8f49SStephan Linz # ifdef	RAMENV
117bcec8f49SStephan Linz #  define CONFIG_ENV_SIZE	0x1000
118bcec8f49SStephan Linz #  define CONFIG_ENV_ADDR	(CONFIG_SYS_MONITOR_BASE - CONFIG_ENV_SIZE)
119bcec8f49SStephan Linz 
120bcec8f49SStephan Linz # else	/* SPIFLASH && !RAMENV */
121bcec8f49SStephan Linz #  define CONFIG_ENV_SPI_MODE		SPI_MODE_3
122bcec8f49SStephan Linz #  define CONFIG_ENV_SPI_MAX_HZ		CONFIG_SF_DEFAULT_SPEED
123bcec8f49SStephan Linz #  define CONFIG_ENV_SPI_CS		CONFIG_SF_DEFAULT_CS
124bcec8f49SStephan Linz /* 128K(two sectors) for env */
125bcec8f49SStephan Linz #  define CONFIG_ENV_SECT_SIZE	0x10000
126bcec8f49SStephan Linz #  define CONFIG_ENV_SIZE	(2 * CONFIG_ENV_SECT_SIZE)
127bcec8f49SStephan Linz /* Warning: adjust the offset in respect of other flash content and size */
128bcec8f49SStephan Linz #  define CONFIG_ENV_OFFSET	(128 * CONFIG_ENV_SECT_SIZE) /* at 8MB */
129bcec8f49SStephan Linz # endif /* SPIFLASH && !RAMBOOT */
130bcec8f49SStephan Linz #else /* !SPIFLASH */
131bcec8f49SStephan Linz 
13252a822edSMichal Simek /* ENV in RAM */
13352a822edSMichal Simek # define CONFIG_ENV_SIZE	0x1000
13452a822edSMichal Simek # define CONFIG_ENV_ADDR	(CONFIG_SYS_MONITOR_BASE - CONFIG_ENV_SIZE)
135bcec8f49SStephan Linz #endif /* !SPIFLASH */
13652a822edSMichal Simek #endif /* !FLASH */
13752a822edSMichal Simek 
138e9b737deSMichal Simek #if defined(XILINX_USE_ICACHE)
139e9b737deSMichal Simek # define CONFIG_ICACHE
140e9b737deSMichal Simek #else
141e9b737deSMichal Simek # undef CONFIG_ICACHE
142e9b737deSMichal Simek #endif
143e9b737deSMichal Simek 
144e9b737deSMichal Simek #if defined(XILINX_USE_DCACHE)
145e9b737deSMichal Simek # define CONFIG_DCACHE
146e9b737deSMichal Simek #else
147e9b737deSMichal Simek # undef CONFIG_DCACHE
148e9b737deSMichal Simek #endif
149e9b737deSMichal Simek 
1505811830fSMichal Simek #ifndef XILINX_DCACHE_BYTE_SIZE
1515811830fSMichal Simek #define XILINX_DCACHE_BYTE_SIZE	32768
1525811830fSMichal Simek #endif
1535811830fSMichal Simek 
15452a822edSMichal Simek /*
15552a822edSMichal Simek  * BOOTP options
15652a822edSMichal Simek  */
15752a822edSMichal Simek #define CONFIG_BOOTP_BOOTFILESIZE
15852a822edSMichal Simek #define CONFIG_BOOTP_BOOTPATH
15952a822edSMichal Simek #define CONFIG_BOOTP_GATEWAY
16052a822edSMichal Simek #define CONFIG_BOOTP_HOSTNAME
16152a822edSMichal Simek 
1627cfb13a7SStephan Linz #if defined(CONFIG_MTD_PARTITIONS)
1637cfb13a7SStephan Linz /* MTD partitions */
164942556a9SStefan Roese #define CONFIG_FLASH_CFI_MTD
165c82a541dSStephan Linz #define MTDIDS_DEFAULT		"nor0=flash-0"
16652a822edSMichal Simek 
16752a822edSMichal Simek /* default mtd partition table */
168c82a541dSStephan Linz #define MTDPARTS_DEFAULT	"mtdparts=flash-0:256k(u-boot),"\
16952a822edSMichal Simek 				"256k(env),3m(kernel),1m(romfs),"\
17052a822edSMichal Simek 				"1m(cramfs),-(jffs2)"
17152a822edSMichal Simek #endif
17252a822edSMichal Simek 
1734aecfb16SMichal Simek /* size of console buffer */
1744aecfb16SMichal Simek #define	CONFIG_SYS_CBSIZE	512
1754aecfb16SMichal Simek /* max number of command args */
1764aecfb16SMichal Simek #define	CONFIG_SYS_MAXARGS	15
17752a822edSMichal Simek #define	CONFIG_SYS_LONGHELP
1784aecfb16SMichal Simek /* default load address */
17944a3a91cSMichal Simek #define	CONFIG_SYS_LOAD_ADDR	0
18052a822edSMichal Simek 
181330e5545SMichal Simek #define	CONFIG_HOSTNAME		XILINX_BOARD_NAME
18252a822edSMichal Simek #define	CONFIG_BOOTCOMMAND	"base 0;tftp 11000000 image.img;bootm"
18352a822edSMichal Simek 
18452a822edSMichal Simek /* architecture dependent code */
18552a822edSMichal Simek #define	CONFIG_SYS_USR_EXCEP	/* user exception */
18652a822edSMichal Simek 
1870900bee9SMichal Simek #define	CONFIG_PREBOOT	"echo U-BOOT for ${hostname};setenv preboot;echo"
18852a822edSMichal Simek 
189*2902a9b7SMichal Simek #ifndef CONFIG_EXTRA_ENV_SETTINGS
1904aecfb16SMichal Simek #define	CONFIG_EXTRA_ENV_SETTINGS	"unlock=yes\0" \
191c82a541dSStephan Linz 					"nor0=flash-0\0"\
192c82a541dSStephan Linz 					"mtdparts=mtdparts=flash-0:"\
19352a822edSMichal Simek 					"256k(u-boot),256k(env),3m(kernel),"\
19478376452SMichal Simek 					"1m(romfs),1m(cramfs),-(jffs2)\0"\
19578376452SMichal Simek 					"nc=setenv stdout nc;"\
19678376452SMichal Simek 					"setenv stdin nc\0" \
19778376452SMichal Simek 					"serial=setenv stdout serial;"\
19878376452SMichal Simek 					"setenv stdin serial\0"
199*2902a9b7SMichal Simek #endif
20052a822edSMichal Simek 
20152a822edSMichal Simek #define CONFIG_CMDLINE_EDITING
20252a822edSMichal Simek 
20337e892d9SMichal Simek /* Enable flat device tree support */
20437e892d9SMichal Simek #define CONFIG_LMB		1
20537e892d9SMichal Simek 
2064632b1eaSMichal Simek #if defined(CONFIG_XILINX_AXIEMAC)
207f5e5e1ffSStephan Linz # define CONFIG_MII		1
208f5e5e1ffSStephan Linz # define CONFIG_SYS_FAULT_ECHO_LINK_DOWN	1
209f5e5e1ffSStephan Linz # define CONFIG_PHY_ATHEROS	1
210f5e5e1ffSStephan Linz # define CONFIG_PHY_BROADCOM	1
211f5e5e1ffSStephan Linz # define CONFIG_PHY_DAVICOM	1
212f5e5e1ffSStephan Linz # define CONFIG_PHY_LXT		1
213f5e5e1ffSStephan Linz # define CONFIG_PHY_MARVELL	1
214f5e5e1ffSStephan Linz # define CONFIG_PHY_NATSEMI	1
215f5e5e1ffSStephan Linz # define CONFIG_PHY_REALTEK	1
216f5e5e1ffSStephan Linz # define CONFIG_PHY_VITESSE	1
217f5e5e1ffSStephan Linz #else
218f5e5e1ffSStephan Linz # undef CONFIG_MII
219f5e5e1ffSStephan Linz #endif
220f5e5e1ffSStephan Linz 
2219d242745SMichal Simek /* SPL part */
2229d242745SMichal Simek #define CONFIG_SPL_FRAMEWORK
2239d242745SMichal Simek 
2244dd09742SMichal Simek #ifdef CONFIG_SYS_FLASH_BASE
2254dd09742SMichal Simek # define CONFIG_SYS_UBOOT_BASE		CONFIG_SYS_FLASH_BASE
2264dd09742SMichal Simek #endif
2279d242745SMichal Simek 
2289d242745SMichal Simek /* for booting directly linux */
2299d242745SMichal Simek 
2309d242745SMichal Simek #define CONFIG_SYS_FDT_BASE		(CONFIG_SYS_FLASH_BASE + \
2319d242745SMichal Simek 					 0x40000)
2325aa79f26SMike Looijmans #define CONFIG_SYS_FDT_SIZE		(16<<10)
2339d242745SMichal Simek #define CONFIG_SYS_SPL_ARGS_ADDR	(CONFIG_SYS_TEXT_BASE + \
2349d242745SMichal Simek 					 0x1000000)
2359d242745SMichal Simek 
2369d242745SMichal Simek /* SP location before relocation, must use scratch RAM */
2379d242745SMichal Simek /* BRAM start */
2389d242745SMichal Simek #define CONFIG_SYS_INIT_RAM_ADDR	0x0
2399d242745SMichal Simek /* BRAM size - will be generated */
240ca7d2266SMichal Simek #define CONFIG_SYS_INIT_RAM_SIZE	0x100000
241ca7d2266SMichal Simek 
242ca7d2266SMichal Simek # define CONFIG_SPL_STACK_ADDR		(CONFIG_SYS_INIT_RAM_ADDR + \
2439d242745SMichal Simek 					 CONFIG_SYS_INIT_RAM_SIZE - \
244ca7d2266SMichal Simek 					 CONFIG_SYS_MALLOC_F_LEN)
2459d242745SMichal Simek 
2469d242745SMichal Simek /* Just for sure that there is a space for stack */
2479d242745SMichal Simek #define CONFIG_SPL_STACK_SIZE		0x100
2489d242745SMichal Simek 
2499d242745SMichal Simek #define CONFIG_SYS_UBOOT_START		CONFIG_SYS_TEXT_BASE
2509d242745SMichal Simek 
2519d242745SMichal Simek #define CONFIG_SPL_MAX_FOOTPRINT	(CONFIG_SYS_INIT_RAM_SIZE - \
2529d242745SMichal Simek 					 CONFIG_SYS_INIT_RAM_ADDR - \
253ca7d2266SMichal Simek 					 CONFIG_SYS_MALLOC_F_LEN - \
2549d242745SMichal Simek 					 CONFIG_SPL_STACK_SIZE)
2559d242745SMichal Simek 
25652a822edSMichal Simek #endif	/* __CONFIG_H */
257