xref: /rk3399_rockchip-uboot/include/configs/microblaze-generic.h (revision 5aa79f26762d197324866a0d0c2b31601a7fc8ee)
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 # define CONFIG_BAUDRATE	115200
3667659e2eSMichal Simek /* The following table includes the supported baudrates */
3767659e2eSMichal Simek # define CONFIG_SYS_BAUDRATE_TABLE \
3867659e2eSMichal Simek 	{300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400}
3967659e2eSMichal Simek 
4052a822edSMichal Simek /* setting reset address */
4114d0a02aSWolfgang Denk /*#define	CONFIG_SYS_RESET_ADDRESS	CONFIG_SYS_TEXT_BASE*/
4252a822edSMichal Simek 
4352a822edSMichal Simek /* gpio */
4452a822edSMichal Simek #ifdef XILINX_GPIO_BASEADDR
454e779ad2SMichal Simek # define CONFIG_XILINX_GPIO
4652a822edSMichal Simek # define CONFIG_SYS_GPIO_0_ADDR		XILINX_GPIO_BASEADDR
4752a822edSMichal Simek #endif
4838c4761cSMichal Simek #define CONFIG_BOARD_LATE_INIT
4952a822edSMichal Simek 
500f21f98dSMichal Simek /* watchdog */
510f21f98dSMichal Simek #if defined(XILINX_WATCHDOG_BASEADDR) && defined(XILINX_WATCHDOG_IRQ)
520f21f98dSMichal Simek # define CONFIG_WATCHDOG_BASEADDR	XILINX_WATCHDOG_BASEADDR
530f21f98dSMichal Simek # define CONFIG_WATCHDOG_IRQ		XILINX_WATCHDOG_IRQ
54b5e9b9a9SMichal Simek # ifndef CONFIG_SPL_BUILD
550f21f98dSMichal Simek #  define CONFIG_HW_WATCHDOG
560f21f98dSMichal Simek #  define CONFIG_XILINX_TB_WATCHDOG
570f21f98dSMichal Simek # endif
58b5e9b9a9SMichal Simek #endif
590f21f98dSMichal Simek 
60e945f6dcSMichal Simek #define CONFIG_SYS_MALLOC_LEN	0xC0000
6152a822edSMichal Simek 
62e945f6dcSMichal Simek /* Stack location before relocation */
634fcd0b33SMichal Simek #define CONFIG_SYS_INIT_SP_OFFSET	(CONFIG_SYS_TEXT_BASE - \
644fcd0b33SMichal Simek 					 CONFIG_SYS_MALLOC_F_LEN)
6552a822edSMichal Simek 
668f371b18SStephan Linz /*
678f371b18SStephan Linz  * CFI flash memory layout - Example
688f371b18SStephan Linz  * CONFIG_SYS_FLASH_BASE = 0x2200_0000;
698f371b18SStephan Linz  * CONFIG_SYS_FLASH_SIZE = 0x0080_0000;	  8MB
708f371b18SStephan Linz  *
718f371b18SStephan Linz  * SECT_SIZE = 0x20000;			128kB is one sector
728f371b18SStephan Linz  * CONFIG_ENV_SIZE = SECT_SIZE;		128kB environment store
738f371b18SStephan Linz  *
748f371b18SStephan Linz  * 0x2200_0000	CONFIG_SYS_FLASH_BASE
758f371b18SStephan Linz  *					FREE		256kB
768f371b18SStephan Linz  * 0x2204_0000	CONFIG_ENV_ADDR
778f371b18SStephan Linz  *					ENV_AREA	128kB
788f371b18SStephan Linz  * 0x2206_0000
798f371b18SStephan Linz  *					FREE
808f371b18SStephan Linz  * 0x2280_0000	CONFIG_SYS_FLASH_BASE + CONFIG_SYS_FLASH_SIZE
818f371b18SStephan Linz  *
828f371b18SStephan Linz  */
838f371b18SStephan Linz 
8452a822edSMichal Simek #ifdef FLASH
8552a822edSMichal Simek # define CONFIG_SYS_FLASH_BASE		XILINX_FLASH_START
8652a822edSMichal Simek # define CONFIG_SYS_FLASH_SIZE		XILINX_FLASH_SIZE
8752a822edSMichal Simek # define CONFIG_SYS_FLASH_CFI		1
8852a822edSMichal Simek # define CONFIG_FLASH_CFI_DRIVER	1
894aecfb16SMichal Simek /* ?empty sector */
904aecfb16SMichal Simek # define CONFIG_SYS_FLASH_EMPTY_INFO	1
914aecfb16SMichal Simek /* max number of memory banks */
924aecfb16SMichal Simek # define CONFIG_SYS_MAX_FLASH_BANKS	1
934aecfb16SMichal Simek /* max number of sectors on one chip */
944aecfb16SMichal Simek # define CONFIG_SYS_MAX_FLASH_SECT	512
954aecfb16SMichal Simek /* hardware flash protection */
964aecfb16SMichal Simek # define CONFIG_SYS_FLASH_PROTECTION
9722ff7f4dSMichal Simek /* use buffered writes (20x faster) */
9822ff7f4dSMichal Simek # define	CONFIG_SYS_FLASH_USE_BUFFER_WRITE	1
9952a822edSMichal Simek # ifdef	RAMENV
10052a822edSMichal Simek #  define CONFIG_ENV_IS_NOWHERE	1
10152a822edSMichal Simek #  define CONFIG_ENV_SIZE	0x1000
10252a822edSMichal Simek #  define CONFIG_ENV_ADDR	(CONFIG_SYS_MONITOR_BASE - CONFIG_ENV_SIZE)
10352a822edSMichal Simek 
104bcec8f49SStephan Linz # else	/* FLASH && !RAMENV */
10552a822edSMichal Simek #  define CONFIG_ENV_IS_IN_FLASH	1
1064aecfb16SMichal Simek /* 128K(one sector) for env */
1074aecfb16SMichal Simek #  define CONFIG_ENV_SECT_SIZE	0x20000
1084aecfb16SMichal Simek #  define CONFIG_ENV_ADDR \
1094aecfb16SMichal Simek 			(CONFIG_SYS_FLASH_BASE + (2 * CONFIG_ENV_SECT_SIZE))
110330e5545SMichal Simek #  define CONFIG_ENV_SIZE	0x20000
111bcec8f49SStephan Linz # endif /* FLASH && !RAMBOOT */
11252a822edSMichal Simek #else /* !FLASH */
113bcec8f49SStephan Linz 
114bcec8f49SStephan Linz #ifdef SPIFLASH
115bcec8f49SStephan Linz # define CONFIG_SYS_NO_FLASH		1
116bcec8f49SStephan Linz # define CONFIG_SYS_SPI_BASE		XILINX_SPI_FLASH_BASEADDR
117bcec8f49SStephan Linz # define CONFIG_SPI			1
118bcec8f49SStephan Linz # define CONFIG_SF_DEFAULT_MODE		SPI_MODE_3
119bcec8f49SStephan Linz # define CONFIG_SF_DEFAULT_SPEED	XILINX_SPI_FLASH_MAX_FREQ
120bcec8f49SStephan Linz # define CONFIG_SF_DEFAULT_CS		XILINX_SPI_FLASH_CS
121bcec8f49SStephan Linz 
122bcec8f49SStephan Linz # ifdef	RAMENV
123bcec8f49SStephan Linz #  define CONFIG_ENV_IS_NOWHERE	1
124bcec8f49SStephan Linz #  define CONFIG_ENV_SIZE	0x1000
125bcec8f49SStephan Linz #  define CONFIG_ENV_ADDR	(CONFIG_SYS_MONITOR_BASE - CONFIG_ENV_SIZE)
126bcec8f49SStephan Linz 
127bcec8f49SStephan Linz # else	/* SPIFLASH && !RAMENV */
128bcec8f49SStephan Linz #  define CONFIG_ENV_IS_IN_SPI_FLASH	1
129bcec8f49SStephan Linz #  define CONFIG_ENV_SPI_MODE		SPI_MODE_3
130bcec8f49SStephan Linz #  define CONFIG_ENV_SPI_MAX_HZ		CONFIG_SF_DEFAULT_SPEED
131bcec8f49SStephan Linz #  define CONFIG_ENV_SPI_CS		CONFIG_SF_DEFAULT_CS
132bcec8f49SStephan Linz /* 128K(two sectors) for env */
133bcec8f49SStephan Linz #  define CONFIG_ENV_SECT_SIZE	0x10000
134bcec8f49SStephan Linz #  define CONFIG_ENV_SIZE	(2 * CONFIG_ENV_SECT_SIZE)
135bcec8f49SStephan Linz /* Warning: adjust the offset in respect of other flash content and size */
136bcec8f49SStephan Linz #  define CONFIG_ENV_OFFSET	(128 * CONFIG_ENV_SECT_SIZE) /* at 8MB */
137bcec8f49SStephan Linz # endif /* SPIFLASH && !RAMBOOT */
138bcec8f49SStephan Linz #else /* !SPIFLASH */
139bcec8f49SStephan Linz 
14052a822edSMichal Simek /* ENV in RAM */
14152a822edSMichal Simek # define CONFIG_SYS_NO_FLASH	1
14252a822edSMichal Simek # define CONFIG_ENV_IS_NOWHERE	1
14352a822edSMichal Simek # define CONFIG_ENV_SIZE	0x1000
14452a822edSMichal Simek # define CONFIG_ENV_ADDR	(CONFIG_SYS_MONITOR_BASE - CONFIG_ENV_SIZE)
145bcec8f49SStephan Linz #endif /* !SPIFLASH */
14652a822edSMichal Simek #endif /* !FLASH */
14752a822edSMichal Simek 
148e9b737deSMichal Simek #if defined(XILINX_USE_ICACHE)
149e9b737deSMichal Simek # define CONFIG_ICACHE
150e9b737deSMichal Simek #else
151e9b737deSMichal Simek # undef CONFIG_ICACHE
152e9b737deSMichal Simek #endif
153e9b737deSMichal Simek 
154e9b737deSMichal Simek #if defined(XILINX_USE_DCACHE)
155e9b737deSMichal Simek # define CONFIG_DCACHE
156e9b737deSMichal Simek #else
157e9b737deSMichal Simek # undef CONFIG_DCACHE
158e9b737deSMichal Simek #endif
159e9b737deSMichal Simek 
1605811830fSMichal Simek #ifndef XILINX_DCACHE_BYTE_SIZE
1615811830fSMichal Simek #define XILINX_DCACHE_BYTE_SIZE	32768
1625811830fSMichal Simek #endif
1635811830fSMichal Simek 
16452a822edSMichal Simek /*
16552a822edSMichal Simek  * BOOTP options
16652a822edSMichal Simek  */
16752a822edSMichal Simek #define CONFIG_BOOTP_BOOTFILESIZE
16852a822edSMichal Simek #define CONFIG_BOOTP_BOOTPATH
16952a822edSMichal Simek #define CONFIG_BOOTP_GATEWAY
17052a822edSMichal Simek #define CONFIG_BOOTP_HOSTNAME
17152a822edSMichal Simek 
17252a822edSMichal Simek /*
17352a822edSMichal Simek  * Command line configuration.
17452a822edSMichal Simek  */
17552a822edSMichal Simek #define CONFIG_CMD_IRQ
17652a822edSMichal Simek #define CONFIG_CMD_MFSL
17752a822edSMichal Simek 
17852a822edSMichal Simek #if defined(FLASH)
17952a822edSMichal Simek # define CONFIG_CMD_JFFS2
1807cfb13a7SStephan Linz # define CONFIG_CMD_UBI
1817cfb13a7SStephan Linz # undef CONFIG_CMD_UBIFS
18252a822edSMichal Simek 
18352a822edSMichal Simek # if !defined(RAMENV)
18452a822edSMichal Simek #  define CONFIG_CMD_SAVES
18552a822edSMichal Simek # endif
186bcec8f49SStephan Linz 
187bcec8f49SStephan Linz #else
188bcec8f49SStephan Linz #if defined(SPIFLASH)
189bcec8f49SStephan Linz 
190bcec8f49SStephan Linz # if !defined(RAMENV)
191bcec8f49SStephan Linz #  define CONFIG_CMD_SAVES
192bcec8f49SStephan Linz # endif
19352a822edSMichal Simek #else
194330e5545SMichal Simek # undef CONFIG_CMD_JFFS2
1952cce2d32SStephan Linz # undef CONFIG_CMD_UBI
1962cce2d32SStephan Linz # undef CONFIG_CMD_UBIFS
19752a822edSMichal Simek #endif
198bcec8f49SStephan Linz #endif
19952a822edSMichal Simek 
20052a822edSMichal Simek #if defined(CONFIG_CMD_JFFS2)
2017cfb13a7SStephan Linz # define CONFIG_MTD_PARTITIONS
2027cfb13a7SStephan Linz #endif
2037cfb13a7SStephan Linz 
2047cfb13a7SStephan Linz #if defined(CONFIG_CMD_UBIFS)
2057cfb13a7SStephan Linz # define CONFIG_CMD_UBI
2067cfb13a7SStephan Linz # define CONFIG_LZO
2077cfb13a7SStephan Linz #endif
2087cfb13a7SStephan Linz 
2097cfb13a7SStephan Linz #if defined(CONFIG_CMD_UBI)
2107cfb13a7SStephan Linz # define CONFIG_MTD_PARTITIONS
2117cfb13a7SStephan Linz # define CONFIG_RBTREE
2127cfb13a7SStephan Linz #endif
2137cfb13a7SStephan Linz 
2147cfb13a7SStephan Linz #if defined(CONFIG_MTD_PARTITIONS)
2157cfb13a7SStephan Linz /* MTD partitions */
21668d7d651SStefan Roese #define CONFIG_CMD_MTDPARTS	/* mtdparts command line support */
217942556a9SStefan Roese #define CONFIG_MTD_DEVICE	/* needed for mtdparts commands */
218942556a9SStefan Roese #define CONFIG_FLASH_CFI_MTD
219c82a541dSStephan Linz #define MTDIDS_DEFAULT		"nor0=flash-0"
22052a822edSMichal Simek 
22152a822edSMichal Simek /* default mtd partition table */
222c82a541dSStephan Linz #define MTDPARTS_DEFAULT	"mtdparts=flash-0:256k(u-boot),"\
22352a822edSMichal Simek 				"256k(env),3m(kernel),1m(romfs),"\
22452a822edSMichal Simek 				"1m(cramfs),-(jffs2)"
22552a822edSMichal Simek #endif
22652a822edSMichal Simek 
2274aecfb16SMichal Simek /* size of console buffer */
2284aecfb16SMichal Simek #define	CONFIG_SYS_CBSIZE	512
2294aecfb16SMichal Simek  /* print buffer size */
2304aecfb16SMichal Simek #define	CONFIG_SYS_PBSIZE \
2314aecfb16SMichal Simek 		(CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16)
2324aecfb16SMichal Simek /* max number of command args */
2334aecfb16SMichal Simek #define	CONFIG_SYS_MAXARGS	15
23452a822edSMichal Simek #define	CONFIG_SYS_LONGHELP
2354aecfb16SMichal Simek /* default load address */
23644a3a91cSMichal Simek #define	CONFIG_SYS_LOAD_ADDR	0
23752a822edSMichal Simek 
23852a822edSMichal Simek #define	CONFIG_BOOTARGS		"root=romfs"
239330e5545SMichal Simek #define	CONFIG_HOSTNAME		XILINX_BOARD_NAME
24052a822edSMichal Simek #define	CONFIG_BOOTCOMMAND	"base 0;tftp 11000000 image.img;bootm"
24152a822edSMichal Simek #define	CONFIG_IPADDR		192.168.0.3
24252a822edSMichal Simek #define	CONFIG_SERVERIP		192.168.0.5
24352a822edSMichal Simek #define	CONFIG_GATEWAYIP	192.168.0.1
24452a822edSMichal Simek 
24552a822edSMichal Simek /* architecture dependent code */
24652a822edSMichal Simek #define	CONFIG_SYS_USR_EXCEP	/* user exception */
24752a822edSMichal Simek 
2480900bee9SMichal Simek #define	CONFIG_PREBOOT	"echo U-BOOT for ${hostname};setenv preboot;echo"
24952a822edSMichal Simek 
2504aecfb16SMichal Simek #define	CONFIG_EXTRA_ENV_SETTINGS	"unlock=yes\0" \
251c82a541dSStephan Linz 					"nor0=flash-0\0"\
252c82a541dSStephan Linz 					"mtdparts=mtdparts=flash-0:"\
25352a822edSMichal Simek 					"256k(u-boot),256k(env),3m(kernel),"\
25478376452SMichal Simek 					"1m(romfs),1m(cramfs),-(jffs2)\0"\
25578376452SMichal Simek 					"nc=setenv stdout nc;"\
25678376452SMichal Simek 					"setenv stdin nc\0" \
25778376452SMichal Simek 					"serial=setenv stdout serial;"\
25878376452SMichal Simek 					"setenv stdin serial\0"
25952a822edSMichal Simek 
26052a822edSMichal Simek #define CONFIG_CMDLINE_EDITING
26152a822edSMichal Simek 
26278376452SMichal Simek #define CONFIG_SYS_CONSOLE_IS_IN_ENV
26378376452SMichal Simek 
26437e892d9SMichal Simek /* Enable flat device tree support */
26537e892d9SMichal Simek #define CONFIG_LMB		1
26637e892d9SMichal Simek 
2674632b1eaSMichal Simek #if defined(CONFIG_XILINX_AXIEMAC)
268f5e5e1ffSStephan Linz # define CONFIG_MII		1
269f5e5e1ffSStephan Linz # define CONFIG_PHY_GIGE	1
270f5e5e1ffSStephan Linz # define CONFIG_SYS_FAULT_ECHO_LINK_DOWN	1
271f5e5e1ffSStephan Linz # define CONFIG_PHY_ATHEROS	1
272f5e5e1ffSStephan Linz # define CONFIG_PHY_BROADCOM	1
273f5e5e1ffSStephan Linz # define CONFIG_PHY_DAVICOM	1
274f5e5e1ffSStephan Linz # define CONFIG_PHY_LXT		1
275f5e5e1ffSStephan Linz # define CONFIG_PHY_MARVELL	1
276f5e5e1ffSStephan Linz # define CONFIG_PHY_MICREL	1
2772014a3deSMichal Simek # define CONFIG_PHY_MICREL_KSZ9021
278f5e5e1ffSStephan Linz # define CONFIG_PHY_NATSEMI	1
279f5e5e1ffSStephan Linz # define CONFIG_PHY_REALTEK	1
280f5e5e1ffSStephan Linz # define CONFIG_PHY_VITESSE	1
281f5e5e1ffSStephan Linz #else
282f5e5e1ffSStephan Linz # undef CONFIG_MII
283f5e5e1ffSStephan Linz #endif
284f5e5e1ffSStephan Linz 
2859d242745SMichal Simek /* SPL part */
2869d242745SMichal Simek #define CONFIG_CMD_SPL
2879d242745SMichal Simek #define CONFIG_SPL_FRAMEWORK
2889d242745SMichal Simek #define CONFIG_SPL_LIBCOMMON_SUPPORT
2899d242745SMichal Simek #define CONFIG_SPL_LIBGENERIC_SUPPORT
2909d242745SMichal Simek #define CONFIG_SPL_SERIAL_SUPPORT
2919d242745SMichal Simek #define CONFIG_SPL_BOARD_INIT
2929d242745SMichal Simek 
2939d242745SMichal Simek #define CONFIG_SPL_LDSCRIPT	"arch/microblaze/cpu/u-boot-spl.lds"
2949d242745SMichal Simek 
2959d242745SMichal Simek #define CONFIG_SPL_RAM_DEVICE
2964dd09742SMichal Simek #ifdef CONFIG_SYS_FLASH_BASE
2979d242745SMichal Simek # define CONFIG_SPL_NOR_SUPPORT
2984dd09742SMichal Simek # define CONFIG_SYS_UBOOT_BASE		CONFIG_SYS_FLASH_BASE
2994dd09742SMichal Simek #endif
3009d242745SMichal Simek 
3019d242745SMichal Simek /* for booting directly linux */
3029d242745SMichal Simek #define CONFIG_SPL_OS_BOOT
3039d242745SMichal Simek 
3049d242745SMichal Simek #define CONFIG_SYS_OS_BASE		(CONFIG_SYS_FLASH_BASE + \
3059d242745SMichal Simek 					 0x60000)
3069d242745SMichal Simek #define CONFIG_SYS_FDT_BASE		(CONFIG_SYS_FLASH_BASE + \
3079d242745SMichal Simek 					 0x40000)
308*5aa79f26SMike Looijmans #define CONFIG_SYS_FDT_SIZE		(16<<10)
3099d242745SMichal Simek #define CONFIG_SYS_SPL_ARGS_ADDR	(CONFIG_SYS_TEXT_BASE + \
3109d242745SMichal Simek 					 0x1000000)
3119d242745SMichal Simek 
3129d242745SMichal Simek /* SP location before relocation, must use scratch RAM */
3139d242745SMichal Simek /* BRAM start */
3149d242745SMichal Simek #define CONFIG_SYS_INIT_RAM_ADDR	0x0
3159d242745SMichal Simek /* BRAM size - will be generated */
316ca7d2266SMichal Simek #define CONFIG_SYS_INIT_RAM_SIZE	0x100000
317ca7d2266SMichal Simek 
318ca7d2266SMichal Simek # define CONFIG_SPL_STACK_ADDR		(CONFIG_SYS_INIT_RAM_ADDR + \
3199d242745SMichal Simek 					 CONFIG_SYS_INIT_RAM_SIZE - \
320ca7d2266SMichal Simek 					 CONFIG_SYS_MALLOC_F_LEN)
3219d242745SMichal Simek 
3229d242745SMichal Simek /* Just for sure that there is a space for stack */
3239d242745SMichal Simek #define CONFIG_SPL_STACK_SIZE		0x100
3249d242745SMichal Simek 
3259d242745SMichal Simek #define CONFIG_SYS_UBOOT_START		CONFIG_SYS_TEXT_BASE
3269d242745SMichal Simek 
3279d242745SMichal Simek #define CONFIG_SPL_MAX_FOOTPRINT	(CONFIG_SYS_INIT_RAM_SIZE - \
3289d242745SMichal Simek 					 CONFIG_SYS_INIT_RAM_ADDR - \
329ca7d2266SMichal Simek 					 CONFIG_SYS_MALLOC_F_LEN - \
3309d242745SMichal Simek 					 CONFIG_SPL_STACK_SIZE)
3319d242745SMichal Simek 
33252a822edSMichal Simek #endif	/* __CONFIG_H */
333