xref: /rk3399_rockchip-uboot/include/configs/microblaze-generic.h (revision 14d0a02a168b36e87665b8d7f42fa3e88263d26d)
152a822edSMichal Simek /*
24aecfb16SMichal Simek  * (C) Copyright 2007-2010 Michal Simek
352a822edSMichal Simek  *
452a822edSMichal Simek  * Michal SIMEK <monstr@monstr.eu>
552a822edSMichal Simek  *
652a822edSMichal Simek  * See file CREDITS for list of people who contributed to this
752a822edSMichal Simek  * project.
852a822edSMichal Simek  *
952a822edSMichal Simek  * This program is free software; you can redistribute it and/or
1052a822edSMichal Simek  * modify it under the terms of the GNU General Public License as
1152a822edSMichal Simek  * published by the Free Software Foundation; either version 2 of
1252a822edSMichal Simek  * the License, or (at your option) any later version.
1352a822edSMichal Simek  *
1452a822edSMichal Simek  * This program is distributed in the hope that it will be useful,
1552a822edSMichal Simek  * but WITHOUT ANY WARRANTY; without even the implied warranty of
1652a822edSMichal Simek  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1752a822edSMichal Simek  * GNU General Public License for more details.
1852a822edSMichal Simek  *
1952a822edSMichal Simek  * You should have received a copy of the GNU General Public License
2052a822edSMichal Simek  * along with this program; if not, write to the Free Software
2152a822edSMichal Simek  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
2252a822edSMichal Simek  * MA 02111-1307 USA
2352a822edSMichal Simek  */
2452a822edSMichal Simek 
2552a822edSMichal Simek #ifndef __CONFIG_H
2652a822edSMichal Simek #define __CONFIG_H
2752a822edSMichal Simek 
2852a822edSMichal Simek #include "../board/xilinx/microblaze-generic/xparameters.h"
2952a822edSMichal Simek 
304aecfb16SMichal Simek /* MicroBlaze CPU */
314aecfb16SMichal Simek #define	CONFIG_MICROBLAZE	1
3252a822edSMichal Simek #define	MICROBLAZE_V5		1
3352a822edSMichal Simek 
3452a822edSMichal Simek /* uart */
3552a822edSMichal Simek #ifdef XILINX_UARTLITE_BASEADDR
3652a822edSMichal Simek # define CONFIG_XILINX_UARTLITE
3752a822edSMichal Simek # define CONFIG_SERIAL_BASE	XILINX_UARTLITE_BASEADDR
3852a822edSMichal Simek # define CONFIG_BAUDRATE	XILINX_UARTLITE_BAUDRATE
3952a822edSMichal Simek # define CONFIG_SYS_BAUDRATE_TABLE	{ CONFIG_BAUDRATE }
40330e5545SMichal Simek # define CONSOLE_ARG	"console=console=ttyUL0,115200\0"
4152a822edSMichal Simek #elif XILINX_UART16550_BASEADDR
4252a822edSMichal Simek # define CONFIG_SYS_NS16550		1
4352a822edSMichal Simek # define CONFIG_SYS_NS16550_SERIAL
4452a822edSMichal Simek # define CONFIG_SYS_NS16550_REG_SIZE	-4
4552a822edSMichal Simek # define CONFIG_CONS_INDEX		1
464aecfb16SMichal Simek # define CONFIG_SYS_NS16550_COM1 \
474aecfb16SMichal Simek 			(XILINX_UART16550_BASEADDR + 0x1000 + 0x3)
4852a822edSMichal Simek # define CONFIG_SYS_NS16550_CLK	XILINX_UART16550_CLOCK_HZ
4952a822edSMichal Simek # define CONFIG_BAUDRATE	115200
5052a822edSMichal Simek 
5152a822edSMichal Simek /* The following table includes the supported baudrates */
5252a822edSMichal Simek # define CONFIG_SYS_BAUDRATE_TABLE \
5352a822edSMichal Simek 	{300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400}
54330e5545SMichal Simek # define CONSOLE_ARG	"console=console=ttyS0,115200\0"
5552a822edSMichal Simek #else
5652a822edSMichal Simek # error Undefined uart
5752a822edSMichal Simek #endif
5852a822edSMichal Simek 
5952a822edSMichal Simek /* setting reset address */
60*14d0a02aSWolfgang Denk /*#define	CONFIG_SYS_RESET_ADDRESS	CONFIG_SYS_TEXT_BASE*/
6152a822edSMichal Simek 
6252a822edSMichal Simek /* ethernet */
633ceba1d4SMichal Simek #ifdef XILINX_EMACLITE_BASEADDR
6452a822edSMichal Simek # define CONFIG_XILINX_EMACLITE		1
6552a822edSMichal Simek # define CONFIG_SYS_ENET
66330e5545SMichal Simek #elif XILINX_LLTEMAC_BASEADDR
67330e5545SMichal Simek # define CONFIG_XILINX_LL_TEMAC		1
68330e5545SMichal Simek # define CONFIG_SYS_ENET
6952a822edSMichal Simek #endif
70330e5545SMichal Simek 
7152a822edSMichal Simek #undef ET_DEBUG
7252a822edSMichal Simek 
7352a822edSMichal Simek /* gpio */
7452a822edSMichal Simek #ifdef XILINX_GPIO_BASEADDR
7552a822edSMichal Simek # define CONFIG_SYS_GPIO_0		1
7652a822edSMichal Simek # define CONFIG_SYS_GPIO_0_ADDR		XILINX_GPIO_BASEADDR
7752a822edSMichal Simek #endif
7852a822edSMichal Simek 
7952a822edSMichal Simek /* interrupt controller */
8052a822edSMichal Simek #ifdef XILINX_INTC_BASEADDR
8152a822edSMichal Simek # define CONFIG_SYS_INTC_0		1
8252a822edSMichal Simek # define CONFIG_SYS_INTC_0_ADDR		XILINX_INTC_BASEADDR
8352a822edSMichal Simek # define CONFIG_SYS_INTC_0_NUM		XILINX_INTC_NUM_INTR_INPUTS
8452a822edSMichal Simek #endif
8552a822edSMichal Simek 
8652a822edSMichal Simek /* timer */
8752a822edSMichal Simek #ifdef XILINX_TIMER_BASEADDR
8852a822edSMichal Simek # if (XILINX_TIMER_IRQ != -1)
8952a822edSMichal Simek #  define CONFIG_SYS_TIMER_0		1
9052a822edSMichal Simek #  define CONFIG_SYS_TIMER_0_ADDR	XILINX_TIMER_BASEADDR
9152a822edSMichal Simek #  define CONFIG_SYS_TIMER_0_IRQ	XILINX_TIMER_IRQ
9252a822edSMichal Simek #  define FREQUENCE	XILINX_CLOCK_FREQ
9352a822edSMichal Simek #  define CONFIG_SYS_TIMER_0_PRELOAD	( FREQUENCE/1000 )
9452a822edSMichal Simek # endif
95330e5545SMichal Simek #elif XILINX_CLOCK_FREQ
9652a822edSMichal Simek # define CONFIG_XILINX_CLOCK_FREQ	XILINX_CLOCK_FREQ
9752a822edSMichal Simek #else
9852a822edSMichal Simek # error BAD CLOCK FREQ
9952a822edSMichal Simek #endif
10052a822edSMichal Simek /* FSL */
10152a822edSMichal Simek /* #define	CONFIG_SYS_FSL_2 */
10252a822edSMichal Simek /* #define	FSL_INTR_2	1 */
10352a822edSMichal Simek 
10452a822edSMichal Simek /*
10552a822edSMichal Simek  * memory layout - Example
106*14d0a02aSWolfgang Denk  * CONFIG_SYS_TEXT_BASE = 0x1200_0000;
10752a822edSMichal Simek  * CONFIG_SYS_SRAM_BASE = 0x1000_0000;
10852a822edSMichal Simek  * CONFIG_SYS_SRAM_SIZE = 0x0400_0000;
10952a822edSMichal Simek  *
11052a822edSMichal Simek  * CONFIG_SYS_GBL_DATA_OFFSET = 0x1000_0000 + 0x0400_0000 - 0x1000 = 0x13FF_F000
11152a822edSMichal Simek  * CONFIG_SYS_MONITOR_BASE = 0x13FF_F000 - 0x40000 = 0x13FB_F000
11252a822edSMichal Simek  * CONFIG_SYS_MALLOC_BASE = 0x13FB_F000 - 0x40000 = 0x13F7_F000
11352a822edSMichal Simek  *
11452a822edSMichal Simek  * 0x1000_0000	CONFIG_SYS_SDRAM_BASE
11552a822edSMichal Simek  *					FREE
116*14d0a02aSWolfgang Denk  * 0x1200_0000	CONFIG_SYS_TEXT_BASE
11752a822edSMichal Simek  *		U-BOOT code
11852a822edSMichal Simek  * 0x1202_0000
11952a822edSMichal Simek  *					FREE
12052a822edSMichal Simek  *
12152a822edSMichal Simek  *					STACK
12252a822edSMichal Simek  * 0x13F7_F000	CONFIG_SYS_MALLOC_BASE
12352a822edSMichal Simek  *					MALLOC_AREA	256kB	Alloc
12452a822edSMichal Simek  * 0x11FB_F000	CONFIG_SYS_MONITOR_BASE
12552a822edSMichal Simek  *					MONITOR_CODE	256kB	Env
12652a822edSMichal Simek  * 0x13FF_F000	CONFIG_SYS_GBL_DATA_OFFSET
12752a822edSMichal Simek  *					GLOBAL_DATA	4kB	bd, gd
12852a822edSMichal Simek  * 0x1400_0000	CONFIG_SYS_SDRAM_BASE + CONFIG_SYS_SDRAM_SIZE
12952a822edSMichal Simek  */
13052a822edSMichal Simek 
13152a822edSMichal Simek /* ddr sdram - main memory */
13252a822edSMichal Simek #define	CONFIG_SYS_SDRAM_BASE		XILINX_RAM_START
13352a822edSMichal Simek #define	CONFIG_SYS_SDRAM_SIZE		XILINX_RAM_SIZE
13452a822edSMichal Simek #define	CONFIG_SYS_MEMTEST_START	CONFIG_SYS_SDRAM_BASE
13552a822edSMichal Simek #define	CONFIG_SYS_MEMTEST_END		(CONFIG_SYS_SDRAM_BASE + 0x1000)
13652a822edSMichal Simek 
13752a822edSMichal Simek /* global pointer */
1382fddd444SMichal Simek #define	CONFIG_SYS_GBL_DATA_SIZE	128 /* size of global data */
13952a822edSMichal Simek /* start of global data */
1404aecfb16SMichal Simek #define	CONFIG_SYS_GBL_DATA_OFFSET \
1414aecfb16SMichal Simek 	(CONFIG_SYS_SDRAM_BASE + CONFIG_SYS_SDRAM_SIZE \
1424aecfb16SMichal Simek 				- CONFIG_SYS_GBL_DATA_SIZE)
14352a822edSMichal Simek 
14452a822edSMichal Simek /* monitor code */
14552a822edSMichal Simek #define	SIZE				0x40000
1462fddd444SMichal Simek #define	CONFIG_SYS_MONITOR_LEN		(SIZE - CONFIG_SYS_GBL_DATA_SIZE)
1474aecfb16SMichal Simek #define	CONFIG_SYS_MONITOR_BASE	\
1484aecfb16SMichal Simek 			(CONFIG_SYS_GBL_DATA_OFFSET - CONFIG_SYS_MONITOR_LEN)
1494aecfb16SMichal Simek #define	CONFIG_SYS_MONITOR_END \
1504aecfb16SMichal Simek 			(CONFIG_SYS_MONITOR_BASE + CONFIG_SYS_MONITOR_LEN)
15152a822edSMichal Simek #define	CONFIG_SYS_MALLOC_LEN		SIZE
1524aecfb16SMichal Simek #define	CONFIG_SYS_MALLOC_BASE \
1534aecfb16SMichal Simek 			(CONFIG_SYS_MONITOR_BASE - CONFIG_SYS_MALLOC_LEN)
15452a822edSMichal Simek 
15552a822edSMichal Simek /* stack */
1568fe7b29fSGraeme Smecher #define	CONFIG_SYS_INIT_SP_OFFSET	CONFIG_SYS_MALLOC_BASE
15752a822edSMichal Simek 
15852a822edSMichal Simek /*#define	RAMENV */
15952a822edSMichal Simek #define	FLASH
16052a822edSMichal Simek 
16152a822edSMichal Simek #ifdef FLASH
16252a822edSMichal Simek # define CONFIG_SYS_FLASH_BASE		XILINX_FLASH_START
16352a822edSMichal Simek # define CONFIG_SYS_FLASH_SIZE		XILINX_FLASH_SIZE
16452a822edSMichal Simek # define CONFIG_SYS_FLASH_CFI		1
16552a822edSMichal Simek # define CONFIG_FLASH_CFI_DRIVER	1
1664aecfb16SMichal Simek /* ?empty sector */
1674aecfb16SMichal Simek # define CONFIG_SYS_FLASH_EMPTY_INFO	1
1684aecfb16SMichal Simek /* max number of memory banks */
1694aecfb16SMichal Simek # define CONFIG_SYS_MAX_FLASH_BANKS	1
1704aecfb16SMichal Simek /* max number of sectors on one chip */
1714aecfb16SMichal Simek # define CONFIG_SYS_MAX_FLASH_SECT	512
1724aecfb16SMichal Simek /* hardware flash protection */
1734aecfb16SMichal Simek # define CONFIG_SYS_FLASH_PROTECTION
17452a822edSMichal Simek 
17552a822edSMichal Simek # ifdef	RAMENV
17652a822edSMichal Simek #  define CONFIG_ENV_IS_NOWHERE	1
17752a822edSMichal Simek #  define CONFIG_ENV_SIZE	0x1000
17852a822edSMichal Simek #  define CONFIG_ENV_ADDR	(CONFIG_SYS_MONITOR_BASE - CONFIG_ENV_SIZE)
17952a822edSMichal Simek 
18052a822edSMichal Simek # else	/* !RAMENV */
18152a822edSMichal Simek #  define CONFIG_ENV_IS_IN_FLASH	1
1824aecfb16SMichal Simek /* 128K(one sector) for env */
1834aecfb16SMichal Simek #  define CONFIG_ENV_SECT_SIZE	0x20000
1844aecfb16SMichal Simek #  define CONFIG_ENV_ADDR \
1854aecfb16SMichal Simek 			(CONFIG_SYS_FLASH_BASE + (2 * CONFIG_ENV_SECT_SIZE))
186330e5545SMichal Simek #  define CONFIG_ENV_SIZE	0x20000
18752a822edSMichal Simek # endif /* !RAMBOOT */
18852a822edSMichal Simek #else /* !FLASH */
18952a822edSMichal Simek /* ENV in RAM */
19052a822edSMichal Simek # define CONFIG_SYS_NO_FLASH	1
19152a822edSMichal Simek # define CONFIG_ENV_IS_NOWHERE	1
19252a822edSMichal Simek # define CONFIG_ENV_SIZE	0x1000
19352a822edSMichal Simek # define CONFIG_ENV_ADDR	(CONFIG_SYS_MONITOR_BASE - CONFIG_ENV_SIZE)
1944aecfb16SMichal Simek /* hardware flash protection */
1954aecfb16SMichal Simek # define CONFIG_SYS_FLASH_PROTECTION
19652a822edSMichal Simek #endif /* !FLASH */
19752a822edSMichal Simek 
19852a822edSMichal Simek /* system ace */
19952a822edSMichal Simek #ifdef XILINX_SYSACE_BASEADDR
20052a822edSMichal Simek # define CONFIG_SYSTEMACE
20152a822edSMichal Simek /* #define DEBUG_SYSTEMACE */
20252a822edSMichal Simek # define SYSTEMACE_CONFIG_FPGA
20352a822edSMichal Simek # define CONFIG_SYS_SYSTEMACE_BASE	XILINX_SYSACE_BASEADDR
20452a822edSMichal Simek # define CONFIG_SYS_SYSTEMACE_WIDTH	XILINX_SYSACE_MEM_WIDTH
20552a822edSMichal Simek # define CONFIG_DOS_PARTITION
20652a822edSMichal Simek #endif
20752a822edSMichal Simek 
208e9b737deSMichal Simek #if defined(XILINX_USE_ICACHE)
209e9b737deSMichal Simek # define CONFIG_ICACHE
210e9b737deSMichal Simek #else
211e9b737deSMichal Simek # undef CONFIG_ICACHE
212e9b737deSMichal Simek #endif
213e9b737deSMichal Simek 
214e9b737deSMichal Simek #if defined(XILINX_USE_DCACHE)
215e9b737deSMichal Simek # define CONFIG_DCACHE
216e9b737deSMichal Simek #else
217e9b737deSMichal Simek # undef CONFIG_DCACHE
218e9b737deSMichal Simek #endif
219e9b737deSMichal Simek 
22052a822edSMichal Simek /*
22152a822edSMichal Simek  * BOOTP options
22252a822edSMichal Simek  */
22352a822edSMichal Simek #define CONFIG_BOOTP_BOOTFILESIZE
22452a822edSMichal Simek #define CONFIG_BOOTP_BOOTPATH
22552a822edSMichal Simek #define CONFIG_BOOTP_GATEWAY
22652a822edSMichal Simek #define CONFIG_BOOTP_HOSTNAME
22752a822edSMichal Simek 
22852a822edSMichal Simek /*
22952a822edSMichal Simek  * Command line configuration.
23052a822edSMichal Simek  */
23152a822edSMichal Simek #include <config_cmd_default.h>
23252a822edSMichal Simek 
23352a822edSMichal Simek #define CONFIG_CMD_ASKENV
23452a822edSMichal Simek #define CONFIG_CMD_IRQ
23552a822edSMichal Simek #define CONFIG_CMD_MFSL
236330e5545SMichal Simek #define CONFIG_CMD_ECHO
23752a822edSMichal Simek 
238e9b737deSMichal Simek #if defined(CONFIG_DCACHE) || defined(CONFIG_ICACHE)
239e9b737deSMichal Simek # define CONFIG_CMD_CACHE
240e9b737deSMichal Simek #else
241e9b737deSMichal Simek # undef CONFIG_CMD_CACHE
242e9b737deSMichal Simek #endif
243e9b737deSMichal Simek 
24452a822edSMichal Simek #ifndef CONFIG_SYS_ENET
24552a822edSMichal Simek # undef CONFIG_CMD_NET
246d69f8f41SMichal Simek # undef CONFIG_NET_MULTI
24752a822edSMichal Simek #else
24852a822edSMichal Simek # define CONFIG_CMD_PING
2493faf987dSStephan Linz # define CONFIG_CMD_DHCP
250d69f8f41SMichal Simek # define CONFIG_NET_MULTI
25152a822edSMichal Simek #endif
25252a822edSMichal Simek 
25352a822edSMichal Simek #if defined(CONFIG_SYSTEMACE)
25452a822edSMichal Simek # define CONFIG_CMD_EXT2
25552a822edSMichal Simek # define CONFIG_CMD_FAT
25652a822edSMichal Simek #endif
25752a822edSMichal Simek 
25852a822edSMichal Simek #if defined(FLASH)
25952a822edSMichal Simek # define CONFIG_CMD_ECHO
26052a822edSMichal Simek # define CONFIG_CMD_FLASH
26152a822edSMichal Simek # define CONFIG_CMD_IMLS
26252a822edSMichal Simek # define CONFIG_CMD_JFFS2
26352a822edSMichal Simek 
26452a822edSMichal Simek # if !defined(RAMENV)
265bdab39d3SMike Frysinger #  define CONFIG_CMD_SAVEENV
26652a822edSMichal Simek #  define CONFIG_CMD_SAVES
26752a822edSMichal Simek # endif
26852a822edSMichal Simek #else
269330e5545SMichal Simek # undef CONFIG_CMD_IMLS
27052a822edSMichal Simek # undef CONFIG_CMD_FLASH
271330e5545SMichal Simek # undef CONFIG_CMD_JFFS2
27252a822edSMichal Simek #endif
27352a822edSMichal Simek 
27452a822edSMichal Simek #if defined(CONFIG_CMD_JFFS2)
27552a822edSMichal Simek /* JFFS2 partitions */
27668d7d651SStefan Roese #define CONFIG_CMD_MTDPARTS	/* mtdparts command line support */
277942556a9SStefan Roese #define CONFIG_MTD_DEVICE	/* needed for mtdparts commands */
278942556a9SStefan Roese #define CONFIG_FLASH_CFI_MTD
279c82a541dSStephan Linz #define MTDIDS_DEFAULT		"nor0=flash-0"
28052a822edSMichal Simek 
28152a822edSMichal Simek /* default mtd partition table */
282c82a541dSStephan Linz #define MTDPARTS_DEFAULT	"mtdparts=flash-0:256k(u-boot),"\
28352a822edSMichal Simek 				"256k(env),3m(kernel),1m(romfs),"\
28452a822edSMichal Simek 				"1m(cramfs),-(jffs2)"
28552a822edSMichal Simek #endif
28652a822edSMichal Simek 
28752a822edSMichal Simek /* Miscellaneous configurable options */
28852a822edSMichal Simek #define	CONFIG_SYS_PROMPT	"U-Boot-mONStR> "
2894aecfb16SMichal Simek /* size of console buffer */
2904aecfb16SMichal Simek #define	CONFIG_SYS_CBSIZE	512
2914aecfb16SMichal Simek  /* print buffer size */
2924aecfb16SMichal Simek #define	CONFIG_SYS_PBSIZE \
2934aecfb16SMichal Simek 		(CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16)
2944aecfb16SMichal Simek /* max number of command args */
2954aecfb16SMichal Simek #define	CONFIG_SYS_MAXARGS	15
29652a822edSMichal Simek #define	CONFIG_SYS_LONGHELP
2974aecfb16SMichal Simek /* default load address */
2984aecfb16SMichal Simek #define	CONFIG_SYS_LOAD_ADDR	XILINX_RAM_START
29952a822edSMichal Simek 
300330e5545SMichal Simek #define	CONFIG_BOOTDELAY	-1	/* -1 disables auto-boot */
30152a822edSMichal Simek #define	CONFIG_BOOTARGS		"root=romfs"
302330e5545SMichal Simek #define	CONFIG_HOSTNAME		XILINX_BOARD_NAME
30352a822edSMichal Simek #define	CONFIG_BOOTCOMMAND	"base 0;tftp 11000000 image.img;bootm"
30452a822edSMichal Simek #define	CONFIG_IPADDR		192.168.0.3
30552a822edSMichal Simek #define	CONFIG_SERVERIP		192.168.0.5
30652a822edSMichal Simek #define	CONFIG_GATEWAYIP	192.168.0.1
30752a822edSMichal Simek #define	CONFIG_ETHADDR		00:E0:0C:00:00:FD
30852a822edSMichal Simek 
30952a822edSMichal Simek /* architecture dependent code */
31052a822edSMichal Simek #define	CONFIG_SYS_USR_EXCEP	/* user exception */
31152a822edSMichal Simek #define CONFIG_SYS_HZ	1000
31252a822edSMichal Simek 
3130900bee9SMichal Simek #define	CONFIG_PREBOOT	"echo U-BOOT for ${hostname};setenv preboot;echo"
31452a822edSMichal Simek 
3154aecfb16SMichal Simek #define	CONFIG_EXTRA_ENV_SETTINGS	"unlock=yes\0" \
316c82a541dSStephan Linz 					"nor0=flash-0\0"\
317c82a541dSStephan Linz 					"mtdparts=mtdparts=flash-0:"\
31852a822edSMichal Simek 					"256k(u-boot),256k(env),3m(kernel),"\
31952a822edSMichal Simek 					"1m(romfs),1m(cramfs),-(jffs2)\0"
32052a822edSMichal Simek 
32152a822edSMichal Simek #define CONFIG_CMDLINE_EDITING
32252a822edSMichal Simek 
3230900bee9SMichal Simek /* Use the HUSH parser */
3240900bee9SMichal Simek #define CONFIG_SYS_HUSH_PARSER
3250900bee9SMichal Simek #ifdef CONFIG_SYS_HUSH_PARSER
3260900bee9SMichal Simek # define CONFIG_SYS_PROMPT_HUSH_PS2 "> "
3270900bee9SMichal Simek #endif
3280900bee9SMichal Simek 
32952a822edSMichal Simek #endif	/* __CONFIG_H */
330