at91: Update MEESC board support
[platform/kernel/u-boot.git] / include / configs / ADNPESC1.h
1 /*
2  * (C) Copyright 2004, Li-Pro.Net <www.li-pro.net>
3  * Stephan Linz <linz@li-pro.net>
4  *
5  * See file CREDITS for list of people who contributed to this
6  * project.
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License as
10  * published by the Free Software Foundation; either version 2 of
11  * the License, or (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
21  * MA 02111-1307 USA
22  */
23
24 #ifndef __CONFIG_H
25 #define __CONFIG_H
26
27 /***********************************************************************
28  * Include the whole NIOS CPU configuration.
29  *
30  * !!! HAVE TO BE HERE !!! DON'T MOVE THIS PART !!!
31  *
32  ***********************************************************************/
33
34 #if     defined(CONFIG_NIOS_BASE_32)
35 #include <configs/ADNPESC1_base_32.h>
36 #else
37 #error *** CONFIG_SYS_ERROR: you have to setup right NIOS CPU configuration
38 #endif
39
40 /*------------------------------------------------------------------------
41  * BOARD/CPU -- TOP-LEVEL
42  *----------------------------------------------------------------------*/
43 #define CONFIG_NIOS             1               /* NIOS-32 core         */
44 #define CONFIG_ADNPESC1         1               /* SSV ADNP/ESC1 board  */
45 #define CONFIG_SYS_CLK_FREQ     CONFIG_SYS_NIOS_CPU_CLK/* 50 MHz core clock     */
46 #define CONFIG_SYS_HZ                   1000            /* 1 msec time tick     */
47 #define CONFIG_BOARD_EARLY_INIT_F 1     /* enable early board-spec. init*/
48
49 /*------------------------------------------------------------------------
50  * BASE ADDRESSES / SIZE (Flash, SRAM, SDRAM)
51  *----------------------------------------------------------------------*/
52 #if     (CONFIG_SYS_NIOS_CPU_SDRAM_SIZE != 0)
53
54 #define CONFIG_SYS_SDRAM_BASE           CONFIG_SYS_NIOS_CPU_SDRAM_BASE
55 #define CONFIG_SYS_SDRAM_SIZE           CONFIG_SYS_NIOS_CPU_SDRAM_SIZE
56
57 #else
58 #error *** CONFIG_SYS_ERROR: you have to setup any SDRAM in NIOS CPU config
59 #endif
60
61 #if     defined(CONFIG_SYS_NIOS_CPU_SRAM_BASE) && defined(CONFIG_SYS_NIOS_CPU_SRAM_SIZE)
62
63 #define CONFIG_SYS_SRAM_BASE            CONFIG_SYS_NIOS_CPU_SRAM_BASE
64 #define CONFIG_SYS_SRAM_SIZE            CONFIG_SYS_NIOS_CPU_SRAM_SIZE
65
66 #else
67
68 #undef  CONFIG_SYS_SRAM_BASE
69 #undef  CONFIG_SYS_SRAM_SIZE
70
71 #endif
72
73 #define CONFIG_SYS_VECT_BASE            CONFIG_SYS_NIOS_CPU_VEC_BASE
74
75 /*------------------------------------------------------------------------
76  * MEMORY ORGANIZATION - For the most part, you can put things pretty
77  * much anywhere. This is pretty flexible for Nios. So here we make some
78  * arbitrary choices & assume that the monitor is placed at the end of
79  * a memory resource (so you must make sure TEXT_BASE is chosen
80  * appropriately -- this is very important if you plan to move your
81  * memory to another place as configured at this time !!!).
82  *
83  *      -The heap is placed below the monitor.
84  *      -Global data is placed below the heap.
85  *      -The stack is placed below global data (&grows down).
86  *----------------------------------------------------------------------*/
87 #define CONFIG_SYS_MONITOR_LEN          (256 * 1024)    /* Reserve 256k         */
88 #define CONFIG_SYS_GBL_DATA_SIZE        128             /* Global data size rsvd*/
89 #define CONFIG_SYS_MALLOC_LEN           (CONFIG_ENV_SIZE + 128*1024)
90
91 #define CONFIG_SYS_MONITOR_BASE TEXT_BASE
92 #define CONFIG_SYS_MALLOC_BASE          (CONFIG_SYS_MONITOR_BASE - CONFIG_SYS_MALLOC_LEN)
93 #define CONFIG_SYS_GBL_DATA_OFFSET      (CONFIG_SYS_MALLOC_BASE - CONFIG_SYS_GBL_DATA_SIZE)
94 #define CONFIG_SYS_INIT_SP              CONFIG_SYS_GBL_DATA_OFFSET
95
96 /*------------------------------------------------------------------------
97  * FLASH (AM29LV065D)
98  *----------------------------------------------------------------------*/
99 #if     (CONFIG_SYS_NIOS_CPU_FLASH_SIZE != 0)
100
101 #define CONFIG_SYS_FLASH_BASE           CONFIG_SYS_NIOS_CPU_FLASH_BASE
102 #define CONFIG_SYS_FLASH_SIZE           CONFIG_SYS_NIOS_CPU_FLASH_SIZE
103 #define CONFIG_SYS_MAX_FLASH_SECT       128             /* Max # sects per bank */
104 #define CONFIG_SYS_MAX_FLASH_BANKS      1               /* Max # of flash banks */
105 #define CONFIG_SYS_FLASH_ERASE_TOUT     8000            /* Erase timeout (msec) */
106 #define CONFIG_SYS_FLASH_WRITE_TOUT     100             /* Write timeout (msec) */
107 #define CONFIG_SYS_FLASH_WORD_SIZE      unsigned short  /* flash word size      */
108
109 #else
110 #error *** CONFIG_SYS_ERROR: you have to setup any Flash memory in NIOS CPU config
111 #endif
112
113 /*------------------------------------------------------------------------
114  * ENVIRONMENT
115  *----------------------------------------------------------------------*/
116 #if     (CONFIG_SYS_NIOS_CPU_FLASH_SIZE != 0)
117
118 #define CONFIG_ENV_IS_IN_FLASH  1               /* Environment in flash */
119
120 /* Mem addr of environment */
121 #if     defined(CONFIG_NIOS_BASE_32)
122 #define CONFIG_ENV_ADDR         (CONFIG_SYS_FLASH_BASE + CONFIG_SYS_MONITOR_LEN)
123 #else
124 #error *** CONFIG_SYS_ERROR: you have to setup the environment base address CONFIG_ENV_ADDR
125 #endif
126
127 #define CONFIG_ENV_SIZE         (64 * 1024)     /* 64 KByte (1 sector)  */
128 #define CONFIG_ENV_OVERWRITE                    /* Serial/eth change Ok */
129
130 #else
131 #define CONFIG_ENV_IS_NOWHERE   1               /* NO Environment       */
132 #endif
133
134 /*------------------------------------------------------------------------
135  * NIOS APPLICATION CODE BASE AREA
136  *----------------------------------------------------------------------*/
137 #if     ((CONFIG_ENV_ADDR + CONFIG_ENV_SIZE) == 0x1050000)
138 #define CONFIG_SYS_ADNPESC1_UPDATE_LOAD_ADDR    "0x2000100"
139 #define CONFIG_SYS_ADNPESC1_NIOS_APPL_ENTRY     "0x1050000"
140 #define CONFIG_SYS_ADNPESC1_NIOS_APPL_IDENT     "0x105000c"
141 #define CONFIG_SYS_ADNPESC1_NIOS_APPL_END       "0x11fffff"
142 #define CONFIG_SYS_ADNPESC1_FILESYSTEM_BASE     "0x1200000"
143 #define CONFIG_SYS_ADNPESC1_FILESYSTEM_END      "0x17fffff"
144 #else
145 #error *** CONFIG_SYS_ERROR: missing right appl.code base configuration, expand your config.h
146 #endif
147 #define CONFIG_SYS_ADNPESC1_NIOS_IDENTIFIER     "Nios"
148
149 /*------------------------------------------------------------------------
150  * BOOT ENVIRONMENT
151  *----------------------------------------------------------------------*/
152 #ifdef  CONFIG_DNPEVA2                  /* DNP/EVA2 base board */
153 #define CONFIG_SYS_ADNPESC1_SLED_BOOT_OFF       "sled boot off; "
154 #define CONFIG_SYS_ADNPESC1_SLED_RED_BLINK      "sled red blink; "
155 #else
156 #define CONFIG_SYS_ADNPESC1_SLED_BOOT_OFF
157 #define CONFIG_SYS_ADNPESC1_SLED_RED_BLINK
158 #endif
159
160 #define CONFIG_BOOTDELAY        5
161 #define CONFIG_BOOTCOMMAND                                              \
162         "if itest.s *$appl_ident_addr == \"$appl_ident_str\"; "         \
163         "then "                                                         \
164                 "wd off; "                                              \
165                 CONFIG_SYS_ADNPESC1_SLED_BOOT_OFF                               \
166                 "go $appl_entry_addr; "                                 \
167         "else "                                                         \
168                 CONFIG_SYS_ADNPESC1_SLED_RED_BLINK                              \
169                 "echo *** missing \"$appl_ident_str\" at $appl_ident_addr; "\
170                 "echo *** invalid application at $appl_entry_addr; "    \
171                 "echo *** stop bootup...; "                             \
172         "fi"
173
174 /*------------------------------------------------------------------------
175  * EXTRA ENVIRONMENT
176  *----------------------------------------------------------------------*/
177 #ifdef  CONFIG_DNPEVA2                  /* DNP/EVA2 base board */
178 #define CONFIG_SYS_ADNPESC1_SLED_YELLO_ON       "sled yellow on; "
179 #define CONFIG_SYS_ADNPESC1_SLED_YELLO_OFF      "sled yellow off; "
180 #else
181 #define CONFIG_SYS_ADNPESC1_SLED_YELLO_ON
182 #define CONFIG_SYS_ADNPESC1_SLED_YELLO_OFF
183 #endif
184
185 #define CONFIG_EXTRA_ENV_SETTINGS                                       \
186         "update_allowed=0\0"                                            \
187         "update_load_addr="     CONFIG_SYS_ADNPESC1_UPDATE_LOAD_ADDR    "\0"    \
188         "appl_entry_addr="      CONFIG_SYS_ADNPESC1_NIOS_APPL_ENTRY     "\0"    \
189         "appl_end_addr="        CONFIG_SYS_ADNPESC1_NIOS_APPL_END       "\0"    \
190         "appl_ident_addr="      CONFIG_SYS_ADNPESC1_NIOS_APPL_IDENT     "\0"    \
191         "appl_ident_str="       CONFIG_SYS_ADNPESC1_NIOS_IDENTIFIER     "\0"    \
192         "appl_name=ADNPESC1/base32/linux.bin\0"                         \
193         "appl_update="                                                  \
194                 "if itest.b $update_allowed != 0; "                     \
195                 "then "                                                 \
196                         CONFIG_SYS_ADNPESC1_SLED_YELLO_ON                       \
197                         "tftp $update_load_addr $appl_name; "           \
198                         "protect off $appl_entry_addr $appl_end_addr; " \
199                         "era $appl_entry_addr $appl_end_addr; "         \
200                         "cp.b $update_load_addr $appl_entry_addr $filesize; "\
201                         CONFIG_SYS_ADNPESC1_SLED_YELLO_OFF                      \
202                 "else "                                                 \
203                         "echo *** update not allowed (update_allowed=$update_allowed); "\
204                 "fi\0"                                                  \
205         "fs_base_addr="         CONFIG_SYS_ADNPESC1_FILESYSTEM_BASE     "\0"    \
206         "fs_end_addr="          CONFIG_SYS_ADNPESC1_FILESYSTEM_END      "\0"    \
207         "fs_name=ADNPESC1/base32/romfs.img\0"                           \
208         "fs_update="                                                    \
209                 "if itest.b $update_allowed != 0; "                     \
210                 "then "                                                 \
211                         CONFIG_SYS_ADNPESC1_SLED_YELLO_ON                       \
212                         "tftp $update_load_addr $fs_name; "             \
213                         "protect off $fs_base_addr $fs_end_addr; "      \
214                         "era $fs_base_addr $fs_end_addr; "              \
215                         "cp.b $update_load_addr $fs_base_addr $filesize; "\
216                         CONFIG_SYS_ADNPESC1_SLED_YELLO_OFF                      \
217                 "else "                                                 \
218                         "echo *** update not allowed (update_allowed=$update_allowed); "\
219                 "fi\0"                                                  \
220         "uboot_name=ADNPESC1/base32/u-boot.bin\0"                       \
221         "uboot_loadnrun="                                               \
222                 "if ping $serverip; "                                   \
223                 "then "                                                 \
224                         CONFIG_SYS_ADNPESC1_SLED_YELLO_ON                       \
225                         "tftp $update_load_addr $uboot_name; "          \
226                         "wd off; "                                      \
227                         "go $update_load_addr; "                        \
228                 "else "                                                 \
229                         "echo *** missing connection to $serverip; "    \
230                         "echo *** check your network and try again...; "\
231                 "fi\0"
232
233 /*------------------------------------------------------------------------
234  * CONSOLE
235  *----------------------------------------------------------------------*/
236 #if     (CONFIG_SYS_NIOS_CPU_UART_NUMS != 0)
237
238 #define CONFIG_SYS_NIOS_CONSOLE CONFIG_SYS_NIOS_CPU_UART0 /* 1st UART is Cons. */
239
240 #if     (CONFIG_SYS_NIOS_CPU_UART0_BR != 0)
241 #define CONFIG_SYS_NIOS_FIXEDBAUD       1                  /* Baudrate is fixed */
242 #define CONFIG_BAUDRATE         CONFIG_SYS_NIOS_CPU_UART0_BR
243 #else
244 #undef  CONFIG_SYS_NIOS_FIXEDBAUD
245 #define CONFIG_BAUDRATE         115200
246 #endif
247
248 #define CONFIG_SYS_BAUDRATE_TABLE       { 9600, 19200, 38400, 57600, 115200 }
249
250 #else
251 #error *** CONFIG_SYS_ERROR: you have to setup at least one UART in NIOS CPU config
252 #endif
253
254 /*------------------------------------------------------------------------
255  * TIMER FOR TIMEBASE -- Nios doesn't have the equivalent of ppc  PIT,
256  * so an avalon bus timer is required.
257  *----------------------------------------------------------------------*/
258 #if     (CONFIG_SYS_NIOS_CPU_TIMER_NUMS != 0) && defined(CONFIG_SYS_NIOS_CPU_TICK_TIMER)
259
260 #if     (CONFIG_SYS_NIOS_CPU_TICK_TIMER == 0)
261
262 #define CONFIG_SYS_NIOS_TMRBASE CONFIG_SYS_NIOS_CPU_TIMER0 /* TIMER0 as tick    */
263 #define CONFIG_SYS_NIOS_TMRIRQ          CONFIG_SYS_NIOS_CPU_TIMER0_IRQ
264
265 #if     (CONFIG_SYS_NIOS_CPU_TIMER0_FP == 1)                /* fixed period */
266
267 #if     (CONFIG_SYS_NIOS_CPU_TIMER0_PER >= CONFIG_SYS_HZ)
268 #define CONFIG_SYS_NIOS_TMRMS           (CONFIG_SYS_NIOS_CPU_TIMER0_PER / CONFIG_SYS_HZ)
269 #else
270 #error *** CONFIG_SYS_ERROR: you have to use a timer periode greater than CONFIG_SYS_HZ
271 #endif
272
273 #undef  CONFIG_SYS_NIOS_TMRCNT  /* no preloadable counter value */
274
275 #elif   (CONFIG_SYS_NIOS_CPU_TIMER0_FP == 0)                /* variable period */
276
277 #if     (CONFIG_SYS_HZ <= 1000)
278 #define CONFIG_SYS_NIOS_TMRMS           (1000 / CONFIG_SYS_HZ)
279 #else
280 #error *** CONFIG_SYS_ERROR: sorry, CONFIG_SYS_HZ have to be less than 1000
281 #endif
282
283 #define CONFIG_SYS_NIOS_TMRCNT          (CONFIG_SYS_CLK_FREQ / CONFIG_SYS_HZ)
284
285 #else
286 #error *** CONFIG_SYS_ERROR: you have to define CONFIG_SYS_NIOS_CPU_TIMER0_FP correct
287 #endif
288
289 #elif   (CONFIG_SYS_NIOS_CPU_TICK_TIMER == 1)
290
291 #define CONFIG_SYS_NIOS_TMRBASE CONFIG_SYS_NIOS_CPU_TIMER1 /* TIMER1 as tick    */
292 #define CONFIG_SYS_NIOS_TMRIRQ          CONFIG_SYS_NIOS_CPU_TIMER1_IRQ
293
294 #if     (CONFIG_SYS_NIOS_CPU_TIMER1_FP == 1)                /* fixed period */
295
296 #if     (CONFIG_SYS_NIOS_CPU_TIMER1_PER >= CONFIG_SYS_HZ)
297 #define CONFIG_SYS_NIOS_TMRMS           (CONFIG_SYS_NIOS_CPU_TIMER1_PER / CONFIG_SYS_HZ)
298 #else
299 #error *** CONFIG_SYS_ERROR: you have to use a timer periode greater than CONFIG_SYS_HZ
300 #endif
301
302 #undef  CONFIG_SYS_NIOS_TMRCNT  /* no preloadable counter value */
303
304 #elif   (CONFIG_SYS_NIOS_CPU_TIMER1_FP == 0)                /* variable period */
305
306 #if     (CONFIG_SYS_HZ <= 1000)
307 #define CONFIG_SYS_NIOS_TMRMS           (1000 / CONFIG_SYS_HZ)
308 #else
309 #error *** CONFIG_SYS_ERROR: sorry, CONFIG_SYS_HZ have to be less than 1000
310 #endif
311
312 #define CONFIG_SYS_NIOS_TMRCNT          (CONFIG_SYS_CLK_FREQ / CONFIG_SYS_HZ)
313
314 #else
315 #error *** CONFIG_SYS_ERROR: you have to define CONFIG_SYS_NIOS_CPU_TIMER1_FP correct
316 #endif
317
318 #endif  /* CONFIG_SYS_NIOS_CPU_TICK_TIMER */
319
320 #else
321 #error *** CONFIG_SYS_ERROR: you have to setup at least one TIMER in NIOS CPU config
322 #endif
323
324 /*------------------------------------------------------------------------
325  * WATCHDOG (or better MAX823 supervisory circuite access)
326  *----------------------------------------------------------------------*/
327 #define CONFIG_HW_WATCHDOG      1               /* board specific WD    */
328
329 #ifdef  CONFIG_HW_WATCHDOG
330
331 /* MAX823 supervisor -- watchdog enable port at: */
332 #if     (CONFIG_SYS_NIOS_CPU_WDENA_PIO == 0)
333 #define CONFIG_HW_WDENA_BASE    CONFIG_SYS_NIOS_CPU_PIO0        /* PIO0         */
334 #elif   (CONFIG_SYS_NIOS_CPU_WDENA_PIO == 1)
335 #define CONFIG_HW_WDENA_BASE    CONFIG_SYS_NIOS_CPU_PIO1        /* PIO1         */
336 #elif   (CONFIG_SYS_NIOS_CPU_WDENA_PIO == 2)
337 #define CONFIG_HW_WDENA_BASE    CONFIG_SYS_NIOS_CPU_PIO2        /* PIO2         */
338 #elif   (CONFIG_SYS_NIOS_CPU_WDENA_PIO == 3)
339 #define CONFIG_HW_WDENA_BASE    CONFIG_SYS_NIOS_CPU_PIO3        /* PIO3         */
340 #elif   (CONFIG_SYS_NIOS_CPU_WDENA_PIO == 4)
341 #define CONFIG_HW_WDENA_BASE    CONFIG_SYS_NIOS_CPU_PIO4        /* PIO4         */
342 #elif   (CONFIG_SYS_NIOS_CPU_WDENA_PIO == 5)
343 #define CONFIG_HW_WDENA_BASE    CONFIG_SYS_NIOS_CPU_PIO5        /* PIO5         */
344 #elif   (CONFIG_SYS_NIOS_CPU_WDENA_PIO == 6)
345 #define CONFIG_HW_WDENA_BASE    CONFIG_SYS_NIOS_CPU_PIO6        /* PIO6         */
346 #elif   (CONFIG_SYS_NIOS_CPU_WDENA_PIO == 7)
347 #define CONFIG_HW_WDENA_BASE    CONFIG_SYS_NIOS_CPU_PIO7        /* PIO7         */
348 #elif   (CONFIG_SYS_NIOS_CPU_WDENA_PIO == 8)
349 #define CONFIG_HW_WDENA_BASE    CONFIG_SYS_NIOS_CPU_PIO8        /* PIO8         */
350 #elif   (CONFIG_SYS_NIOS_CPU_WDENA_PIO == 9)
351 #define CONFIG_HW_WDENA_BASE    CONFIG_SYS_NIOS_CPU_PIO9        /* PIO9         */
352 #else
353 #error *** CONFIG_SYS_ERROR: you have to setup at least one WDENA_PIO in NIOS CPU config
354 #endif
355
356 /* MAX823 supervisor -- watchdog trigger port at: */
357 #if     (CONFIG_SYS_NIOS_CPU_WDTOG_PIO == 0)
358 #define CONFIG_HW_WDTOG_BASE    CONFIG_SYS_NIOS_CPU_PIO0        /* PIO0         */
359 #elif   (CONFIG_SYS_NIOS_CPU_WDTOG_PIO == 1)
360 #define CONFIG_HW_WDTOG_BASE    CONFIG_SYS_NIOS_CPU_PIO1        /* PIO1         */
361 #elif   (CONFIG_SYS_NIOS_CPU_WDTOG_PIO == 2)
362 #define CONFIG_HW_WDTOG_BASE    CONFIG_SYS_NIOS_CPU_PIO2        /* PIO2         */
363 #elif   (CONFIG_SYS_NIOS_CPU_WDTOG_PIO == 3)
364 #define CONFIG_HW_WDTOG_BASE    CONFIG_SYS_NIOS_CPU_PIO3        /* PIO3         */
365 #elif   (CONFIG_SYS_NIOS_CPU_WDTOG_PIO == 4)
366 #define CONFIG_HW_WDTOG_BASE    CONFIG_SYS_NIOS_CPU_PIO4        /* PIO4         */
367 #elif   (CONFIG_SYS_NIOS_CPU_WDTOG_PIO == 5)
368 #define CONFIG_HW_WDTOG_BASE    CONFIG_SYS_NIOS_CPU_PIO5        /* PIO5         */
369 #elif   (CONFIG_SYS_NIOS_CPU_WDTOG_PIO == 6)
370 #define CONFIG_HW_WDTOG_BASE    CONFIG_SYS_NIOS_CPU_PIO6        /* PIO6         */
371 #elif   (CONFIG_SYS_NIOS_CPU_WDTOG_PIO == 7)
372 #define CONFIG_HW_WDTOG_BASE    CONFIG_SYS_NIOS_CPU_PIO7        /* PIO7         */
373 #elif   (CONFIG_SYS_NIOS_CPU_WDTOG_PIO == 8)
374 #define CONFIG_HW_WDTOG_BASE    CONFIG_SYS_NIOS_CPU_PIO8        /* PIO8         */
375 #elif   (CONFIG_SYS_NIOS_CPU_WDTOG_PIO == 9)
376 #define CONFIG_HW_WDTOG_BASE    CONFIG_SYS_NIOS_CPU_PIO9        /* PIO9         */
377 #else
378 #error *** CONFIG_SYS_ERROR: you have to setup at least one WDTOG_PIO in NIOS CPU config
379 #endif
380
381 #if     defined(CONFIG_NIOS_BASE_32)            /* NIOS CPU specifics   */
382 #define CONFIG_HW_WDENA_BIT             0       /* WD enable  @ Bit 0   */
383 #define CONFIG_HW_WDTOG_BIT             0       /* WD trigger @ Bit 0   */
384 #define CONFIG_HW_WDPORT_WRONLY 1       /* each WD port wr/only*/
385 #else
386 #error *** CONFIG_SYS_ERROR: missing watchdog bit configuration, expand your config.h
387 #endif
388
389 #endif  /* CONFIG_HW_WATCHDOG */
390
391 /*------------------------------------------------------------------------
392  * SERIAL PERIPHAREL INTERFACE
393  *----------------------------------------------------------------------*/
394 #if     (CONFIG_SYS_NIOS_CPU_SPI_NUMS == 1)
395
396 #define CONFIG_NIOS_SPI         1               /* SPI support active   */
397 #define CONFIG_SYS_NIOS_SPIBASE CONFIG_SYS_NIOS_CPU_SPI0
398 #define CONFIG_SYS_NIOS_SPIBITS CONFIG_SYS_NIOS_CPU_SPI0_BITS
399
400 #define CONFIG_RTC_DS1306       1       /* Dallas 1306 real time clock  */
401 #define CONFIG_SYS_SPI_RTC_DEVID        0       /*        as 1st SPI device     */
402
403 #else
404 #undef  CONFIG_NIOS_SPI                         /* NO SPI support       */
405 #endif
406
407 /*------------------------------------------------------------------------
408  * Ethernet -- needs work!
409  *----------------------------------------------------------------------*/
410 #if     (CONFIG_SYS_NIOS_CPU_LAN_NUMS == 1)
411
412 #if     (CONFIG_SYS_NIOS_CPU_LAN0_TYPE == 0)            /* LAN91C111            */
413
414 #define CONFIG_DRIVER_SMC91111                  /* Using SMC91c111      */
415 #undef  CONFIG_SMC91111_EXT_PHY                 /* Internal PHY         */
416 #define CONFIG_SMC91111_BASE    (CONFIG_SYS_NIOS_CPU_LAN0_BASE + CONFIG_SYS_NIOS_CPU_LAN0_OFFS)
417
418 #if     (CONFIG_SYS_NIOS_CPU_LAN0_BUSW == 32)
419 #define CONFIG_SMC_USE_32_BIT   1
420 #else   /* no */
421 #undef  CONFIG_SMC_USE_32_BIT
422 #endif
423
424 #elif   (CONFIG_SYS_NIOS_CPU_LAN0_TYPE == 1)            /* CS8900A              */
425
426         /********************************************/
427         /* !!! CS8900 is __not__ tested on NIOS !!! */
428         /********************************************/
429 #define CONFIG_NET_MULTI
430 #define CONFIG_CS8900           /* Using CS8900         */
431 #define CONFIG_CS8900_BASE      (CONFIG_SYS_NIOS_CPU_LAN0_BASE + \
432                                 CONFIG_SYS_NIOS_CPU_LAN0_OFFS)
433
434 #if     (CONFIG_SYS_NIOS_CPU_LAN0_BUSW == 32)
435 #undef  CONFIG_CS8900_BUS16
436 #define CONFIG_CS8900_BUS32
437 #else   /* no */
438 #define CONFIG_CS8900_BUS16
439 #undef  CONFIG_CS8900_BUS32
440 #endif
441
442 #else
443 #error *** CONFIG_SYS_ERROR: invalid LAN0 chip type, check your NIOS CPU config
444 #endif
445
446 #define CONFIG_ETHADDR          02:80:ae:20:60:6f
447 #define CONFIG_NETMASK          255.255.255.248
448 #define CONFIG_IPADDR           192.168.161.84
449 #define CONFIG_SERVERIP         192.168.161.85
450
451 #else
452 #error *** CONFIG_SYS_ERROR: you have to setup just one LAN only or expand your config.h
453 #endif
454
455 /*------------------------------------------------------------------------
456  * STATUS LEDs
457  *----------------------------------------------------------------------*/
458 #if     (CONFIG_SYS_NIOS_CPU_PIO_NUMS != 0) && defined(CONFIG_SYS_NIOS_CPU_LED_PIO)
459
460 #if     (CONFIG_SYS_NIOS_CPU_LED_PIO == 0)
461
462 #define STATUS_LED_BASE                 CONFIG_SYS_NIOS_CPU_PIO0
463 #define STATUS_LED_BITS                 CONFIG_SYS_NIOS_CPU_PIO0_BITS
464 #define STATUS_LED_ACTIVE               1 /* LED on for bit == 1 */
465
466 #if     (CONFIG_SYS_NIOS_CPU_PIO0_TYPE == 1)
467 #define STATUS_LED_WRONLY               1
468 #else
469 #undef  STATUS_LED_WRONLY
470 #endif
471
472 #elif   (CONFIG_SYS_NIOS_CPU_LED_PIO == 1)
473
474 #define STATUS_LED_BASE                 CONFIG_SYS_NIOS_CPU_PIO1
475 #define STATUS_LED_BITS                 CONFIG_SYS_NIOS_CPU_PIO1_BITS
476 #define STATUS_LED_ACTIVE               1 /* LED on for bit == 1 */
477
478 #if     (CONFIG_SYS_NIOS_CPU_PIO1_TYPE == 1)
479 #define STATUS_LED_WRONLY               1
480 #else
481 #undef  STATUS_LED_WRONLY
482 #endif
483
484 #elif   (CONFIG_SYS_NIOS_CPU_LED_PIO == 2)
485
486 #define STATUS_LED_BASE                 CONFIG_SYS_NIOS_CPU_PIO2
487 #define STATUS_LED_BITS                 CONFIG_SYS_NIOS_CPU_PIO2_BITS
488 #define STATUS_LED_ACTIVE               1 /* LED on for bit == 1 */
489
490 #if     (CONFIG_SYS_NIOS_CPU_PIO2_TYPE == 1)
491 #define STATUS_LED_WRONLY               1
492 #else
493 #undef  STATUS_LED_WRONLY
494 #endif
495
496 #elif   (CONFIG_SYS_NIOS_CPU_LED_PIO == 3)
497
498 #error *** CONFIG_SYS_ERROR: status LEDs at PIO3 not supported, expand your config.h
499
500 #elif   (CONFIG_SYS_NIOS_CPU_LED_PIO == 4)
501
502 #error *** CONFIG_SYS_ERROR: status LEDs at PIO4 not supported, expand your config.h
503
504 #elif   (CONFIG_SYS_NIOS_CPU_LED_PIO == 5)
505
506 #error *** CONFIG_SYS_ERROR: status LEDs at PIO5 not supported, expand your config.h
507
508 #elif   (CONFIG_SYS_NIOS_CPU_LED_PIO == 6)
509
510 #error *** CONFIG_SYS_ERROR: status LEDs at PIO6 not supported, expand your config.h
511
512 #elif   (CONFIG_SYS_NIOS_CPU_LED_PIO == 7)
513
514 #error *** CONFIG_SYS_ERROR: status LEDs at PIO7 not supported, expand your config.h
515
516 #elif   (CONFIG_SYS_NIOS_CPU_LED_PIO == 8)
517
518 #error *** CONFIG_SYS_ERROR: status LEDs at PIO8 not supported, expand your config.h
519
520 #elif   (CONFIG_SYS_NIOS_CPU_LED_PIO == 9)
521
522 #error *** CONFIG_SYS_ERROR: status LEDs at PIO9 not supported, expand your config.h
523
524 #else
525 #error *** CONFIG_SYS_ERROR: you have to set CONFIG_SYS_NIOS_CPU_LED_PIO in right case
526 #endif
527
528 #define CONFIG_STATUS_LED               1 /* enable status led driver */
529
530 #define STATUS_LED_BIT                  (1 << 0)        /* LED[0] */
531 #define STATUS_LED_STATE                STATUS_LED_BLINKING
532 #define STATUS_LED_BOOT_STATE           STATUS_LED_OFF
533 #define STATUS_LED_PERIOD               (CONFIG_SYS_HZ / 2)     /* ca. 1 Hz */
534 #define STATUS_LED_BOOT                 0               /* boot LED */
535
536 #if     (STATUS_LED_BITS > 1)
537 #define STATUS_LED_BIT1                 (1 << 1)        /* LED[1] */
538 #define STATUS_LED_STATE1               STATUS_LED_OFF
539 #define STATUS_LED_PERIOD1              (CONFIG_SYS_HZ / 10)    /* ca. 5 Hz */
540 #define STATUS_LED_RED                  1               /* fail LED */
541 #endif
542
543 #if     (STATUS_LED_BITS > 2)
544 #define STATUS_LED_BIT2                 (1 << 2)        /* LED[2] */
545 #define STATUS_LED_STATE2               STATUS_LED_OFF
546 #define STATUS_LED_PERIOD2              (CONFIG_SYS_HZ / 2)     /* ca. 1 Hz */
547 #define STATUS_LED_YELLOW               2               /* info LED */
548 #endif
549
550 #if     (STATUS_LED_BITS > 3)
551 #define STATUS_LED_BIT3                 (1 << 3)        /* LED[3] */
552 #define STATUS_LED_STATE3               STATUS_LED_OFF
553 #define STATUS_LED_PERIOD3              (CONFIG_SYS_HZ / 2)     /* ca. 1 Hz */
554 #define STATUS_LED_GREEN                3               /* info LED */
555 #endif
556
557 #define STATUS_LED_PAR                  1 /* makes status_led.h happy */
558
559 #endif  /* CONFIG_SYS_NIOS_CPU_PIO_NUMS */
560
561 /*------------------------------------------------------------------------
562  * Diagnostics / Power On Self Tests
563  *----------------------------------------------------------------------*/
564 #define CONFIG_POST                     CONFIG_SYS_POST_RTC
565 #define CONFIG_SYS_NIOS_POST_WORD_ADDR          (CONFIG_SYS_MONITOR_BASE + CONFIG_SYS_MONITOR_LEN)
566
567 /*
568  * BOOTP options
569  */
570 #define CONFIG_BOOTP_BOOTFILESIZE
571 #define CONFIG_BOOTP_BOOTPATH
572 #define CONFIG_BOOTP_GATEWAY
573 #define CONFIG_BOOTP_HOSTNAME
574
575 /*
576  * Command line configuration.
577  */
578 #include <config_cmd_default.h>
579
580 #define CONFIG_CMD_BSP
581 #define CONFIG_CMD_CDP
582 #define CONFIG_CMD_DHCP
583 #define CONFIG_CMD_DIAG
584 #define CONFIG_CMD_DISPLAY
585 #define CONFIG_CMD_EXT2
586 #define CONFIG_CMD_IMMAP
587 #define CONFIG_CMD_IRQ
588 #define CONFIG_CMD_PING
589 #define CONFIG_CMD_PORTIO
590 #define CONFIG_CMD_REGINFO
591 #define CONFIG_CMD_REISER
592 #define CONFIG_CMD_SAVES
593 #define CONFIG_CMD_SDRAM
594 #define CONFIG_CMD_SNTP
595
596 #undef CONFIG_CMD_NFS
597 #undef CONFIG_CMD_XIMG
598
599 #if (CONFIG_SYS_NIOS_CPU_SPI_NUMS == 1)
600 #define CONFIG_CMD_DATE
601 #define CONFIG_CMD_SPI
602 #endif
603
604 /*------------------------------------------------------------------------
605  * KGDB
606  *----------------------------------------------------------------------*/
607 #if defined(CONFIG_CMD_KGDB)
608 #define CONFIG_KGDB_BAUDRATE    9600
609 #endif
610
611 /*------------------------------------------------------------------------
612  * MISC
613  *----------------------------------------------------------------------*/
614 #define CONFIG_SYS_LONGHELP                         /* undef to save memory     */
615 #define CONFIG_SYS_HUSH_PARSER          1           /* use "hush" command parser
616                                                undef to save memory     */
617 #define CONFIG_SYS_PROMPT               "ADNPESC1 > " /* Monitor Command Prompt */
618 #define CONFIG_SYS_CBSIZE               1024        /* Console I/O Buffer Size  */
619 #define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE+sizeof(CONFIG_SYS_PROMPT)+16) /* Print Buffer Size */
620 #define CONFIG_SYS_MAXARGS              64          /* max number of command args*/
621 #define CONFIG_SYS_BARGSIZE             CONFIG_SYS_CBSIZE  /* Boot Argument Buffer Size */
622
623 #ifdef  CONFIG_SYS_HUSH_PARSER
624 #define CONFIG_SYS_PROMPT_HUSH_PS2      "[]> "
625 #endif
626
627 /* Default load address */
628 #if     (CONFIG_SYS_SRAM_SIZE != 0)
629
630 /* default in SRAM */
631 #define CONFIG_SYS_LOAD_ADDR            CONFIG_SYS_SRAM_BASE
632
633 #elif   (CONFIG_SYS_SDRAM_SIZE != 0)
634
635 /* default in SDRAM */
636 #if     (CONFIG_SYS_SDRAM_BASE == CONFIG_SYS_NIOS_CPU_VEC_BASE)
637 #if 1
638 #define CONFIG_SYS_LOAD_ADDR            (CONFIG_SYS_SDRAM_BASE + CONFIG_SYS_NIOS_CPU_VEC_SIZE)
639 #else
640 #define CONFIG_SYS_LOAD_ADDR            (CONFIG_SYS_SDRAM_BASE + 0x400000)
641 #endif
642 #else
643 #define CONFIG_SYS_LOAD_ADDR            CONFIG_SYS_SDRAM_BASE
644 #endif
645
646 #else
647 #undef  CONFIG_SYS_LOAD_ADDR            /* force error break */
648 #endif
649
650 /* MEM test area */
651 #if     (CONFIG_SYS_SDRAM_SIZE != 0)
652
653 /* SDRAM begin to stack area (1MB stack) */
654 #if     (CONFIG_SYS_SDRAM_BASE == CONFIG_SYS_NIOS_CPU_VEC_BASE)
655 #if 0
656 #define CONFIG_SYS_MEMTEST_START        (CONFIG_SYS_SDRAM_BASE + CONFIG_SYS_NIOS_CPU_VEC_SIZE)
657 #else
658 #define CONFIG_SYS_MEMTEST_START        (CONFIG_SYS_SDRAM_BASE + 0x400000)
659 #endif
660 #else
661 #define CONFIG_SYS_MEMTEST_START        CONFIG_SYS_SDRAM_BASE
662 #endif
663
664 #define CONFIG_SYS_MEMTEST_END          (CONFIG_SYS_INIT_SP - (1024 * 1024))
665 #define CONFIG_SYS_MEMTEST_END          (CONFIG_SYS_INIT_SP - (1024 * 1024))
666
667 #else
668 #undef  CONFIG_SYS_MEMTEST_START        /* force error break */
669 #undef  CONFIG_SYS_MEMTEST_END
670 #endif
671
672 /*
673  * JFFS2 partitions
674  *
675  */
676 /* No command line, one static partition */
677 #undef CONFIG_CMD_MTDPARTS
678 #define CONFIG_JFFS2_DEV                "nor"
679 #define CONFIG_JFFS2_PART_SIZE          0xFFFFFFFF
680 #define CONFIG_JFFS2_PART_OFFSET        0x00000000
681
682 /* mtdparts command line support */
683 /*
684 #define CONFIG_CMD_MTDPARTS
685 #define MTDIDS_DEFAULT          ""
686 #define MTDPARTS_DEFAULT        ""
687 */
688
689 #endif  /* __CONFIG_H */