microblaze-generic.h 11.8 KB
Newer Older
M
Michal Simek 已提交
1
/*
2
 * (C) Copyright 2007-2010 Michal Simek
M
Michal Simek 已提交
3
 *
4
 * Michal SIMEK <monstr@monstr.eu>
M
Michal Simek 已提交
5
 *
6
 * SPDX-License-Identifier:	GPL-2.0+
M
Michal Simek 已提交
7 8 9 10 11
 */

#ifndef __CONFIG_H
#define __CONFIG_H

12
#include "../board/xilinx/microblaze-generic/xparameters.h"
M
Michal Simek 已提交
13

14 15
/* MicroBlaze CPU */
#define	CONFIG_MICROBLAZE	1
16
#define	MICROBLAZE_V5		1
M
Michal Simek 已提交
17

18 19 20 21 22
/* Open Firmware DTS */
#define CONFIG_OF_CONTROL	1
#define CONFIG_OF_EMBED		1
#define CONFIG_DEFAULT_DEVICE_TREE microblaze

S
Stephan Linz 已提交
23
/* linear and spi flash memory */
24 25
#ifdef XILINX_FLASH_START
#define	FLASH
S
Stephan Linz 已提交
26
#undef	SPIFLASH
27 28
#undef	RAMENV	/* hold environment in flash */
#else
S
Stephan Linz 已提交
29
#ifdef XILINX_SPI_FLASH_BASEADDR
30
#undef	FLASH
S
Stephan Linz 已提交
31 32 33 34 35
#define	SPIFLASH
#undef	RAMENV	/* hold environment in flash */
#else
#undef	FLASH
#undef	SPIFLASH
36 37
#define	RAMENV	/* hold environment in RAM */
#endif
S
Stephan Linz 已提交
38
#endif
39

M
Michal Simek 已提交
40
/* uart */
41
#ifdef XILINX_UARTLITE_BASEADDR
42 43 44 45 46
# define CONFIG_XILINX_UARTLITE
# define CONFIG_SERIAL_BASE	XILINX_UARTLITE_BASEADDR
# define CONFIG_BAUDRATE	XILINX_UARTLITE_BAUDRATE
# define CONFIG_SYS_BAUDRATE_TABLE	{ CONFIG_BAUDRATE }
# define CONSOLE_ARG	"console=console=ttyUL0,115200\0"
47
#elif XILINX_UART16550_BASEADDR
48 49
# define CONFIG_SYS_NS16550		1
# define CONFIG_SYS_NS16550_SERIAL
50 51 52 53 54
# if defined(__MICROBLAZEEL__)
#  define CONFIG_SYS_NS16550_REG_SIZE	-4
# else
#  define CONFIG_SYS_NS16550_REG_SIZE	4
# endif
55 56
# define CONFIG_CONS_INDEX		1
# define CONFIG_SYS_NS16550_COM1 \
57
		((XILINX_UART16550_BASEADDR & ~0xF) + 0x1000)
58 59 60 61 62 63 64
# define CONFIG_SYS_NS16550_CLK	XILINX_UART16550_CLOCK_HZ
# define CONFIG_BAUDRATE	115200

/* The following table includes the supported baudrates */
# define CONFIG_SYS_BAUDRATE_TABLE \
	{300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400}
# define CONSOLE_ARG	"console=console=ttyS0,115200\0"
65
#else
66
# error Undefined uart
67
#endif
M
Michal Simek 已提交
68 69

/* setting reset address */
70
/*#define	CONFIG_SYS_RESET_ADDRESS	CONFIG_SYS_TEXT_BASE*/
M
Michal Simek 已提交
71

M
Michal Simek 已提交
72
/* ethernet */
73
#undef CONFIG_SYS_ENET
74 75
#if defined(XILINX_EMACLITE_BASEADDR)
# define CONFIG_XILINX_EMACLITE	1
76
# define CONFIG_SYS_ENET
77 78 79
#endif
#if defined(XILINX_LLTEMAC_BASEADDR)
# define CONFIG_XILINX_LL_TEMAC	1
80
# define CONFIG_SYS_ENET
81
#endif
82 83 84 85
#if defined(XILINX_AXIEMAC_BASEADDR)
# define CONFIG_XILINX_AXIEMAC	1
# define CONFIG_SYS_ENET
#endif
86

