* Patch by Daniel Engström, 18 Nov 2002:
authorwdenk <wdenk>
Tue, 19 Nov 2002 23:01:07 +0000 (23:01 +0000)
committerwdenk <wdenk>
Tue, 19 Nov 2002 23:01:07 +0000 (23:01 +0000)
  Fixes for x86 port (mostly strings issues)

* Patch by Ken Chou, 18 Nov 2002:
  Fix for natsemi NIC cards (DP83815)

* Patch by Pierre Aubert, 19 Nov 2002:
  fix a bug for the MII configuration, and some warnings

CHANGELOG
Makefile
board/RPXClassic/RPXClassic.c
board/trab/u-boot.lds
drivers/natsemi.c
include/asm-arm/string.h
include/asm-i386/processor.h [new file with mode: 0644]
include/asm-i386/string.h
lib_generic/string.c
lib_i386/pci_type1.c

index 5b26e95abb32da0e61ac0646122fe38fe8e83a25..9d11a0fb2aef364ed7b6235d4cd12dc518f9df91 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,6 +2,15 @@
 Changes since for U-Boot 0.1.0:
 ======================================================================
 
+* Patch by Daniel Engström, 18 Nov 2002:
+  Fixes for x86 port (mostly strings issues)
+
+* Patch by Ken Chou, 18 Nov 2002:
+  Fix for natsemi NIC cards (DP83815)
+
+* Patch by Pierre Aubert, 19 Nov 2002:
+  fix a bug for the MII configuration, and some warnings
+
 * Patch by Thomas Frieden, 13 Nov 2002:
   Add code for AmigaOne board
   (preliminary merge to U-Boot, still WIP)
index ec2140034c6c5611dfff6592901f77a4a4df8587..6c98c84938a1573d9f6bc7ce6008ff772a826886 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -142,7 +142,9 @@ u-boot.dis: u-boot
                $(OBJDUMP) -d $< > $@
 
 u-boot:                depend subdirs $(OBJS) $(LIBS) $(LDSCRIPT)
-               $(LD) $(LDFLAGS) $(OBJS) $(LIBS) $(LIBS) -Map u-boot.map -o u-boot
+               $(LD) $(LDFLAGS) $(OBJS) \
+                       --start-group $(LIBS) --end-group \
+                       -Map u-boot.map -o u-boot
 
 subdirs:
                @for dir in $(SUBDIRS) ; do $(MAKE) -C $$dir || exit 1 ; done
index 4d2100b4d6dd779b66be33394545482cb9eb9df3..aed9479dbc3d9d0a2b015d65cc587972c359adf7 100644 (file)
@@ -127,12 +127,12 @@ void board_get_enetaddr (uchar * enet)
                        }
                }
                /* Scan to the end of the record                */
-               while ((*cp != '\n') && (*cp != 0xff)) {
+               while ((*cp != '\n') && (*cp != (char)0xff)) {
                        cp++;
                }
                /* If the next character is a \n, 0 or ff, we are done. */
                cp++;
-               if ((*cp == '\n') || (*cp == 0) || (*cp == 0xff))
+               if ((*cp == '\n') || (*cp == 0) || (*cp == (char)0xff))
                        break;
        }
 
@@ -140,12 +140,6 @@ void board_get_enetaddr (uchar * enet)
        /* The MAC address is the same as normal ethernet except the 3rd byte    */
        /* (See the E.P. Planet Core Overview manual            */
        enet[3] |= 0x80;
-
-       /* Validate the fast ethernet tranceiver                */
-       *((volatile uchar *) BCSR2) &= ~BCSR2_MIICTL;
-       *((volatile uchar *) BCSR2) &= ~BCSR2_MIIPWRDWN;
-       *((volatile uchar *) BCSR2) |= BCSR2_MIIRST;
-       *((volatile uchar *) BCSR2) |= BCSR2_MIIPWRDWN;
 #endif
 
        printf ("MAC address = %02x:%02x:%02x:%02x:%02x:%02x\n",
@@ -158,6 +152,15 @@ void rpxclassic_init (void)
        /* Enable NVRAM */
        *((uchar *) BCSR0) |= BCSR0_ENNVRAM;
 
+#ifdef CONFIG_FEC_ENET
+
+       /* Validate the fast ethernet tranceiver                             */
+       *((volatile uchar *) BCSR2) &= ~BCSR2_MIICTL;
+       *((volatile uchar *) BCSR2) &= ~BCSR2_MIIPWRDWN;
+       *((volatile uchar *) BCSR2) |= BCSR2_MIIRST;
+       *((volatile uchar *) BCSR2) |= BCSR2_MIIPWRDWN;
+#endif
+
 }
 
 /* ------------------------------------------------------------------------- */
@@ -254,6 +257,10 @@ static long int dram_size (long int mamr_value, long int *base, long int maxsize
        }
        return (maxsize);
 }
