From: Stephan Linz <linz@mazet.de>
To: u-boot@lists.denx.de
Subject: [U-Boot-Users] [PATCH] 1/7 Nios: bugfixes
Date: Mon, 2 Feb 2004 11:53:57 +0100 [thread overview]
Message-ID: <04020211535701.17605@pcj86> (raw)
Hi all,
Hi Scott,
last week I've made some bugfixes, structure changes and expansion of the
U-Boot NIOS port:
1/7 bugfixes
2/7 split board configuration of DK1C20
3/7 split board configuration of DK1S10
4/7 new CPU configuration / support at DK1S10 (Microtronix LDK 2.0)
5/7 new documentation for DK1S10
6/7 Nios SPI Master support
7/7 DS1306 with external SPI transfer
These pathes are realy important for my upcoming new Nios board support.
Scott, could you check-up the pathes at your DK1C20 board and note me and
Wolfgang so we can put it into CVS ? -- thanks.
Best Regards,
Stephan Linz
------------------ THIS IS PATCH 1/7 ------------------
* Patch by Stephan Linz, 30 Jan 2004
- 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/common/sevenseg.c:
o avoid 'unused' warning
- board/altera/dk1c20/dk1c20.c:board_early_init_f():
- board/altera/dk1c20/dk1s10.c:board_early_init_f():
o enclose sevenseg_set() in cpp condition
- makes the ASMI configuration of DK1C20 more conform to documentation
- remove the ASMI configuration for DK1S10_standard_32 (never present)
- fix some typed in mistakes in the NIOS documentation
-------------- next part --------------
diff -purN -x CVS u-boot-20040130cvs/board/altera/common/flash.c u-boot-20040130cvs-nios_bugfixes/board/altera/common/flash.c
--- u-boot-20040130cvs/board/altera/common/flash.c 2004-01-03 20:43:48.000000000 +0100
+++ u-boot-20040130cvs-nios_bugfixes/board/altera/common/flash.c 2004-02-01 00:49:06.000000000 +0100
@@ -71,7 +71,6 @@ int flash_erase (flash_info_t * info, in
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, in
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, in
*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 -purN -x CVS u-boot-20040130cvs/board/altera/common/sevenseg.c u-boot-20040130cvs-nios_bugfixes/board/altera/common/sevenseg.c
--- u-boot-20040130cvs/board/altera/common/sevenseg.c 2004-01-03 20:43:48.000000000 +0100
+++ u-boot-20040130cvs-nios_bugfixes/board/altera/common/sevenseg.c 2004-02-01 00:49:06.000000000 +0100
@@ -44,7 +44,7 @@ static int sevenseg_init_done = 0;
static inline void __sevenseg_set_masked (unsigned int mask, int value)
{
- nios_pio_t *piop = (nios_pio_t*)SEVENSEG_BASE;
+ nios_pio_t *piop __attribute__((unused)) = (nios_pio_t*)SEVENSEG_BASE;
#ifdef SEVENSEG_WRONLY /* emulate read access */
@@ -97,7 +97,7 @@ static inline void __sevenseg_toggle_mas
static inline void __sevenseg_set (unsigned int value)
{
- nios_pio_t *piop = (nios_pio_t*)SEVENSEG_BASE;
+ nios_pio_t *piop __attribute__((unused)) = (nios_pio_t*)SEVENSEG_BASE;
#ifdef SEVENSEG_WRONLY /* emulate read access */
@@ -126,7 +126,7 @@ static inline void __sevenseg_set (unsig
static inline void __sevenseg_init (void)
{
- nios_pio_t *piop = (nios_pio_t*)SEVENSEG_BASE;
+ nios_pio_t *piop __attribute__((unused)) = (nios_pio_t*)SEVENSEG_BASE;
__sevenseg_set(0);
diff -purN -x CVS u-boot-20040130cvs/board/altera/dk1c20/dk1c20.c u-boot-20040130cvs-nios_bugfixes/board/altera/dk1c20/dk1c20.c
--- u-boot-20040130cvs/board/altera/dk1c20/dk1c20.c 2004-01-21 00:12:13.000000000 +0100
+++ u-boot-20040130cvs-nios_bugfixes/board/altera/dk1c20/dk1c20.c 2004-02-01 00:49:06.000000000 +0100
@@ -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 -purN -x CVS u-boot-20040130cvs/board/altera/dk1s10/dk1s10.c u-boot-20040130cvs-nios_bugfixes/board/altera/dk1s10/dk1s10.c
--- u-boot-20040130cvs/board/altera/dk1s10/dk1s10.c 2004-01-21 00:12:13.000000000 +0100
+++ u-boot-20040130cvs-nios_bugfixes/board/altera/dk1s10/dk1s10.c 2004-02-01 00:49:06.000000000 +0100
@@ -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 -purN -x CVS u-boot-20040130cvs/doc/README.dk1c20 u-boot-20040130cvs-nios_bugfixes/doc/README.dk1c20
--- u-boot-20040130cvs/doc/README.dk1c20 2004-01-04 17:28:35.000000000 +0100
+++ u-boot-20040130cvs-nios_bugfixes/doc/README.dk1c20 2004-02-01 00:49:06.000000000 +0100
@@ -24,7 +24,7 @@ Contents:
1. Files
=========
- board/dk1c20/*
+ board/altera/dk1c20/*
include/configs/DK1C20.h
2. Memory Organization
@@ -73,11 +73,7 @@ see the following:
2. Quit nios-run and start your terminal application (e.g. start
Hyperterminal or minicom).
-3. From the U-Boot command prompt, erase flash 0x40000 to 0x 5ffff:
-
- ==> erase 1:4-5
-
-4. Download the u-boot code to RAM. When using Hyperterminal, do the
+3. Download the u-boot code to RAM. When using Hyperterminal, do the
following:
a. From the u-boot command prompt start a binary download to SRAM:
@@ -86,6 +82,10 @@ following:
b. Download u-boot.bin using kermit.
+4. From the U-Boot command prompt, erase flash 0x40000 to 0x5ffff:
+
+ ==> erase 1:4-5
+
5. Copy the binary image from SRAM to flash:
==> cp.b 800000 40000 10000
diff -purN -x CVS u-boot-20040130cvs/doc/README.dk1c20_std32 u-boot-20040130cvs-nios_bugfixes/doc/README.dk1c20_std32
--- u-boot-20040130cvs/doc/README.dk1c20_std32 2004-01-03 20:43:49.000000000 +0100
+++ u-boot-20040130cvs-nios_bugfixes/doc/README.dk1c20_std32 2004-02-01 00:49:06.000000000 +0100
@@ -91,10 +91,10 @@ IDE: (TODO)
0x02000000 ---32-----------16|15------------0-
| : | \
| : | |
- SDRAM | : | > CFG_NIOS_CPU_SRAM_SIZE
+ SDRAM | : | > CFG_NIOS_CPU_SDRAM_SIZE
| : | | = 0x01000000
| : | /
- 0x01000000 ---32-----------16|15------------0- CFG_NIOS_CPU_SRAM_BASE
+ 0x01000000 ---32-----------16|15------------0- CFG_NIOS_CPU_SDRAM_BASE
| |
: gap :
: :
@@ -345,6 +345,7 @@ IDE: (TODO)
| : | |
0x00040000 --+- - - - - - - -:- - - - - - - -+-|- u-boot _start()
| : | /
+ 0x00000000 |- - - - - - - -:- - - - - - - -+- - u-boot environment
0x00000000 ---8-------------4|3-------------0-
diff -purN -x CVS u-boot-20040130cvs/doc/README.dk1s10_std32 u-boot-20040130cvs-nios_bugfixes/doc/README.dk1s10_std32
--- u-boot-20040130cvs/doc/README.dk1s10_std32 2004-01-03 20:43:49.000000000 +0100
+++ u-boot-20040130cvs-nios_bugfixes/doc/README.dk1s10_std32 2004-02-01 00:49:06.000000000 +0100
@@ -87,10 +87,10 @@ IDE: (TODO)
0x02000000 ---32-----------16|15------------0-
| : | \
| : | |
- SDRAM | : | > CFG_NIOS_CPU_SRAM_SIZE
+ SDRAM | : | > CFG_NIOS_CPU_SDRAM_SIZE
| : | | = 0x01000000
| : | /
- 0x01000000 ---32-----------16|15------------0- CFG_NIOS_CPU_SRAM_BASE
+ 0x01000000 ---32-----------16|15------------0- CFG_NIOS_CPU_SDRAM_BASE
| |
: gap :
: :
@@ -335,6 +335,7 @@ IDE: (TODO)
| : | |
0x00040000 --+- - - - - - - -:- - - - - - - -+-|- u-boot _start()
| : | /
+ 0x00000000 |- - - - - - - -:- - - - - - - -+- - u-boot environment
0x00000000 ---8-------------4|3-------------0-
diff -purN -x CVS u-boot-20040130cvs/doc/README.dk20k200_std32 u-boot-20040130cvs-nios_bugfixes/doc/README.dk20k200_std32
--- u-boot-20040130cvs/doc/README.dk20k200_std32 2004-01-03 20:43:49.000000000 +0100
+++ u-boot-20040130cvs-nios_bugfixes/doc/README.dk20k200_std32 2004-02-01 00:49:06.000000000 +0100
@@ -117,7 +117,7 @@ UART: UART0: fixed baudrate of 115200, f
+ 0x18 |- - - - - - - - - - - - - - - -| |
| (unused) | |
+ 0x14 |- - - - - - - - - - - - - - - -| |
- UART0 | (unused) | > 0x00000020
+ UART1 | (unused) | > 0x00000020
[2] + 0x10 |- - - - - - - - - - - - - - - -| |
| control (10 bit) (rw) | |
+ 0x0c |- - - - - - - - - - - - - - - -| |
diff -purN -x CVS u-boot-20040130cvs/include/configs/DK1C20.h u-boot-20040130cvs-nios_bugfixes/include/configs/DK1C20.h
--- u-boot-20040130cvs/include/configs/DK1C20.h 2004-01-21 00:12:33.000000000 +0100
+++ u-boot-20040130cvs-nios_bugfixes/include/configs/DK1C20.h 2004-02-01 00:49:06.000000000 +0100
@@ -647,8 +647,8 @@
* ASMI is for Cyclone devices only and only works when the configuration
* is loaded via JTAG or ASMI. Please see doc/README.dk1c20 for details.
*----------------------------------------------------------------------*/
-#define CONFIG_NIOS_ASMI /* Enable ASMI */
-#define CFG_NIOS_ASMIBASE 0x00920b00 /* ASMI base address */
+#define CONFIG_NIOS_ASMI /* Enable ASMI */
+#define CFG_NIOS_ASMIBASE CFG_NIOS_CPU_ASMI0 /* ASMI base address */
/*------------------------------------------------------------------------
* COMMANDS
diff -purN -x CVS u-boot-20040130cvs/include/configs/DK1S10.h u-boot-20040130cvs-nios_bugfixes/include/configs/DK1S10.h
--- u-boot-20040130cvs/include/configs/DK1S10.h 2004-01-21 00:12:33.000000000 +0100
+++ u-boot-20040130cvs-nios_bugfixes/include/configs/DK1S10.h 2004-02-01 00:49:06.000000000 +0100
@@ -243,11 +243,6 @@
#define CFG_NIOS_CPU_IDE_NUMS 1 /* number of IDE contr. */
#define CFG_NIOS_CPU_IDE0 0x00920a00 /* IDE0 addr */
-/* active serial memory i/f */
-#define CFG_NIOS_CPU_ASMI_NUMS 1 /* number of ASMI */
-#define CFG_NIOS_CPU_ASMI0 0x00920b00 /* ASMI0 addr */
-#define CFG_NIOS_CPU_ASMI0_IRQ 45 /* IRQ */
-
/* memory accessibility */
#define CFG_NIOS_CPU_SRAM_BASE 0x00800000 /* board SRAM addr */
#define CFG_NIOS_CPU_SRAM_SIZE (1024 * 1024) /* 1 MB size */
-------------- next part --------------
* Patch by Stephan Linz, 30 Jan 2004
- 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/common/sevenseg.c:
o avoid 'unused' warning
- board/altera/dk1c20/dk1c20.c:board_early_init_f():
- board/altera/dk1c20/dk1s10.c:board_early_init_f():
o enclose sevenseg_set() in cpp condition
- makes the ASMI configuration of DK1C20 more conform to documentation
- remove the ASMI configuration for DK1S10_standard_32 (never present)
- fix some typed in mistakes in the NIOS documentation
next reply other threads:[~2004-02-02 10:53 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-02-02 10:53 Stephan Linz [this message]
2004-02-09 22:25 ` [U-Boot-Users] [PATCH] 1/7 Nios: bugfixes Wolfgang Denk
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=04020211535701.17605@pcj86 \
--to=linz@mazet.de \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.