87
#undef ET_DEBUG
M
Michal Simek 已提交
88

M
Michal Simek 已提交
89
/* gpio */
90
#ifdef XILINX_GPIO_BASEADDR
91
# define CONFIG_XILINX_GPIO
92
# define CONFIG_SYS_GPIO_0_ADDR		XILINX_GPIO_BASEADDR
93
#endif
M
Michal Simek 已提交
94 95

/* interrupt controller */
M
Michal Simek 已提交
96
#ifdef XILINX_INTC_BASEADDR
97 98
# define CONFIG_SYS_INTC_0_ADDR		XILINX_INTC_BASEADDR
# define CONFIG_SYS_INTC_0_NUM		XILINX_INTC_NUM_INTR_INPUTS
M
Michal Simek 已提交
99
#endif
M
Michal Simek 已提交
100 101

/* timer */
102
#if defined(XILINX_TIMER_BASEADDR) && defined(XILINX_TIMER_IRQ)
103 104
#  define CONFIG_SYS_TIMER_0_ADDR	XILINX_TIMER_BASEADDR
#  define CONFIG_SYS_TIMER_0_IRQ	XILINX_TIMER_IRQ
M
Michal Simek 已提交
105
#endif
106

107 108 109 110 111 112 113 114
/* watchdog */
#if defined(XILINX_WATCHDOG_BASEADDR) && defined(XILINX_WATCHDOG_IRQ)
# define CONFIG_WATCHDOG_BASEADDR	XILINX_WATCHDOG_BASEADDR
# define CONFIG_WATCHDOG_IRQ		XILINX_WATCHDOG_IRQ
# define CONFIG_HW_WATCHDOG
# define CONFIG_XILINX_TB_WATCHDOG
#endif

M
Michal Simek 已提交
115 116
/*
 * memory layout - Example
117
 * CONFIG_SYS_TEXT_BASE = 0x1200_0000;	defined in config.mk
118
 * CONFIG_SYS_SRAM_BASE = 0x1000_0000;
119 120 121 122
 * CONFIG_SYS_SRAM_SIZE = 0x0400_0000;	64MB
 *
 * CONFIG_SYS_MONITOR_LEN = 0x40000
 * CONFIG_SYS_MALLOC_LEN = 3 * CONFIG_SYS_MONITOR_LEN = 0xC0000
M
Michal Simek 已提交
123
 *
124
 * CONFIG_SYS_GBL_DATA_OFFSET = 0x1000_0000 + 0x0400_0000 - 0x1000 = 0x13FF_F000
125 126
 * CONFIG_SYS_MONITOR_BASE = 0x13FF_F000 - CONFIG_SYS_MONITOR_LEN = 0x13FB_F000
 * CONFIG_SYS_MALLOC_BASE = 0x13FB_F000 - CONFIG_SYS_MALLOC_LEN = 0x13EF_F000
M
Michal Simek 已提交
127
 *
128
 * 0x1000_0000	CONFIG_SYS_SDRAM_BASE
129
 *					MEMTEST_AREA	 64kB
M
Michal Simek 已提交
130
 *					FREE
131
 * 0x1200_0000	CONFIG_SYS_TEXT_BASE
M
Michal Simek 已提交
132 133 134 135 136
 *		U-BOOT code
 * 0x1202_0000
 *					FREE
 *
 *					STACK
137 138 139
 * 0x13EF_F000	CONFIG_SYS_MALLOC_BASE
 *					MALLOC_AREA	768kB	Alloc
 * 0x13FB_F000	CONFIG_SYS_MONITOR_BASE
M
Michal Simek 已提交
140
 *					MONITOR_CODE	256kB	Env
141
 * 0x13FF_F000	CONFIG_SYS_GBL_DATA_OFFSET
142
 *					GLOBAL_DATA	4kB	bd, gd
143
 * 0x1400_0000	CONFIG_SYS_SDRAM_BASE + CONFIG_SYS_SDRAM_SIZE
M
Michal Simek 已提交
144 145 146
 */

