]> git.ipfire.org Git - people/ms/u-boot.git/blame - include/configs/microblaze-generic.h
microblaze: avoid interrupt race conditions
[people/ms/u-boot.git] / include / configs / microblaze-generic.h
CommitLineData
76316a31 1/*
4aecfb16 2 * (C) Copyright 2007-2010 Michal Simek
76316a31 3 *
cb1bc63b 4 * Michal SIMEK <monstr@monstr.eu>
76316a31
MS
5 *
6 * See file CREDITS for list of people who contributed to this
7 * project.
8 *
9 * This program is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of
12 * the License, or (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
22 * MA 02111-1307 USA
23 */
24
25#ifndef __CONFIG_H
26#define __CONFIG_H
27
52a822ed 28#include "../board/xilinx/microblaze-generic/xparameters.h"
76316a31 29
4aecfb16
MS
30/* MicroBlaze CPU */
31#define CONFIG_MICROBLAZE 1
1a50f164 32#define MICROBLAZE_V5 1
76316a31
MS
33
34/* uart */
af7ae1a4 35#ifdef XILINX_UARTLITE_BASEADDR
4aecfb16
MS
36# define CONFIG_XILINX_UARTLITE
37# define CONFIG_SERIAL_BASE XILINX_UARTLITE_BASEADDR
38# define CONFIG_BAUDRATE XILINX_UARTLITE_BAUDRATE
39# define CONFIG_SYS_BAUDRATE_TABLE { CONFIG_BAUDRATE }
40# define CONSOLE_ARG "console=console=ttyUL0,115200\0"
e7d591e8 41#elif XILINX_UART16550_BASEADDR
4aecfb16
MS
42# define CONFIG_SYS_NS16550 1
43# define CONFIG_SYS_NS16550_SERIAL
1de55ef1
SL
44# if defined(__MICROBLAZEEL__)
45# define CONFIG_SYS_NS16550_REG_SIZE -4
46# else
47# define CONFIG_SYS_NS16550_REG_SIZE 4
48# endif
4aecfb16
MS
49# define CONFIG_CONS_INDEX 1
50# define CONFIG_SYS_NS16550_COM1 \
1de55ef1 51 ((XILINX_UART16550_BASEADDR & ~0xF) + 0x1000)
4aecfb16
MS
52# define CONFIG_SYS_NS16550_CLK XILINX_UART16550_CLOCK_HZ
53# define CONFIG_BAUDRATE 115200
54
55/* The following table includes the supported baudrates */
56# define CONFIG_SYS_BAUDRATE_TABLE \
57 {300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400}
58# define CONSOLE_ARG "console=console=ttyS0,115200\0"
e7d591e8 59#else
4aecfb16 60# error Undefined uart
af7ae1a4 61#endif
76316a31
MS
62
63/* setting reset address */
14d0a02a 64/*#define CONFIG_SYS_RESET_ADDRESS CONFIG_SYS_TEXT_BASE*/
76316a31 65
17980495 66/* ethernet */
1252df06 67#undef CONFIG_SYS_ENET
3ceba1d4 68#ifdef XILINX_EMACLITE_BASEADDR
4aecfb16
MS
69# define CONFIG_XILINX_EMACLITE 1
70# define CONFIG_SYS_ENET
330e5545 71#elif XILINX_LLTEMAC_BASEADDR
4aecfb16
MS
72# define CONFIG_XILINX_LL_TEMAC 1
73# define CONFIG_SYS_ENET
e5845e21 74#endif
e634138e
MS
75#if defined(XILINX_AXIEMAC_BASEADDR)
76# define CONFIG_XILINX_AXIEMAC 1
77# define CONFIG_SYS_ENET
78#endif
330e5545 79
e5845e21 80#undef ET_DEBUG
17980495 81
76316a31 82/* gpio */
4c6a6f02 83#ifdef XILINX_GPIO_BASEADDR
4aecfb16
MS
84# define CONFIG_SYS_GPIO_0 1
85# define CONFIG_SYS_GPIO_0_ADDR XILINX_GPIO_BASEADDR
4c6a6f02 86#endif
76316a31
MS
87
88/* interrupt controller */
4d49b280 89#ifdef XILINX_INTC_BASEADDR
4aecfb16
MS
90# define CONFIG_SYS_INTC_0 1
91# define CONFIG_SYS_INTC_0_ADDR XILINX_INTC_BASEADDR
92# define CONFIG_SYS_INTC_0_NUM XILINX_INTC_NUM_INTR_INPUTS
4d49b280 93#endif
76316a31
MS
94
95/* timer */
4d49b280 96#ifdef XILINX_TIMER_BASEADDR
4aecfb16
MS
97# if (XILINX_TIMER_IRQ != -1)
98# define CONFIG_SYS_TIMER_0 1
99# define CONFIG_SYS_TIMER_0_ADDR XILINX_TIMER_BASEADDR
100# define CONFIG_SYS_TIMER_0_IRQ XILINX_TIMER_IRQ
101# define FREQUENCE XILINX_CLOCK_FREQ
102# define CONFIG_SYS_TIMER_0_PRELOAD ( FREQUENCE/1000 )
103# endif
330e5545 104#elif XILINX_CLOCK_FREQ
4aecfb16 105# define CONFIG_XILINX_CLOCK_FREQ XILINX_CLOCK_FREQ
4d49b280 106#else
4aecfb16 107# error BAD CLOCK FREQ
4d49b280 108#endif
19bf1fba 109/* FSL */
6d0f6bcf 110/* #define CONFIG_SYS_FSL_2 */
188dc16b 111/* #define FSL_INTR_2 1 */
19bf1fba 112
76316a31
MS
113/*
114 * memory layout - Example
14d0a02a 115 * CONFIG_SYS_TEXT_BASE = 0x1200_0000;
6d0f6bcf
JCPV
116 * CONFIG_SYS_SRAM_BASE = 0x1000_0000;
117 * CONFIG_SYS_SRAM_SIZE = 0x0400_0000;
76316a31 118 *
6d0f6bcf
JCPV
119 * CONFIG_SYS_GBL_DATA_OFFSET = 0x1000_0000 + 0x0400_0000 - 0x1000 = 0x13FF_F000
120 * CONFIG_SYS_MONITOR_BASE = 0x13FF_F000 - 0x40000 = 0x13FB_F000
121 * CONFIG_SYS_MALLOC_BASE = 0x13FB_F000 - 0x40000 = 0x13F7_F000
76316a31 122 *
6d0f6bcf 123 * 0x1000_0000 CONFIG_SYS_SDRAM_BASE
76316a31 124 * FREE
14d0a02a 125 * 0x1200_0000 CONFIG_SYS_TEXT_BASE
76316a31
MS
126 * U-BOOT code
127 * 0x1202_0000
128 * FREE
129 *
130 * STACK
6d0f6bcf 131 * 0x13F7_F000 CONFIG_SYS_MALLOC_BASE
17980495 132 * MALLOC_AREA 256kB Alloc
6d0f6bcf 133 * 0x11FB_F000 CONFIG_SYS_MONITOR_BASE
17980495 134 * MONITOR_CODE 256kB Env
6d0f6bcf 135 * 0x13FF_F000 CONFIG_SYS_GBL_DATA_OFFSET
853643d8 136 * GLOBAL_DATA 4kB bd, gd
6d0f6bcf 137 * 0x1400_0000 CONFIG_SYS_SDRAM_BASE + CONFIG_SYS_SDRAM_SIZE
76316a31
MS
138 */
139
140/* ddr sdram - main memory */
6d0f6bcf
JCPV
141#define CONFIG_SYS_SDRAM_BASE XILINX_RAM_START
142#define CONFIG_SYS_SDRAM_SIZE XILINX_RAM_SIZE
143#define CONFIG_SYS_MEMTEST_START CONFIG_SYS_SDRAM_BASE
144#define CONFIG_SYS_MEMTEST_END (CONFIG_SYS_SDRAM_BASE + 0x1000)
76316a31
MS
145
146/* global pointer */
32556443 147/* start of global data */
4aecfb16 148#define CONFIG_SYS_GBL_DATA_OFFSET \
1020286e 149 (CONFIG_SYS_SDRAM_SIZE - GENERATED_GBL_DATA_SIZE)
76316a31
MS
150
151/* monitor code */
4aecfb16 152#define SIZE 0x40000
1020286e 153#define CONFIG_SYS_MONITOR_LEN SIZE
4aecfb16 154#define CONFIG_SYS_MONITOR_BASE \
1020286e
MS
155 (CONFIG_SYS_SDRAM_BASE + CONFIG_SYS_GBL_DATA_OFFSET \
156 - CONFIG_SYS_MONITOR_LEN - GENERATED_BD_INFO_SIZE)
4aecfb16
MS
157#define CONFIG_SYS_MONITOR_END \
158 (CONFIG_SYS_MONITOR_BASE + CONFIG_SYS_MONITOR_LEN)
6d0f6bcf 159#define CONFIG_SYS_MALLOC_LEN SIZE
4aecfb16
MS
160#define CONFIG_SYS_MALLOC_BASE \
161 (CONFIG_SYS_MONITOR_BASE - CONFIG_SYS_MALLOC_LEN)
76316a31
MS
162
163/* stack */
8fe7b29f 164#define CONFIG_SYS_INIT_SP_OFFSET CONFIG_SYS_MALLOC_BASE
76316a31
MS
165
166/*#define RAMENV */
167#define FLASH
168
169#ifdef FLASH
4aecfb16
MS
170# define CONFIG_SYS_FLASH_BASE XILINX_FLASH_START
171# define CONFIG_SYS_FLASH_SIZE XILINX_FLASH_SIZE
172# define CONFIG_SYS_FLASH_CFI 1
173# define CONFIG_FLASH_CFI_DRIVER 1
174/* ?empty sector */
175# define CONFIG_SYS_FLASH_EMPTY_INFO 1
176/* max number of memory banks */
177# define CONFIG_SYS_MAX_FLASH_BANKS 1
178/* max number of sectors on one chip */
179# define CONFIG_SYS_MAX_FLASH_SECT 512
180/* hardware flash protection */
181# define CONFIG_SYS_FLASH_PROTECTION
182
183# ifdef RAMENV
184# define CONFIG_ENV_IS_NOWHERE 1
185# define CONFIG_ENV_SIZE 0x1000
186# define CONFIG_ENV_ADDR (CONFIG_SYS_MONITOR_BASE - CONFIG_ENV_SIZE)
187
188# else /* !RAMENV */
189# define CONFIG_ENV_IS_IN_FLASH 1
190/* 128K(one sector) for env */
191# define CONFIG_ENV_SECT_SIZE 0x20000
192# define CONFIG_ENV_ADDR \
193 (CONFIG_SYS_FLASH_BASE + (2 * CONFIG_ENV_SECT_SIZE))
194# define CONFIG_ENV_SIZE 0x20000
195# endif /* !RAMBOOT */
76316a31 196#else /* !FLASH */
4aecfb16
MS
197/* ENV in RAM */
198# define CONFIG_SYS_NO_FLASH 1
199# define CONFIG_ENV_IS_NOWHERE 1
200# define CONFIG_ENV_SIZE 0x1000
201# define CONFIG_ENV_ADDR (CONFIG_SYS_MONITOR_BASE - CONFIG_ENV_SIZE)
202/* hardware flash protection */
203# define CONFIG_SYS_FLASH_PROTECTION
76316a31
MS
204#endif /* !FLASH */
205
853643d8
MS
206/* system ace */
207#ifdef XILINX_SYSACE_BASEADDR
4aecfb16
MS
208# define CONFIG_SYSTEMACE
209/* #define DEBUG_SYSTEMACE */
210# define SYSTEMACE_CONFIG_FPGA
211# define CONFIG_SYS_SYSTEMACE_BASE XILINX_SYSACE_BASEADDR
212# define CONFIG_SYS_SYSTEMACE_WIDTH XILINX_SYSACE_MEM_WIDTH
213# define CONFIG_DOS_PARTITION
853643d8
MS
214#endif
215
e9b737de 216#if defined(XILINX_USE_ICACHE)
4aecfb16 217# define CONFIG_ICACHE
e9b737de 218#else
4aecfb16 219# undef CONFIG_ICACHE
e9b737de
MS
220#endif
221
222#if defined(XILINX_USE_DCACHE)
4aecfb16 223# define CONFIG_DCACHE
e9b737de 224#else
4aecfb16 225# undef CONFIG_DCACHE
e9b737de
MS
226#endif
227
079a136c
JL
228/*
229 * BOOTP options
230 */
231#define CONFIG_BOOTP_BOOTFILESIZE
232#define CONFIG_BOOTP_BOOTPATH
233#define CONFIG_BOOTP_GATEWAY
234#define CONFIG_BOOTP_HOSTNAME
76316a31 235
5dc11a51
JL
236/*
237 * Command line configuration.
238 */
239#include <config_cmd_default.h>
240
241#define CONFIG_CMD_ASKENV
5dc11a51 242#define CONFIG_CMD_IRQ
5dc11a51 243#define CONFIG_CMD_MFSL
330e5545 244#define CONFIG_CMD_ECHO
4d49b280 245
e9b737de 246#if defined(CONFIG_DCACHE) || defined(CONFIG_ICACHE)
4aecfb16 247# define CONFIG_CMD_CACHE
e9b737de 248#else
4aecfb16 249# undef CONFIG_CMD_CACHE
e9b737de
MS
250#endif
251
6d0f6bcf 252#ifndef CONFIG_SYS_ENET
4aecfb16 253# undef CONFIG_CMD_NET
1252df06 254# undef CONFIG_CMD_NFS
4d49b280 255#else
4aecfb16
MS
256# define CONFIG_CMD_PING
257# define CONFIG_CMD_DHCP
4d49b280 258#endif
853643d8
MS
259
260#if defined(CONFIG_SYSTEMACE)
4aecfb16
MS
261# define CONFIG_CMD_EXT2
262# define CONFIG_CMD_FAT
853643d8 263#endif
5dc11a51
JL
264
265#if defined(FLASH)
4aecfb16
MS
266# define CONFIG_CMD_ECHO
267# define CONFIG_CMD_FLASH
268# define CONFIG_CMD_IMLS
269# define CONFIG_CMD_JFFS2
270
271# if !defined(RAMENV)
272# define CONFIG_CMD_SAVEENV
273# define CONFIG_CMD_SAVES
274# endif
853643d8 275#else
4aecfb16
MS
276# undef CONFIG_CMD_IMLS
277# undef CONFIG_CMD_FLASH
278# undef CONFIG_CMD_JFFS2
5dc11a51 279#endif
76316a31 280
5dc11a51 281#if defined(CONFIG_CMD_JFFS2)
144876a3 282/* JFFS2 partitions */
68d7d651 283#define CONFIG_CMD_MTDPARTS /* mtdparts command line support */
942556a9
SR
284#define CONFIG_MTD_DEVICE /* needed for mtdparts commands */
285#define CONFIG_FLASH_CFI_MTD
c82a541d 286#define MTDIDS_DEFAULT "nor0=flash-0"
144876a3
MS
287
288/* default mtd partition table */
c82a541d 289#define MTDPARTS_DEFAULT "mtdparts=flash-0:256k(u-boot),"\
144876a3
MS
290 "256k(env),3m(kernel),1m(romfs),"\
291 "1m(cramfs),-(jffs2)"
292#endif
293
76316a31 294/* Miscellaneous configurable options */
6d0f6bcf 295#define CONFIG_SYS_PROMPT "U-Boot-mONStR> "
4aecfb16
MS
296/* size of console buffer */
297#define CONFIG_SYS_CBSIZE 512
298 /* print buffer size */
299#define CONFIG_SYS_PBSIZE \
300 (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16)
301/* max number of command args */
302#define CONFIG_SYS_MAXARGS 15
6d0f6bcf 303#define CONFIG_SYS_LONGHELP
4aecfb16
MS
304/* default load address */
305#define CONFIG_SYS_LOAD_ADDR XILINX_RAM_START
76316a31 306
330e5545 307#define CONFIG_BOOTDELAY -1 /* -1 disables auto-boot */
76316a31 308#define CONFIG_BOOTARGS "root=romfs"
330e5545 309#define CONFIG_HOSTNAME XILINX_BOARD_NAME
853643d8 310#define CONFIG_BOOTCOMMAND "base 0;tftp 11000000 image.img;bootm"
76316a31 311#define CONFIG_IPADDR 192.168.0.3
853643d8
MS
312#define CONFIG_SERVERIP 192.168.0.5
313#define CONFIG_GATEWAYIP 192.168.0.1
76316a31
MS
314#define CONFIG_ETHADDR 00:E0:0C:00:00:FD
315
316/* architecture dependent code */
6d0f6bcf
JCPV
317#define CONFIG_SYS_USR_EXCEP /* user exception */
318#define CONFIG_SYS_HZ 1000
76316a31 319
0900bee9 320#define CONFIG_PREBOOT "echo U-BOOT for ${hostname};setenv preboot;echo"
144876a3 321
4aecfb16 322#define CONFIG_EXTRA_ENV_SETTINGS "unlock=yes\0" \
c82a541d
SL
323 "nor0=flash-0\0"\
324 "mtdparts=mtdparts=flash-0:"\
144876a3
MS
325 "256k(u-boot),256k(env),3m(kernel),"\
326 "1m(romfs),1m(cramfs),-(jffs2)\0"
327
188dc16b 328#define CONFIG_CMDLINE_EDITING
188dc16b 329
0900bee9
MS
330/* Use the HUSH parser */
331#define CONFIG_SYS_HUSH_PARSER
332#ifdef CONFIG_SYS_HUSH_PARSER
4aecfb16 333# define CONFIG_SYS_PROMPT_HUSH_PS2 "> "
0900bee9
MS
334#endif
335
37e892d9
MS
336/* Enable flat device tree support */
337#define CONFIG_LMB 1
338#define CONFIG_FIT 1
339#define CONFIG_OF_LIBFDT 1
340
76316a31 341#endif /* __CONFIG_H */