diff options
author | wdenk <wdenk> | 2004-02-09 23:12:24 +0000 |
---|---|---|
committer | wdenk <wdenk> | 2004-02-09 23:12:24 +0000 |
commit | ec4c544bed9b026cdf93084fb0daa73ec53a9cda (patch) | |
tree | f34aa12b9723120921bf1b34f10579d7c803f687 /board/altera | |
parent | b98fff1d6acc57cc54f01740028535ac095237cd (diff) |
Patches by Stephan Linz, 30 Jan 2004:
1: - board/altera/common/flash.c:flash_erase():
o allow interrupts befor get_timer() call
o check-up each erased sector and avoid unexpected timeouts
- board/altera/dk1c20/dk1s10.c:board_early_init_f():
o enclose sevenseg_set() in cpp condition
- remove the ASMI configuration for DK1S10_standard_32 (never present)
- fix some typed in mistakes in the NIOS documentation
2: - split DK1C20 configuration into several header files:
o two new files for each NIOS CPU description
o U-Boot related part is remaining in DK1C20.h
3: - split DK1S10 configuration into several header files:
o two new files for each NIOS CPU description
o U-Boot related part is remaining in DK1S10.h
4: - Add support for the Microtronix Linux Development Kit
NIOS CPU configuration at the Altera Nios Development Kit,
Stratix Edition (DK-1S10)
5: - Add documentation for the Altera Nios Development Kit,
Stratix Edition (DK-1S10)
6: - Add support for the Nios Serial Peripharel Interface (SPI)
(master only)
7: - Add support for the common U-Boot SPI framework at
RTC driver DS1306
Diffstat (limited to 'board/altera')
-rw-r--r-- | board/altera/common/flash.c | 40 | ||||
-rw-r--r-- | board/altera/dk1c20/dk1c20.c | 2 | ||||
-rw-r--r-- | board/altera/dk1s10/dk1s10.c | 10 | ||||
-rw-r--r-- | board/altera/dk1s10/vectors.S | 21 |
4 files changed, 53 insertions, 20 deletions
diff --git a/board/altera/common/flash.c b/board/altera/common/flash.c index 0fa74abfd47..2638ea899ac 100644 --- a/board/altera/common/flash.c +++ b/board/altera/common/flash.c @@ -71,7 +71,6 @@ int flash_erase (flash_info_t * info, int s_first, int s_last) volatile CFG_FLASH_WORD_SIZE *addr = (CFG_FLASH_WORD_SIZE *) (info->start[0]); volatile CFG_FLASH_WORD_SIZE *addr2; int prot, sect; - int any = 0; unsigned oldpri; ulong start; @@ -94,6 +93,12 @@ int flash_erase (flash_info_t * info, int s_first, int s_last) printf ("\n"); } +#ifdef DEBUG + for (sect = s_first; sect <= s_last; sect++) { + printf("- Erase: Sect: %i @ 0x%08x\n", sect, info->start[sect]); + } +#endif + /* NOTE: disabling interrupts on Nios can be very bad since it * also disables the LO_LIMIT exception. It's better here to * set the interrupt priority to 3 & restore it when we're done. @@ -114,27 +119,26 @@ int flash_erase (flash_info_t * info, int s_first, int s_last) *addr = 0xaa; *addr = 0x55; *addr2 = 0x30; - any = 1; - } - } - - /* Now just wait for 0xff & provide some user feedback while - * we wait. - */ - if (any) { - addr2 = (CFG_FLASH_WORD_SIZE *) (info->start[sect]); - start = get_timer (0); - while (*addr2 != 0xff) { - udelay (1000 * 1000); - putc ('.'); - if (get_timer (start) > CFG_FLASH_ERASE_TOUT) { - printf ("timeout\n"); - return 1; + /* Now just wait for 0xff & provide some user + * feedback while we wait. Here we have to grant + * timer interrupts. Otherwise get_timer() can't + * work right. */ + ipri(oldpri); + start = get_timer (0); + while (*addr2 != 0xff) { + udelay (1000 * 1000); + putc ('.'); + if (get_timer (start) > CFG_FLASH_ERASE_TOUT) { + printf ("timeout\n"); + return 1; + } } + oldpri = ipri (3); /* disallow non important irqs again */ } - printf ("\n"); } + printf ("\n"); + /* Restore interrupt priority */ ipri (oldpri); diff --git a/board/altera/dk1c20/dk1c20.c b/board/altera/dk1c20/dk1c20.c index 3954486791a..fd857068259 100644 --- a/board/altera/dk1c20/dk1c20.c +++ b/board/altera/dk1c20/dk1c20.c @@ -33,8 +33,10 @@ void _default_hdlr (void) int board_early_init_f (void) { +#if defined(CONFIG_SEVENSEG) /* init seven segment led display and switch off */ sevenseg_set(SEVENSEG_OFF); +#endif return 0; } diff --git a/board/altera/dk1s10/dk1s10.c b/board/altera/dk1s10/dk1s10.c index 832a0b9dd8a..c45e7f15d7c 100644 --- a/board/altera/dk1s10/dk1s10.c +++ b/board/altera/dk1s10/dk1s10.c @@ -33,14 +33,24 @@ void _default_hdlr (void) int board_early_init_f (void) { +#if defined(CONFIG_SEVENSEG) /* init seven segment led display and switch off */ sevenseg_set(SEVENSEG_OFF); +#endif return 0; } int checkboard (void) { puts ("Board: Altera Nios 1S10 Development Kit\n"); +#if defined(CONFIG_NIOS_SAFE_32) + puts ("Conf.: Altera Safe 32 (safe_32)\n"); +#elif defined(CONFIG_NIOS_STANDARD_32) + puts ("Conf.: Altera Standard 32 (standard_32)\n"); +#elif defined(CONFIG_NIOS_MTX_LDK_20) + puts ("Conf.: Microtronix LDK 2.0 (LDK2)\n"); +#endif + return 0; } diff --git a/board/altera/dk1s10/vectors.S b/board/altera/dk1s10/vectors.S index 7094eb63ea5..2f44875dcc6 100644 --- a/board/altera/dk1s10/vectors.S +++ b/board/altera/dk1s10/vectors.S @@ -1,6 +1,7 @@ /* * (C) Copyright 2003, Psyent Corporation <www.psyent.com> * Scott McNutt <smcnutt@psyent.com> + * Stephan Linz <linz@li-pro.net> * * See file CREDITS for list of people who contributed to this * project. @@ -21,6 +22,8 @@ * MA 02111-1307 USA */ +#include <config.h> + /************************************************************************* * Exception Vector Table @@ -55,8 +58,14 @@ .align 4 _vectors: - .long _def_xhandler@h /* Vector 0 - NMI */ - .long _cwp_lolimit@h /* Vector 1 - underflow */ +#if defined(CFG_NIOS_CPU_OCI_BASE) + /* OCI does the reset job */ + .long _def_xhandler@h /* Vector 0 - NMI / Reset */ +#else + /* there is no OCI, so we have to do a direct reset jump here */ + .long CFG_NIOS_CPU_RST_VECT /* Vector 0 - Reset to GERMS */ +#endif + .long _cwp_lolimit@h /* Vector 1 - underflow */ .long _cwp_hilimit@h /* Vector 2 - overflow */ .long _def_xhandler@h /* Vector 3 - GNUPro debug */ @@ -72,7 +81,11 @@ _vectors: .long _def_xhandler@h /* Vector 13 - future reserved */ .long _def_xhandler@h /* Vector 14 - future reserved */ .long _def_xhandler@h /* Vector 15 - future reserved */ +#if (CFG_NIOS_TMRIRQ == 16) + .long _timebase_int@h /* Vector 16 - lopri timer*/ +#else .long _def_xhandler@h /* Vector 16 */ +#endif .long _def_xhandler@h /* Vector 17 */ .long _def_xhandler@h /* Vector 18 */ .long _def_xhandler@h /* Vector 19 */ @@ -106,7 +119,11 @@ _vectors: .long _def_xhandler@h /* Vector 47 */ .long _def_xhandler@h /* Vector 48 */ .long _def_xhandler@h /* Vector 49 */ +#if (CFG_NIOS_TMRIRQ == 50) .long _timebase_int@h /* Vector 50 - lopri timer*/ +#else + .long _def_xhandler@h /* Vector 50 */ +#endif .long _def_xhandler@h /* Vector 51 */ .long _def_xhandler@h /* Vector 52 */ .long _def_xhandler@h /* Vector 53 */ |