/* ddr sdram - main memory */
147 148 149 150
#define	CONFIG_SYS_SDRAM_BASE		XILINX_RAM_START
#define	CONFIG_SYS_SDRAM_SIZE		XILINX_RAM_SIZE
#define	CONFIG_SYS_MEMTEST_START	CONFIG_SYS_SDRAM_BASE
#define	CONFIG_SYS_MEMTEST_END		(CONFIG_SYS_SDRAM_BASE + 0x1000)
M
Michal Simek 已提交
151 152

/* global pointer */
153
/* start of global data */
154
#define	CONFIG_SYS_GBL_DATA_OFFSET \
M
Michal Simek 已提交
155
		(CONFIG_SYS_SDRAM_SIZE - GENERATED_GBL_DATA_SIZE)
M
Michal Simek 已提交
156 157

/* monitor code */
158
#define	SIZE				0x40000
M
Michal Simek 已提交
159
#define	CONFIG_SYS_MONITOR_LEN		SIZE
160
#define	CONFIG_SYS_MONITOR_BASE	\
M
Michal Simek 已提交
161 162
		(CONFIG_SYS_SDRAM_BASE + CONFIG_SYS_GBL_DATA_OFFSET \
			- CONFIG_SYS_MONITOR_LEN - GENERATED_BD_INFO_SIZE)
163 164
#define	CONFIG_SYS_MONITOR_END \
			(CONFIG_SYS_MONITOR_BASE + CONFIG_SYS_MONITOR_LEN)
S
Stephan Linz 已提交
165
#define	CONFIG_SYS_MALLOC_LEN		(SIZE * 3)
166 167
#define	CONFIG_SYS_MALLOC_BASE \
			(CONFIG_SYS_MONITOR_BASE - CONFIG_SYS_MALLOC_LEN)
M
Michal Simek 已提交
168 169

/* stack */
170
#define	CONFIG_SYS_INIT_SP_OFFSET	CONFIG_SYS_MALLOC_BASE
M
Michal Simek 已提交
171

172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189
/*
 * CFI flash memory layout - Example
 * CONFIG_SYS_FLASH_BASE = 0x2200_0000;
 * CONFIG_SYS_FLASH_SIZE = 0x0080_0000;	  8MB
 *
 * SECT_SIZE = 0x20000;			128kB is one sector
 * CONFIG_ENV_SIZE = SECT_SIZE;		128kB environment store
 *
 * 0x2200_0000	CONFIG_SYS_FLASH_BASE
 *					FREE		256kB
 * 0x2204_0000	CONFIG_ENV_ADDR
 *					ENV_AREA	128kB
 * 0x2206_0000
 *					FREE
 * 0x2280_0000	CONFIG_SYS_FLASH_BASE + CONFIG_SYS_FLASH_SIZE
 *
 */

M
Michal Simek 已提交
190
#ifdef FLASH
191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208
# define CONFIG_SYS_FLASH_BASE		XILINX_FLASH_START
# define CONFIG_SYS_FLASH_SIZE		XILINX_FLASH_SIZE
# define CONFIG_SYS_FLASH_CFI		1
# define CONFIG_FLASH_CFI_DRIVER	1
/* ?empty sector */
# define CONFIG_SYS_FLASH_EMPTY_INFO	1
/* max number of memory banks */
# define CONFIG_SYS_MAX_FLASH_BANKS	1
/* max number of sectors on one chip */
# define CONFIG_SYS_MAX_FLASH_SECT	512
/* hardware flash protection */
# define CONFIG_SYS_FLASH_PROTECTION

# ifdef	RAMENV
#  define CONFIG_ENV_IS_NOWHERE	1
#  define CONFIG_ENV_SIZE	0x1000
#  define CONFIG_ENV_ADDR	(CONFIG_SYS_MONITOR_BASE - CONFIG_ENV_SIZE)

