From 074cff0d2863bab21b065cf283eccd728f4fecaa Mon Sep 17 00:00:00 2001 From: wdenk Date: Tue, 24 Feb 2004 00:16:43 +0000 Subject: * Patch by Andrea Scian, 17 Feb 2004: Add support for S3C44B0 processor and DAVE B2 board * Patch by Steven Scholz, 20 Feb 2004: - Add support for MII commands on AT91RM9200 boards - some cleanup in AT91RM9200 ethernet code --- board/dave/B2/Makefile | 48 +++++++++++++ board/dave/B2/config.mk | 30 +++++++++ board/dave/B2/flash.c | 79 ++++++++++++++++++++++ board/dave/B2/memsetup.S | 167 ++++++++++++++++++++++++++++++++++++++++++++++ board/dave/B2/u-boot.lds | 57 ++++++++++++++++ board/dave/common/flash.c | 26 +++++++- 6 files changed, 406 insertions(+), 1 deletion(-) create mode 100644 board/dave/B2/Makefile create mode 100644 board/dave/B2/config.mk create mode 100644 board/dave/B2/flash.c create mode 100644 board/dave/B2/memsetup.S create mode 100644 board/dave/B2/u-boot.lds (limited to 'board') diff --git a/board/dave/B2/Makefile b/board/dave/B2/Makefile new file mode 100644 index 0000000..c0c3f67 --- /dev/null +++ b/board/dave/B2/Makefile @@ -0,0 +1,48 @@ +# +# (C) Copyright 2002 +# Sysgo Real-Time Solutions, GmbH +# Marius Groeger +# +# 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 +# + +include $(TOPDIR)/config.mk + +LIB = lib$(BOARD).a + +OBJS := B2.o flash.o +SOBJS := memsetup.o + +$(LIB): $(OBJS) $(SOBJS) + $(AR) crv $@ $(OBJS) $(SOBJS) + +clean: + rm -f $(SOBJS) $(OBJS) + +distclean: clean + rm -f $(LIB) core *.bak .depend + +######################################################################### + +.depend: Makefile $(SOBJS:.o=.S) $(OBJS:.o=.c) + $(CC) -M $(CPPFLAGS) $(SOBJS:.o=.S) $(OBJS:.o=.c) > $@ + +-include .depend + +######################################################################### diff --git a/board/dave/B2/config.mk b/board/dave/B2/config.mk new file mode 100644 index 0000000..5216622 --- /dev/null +++ b/board/dave/B2/config.mk @@ -0,0 +1,30 @@ +# +# (C) Copyright 2000 +# Sysgo Real-Time Solutions, GmbH +# Marius Groeger +# +# (C) Copyright 2000-2004 +# Wolfgang Denk, DENX Software Engineering, wd@denx.de. +# +# 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 +# + +TEXT_BASE = 0x0C100000 + +PLATFORM_CPPFLAGS += -Uarm diff --git a/board/dave/B2/flash.c b/board/dave/B2/flash.c new file mode 100644 index 0000000..50aa6aa --- /dev/null +++ b/board/dave/B2/flash.c @@ -0,0 +1,79 @@ +/* + * (C) Copyright 2001 + * Stefan Roese, esd gmbh germany, stefan.roese@esd-electronics.com + * + * 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 + */ + +#include +#include + +/* + * include common flash code (for esd boards) + */ +#include "../common/flash.c" + +/*----------------------------------------------------------------------- + * Functions + */ +static ulong flash_get_size (vu_long * addr, flash_info_t * info); +static void flash_get_offsets (ulong base, flash_info_t * info); + +/*----------------------------------------------------------------------- + */ + +unsigned long flash_init (void) +{ +#ifdef __DEBUG_START_FROM_SRAM__ + return CFG_DUMMY_FLASH_SIZE; +#else + unsigned long size_b0; + int i; + uint pbcr; + unsigned long base_b0; + int size_val = 0; + + /* Init: no FLASHes known */ + for (i=0; i -#include #include flash_info_t flash_info[CFG_MAX_FLASH_BANKS]; /* info for FLASH chips */ @@ -578,15 +577,27 @@ int write_buff (flash_info_t *info, uchar *src, ulong addr, ulong cnt) if ((l = addr - wp) != 0) { data = 0; for (i=0, cp=wp; i0; ++i) { +#ifdef CONFIG_B2 + data = data | ((*src++)<<(8*i)); +#else data = (data << 8) | *src++; +#endif --cnt; ++cp; } for (; cnt==0 && i<4; ++i, ++cp) { +#ifdef CONFIG_B2 + data = data | ((*(uchar *)cp)<<(8*i)); +#else data = (data << 8) | (*(uchar *)cp); +#endif } if ((rc = write_word(info, wp, data)) != 0) { @@ -600,9 +611,14 @@ int write_buff (flash_info_t *info, uchar *src, ulong addr, ulong cnt) */ while (cnt >= 4) { data = 0; +#ifdef CONFIG_B2 + data = (*(ulong*)src); + src += 4; +#else for (i=0; i<4; ++i) { data = (data << 8) | *src++; } +#endif if ((rc = write_word(info, wp, data)) != 0) { return (rc); } @@ -619,11 +635,19 @@ int write_buff (flash_info_t *info, uchar *src, ulong addr, ulong cnt) */ data = 0; for (i=0, cp=wp; i<4 && cnt>0; ++i, ++cp) { +#ifdef CONFIG_B2 + data = data | ((*src++)<<(8*i)); +#else data = (data << 8) | *src++; +#endif --cnt; } for (; i<4; ++i, ++cp) { +#ifdef CONFIG_B2 + data = data | ((*(uchar *)cp)<<(8*i)); +#else data = (data << 8) | (*(uchar *)cp); +#endif } return (write_word(info, wp, data)); -- cgit v1.1