From b2184c314de0af9788ce505b413030d2114cfa4a Mon Sep 17 00:00:00 2001 From: wdenk Date: Tue, 19 Nov 2002 23:01:07 +0000 Subject: [PATCH] =?utf8?q?*=20Patch=20by=20Daniel=20Engstr=F6m,=2018=20Nov?= =?utf8?q?=202002:=20=20=20Fixes=20for=20x86=20port=20(mostly=20strings=20?= =?utf8?q?issues)?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit * 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 | 9 +++++++++ Makefile | 4 +++- board/RPXClassic/RPXClassic.c | 23 +++++++++++++++-------- board/trab/u-boot.lds | 1 - drivers/natsemi.c | 4 ++-- include/asm-arm/string.h | 14 +++++++------- include/asm-i386/processor.h | 29 +++++++++++++++++++++++++++++ include/asm-i386/string.h | 14 +++++++------- lib_generic/string.c | 24 ------------------------ lib_i386/pci_type1.c | 1 - 10 files changed, 72 insertions(+), 51 deletions(-) create mode 100644 include/asm-i386/processor.h diff --git a/CHANGELOG b/CHANGELOG index 5b26e95abb..9d11a0fb2a 100644 --- 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) diff --git a/Makefile b/Makefile index ec2140034c..6c98c84938 100644 --- 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 diff --git a/board/RPXClassic/RPXClassic.c b/board/RPXClassic/RPXClassic.c index 4d2100b4d6..aed9479dbc 100644 --- a/board/RPXClassic/RPXClassic.c +++ b/board/RPXClassic/RPXClassic.c @@ -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; diff --git a/board/trab/u-boot.lds b/board/trab/u-boot.lds index 59834afb83..92a369f01a 100644 --- a/board/trab/u-boot.lds +++ b/board/trab/u-boot.lds @@ -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) diff --git a/drivers/natsemi.c b/drivers/natsemi.c index 5a8c5b4ecc..0bed04dbbd 100644 --- a/drivers/natsemi.c +++ b/drivers/natsemi.c @@ -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); diff --git a/include/asm-arm/string.h b/include/asm-arm/string.h index b65a766e1a..c3ea582cab 100644 --- a/include/asm-arm/string.h +++ b/include/asm-arm/string.h @@ -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 index 0000000000..c175193315 --- /dev/null +++ b/include/asm-i386/processor.h @@ -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 + * so this file is a placeholder. */ +#endif diff --git a/include/asm-i386/string.h b/include/asm-i386/string.h index c378222486..91a23f951c 100644 --- a/include/asm-i386/string.h +++ b/include/asm-i386/string.h @@ -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 diff --git a/lib_generic/string.c b/lib_generic/string.c index 1e1e2e33fc..f4d245725c 100644 --- a/lib_generic/string.c +++ b/lib_generic/string.c @@ -20,30 +20,6 @@ #include #include -#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 /** diff --git a/lib_i386/pci_type1.c b/lib_i386/pci_type1.c index e5577e8206..8d35716eed 100644 --- a/lib_i386/pci_type1.c +++ b/lib_i386/pci_type1.c @@ -14,7 +14,6 @@ #ifdef CONFIG_PCI -#include #include #include -- 2.39.5