+/*-----------------------------------------------------------------------------
+ * aschex_to_byte -- 
+ *-----------------------------------------------------------------------------
+ */
 static unsigned char aschex_to_byte (unsigned char *cp)
 {
        u_char byte, c;
index 59834afb83b600fb3e23833a34647f69091640fa..92a369f01a68237ba941e2a8083202df553fed1d 100644 (file)
@@ -33,7 +33,6 @@ SECTIONS
        .text      :
        {
          cpu/arm920t/start.o   (.text)
-         lib_arm/_udivsi3.o    (.text)
          lib_arm/_umodsi3.o    (.text)
          lib_generic/zlib.o    (.text)
          lib_generic/crc32.o   (.text)
index 5a8c5b4ecc1d2d815683c6cd78464e23bcfd936d..0bed04dbbdf7760719e2fea7b2f2aacebfc12454 100644 (file)
@@ -306,8 +306,8 @@ natsemi_initialize(bd_t * bis)
                        break;
                }
 
-               pci_read_config_dword(devno, PCI_BASE_ADDRESS_0, &iobase);
-               iobase &= ~0x3; /* 1: unused and 0:I/O Space Indicator */
+               pci_read_config_dword(devno, PCI_BASE_ADDRESS_1, &iobase);
+               iobase &= ~0xF; /* Masked out the low bits that are addresses. */
 
                pci_write_config_dword(devno, PCI_COMMAND,
                                       PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER);
index b65a766e1a0f81b7f342be7e208229c1a774463b..c3ea582cab22bf7571e976a6d3203c7e09ec8c78 100644 (file)
@@ -6,23 +6,23 @@
  * optimised inline asm versions are not small.
  */
 
-#define __HAVE_ARCH_STRRCHR
+#undef __HAVE_ARCH_STRRCHR
 extern char * strrchr(const char * s, int c);
 
-#define __HAVE_ARCH_STRCHR
+#undef __HAVE_ARCH_STRCHR
 extern char * strchr(const char * s, int c);
 
-#define __HAVE_ARCH_MEMCPY
+#undef __HAVE_ARCH_MEMCPY
 extern void * memcpy(void *, const void *, __kernel_size_t);
 
-#define __HAVE_ARCH_MEMMOVE
+#undef __HAVE_ARCH_MEMMOVE
 extern void * memmove(void *, const void *, __kernel_size_t);
 
-#define __HAVE_ARCH_MEMCHR
+#undef __HAVE_ARCH_MEMCHR
 extern void * memchr(const void *, int, __kernel_size_t);
 
-#define __HAVE_ARCH_MEMZERO
-#define __HAVE_ARCH_MEMSET
+#undef __HAVE_ARCH_MEMZERO
+#undef __HAVE_ARCH_MEMSET
 extern void * memset(void *, int, __kernel_size_t);
 
 #if 0
diff --git a/include/asm-i386/processor.h b/include/asm-i386/processor.h
new file mode 100644 (file)
index 0000000..c175193
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ * (C) Copyright 2002
+ * Daniel Engström, Omicron Ceti AB, daniel@omicron.se
+ * 
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#ifndef __ASM_PROCESSOR_H_
+#define __ASM_PROCESSOR_H_ 1
+/* Currently this header is unused in the i386 port
+ * but some generic files #include <asm/processor.h>
+ * so this file is a placeholder. */
+#endif
index c3782224868fba83b4f9c2feba5d300d26ab7557..91a23f951cad977077684355757e0c0c8d396081 100644 (file)
@@ -6,25 +6,25 @@
  * optimised inline asm versions are not small.
  */
 
-#define __HAVE_ARCH_STRRCHR
+#undef __HAVE_ARCH_STRRCHR
 extern char * strrchr(const char * s, int c);
 
-#define __HAVE_ARCH_STRCHR
+#undef __HAVE_ARCH_STRCHR
 extern char * strchr(const char * s, int c);
 
-#define __HAVE_ARCH_MEMCPY
+#undef __HAVE_ARCH_MEMCPY
 extern void * memcpy(void *, const void *, __kernel_size_t);
 
-#define __HAVE_ARCH_MEMMOVE
+#undef __HAVE_ARCH_MEMMOVE
 extern void * memmove(void *, const void *, __kernel_size_t);
 
-#define __HAVE_ARCH_MEMCHR
+#undef __HAVE_ARCH_MEMCHR
 extern void * memchr(const void *, int, __kernel_size_t);
 
-#define __HAVE_ARCH_MEMSET
+#undef __HAVE_ARCH_MEMSET
 extern void * memset(void *, int, __kernel_size_t);
 
-#define __HAVE_ARCH_MEMZERO
+#undef __HAVE_ARCH_MEMZERO
 extern void memzero(void *ptr, __kernel_size_t n);
 
 #endif
index 1e1e2e33fc32e1d0fb909350dec988da47ac74af..f4d245725cfec5be9d251c7cebc340f143b103be 100644 (file)
 #include <linux/ctype.h>
 #include <malloc.h>
 
-#ifdef CONFIG_ARM
-#undef  __HAVE_ARCH_MEMCMP
-#undef  __HAVE_ARCH_MEMCPY
-#undef  __HAVE_ARCH_MEMMOVE
-#undef  __HAVE_ARCH_MEMSET
-#undef  __HAVE_ARCH_BCOPY
-#undef  __HAVE_ARCH_STRCAT
-#undef  __HAVE_ARCH_STRCHR
-#undef  __HAVE_ARCH_STRCMP
-#undef  __HAVE_ARCH_STRCPY
-#undef  __HAVE_ARCH_STRLEN
-#undef  __HAVE_ARCH_STRNCPY
-#else
-#define __HAVE_ARCH_MEMCMP
-#define __HAVE_ARCH_MEMCPY
-#define __HAVE_ARCH_MEMMOVE
-#define __HAVE_ARCH_MEMSET
-#define __HAVE_ARCH_BCOPY
-#define __HAVE_ARCH_STRCAT
-#define __HAVE_ARCH_STRCMP
-#define __HAVE_ARCH_STRCPY
-#define __HAVE_ARCH_STRLEN
-#define __HAVE_ARCH_STRNCPY
-#endif
 
 #ifndef __HAVE_ARCH_STRNICMP
 /**
index e5577e820600c2dbf7ca442cbd79781cc635915e..8d35716eed094f0848ce56992cbb76802cfc1a2b 100644 (file)
@@ -14,7 +14,6 @@
 
 #ifdef CONFIG_PCI
 
-#include <asm/processor.h>
 #include <asm/io.h>
 #include <pci.h>