S
Stephan Linz 已提交
209
# else	/* FLASH && !RAMENV */
210 211 212 213 214 215
#  define CONFIG_ENV_IS_IN_FLASH	1
/* 128K(one sector) for env */
#  define CONFIG_ENV_SECT_SIZE	0x20000
#  define CONFIG_ENV_ADDR \
			(CONFIG_SYS_FLASH_BASE + (2 * CONFIG_ENV_SECT_SIZE))
#  define CONFIG_ENV_SIZE	0x20000
S
Stephan Linz 已提交
216
# endif /* FLASH && !RAMBOOT */
M
Michal Simek 已提交
217
#else /* !FLASH */
S
Stephan Linz 已提交
218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247

#ifdef SPIFLASH
# define CONFIG_SYS_NO_FLASH		1
# define CONFIG_SYS_SPI_BASE		XILINX_SPI_FLASH_BASEADDR
# define CONFIG_XILINX_SPI		1
# define CONFIG_SPI			1
# define CONFIG_SPI_FLASH		1
# define CONFIG_SPI_FLASH_STMICRO	1
# define CONFIG_SF_DEFAULT_MODE		SPI_MODE_3
# define CONFIG_SF_DEFAULT_SPEED	XILINX_SPI_FLASH_MAX_FREQ
# define CONFIG_SF_DEFAULT_CS		XILINX_SPI_FLASH_CS

# ifdef	RAMENV
#  define CONFIG_ENV_IS_NOWHERE	1
#  define CONFIG_ENV_SIZE	0x1000
#  define CONFIG_ENV_ADDR	(CONFIG_SYS_MONITOR_BASE - CONFIG_ENV_SIZE)

# else	/* SPIFLASH && !RAMENV */
#  define CONFIG_ENV_IS_IN_SPI_FLASH	1
#  define CONFIG_ENV_SPI_MODE		SPI_MODE_3
#  define CONFIG_ENV_SPI_MAX_HZ		CONFIG_SF_DEFAULT_SPEED
#  define CONFIG_ENV_SPI_CS		CONFIG_SF_DEFAULT_CS
/* 128K(two sectors) for env */
#  define CONFIG_ENV_SECT_SIZE	0x10000
#  define CONFIG_ENV_SIZE	(2 * CONFIG_ENV_SECT_SIZE)
/* Warning: adjust the offset in respect of other flash content and size */
#  define CONFIG_ENV_OFFSET	(128 * CONFIG_ENV_SECT_SIZE) /* at 8MB */
# endif /* SPIFLASH && !RAMBOOT */
#else /* !SPIFLASH */

248 249 250 251 252
/* ENV in RAM */
# define CONFIG_SYS_NO_FLASH	1
# define CONFIG_ENV_IS_NOWHERE	1
# define CONFIG_ENV_SIZE	0x1000
# define CONFIG_ENV_ADDR	(CONFIG_SYS_MONITOR_BASE - CONFIG_ENV_SIZE)
S
Stephan Linz 已提交
253
#endif /* !SPIFLASH */
M
Michal Simek 已提交
254 255
#endif /* !FLASH */

256 257
/* system ace */
#ifdef XILINX_SYSACE_BASEADDR
258 259 260 261 262 263
# define CONFIG_SYSTEMACE
/* #define DEBUG_SYSTEMACE */
# define SYSTEMACE_CONFIG_FPGA
# define CONFIG_SYS_SYSTEMACE_BASE	XILINX_SYSACE_BASEADDR
# define CONFIG_SYS_SYSTEMACE_WIDTH	XILINX_SYSACE_MEM_WIDTH
# define CONFIG_DOS_PARTITION
264 265
#endif

M
Michal Simek 已提交
266
#if defined(XILINX_USE_ICACHE)
267
# define CONFIG_ICACHE
M
Michal Simek 已提交
268
#else
269
# undef CONFIG_ICACHE
M
Michal Simek 已提交
270 271 272
#endif

#if defined(XILINX_USE_DCACHE)
273
# define CONFIG_DCACHE
M
Michal Simek 已提交
274
#else
275
# undef CONFIG_DCACHE
M
Michal Simek 已提交
276 277
#endif

278 279 280 281
#ifndef XILINX_DCACHE_BYTE_SIZE
#define XILINX_DCACHE_BYTE_SIZE	32768
#endif

282 283 284 285 286 287 288
/*
 * BOOTP options
 */
#define CONFIG_BOOTP_BOOTFILESIZE
#define CONFIG_BOOTP_BOOTPATH
#define CONFIG_BOOTP_GATEWAY
#define CONFIG_BOOTP_HOSTNAME
M
Michal Simek 已提交
289

290 291 292 293 294 295 296 297
/*
 * Command line configuration.
 */
#include <config_cmd_default.h>

#define CONFIG_CMD_ASKENV
#define CONFIG_CMD_IRQ
#define CONFIG_CMD_MFSL
298
#define CONFIG_CMD_ECHO
299
#define CONFIG_CMD_GPIO
M
Michal Simek 已提交
300

M
Michal Simek 已提交
301
#if defined(CONFIG_DCACHE) || defined(CONFIG_ICACHE)
302
# define CONFIG_CMD_CACHE
M
Michal Simek 已提交
303
#else
304
# undef CONFIG_CMD_CACHE
M
Michal Simek 已提交
305 306
#endif

307
#ifndef CONFIG_SYS_ENET
308
# undef CONFIG_CMD_NET
309
# undef CONFIG_CMD_NFS
M
Michal Simek 已提交
310
#else
311 312
# define CONFIG_CMD_PING
# define CONFIG_CMD_DHCP
313
# define CONFIG_CMD_TFTPPUT
M
Michal Simek 已提交
314
#endif
315 316

#if defined(CONFIG_SYSTEMACE)
317 318
# define CONFIG_CMD_EXT2
# define CONFIG_CMD_FAT
319
#endif
320 321

#if defined(FLASH)
322 323 324 325
# define CONFIG_CMD_ECHO
# define CONFIG_CMD_FLASH
# define CONFIG_CMD_IMLS
# define CONFIG_CMD_JFFS2
S
Stephan Linz 已提交
326 327
# define CONFIG_CMD_UBI
# undef CONFIG_CMD_UBIFS
328

S
Stephan Linz 已提交
329 330 331 332 333 334 335 336 337
# if !defined(RAMENV)
#  define CONFIG_CMD_SAVEENV
#  define CONFIG_CMD_SAVES
# endif

#else
#if defined(SPIFLASH)
# define CONFIG_CMD_SF

338 339 340 341
# if !defined(RAMENV)
#  define CONFIG_CMD_SAVEENV
#  define CONFIG_CMD_SAVES
# endif
342
#else
343 344 345
# undef CONFIG_CMD_IMLS
# undef CONFIG_CMD_FLASH
# undef CONFIG_CMD_JFFS2
346 347
# undef CONFIG_CMD_UBI
# undef CONFIG_CMD_UBIFS
348
#endif
S
Stephan Linz 已提交
349
#endif
M
Michal Simek 已提交
350

351
#if defined(CONFIG_CMD_JFFS2)
S
Stephan Linz 已提交
352 353 354 355 356 357 358 359 360 361 362 363 364 365 366
# define CONFIG_MTD_PARTITIONS
#endif

#if defined(CONFIG_CMD_UBIFS)
# define CONFIG_CMD_UBI
# define CONFIG_LZO
#endif

#if defined(CONFIG_CMD_UBI)
# define CONFIG_MTD_PARTITIONS
# define CONFIG_RBTREE
#endif

#if defined(CONFIG_MTD_PARTITIONS)
/* MTD partitions */
367
#define CONFIG_CMD_MTDPARTS	/* mtdparts command line support */
368 369
#define CONFIG_MTD_DEVICE	/* needed for mtdparts commands */
#define CONFIG_FLASH_CFI_MTD
370
#define MTDIDS_DEFAULT		"nor0=flash-0"
371 372

/* default mtd partition table */
373
#define MTDPARTS_DEFAULT	"mtdparts=flash-0:256k(u-boot),"\
374 375 376 377
				"256k(env),3m(kernel),1m(romfs),"\
				"1m(cramfs),-(jffs2)"
#endif

M
Michal Simek 已提交
378
/* Miscellaneous configurable options */
379
#define	CONFIG_SYS_PROMPT	"U-Boot-mONStR> "
380 381 382 383 384 385 386
/* size of console buffer */
#define	CONFIG_SYS_CBSIZE	512
 /* print buffer size */
#define	CONFIG_SYS_PBSIZE \
		(CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16)
/* max number of command args */
#define	CONFIG_SYS_MAXARGS	15
387
#define	CONFIG_SYS_LONGHELP
388 389
/* default load address */
#define	CONFIG_SYS_LOAD_ADDR	XILINX_RAM_START
M
Michal Simek 已提交
390

391
#define	CONFIG_BOOTDELAY	-1	/* -1 disables auto-boot */
M
Michal Simek 已提交
392
#define	CONFIG_BOOTARGS		"root=romfs"
393
#define	CONFIG_HOSTNAME		XILINX_BOARD_NAME
394
#define	CONFIG_BOOTCOMMAND	"base 0;tftp 11000000 image.img;bootm"
M
Michal Simek 已提交
395
#define	CONFIG_IPADDR		192.168.0.3
396 397
#define	CONFIG_SERVERIP		192.168.0.5
#define	CONFIG_GATEWAYIP	192.168.0.1
M
Michal Simek 已提交
398 399 400
#define	CONFIG_ETHADDR		00:E0:0C:00:00:FD

/* architecture dependent code */
401 402
#define	CONFIG_SYS_USR_EXCEP	/* user exception */
#define CONFIG_SYS_HZ	1000
M
Michal Simek 已提交
403

M
Michal Simek 已提交
404
#define	CONFIG_PREBOOT	"echo U-BOOT for ${hostname};setenv preboot;echo"
405

406
#define	CONFIG_EXTRA_ENV_SETTINGS	"unlock=yes\0" \
407 408
					"nor0=flash-0\0"\
					"mtdparts=mtdparts=flash-0:"\
409
					"256k(u-boot),256k(env),3m(kernel),"\
M
Michal Simek 已提交
410 411 412 413 414
					"1m(romfs),1m(cramfs),-(jffs2)\0"\
					"nc=setenv stdout nc;"\
					"setenv stdin nc\0" \
					"serial=setenv stdout serial;"\
					"setenv stdin serial\0"
415

416 417
#define CONFIG_CMDLINE_EDITING

M
Michal Simek 已提交
418 419 420
#define CONFIG_NETCONSOLE
#define CONFIG_SYS_CONSOLE_IS_IN_ENV

M
Michal Simek 已提交
421 422 423
/* Use the HUSH parser */
#define CONFIG_SYS_HUSH_PARSER

M
Michal Simek 已提交
424 425 426 427 428
/* Enable flat device tree support */
#define CONFIG_LMB		1
#define CONFIG_FIT		1
#define CONFIG_OF_LIBFDT	1

429
#if defined(CONFIG_XILINX_LL_TEMAC) || defined(CONFIG_XILINX_AXIEMAC)
430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449
# define CONFIG_MII		1
# define CONFIG_CMD_MII		1
# define CONFIG_PHY_GIGE	1
# define CONFIG_SYS_FAULT_ECHO_LINK_DOWN	1
# define CONFIG_PHYLIB		1
# define CONFIG_PHY_ATHEROS	1
# define CONFIG_PHY_BROADCOM	1
# define CONFIG_PHY_DAVICOM	1
# define CONFIG_PHY_LXT		1
# define CONFIG_PHY_MARVELL	1
# define CONFIG_PHY_MICREL	1
# define CONFIG_PHY_NATSEMI	1
# define CONFIG_PHY_REALTEK	1
# define CONFIG_PHY_VITESSE	1
#else
# undef CONFIG_MII
# undef CONFIG_CMD_MII
# undef CONFIG_PHYLIB
#endif

M
Michal Simek 已提交
450
#endif	/* __CONFIG_H */