diff options
Diffstat (limited to 'recipes/u-boot/files')
-rw-r--r-- | recipes/u-boot/files/Makefile-fix.patch | 25 | ||||
-rw-r--r-- | recipes/u-boot/files/arm_flags.patch | 13 | ||||
-rw-r--r-- | recipes/u-boot/files/boot-menu-gfx-fix-openmoko-bug-1140.patch | 29 | ||||
-rw-r--r-- | recipes/u-boot/files/fix-arm920t-eabi.patch | 9 | ||||
-rw-r--r-- | recipes/u-boot/files/fix-data-abort-from-sd-ombug799.patch | 11 | ||||
-rw-r--r-- | recipes/u-boot/files/makefile-no-dirafter.patch | 17 | ||||
-rw-r--r-- | recipes/u-boot/files/neuros-osd2/default-env.ascr | 53 | ||||
-rw-r--r-- | recipes/u-boot/files/sffsdr-u-boot.patch | 830 | ||||
-rw-r--r-- | recipes/u-boot/files/u-boot-20061030-ext2load_hex.patch | 14 | ||||
-rw-r--r-- | recipes/u-boot/files/uboot-20070311-tools_makefile_ln_sf.patch | 26 | ||||
-rw-r--r-- | recipes/u-boot/files/uboot-eabi-fix-HACK.patch | 197 |
11 files changed, 1224 insertions, 0 deletions
diff --git a/recipes/u-boot/files/Makefile-fix.patch b/recipes/u-boot/files/Makefile-fix.patch new file mode 100644 index 0000000000..fccf19c63d --- /dev/null +++ b/recipes/u-boot/files/Makefile-fix.patch @@ -0,0 +1,25 @@ +--- /tmp/Makefile 2008-07-07 20:48:41.000000000 +0200 ++++ git/Makefile 2008-07-07 20:49:22.000000000 +0200 +@@ -21,10 +21,6 @@ + # MA 02111-1307 USA + # + +-ifndef PRJROOT +-$(error You must first source the BSP environment: "source neuros-env") +-endif +- + VERSION = 1 + PATCHLEVEL = 3 + SUBLEVEL = 2 +@@ -417,11 +413,6 @@ + grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \ + sort > $(obj)System.map + +-install: u-boot.bin u-boot +- @install -p u-boot.bin $(PRJROOT)/images/ > /dev/null +- @install -p u-boot $(PRJROOT)/images/ > /dev/null +- @install uboot_desc $(PRJROOT)/images/ > /dev/null +- + # + # Auto-generate the autoconf.mk file (which is included by all makefiles) + # diff --git a/recipes/u-boot/files/arm_flags.patch b/recipes/u-boot/files/arm_flags.patch new file mode 100644 index 0000000000..84b8cada39 --- /dev/null +++ b/recipes/u-boot/files/arm_flags.patch @@ -0,0 +1,13 @@ +Index: u-boot/cpu/pxa/config.mk +=================================================================== +--- u-boot.orig/cpu/pxa/config.mk 2005-01-09 16:28:17.000000000 -0500 ++++ u-boot/cpu/pxa/config.mk 2005-02-25 16:38:23.789788636 -0500 +@@ -23,7 +23,7 @@ + # + + PLATFORM_RELFLAGS += -fno-strict-aliasing -fno-common -ffixed-r8 \ +- -mshort-load-bytes -msoft-float ++ -msoft-float + + #PLATFORM_CPPFLAGS += -mapcs-32 -march=armv4 -mtune=strongarm1100 + PLATFORM_CPPFLAGS += -mapcs-32 -march=armv5 -mtune=xscale diff --git a/recipes/u-boot/files/boot-menu-gfx-fix-openmoko-bug-1140.patch b/recipes/u-boot/files/boot-menu-gfx-fix-openmoko-bug-1140.patch new file mode 100644 index 0000000000..c97880a01c --- /dev/null +++ b/recipes/u-boot/files/boot-menu-gfx-fix-openmoko-bug-1140.patch @@ -0,0 +1,29 @@ +--- git.orig/drivers/video/cfb_console.c 2007-12-27 00:59:35.000000000 -0800 ++++ git/drivers/video/cfb_console.c 2007-12-27 08:23:42.000000000 -0800 +@@ -141,6 +141,14 @@ + #endif + + /*****************************************************************************/ ++/* Defines for the S3C2410 driver */ ++/*****************************************************************************/ ++#ifdef CONFIG_VIDEO_S3C2410 ++/* it actually is little-endian, but the host CPU, too ! */ ++//#define VIDEO_FB_LITTLE_ENDIAN ++#endif ++ ++/*****************************************************************************/ + /* Include video_fb.h after definitions of VIDEO_HW_RECTFILL etc */ + /*****************************************************************************/ + #include <video_fb.h> +@@ -309,6 +317,11 @@ + #define SHORTSWAP32(x) (x) + #endif + ++#ifdef CONFIG_VIDEO_S3C2410 ++#undef SHORTSWAP32 ++#define SHORTSWAP32(x) ((((x) & 0xffff) << 16) | (((x) >> 16) & 0xffff)) ++#endif ++ + #if defined(DEBUG) || defined(DEBUG_CFB_CONSOLE) + #define PRINTD(x) printf(x) + #else diff --git a/recipes/u-boot/files/fix-arm920t-eabi.patch b/recipes/u-boot/files/fix-arm920t-eabi.patch new file mode 100644 index 0000000000..9896388c8f --- /dev/null +++ b/recipes/u-boot/files/fix-arm920t-eabi.patch @@ -0,0 +1,9 @@ +--- /tmp/config.mk 2007-02-14 17:23:15.000000000 +0100 ++++ git/cpu/arm920t/config.mk 2007-02-14 17:23:38.475251000 +0100 +@@ -30,5 +30,5 @@ + # Supply options according to compiler version + # + # ========================================================================= +-PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,-mabi=apcs-gnu) ++PLATFORM_CPPFLAGS +=$(call cc-option) + PLATFORM_RELFLAGS +=$(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,)) diff --git a/recipes/u-boot/files/fix-data-abort-from-sd-ombug799.patch b/recipes/u-boot/files/fix-data-abort-from-sd-ombug799.patch new file mode 100644 index 0000000000..98b84430ad --- /dev/null +++ b/recipes/u-boot/files/fix-data-abort-from-sd-ombug799.patch @@ -0,0 +1,11 @@ +--- git.orig/fs/ext2/ext2fs.c 2007-12-13 23:16:13.000000000 -0800 ++++ git/fs/ext2/ext2fs.c 2007-12-13 23:16:41.000000000 -0800 +@@ -472,7 +472,7 @@ + return (0); + } + if (dirent.namelen != 0) { +- char filename[dirent.namelen + 1]; ++ char filename[256]; + ext2fs_node_t fdiro; + int type = FILETYPE_UNKNOWN; + diff --git a/recipes/u-boot/files/makefile-no-dirafter.patch b/recipes/u-boot/files/makefile-no-dirafter.patch new file mode 100644 index 0000000000..2ed26c3127 --- /dev/null +++ b/recipes/u-boot/files/makefile-no-dirafter.patch @@ -0,0 +1,17 @@ +Index: git/tools/Makefile +=================================================================== +--- git.orig/tools/Makefile 2007-10-03 16:51:38.000000000 +0100 ++++ git/tools/Makefile 2007-10-03 16:52:03.000000000 +0100 +@@ -114,9 +114,9 @@ + # + # Use native tools and options + # +-CPPFLAGS = -idirafter $(SRCTREE)/include \ +- -idirafter $(OBJTREE)/include2 \ +- -idirafter $(OBJTREE)/include \ ++CPPFLAGS = -I$(SRCTREE)/include \ ++ -I$(OBJTREE)/include2 \ ++ -I$(OBJTREE)/include \ + -DTEXT_BASE=$(TEXT_BASE) -DUSE_HOSTCC + CFLAGS = $(HOST_CFLAGS) $(CPPFLAGS) -O + AFLAGS = -D__ASSEMBLY__ $(CPPFLAGS) diff --git a/recipes/u-boot/files/neuros-osd2/default-env.ascr b/recipes/u-boot/files/neuros-osd2/default-env.ascr new file mode 100644 index 0000000000..d8453a7c41 --- /dev/null +++ b/recipes/u-boot/files/neuros-osd2/default-env.ascr @@ -0,0 +1,53 @@ +setenv loadaddr 0x82000000 +setenv ubootaddr 0x82000800 +setenv tftp_root /images +setenv nfs_root /home/user/rootfs/fs +setenv bootfile uImage + +setenv defenv_fname default_env.img +setenv defenv_loc /images/default_env.img +setenv defenv_loc_cmd setenv defenv_loc \$(tftp_root)/\$(defenv_fname) + +setenv uboot_fname u-boot.bin +setenv uboot_loc /images/u-boot.bin +setenv uboot_loc_cmd setenv uboot_loc \$(tftp_root)/\$(uboot_fname)\;setenv uboot_desc \$(tftp_root)/uboot_desc + +setenv kernel_fname uImage +setenv kernel_loc /images/uImage +setenv kernel_loc_cmd setenv kernel_loc \$(tftp_root)/\$(kernel_fname) + +setenv jffs2_fname uImage.jffs2 +setenv jffs2_loc /images/uImage.jffs2 +setenv jffs2_loc_cmd setenv jffs2_loc \$(tftp_root)/\$(jffs2_fname) + +setenv rootfs_fname rootfs.yaffs2 +setenv rootfs_loc /images/rootfs.yaffs2 +setenv rootfs_loc_cmd setenv rootfs_loc \$(tftp_root)/\$(rootfs_fname) + +setenv rootfs_nfs_loc /rootfs/fs +setenv rootfs_nfs_loc_cmd setenv rootfs_nfs_loc \$(nfs_root) + +setenv console console=ttyS0,115200n8 + +setenv mem_reserve mem=200M + +setenv ip ip=\192.168.1.100:\192.168.1.1:\192.168.1.1:\255.255.255.0:\neuros::off + +setenv nfs_mount_params udp,v3,rsize=4096,wsize=4096 +setenv nfs_cmd setenv bootargs \$(console) root=/dev/nfs rw nfsroot=\$(serverip):\$(rootfs_nfs_loc),\$(nfs_mount_params) \$(ip) \$(mem_reserve) \$(video_params) +setenv yaffs_cmd setenv bootargs \$(console) root=/dev/mtdblock4 rw \$(ip) \$(mem_reserve) \$(video_params) + +setenv update-locs run uboot_loc_cmd\;run kernel_loc_cmd\;run jffs2_loc_cmd\;run defenv_loc_cmd\;run rootfs_nfs_loc_cmd\;saveenv +setenv update-defenv run defenv_loc_cmd\;tftp \$(loadaddr) \$(defenv_loc)\;setenv filesize\;autoscr \$(loadaddr)\;run update-locs +setenv update-uboot run uboot_loc_cmd\;tftp \$(loadaddr) \$(uboot_desc)\;tftp \$(ubootaddr) \$(uboot_loc)\;setenv filesize\;nand erase c0000 c0000\;nand write \$(loadaddr) c0000 c0000 +setenv update-kernel run jffs2_loc_cmd\;tftp \$(loadaddr) \$(jffs2_loc)\;setenv filesize\;nand erase 1c0000 500000\;nand write.jffs2 \$(loadaddr) 1c0000 500000 +setenv update-rootfs run rootfs_loc_cmd\;tftp \$(loadaddr) \$(rootfs_loc)\;nand erase 6c0000\;nand write.yaffs \$(loadaddr) 6c0000 \$(filesize)\;setenv filesize + +setenv update-ipdhcp setenv ip ip=::::\$(hostname)::dhcp\;saveenv +setenv update-ipstatic setenv ip ip=\$(ipaddr):\$(serverip):\$(gatewayip):\$(netmask):\$(hostname)::off\;saveenv + +setenv devboot tftp \$(loadaddr) \$(uboot_loc)\;setenv filesize\;go \$(loadaddr) +setenv devkernel run nfs_cmd\;tftp \$(loadaddr) \$(kernel_loc)\;setenv filesize\;bootm \$(loadaddr) +setenv yaffs_boot run yaffs_cmd\;fsload \$(loadaddr) \$(bootfile)\;bootm \$(loadaddr) + +setenv bootcmd run yaffs_boot diff --git a/recipes/u-boot/files/sffsdr-u-boot.patch b/recipes/u-boot/files/sffsdr-u-boot.patch new file mode 100644 index 0000000000..dcb34e2c51 --- /dev/null +++ b/recipes/u-boot/files/sffsdr-u-boot.patch @@ -0,0 +1,830 @@ +X-Mozilla-Status: 0001 +X-Mozilla-Status2: 00000000 +X-Mozilla-Keys: +Return-Path: <u-boot-users-bounces@lists.sourceforge.net> +Received: from mail5.zoneedit.com (mail5.zoneedit.com [69.64.89.63]) + by www.balister.org (8.13.8/8.13.5) with ESMTP id m56KcqTB024438 + for <balister@www.balister.org>; Fri, 6 Jun 2008 16:38:53 -0400 +Received: from lists-outbound.sourceforge.net (lists-outbound.sourceforge.net [66.35.250.225]) + by mail5.zoneedit.com (Postfix) with ESMTP id BD2E51594778 + for <philip@balister.org>; Fri, 6 Jun 2008 13:26:54 -0700 (PDT) +Received: from sc8-sf-list1-new.sourceforge.net (sc8-sf-list1-new-b.sourceforge.net [10.3.1.93]) + by sc8-sf-spam2.sourceforge.net (Postfix) with ESMTP + id 4C55A12A74; Fri, 6 Jun 2008 13:38:52 -0700 (PDT) +Received: from sc8-sf-mx1-b.sourceforge.net ([10.3.1.91] + helo=mail.sourceforge.net) + by sc8-sf-list1-new.sourceforge.net with esmtp (Exim 4.43) + id 1K4ii2-00059t-CF + for u-boot-users@lists.sourceforge.net; Fri, 06 Jun 2008 13:38:50 -0700 +Received: from 201-217-static-ppp.3menatwork.com ([64.235.217.201] + helo=server.hugovil.com) + by mail.sourceforge.net with esmtp (Exim 4.44) id 1K4ihy-0003RQ-Od + for u-boot-users@lists.sourceforge.net; Fri, 06 Jun 2008 13:38:50 -0700 +Received: from localhost.localdomain (mail.lyrtech.com [204.101.172.90]) + by server.hugovil.com (8.13.6/8.13.6) with ESMTP id m56KcjQC031450; + Fri, 6 Jun 2008 16:38:46 -0400 +From: Hugo Villeneuve <hugo.villeneuve@lyrtech.com> +To: u-boot-users@lists.sourceforge.net +Date: Fri, 6 Jun 2008 16:39:10 -0400 +Message-Id: <1212784750-10682-1-git-send-email-hugo.villeneuve@lyrtech.com> +X-Mailer: git-send-email 1.5.4.5 +X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-3.0 + (server.hugovil.com [64.235.217.201]); + Fri, 06 Jun 2008 16:38:46 -0400 (EDT) +X-Spam-Score: 1.2 (+) +X-Spam-Report: Spam Filtering performed by sourceforge.net. + See http://spamassassin.org/tag/ for more details. + Report problems to + http://sf.net/tracker/?func=add&group_id=1&atid=200001 + 1.0 FORGED_RCVD_HELO Received: contains a forged HELO + 0.2 UPPERCASE_25_50 message body is 25-50% uppercase + 0.0 DRUGS_SLEEP Refers to a sleep aid drug +Cc: "Philip Balister, OpenSDR" <philip@opensdr.com> +Subject: [U-Boot-Users] [PATCH V8] ARM: Add support for Lyrtech SFF-SDR + board (ARM926EJS) +X-BeenThere: u-boot-users@lists.sourceforge.net +X-Mailman-Version: 2.1.8 +Precedence: list +List-Id: Universal Boot Loader general discussion + <u-boot-users.lists.sourceforge.net> +List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/u-boot-users>, + <mailto:u-boot-users-request@lists.sourceforge.net?subject=unsubscribe> +List-Archive: <http://sourceforge.net/mailarchive/forum.php?forum_name=u-boot-users> +List-Post: <mailto:u-boot-users@lists.sourceforge.net> +List-Help: <mailto:u-boot-users-request@lists.sourceforge.net?subject=help> +List-Subscribe: <https://lists.sourceforge.net/lists/listinfo/u-boot-users>, + <mailto:u-boot-users-request@lists.sourceforge.net?subject=subscribe> +MIME-Version: 1.0 +Content-Type: text/plain; charset="us-ascii" +Content-Transfer-Encoding: 7bit +Sender: u-boot-users-bounces@lists.sourceforge.net +Errors-To: u-boot-users-bounces@lists.sourceforge.net + +ARM: This patch adds support for the Lyrtech SFF-SDR +board, based on the TI DaVinci architecture (ARM926EJS). + +Signed-off-by: Hugo Villeneuve <hugo.villeneuve@lyrtech.com> +Signed-off-by: Philip Balister, OpenSDR <philip@opensdr.com> + +--- + + CREDITS | 5 + + MAKEALL | 1 + + Makefile | 3 + + board/davinci/sffsdr/Makefile | 51 ++++++ + board/davinci/sffsdr/board_init.S | 32 ++++ + board/davinci/sffsdr/config.mk | 42 +++++ + board/davinci/sffsdr/sffsdr.c | 306 +++++++++++++++++++++++++++++++++++++ + board/davinci/sffsdr/u-boot.lds | 52 +++++++ + include/asm-arm/mach-types.h | 13 ++ + include/configs/davinci_sffsdr.h | 148 ++++++++++++++++++ + 10 files changed, 653 insertions(+), 0 deletions(-) + +diff --git a/CREDITS b/CREDITS +index e84ef38..b855904 100644 +--- a/CREDITS ++++ b/CREDITS +@@ -533,3 +533,8 @@ N: Timo Tuunainen + E: timo.tuunainen@sysart.fi + D: Support for Artila M-501 starter kit + W: http://www.sysart.fi/ ++ ++N: Philip Balister ++E: philip@opensdr.com ++D: Port to Lyrtech SFFSDR development board. ++W: www.opensdr.com +diff --git a/MAKEALL b/MAKEALL +index 37b4334..f53ceec 100755 +--- a/MAKEALL ++++ b/MAKEALL +@@ -496,6 +496,7 @@ LIST_ARM9=" \ + voiceblue \ + davinci_dvevm \ + davinci_schmoogie \ ++ davinci_sffsdr \ + davinci_sonata \ + " + +diff --git a/Makefile b/Makefile +index 6548f8e..05d90aa 100644 +--- a/Makefile ++++ b/Makefile +@@ -2408,6 +2408,9 @@ davinci_dvevm_config : unconfig + davinci_schmoogie_config : unconfig + @$(MKCONFIG) $(@:_config=) arm arm926ejs schmoogie davinci davinci + ++davinci_sffsdr_config : unconfig ++ @$(MKCONFIG) $(@:_config=) arm arm926ejs sffsdr davinci davinci ++ + davinci_sonata_config : unconfig + @$(MKCONFIG) $(@:_config=) arm arm926ejs sonata davinci davinci + +diff --git a/board/davinci/sffsdr/Makefile b/board/davinci/sffsdr/Makefile +new file mode 100644 +index 0000000..4413b33 +--- /dev/null ++++ b/board/davinci/sffsdr/Makefile +@@ -0,0 +1,51 @@ ++# ++# (C) Copyright 2000, 2001, 2002 ++# Wolfgang Denk, DENX Software Engineering, wd@denx.de. ++# ++# Copyright (C) 2007 Sergey Kubushyn <ksi@koi8.net> ++# ++# 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 = $(obj)lib$(BOARD).a ++ ++COBJS := $(BOARD).o ++SOBJS := board_init.o ++ ++SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) ++OBJS := $(addprefix $(obj),$(COBJS)) ++SOBJS := $(addprefix $(obj),$(SOBJS)) ++ ++$(LIB): $(obj).depend $(OBJS) $(SOBJS) ++ $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS) ++ ++clean: ++ rm -f $(SOBJS) $(OBJS) ++ ++distclean: clean ++ rm -f $(LIB) core *.bak *~ .depend ++ ++######################################################################### ++# This is for $(obj).depend target ++include $(SRCTREE)/rules.mk ++ ++sinclude $(obj).depend ++ ++######################################################################### +diff --git a/board/davinci/sffsdr/board_init.S b/board/davinci/sffsdr/board_init.S +new file mode 100644 +index 0000000..84ecd96 +--- /dev/null ++++ b/board/davinci/sffsdr/board_init.S +@@ -0,0 +1,32 @@ ++/* ++ * Board-specific low level initialization code. Called at the very end ++ * of cpu/arm926ejs/davinci/lowlevel_init.S. Just returns if there is no ++ * initialization required. ++ * ++ * Copyright (C) 2007 Sergey Kubushyn <ksi@koi8.net> ++ * ++ * 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 <config.h> ++ ++.globl dv_board_init ++dv_board_init: ++ ++ mov pc, lr +diff --git a/board/davinci/sffsdr/config.mk b/board/davinci/sffsdr/config.mk +new file mode 100644 +index 0000000..b1c4ead +--- /dev/null ++++ b/board/davinci/sffsdr/config.mk +@@ -0,0 +1,42 @@ ++# ++# Lyrtech SFF SDR board (ARM926EJS) cpu ++# ++# (C) Copyright 2002 ++# Gary Jennejohn, DENX Software Engineering, <gj@denx.de> ++# David Mueller, ELSOFT AG, <d.mueller@elsoft.ch> ++# ++# Copyright (C) 2008 Lyrtech <www.lyrtech.com> ++# Copyright (C) 2008 Philip Balister, OpenSDR <philip@opensdr.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 ++ ++# ++# SFF SDR board has 1 bank of 128 MB DDR RAM ++# Physical Address: ++# 8000'0000 to 87FF'FFFF ++# ++# Linux-Kernel is expected to be at 8000'8000, entry 8000'8000 ++# (mem base + reserved) ++# ++# Integrity kernel is expected to be at 8000'0000, entry 8000'00D0, ++# up to 81FF'FFFF (uses up to 32 MB of memory for text, heap, etc). ++# ++# we load ourself to 8400'0000 to provide at least 32MB spacing ++# between us and the Integrity kernel image ++TEXT_BASE = 0x84000000 +diff --git a/board/davinci/sffsdr/sffsdr.c b/board/davinci/sffsdr/sffsdr.c +new file mode 100644 +index 0000000..31e0f24 +--- /dev/null ++++ b/board/davinci/sffsdr/sffsdr.c +@@ -0,0 +1,306 @@ ++/* ++ * Copyright (C) 2007 Sergey Kubushyn <ksi@koi8.net> ++ * ++ * Copyright (C) 2008 Lyrtech <www.lyrtech.com> ++ * Copyright (C) 2008 Philip Balister, OpenSDR <philip@opensdr.com> ++ * ++ * Parts are shamelessly stolen from various TI sources, original copyright ++ * follows: ++ * ++ * Copyright (C) 2004 Texas Instruments. ++ * ++ * 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., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++#include <common.h> ++#include <i2c.h> ++#include <asm/arch/hardware.h> ++#include <asm/arch/emac_defs.h> ++ ++#define DAVINCI_A3CR (0x01E00014) /* EMIF-A CS3 config register. */ ++#define DAVINCI_A3CR_VAL (0x3FFFFFFD) /* EMIF-A CS3 value for FPGA. */ ++ ++#define INTEGRITY_SYSCFG_OFFSET 0x7E8 ++#define INTEGRITY_CHECKWORD_OFFSET 0x7F8 ++#define INTEGRITY_CHECKWORD_VALUE 0x10ADBEEF ++ ++DECLARE_GLOBAL_DATA_PTR; ++ ++extern void timer_init(void); ++extern int eth_hw_init(void); ++extern phy_t phy; ++ ++ ++/* Works on Always On power domain only (no PD argument) */ ++void lpsc_on(unsigned int id) ++{ ++ dv_reg_p mdstat, mdctl; ++ ++ if (id >= DAVINCI_LPSC_GEM) ++ return; /* Don't work on DSP Power Domain */ ++ ++ mdstat = REG_P(PSC_MDSTAT_BASE + (id * 4)); ++ mdctl = REG_P(PSC_MDCTL_BASE + (id * 4)); ++ ++ while (REG(PSC_PTSTAT) & 0x01); ++ ++ if ((*mdstat & 0x1f) == 0x03) ++ return; /* Already on and enabled */ ++ ++ *mdctl |= 0x03; ++ ++ /* Special treatment for some modules as for sprue14 p.7.4.2 */ ++ switch (id) { ++ case DAVINCI_LPSC_VPSSSLV: ++ case DAVINCI_LPSC_EMAC: ++ case DAVINCI_LPSC_EMAC_WRAPPER: ++ case DAVINCI_LPSC_MDIO: ++ case DAVINCI_LPSC_USB: ++ case DAVINCI_LPSC_ATA: ++ case DAVINCI_LPSC_VLYNQ: ++ case DAVINCI_LPSC_UHPI: ++ case DAVINCI_LPSC_DDR_EMIF: ++ case DAVINCI_LPSC_AEMIF: ++ case DAVINCI_LPSC_MMC_SD: ++ case DAVINCI_LPSC_MEMSTICK: ++ case DAVINCI_LPSC_McBSP: ++ case DAVINCI_LPSC_GPIO: ++ *mdctl |= 0x200; ++ break; ++ } ++ ++ REG(PSC_PTCMD) = 0x01; ++ ++ while (REG(PSC_PTSTAT) & 0x03); ++ while ((*mdstat & 0x1f) != 0x03); /* Probably an overkill... */ ++} ++ ++void dsp_on(void) ++{ ++ int i; ++ ++ if (REG(PSC_PDSTAT1) & 0x1f) ++ return; /* Already on */ ++ ++ REG(PSC_GBLCTL) |= 0x01; ++ REG(PSC_PDCTL1) |= 0x01; ++ REG(PSC_PDCTL1) &= ~0x100; ++ REG(PSC_MDCTL_BASE + (DAVINCI_LPSC_GEM * 4)) |= 0x03; ++ REG(PSC_MDCTL_BASE + (DAVINCI_LPSC_GEM * 4)) &= 0xfffffeff; ++ REG(PSC_MDCTL_BASE + (DAVINCI_LPSC_IMCOP * 4)) |= 0x03; ++ REG(PSC_MDCTL_BASE + (DAVINCI_LPSC_IMCOP * 4)) &= 0xfffffeff; ++ REG(PSC_PTCMD) = 0x02; ++ ++ for (i = 0; i < 100; i++) { ++ if (REG(PSC_EPCPR) & 0x02) ++ break; ++ } ++ ++ REG(PSC_CHP_SHRTSW) = 0x01; ++ REG(PSC_PDCTL1) |= 0x100; ++ REG(PSC_EPCCR) = 0x02; ++ ++ for (i = 0; i < 100; i++) { ++ if (!(REG(PSC_PTSTAT) & 0x02)) ++ break; ++ } ++ ++ REG(PSC_GBLCTL) &= ~0x1f; ++} ++ ++int board_init(void) ++{ ++ /* arch number of the board */ ++ gd->bd->bi_arch_number = MACH_TYPE_SFFSDR; ++ ++ /* address of boot parameters */ ++ gd->bd->bi_boot_params = LINUX_BOOT_PARAM_ADDR; ++ ++ /* Workaround for TMS320DM6446 errata 1.3.22 */ ++ REG(PSC_SILVER_BULLET) = 0; ++ ++ /* Power on required peripherals */ ++ lpsc_on(DAVINCI_LPSC_EMAC); ++ lpsc_on(DAVINCI_LPSC_EMAC_WRAPPER); ++ lpsc_on(DAVINCI_LPSC_MDIO); ++ lpsc_on(DAVINCI_LPSC_I2C); ++ lpsc_on(DAVINCI_LPSC_UART0); ++ lpsc_on(DAVINCI_LPSC_TIMER1); ++ lpsc_on(DAVINCI_LPSC_GPIO); ++ ++ /* Powerup the DSP */ ++ dsp_on(); ++ ++ /* Bringup UART0 out of reset */ ++ REG(UART0_PWREMU_MGMT) = 0x0000e003; ++ ++ /* Enable GIO3.3V cells used for EMAC */ ++ REG(VDD3P3V_PWDN) = 0; ++ ++ /* Enable UART0 MUX lines */ ++ REG(PINMUX1) |= 1; ++ ++ /* Enable EMAC and AEMIF pins */ ++ REG(PINMUX0) = 0x80000c1f; ++ ++ /* Enable I2C pin Mux */ ++ REG(PINMUX1) |= (1 << 7); ++ ++ /* Set the Bus Priority Register to appropriate value */ ++ REG(VBPR) = 0x20; ++ ++ timer_init(); ++ ++ return(0); ++} ++ ++/* Read ethernet MAC address from Integrity data structure inside EEPROM. */ ++int read_mac_address(uint8_t *buf) ++{ ++ u_int32_t value, mac[2], address; ++ ++ /* Read Integrity data structure checkword. */ ++ if (i2c_read(CFG_I2C_EEPROM_ADDR, INTEGRITY_CHECKWORD_OFFSET, ++ CFG_I2C_EEPROM_ADDR_LEN, (uint8_t *) &value, 4)) ++ goto err; ++ if (value != INTEGRITY_CHECKWORD_VALUE) ++ return 1; ++ ++ /* Read SYSCFG structure offset. */ ++ if (i2c_read(CFG_I2C_EEPROM_ADDR, INTEGRITY_SYSCFG_OFFSET, ++ CFG_I2C_EEPROM_ADDR_LEN, (uint8_t *) &value, 4)) ++ goto err; ++ address = 0x800 + (int) value; /* Address of SYSCFG structure. */ ++ ++ /* Read NET CONFIG structure offset. */ ++ if (i2c_read(CFG_I2C_EEPROM_ADDR, address, ++ CFG_I2C_EEPROM_ADDR_LEN, (uint8_t *) &value, 4)) ++ goto err; ++ address = 0x800 + (int) value; /* Address of NET CONFIG structure. */ ++ address += 12; /* Address of NET INTERFACE CONFIG structure. */ ++ ++ /* Read NET INTERFACE CONFIG 2 structure offset. */ ++ if (i2c_read(CFG_I2C_EEPROM_ADDR, address, ++ CFG_I2C_EEPROM_ADDR_LEN, (uint8_t *) &value, 4)) ++ goto err; ++ address = 0x800 + 16 + (int) value; /* Address of NET INTERFACE ++ * CONFIG 2 structure. */ ++ ++ /* Read MAC address. */ ++ if (i2c_read(CFG_I2C_EEPROM_ADDR, address, ++ CFG_I2C_EEPROM_ADDR_LEN, (uint8_t *) &mac[0], 8)) ++ goto err; ++ ++ buf[0] = mac[0] >> 24; ++ buf[1] = mac[0] >> 16; ++ buf[2] = mac[0] >> 8; ++ buf[3] = mac[0]; ++ buf[4] = mac[1] >> 24; ++ buf[5] = mac[1] >> 16; ++ ++ return 0; ++ ++err: ++ printf("Read from EEPROM @ 0x%02x failed\n", CFG_I2C_EEPROM_ADDR); ++ return 1; ++} ++ ++/* Platform dependent initialisation. */ ++int misc_init_r(void) ++{ ++ int i; ++ u_int8_t i2cbuf; ++ u_int8_t env_enetaddr[6], eeprom_enetaddr[6]; ++ char *tmp = getenv("ethaddr"); ++ char *end; ++ int clk; ++ ++ /* EMIF-A CS3 configuration for FPGA. */ ++ REG(DAVINCI_A3CR) = DAVINCI_A3CR_VAL; ++ ++ clk = ((REG(PLL2_PLLM) + 1) * 27) / ((REG(PLL2_DIV2) & 0x1f) + 1); ++ ++ printf("ARM Clock: %dMHz\n", ((REG(PLL1_PLLM) + 1) * 27) / 2); ++ printf("DDR Clock: %dMHz\n", (clk / 2)); ++ ++ /* Configure I2C switch (PCA9543) to enable channel 0. */ ++ i2cbuf = CFG_I2C_PCA9543_ENABLE_CH0; ++ if (i2c_write(CFG_I2C_PCA9543_ADDR, 0, ++ CFG_I2C_PCA9543_ADDR_LEN, &i2cbuf, 1)) { ++ printf("Write to MUX @ 0x%02x failed\n", CFG_I2C_PCA9543_ADDR); ++ return 1; ++ } ++ ++ /* Read Ethernet MAC address from the U-Boot environment. */ ++ for (i = 0; i < 6; i++) { ++ env_enetaddr[i] = tmp ? simple_strtoul(tmp, &end, 16) : 0; ++ if (tmp) ++ tmp = (*end) ? end+1 : end; ++ } ++ ++ /* Read Ethernet MAC address from EEPROM. */ ++ if (read_mac_address(eeprom_enetaddr) == 0) { ++ if (memcmp(env_enetaddr, "\0\0\0\0\0\0", 6) != 0 && ++ memcmp(env_enetaddr, eeprom_enetaddr, 6) != 0) { ++ printf("\nWarning: MAC addresses don't match:\n"); ++ printf("\tHW MAC address: " ++ "%02X:%02X:%02X:%02X:%02X:%02X\n", ++ eeprom_enetaddr[0], eeprom_enetaddr[1], ++ eeprom_enetaddr[2], eeprom_enetaddr[3], ++ eeprom_enetaddr[4], eeprom_enetaddr[5]); ++ printf("\t\"ethaddr\" value: " ++ "%02X:%02X:%02X:%02X:%02X:%02X\n", ++ env_enetaddr[0], env_enetaddr[1], ++ env_enetaddr[2], env_enetaddr[3], ++ env_enetaddr[4], env_enetaddr[5]) ; ++ debug("### Set MAC addr from environment\n"); ++ memcpy(eeprom_enetaddr, env_enetaddr, 6); ++ } ++ if (!tmp) { ++ char ethaddr[20]; ++ ++ sprintf(ethaddr, "%02X:%02X:%02X:%02X:%02X:%02X", ++ eeprom_enetaddr[0], eeprom_enetaddr[1], ++ eeprom_enetaddr[2], eeprom_enetaddr[3], ++ eeprom_enetaddr[4], eeprom_enetaddr[5]) ; ++ debug("### Set environment from HW MAC addr = \"%s\"\n", ++ ethaddr); ++ setenv("ethaddr", ethaddr); ++ } ++ } ++ ++ if (!eth_hw_init()) { ++ printf("Ethernet init failed\n"); ++ } else { ++ printf("ETH PHY: %s\n", phy.name); ++ } ++ ++ /* On this platform, U-Boot is copied in RAM by the UBL, ++ * so we are always in the relocated state. */ ++ gd->flags |= GD_FLG_RELOC; ++ ++ return(0); ++} ++ ++int dram_init(void) ++{ ++ gd->bd->bi_dram[0].start = PHYS_SDRAM_1; ++ gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE; ++ ++ return(0); ++} +diff --git a/board/davinci/sffsdr/u-boot.lds b/board/davinci/sffsdr/u-boot.lds +new file mode 100644 +index 0000000..a4fcd1a +--- /dev/null ++++ b/board/davinci/sffsdr/u-boot.lds +@@ -0,0 +1,52 @@ ++/* ++ * (C) Copyright 2002 ++ * Gary Jennejohn, DENX Software Engineering, <gj@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 ++ */ ++ ++OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") ++OUTPUT_ARCH(arm) ++ENTRY(_start) ++SECTIONS ++{ ++ . = 0x00000000; ++ . = ALIGN(4); ++ .text : ++ { ++ cpu/arm926ejs/start.o (.text) ++ *(.text) ++ } ++ . = ALIGN(4); ++ .rodata : { *(.rodata) } ++ . = ALIGN(4); ++ .data : { *(.data) } ++ . = ALIGN(4); ++ .got : { *(.got) } ++ ++ . = .; ++ __u_boot_cmd_start = .; ++ .u_boot_cmd : { *(.u_boot_cmd) } ++ __u_boot_cmd_end = .; ++ ++ . = ALIGN(4); ++ __bss_start = .; ++ .bss (NOLOAD) : { *(.bss) } ++ _end = .; ++} +diff --git a/include/asm-arm/mach-types.h b/include/asm-arm/mach-types.h +index aaf2ea2..b347857 100644 +--- a/include/asm-arm/mach-types.h ++++ b/include/asm-arm/mach-types.h +@@ -1595,6 +1595,7 @@ extern unsigned int __machine_arch_type; + #define MACH_TYPE_P300 1602 + #define MACH_TYPE_XDACOMET 1603 + #define MACH_TYPE_DEXFLEX2 1604 ++#define MACH_TYPE_SFFSDR 1657 + + #ifdef CONFIG_ARCH_EBSA110 + # ifdef machine_arch_type +@@ -16500,6 +16501,18 @@ extern unsigned int __machine_arch_type; + # define machine_is_schmoogie() (0) + #endif + ++#ifdef CONFIG_MACH_SFFSDR ++# ifdef machine_arch_type ++# undef machine_arch_type ++# define machine_arch_type __machine_arch_type ++# else ++# define machine_arch_type MACH_TYPE_SFFSDR ++# endif ++# define machine_is_sffsdr() (machine_arch_type == MACH_TYPE_SFFSDR) ++#else ++# define machine_is_sffsdr() (0) ++#endif ++ + #ifdef CONFIG_MACH_AZTOOL + # ifdef machine_arch_type + # undef machine_arch_type +diff --git a/include/configs/davinci_sffsdr.h b/include/configs/davinci_sffsdr.h +new file mode 100644 +index 0000000..897e9e5 +--- /dev/null ++++ b/include/configs/davinci_sffsdr.h +@@ -0,0 +1,148 @@ ++/* ++ * Copyright (C) 2007 Sergey Kubushyn <ksi@koi8.net> ++ * ++ * Copyright (C) 2008 Lyrtech <www.lyrtech.com> ++ * Copyright (C) 2008 Philip Balister, OpenSDR <philip@opensdr.com> ++ * ++ * 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 __CONFIG_H ++#define __CONFIG_H ++#include <asm/sizes.h> ++ ++/* Board */ ++#define SFFSDR ++#define CFG_NAND_LARGEPAGE ++#define CFG_USE_NAND ++/* SoC Configuration */ ++#define CONFIG_ARM926EJS /* arm926ejs CPU core */ ++#define CONFIG_SYS_CLK_FREQ 297000000 /* Arm Clock frequency */ ++#define CFG_TIMERBASE 0x01c21400 /* use timer 0 */ ++#define CFG_HZ_CLOCK 27000000 /* Timer Input clock freq */ ++#define CFG_HZ 1000 ++/* EEPROM definitions for Atmel 24LC64 EEPROM chip */ ++#define CFG_I2C_EEPROM_ADDR_LEN 2 ++#define CFG_I2C_EEPROM_ADDR 0x50 ++#define CFG_EEPROM_PAGE_WRITE_BITS 5 ++#define CFG_EEPROM_PAGE_WRITE_DELAY_MS 20 ++/* Memory Info */ ++#define CFG_MALLOC_LEN (0x10000 + 256*1024) /* malloc() len */ ++#define CFG_GBL_DATA_SIZE 128 /* reserved for initial data */ ++#define CFG_MEMTEST_START 0x80000000 /* memtest start address */ ++#define CFG_MEMTEST_END 0x81000000 /* 16MB RAM test */ ++#define CONFIG_NR_DRAM_BANKS 1 /* we have 1 bank of DRAM */ ++#define CONFIG_STACKSIZE (256*1024) /* regular stack */ ++#define PHYS_SDRAM_1 0x80000000 /* DDR Start */ ++#define PHYS_SDRAM_1_SIZE 0x08000000 /* DDR size 128MB */ ++#define DDR_4BANKS /* 4-bank DDR2 (128MB) */ ++/* Serial Driver info */ ++#define CFG_NS16550 ++#define CFG_NS16550_SERIAL ++#define CFG_NS16550_REG_SIZE 4 /* NS16550 register size */ ++#define CFG_NS16550_COM1 0x01c20000 /* Base address of UART0 */ ++#define CFG_NS16550_CLK 27000000 /* Input clock to NS16550 */ ++#define CONFIG_CONS_INDEX 1 /* use UART0 for console */ ++#define CONFIG_BAUDRATE 115200 /* Default baud rate */ ++#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 } ++/* I2C Configuration */ ++#define CONFIG_HARD_I2C ++#define CONFIG_DRIVER_DAVINCI_I2C ++#define CFG_I2C_SPEED 80000 /* 100Kbps won't work, silicon bug */ ++#define CFG_I2C_SLAVE 10 /* Bogus, master-only in U-Boot */ ++/* Network & Ethernet Configuration */ ++#define CONFIG_DRIVER_TI_EMAC ++#define CONFIG_MII ++#define CONFIG_BOOTP_DEFAULT ++#define CONFIG_BOOTP_DNS ++#define CONFIG_BOOTP_DNS2 ++#define CONFIG_BOOTP_SEND_HOSTNAME ++#define CONFIG_NET_RETRY_COUNT 10 ++#define CONFIG_OVERWRITE_ETHADDR_ONCE ++/* Flash & Environment */ ++#undef CFG_ENV_IS_IN_FLASH ++#define CFG_NO_FLASH ++#define CFG_ENV_IS_IN_NAND /* U-Boot env in NAND Flash */ ++#define CFG_ENV_SECT_SIZE 2048 /* Env sector Size */ ++#define CFG_ENV_SIZE SZ_128K ++#define CONFIG_SKIP_LOWLEVEL_INIT /* U-Boot is loaded by a bootloader */ ++#define CONFIG_SKIP_RELOCATE_UBOOT /* to a proper address, init done */ ++#define CFG_NAND_BASE 0x02000000 ++#define CFG_NAND_HW_ECC ++#define CFG_MAX_NAND_DEVICE 1 /* Max number of NAND devices */ ++#define NAND_MAX_CHIPS 1 ++#define CFG_ENV_OFFSET 0x0 /* Block 0--not used by bootcode */ ++/* I2C switch definitions for PCA9543 chip */ ++#define CFG_I2C_PCA9543_ADDR 0x70 ++#define CFG_I2C_PCA9543_ADDR_LEN 0 /* Single register. */ ++#define CFG_I2C_PCA9543_ENABLE_CH0 0x01 /* Enable channel 0. */ ++/* U-Boot general configuration */ ++#undef CONFIG_USE_IRQ /* No IRQ/FIQ in U-Boot */ ++#define CONFIG_MISC_INIT_R ++#define CONFIG_BOOTDELAY 5 /* Autoboot after 5 seconds. */ ++#define CONFIG_BOOTFILE "uImage" /* Boot file name */ ++#define CFG_PROMPT "U-Boot > " /* Monitor Command Prompt */ ++#define CFG_CBSIZE 1024 /* Console I/O Buffer Size */ ++#define CFG_PBSIZE \ ++ (CFG_CBSIZE + sizeof(CFG_PROMPT) + 16) /* Print buffer size */ ++#define CFG_MAXARGS 16 /* max number of command args */ ++#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */ ++#define CFG_LOAD_ADDR 0x80700000 /* Default Linux kernel ++ * load address. */ ++#define CONFIG_VERSION_VARIABLE ++#define CONFIG_AUTO_COMPLETE /* Won't work with hush so far, ++ * may be later */ ++#define CFG_HUSH_PARSER ++#define CFG_PROMPT_HUSH_PS2 "> " ++#define CONFIG_CMDLINE_EDITING ++#define CFG_LONGHELP ++#define CONFIG_CRC32_VERIFY ++#define CONFIG_MX_CYCLIC ++/* Linux Information */ ++#define LINUX_BOOT_PARAM_ADDR 0x80000100 ++#define CONFIG_CMDLINE_TAG ++#define CONFIG_SETUP_MEMORY_TAGS ++#define CONFIG_BOOTARGS \ ++ "mem=56M " \ ++ "console=ttyS0,115200n8 " \ ++ "root=/dev/nfs rw noinitrd ip=dhcp " \ ++ "nfsroot=${serverip}:/nfsroot/sffsdr " \ ++ "nwhwconf=device:eth0,hwaddr:${ethaddr}" ++#define CONFIG_BOOTCOMMAND \ ++ "nand read 87A00000 100000 300000;" \ ++ "bootelf 87A00000" ++/* U-Boot commands */ ++#include <config_cmd_default.h> ++#define CONFIG_CMD_ASKENV ++#define CONFIG_CMD_DHCP ++#define CONFIG_CMD_DIAG ++#define CONFIG_CMD_I2C ++#define CONFIG_CMD_MII ++#define CONFIG_CMD_PING ++#define CONFIG_CMD_SAVES ++#define CONFIG_CMD_NAND ++#define CONFIG_CMD_EEPROM ++#undef CONFIG_CMD_BDI ++#undef CONFIG_CMD_FPGA ++#undef CONFIG_CMD_SETGETDCR ++#undef CONFIG_CMD_FLASH ++#undef CONFIG_CMD_IMLS ++/* KGDB support (if any) */ ++#ifdef CONFIG_CMD_KGDB ++#define CONFIG_KGDB_BAUDRATE 115200 /* speed to run kgdb serial port */ ++#define CONFIG_KGDB_SER_INDEX 1 /* which serial port to use */ ++#endif ++#endif /* __CONFIG_H */ + +------------------------------------------------------------------------- +Check out the new SourceForge.net Marketplace. +It's the best place to buy or sell services for +just about anything Open Source. +http://sourceforge.net/services/buy/index.php +_______________________________________________ +U-Boot-Users mailing list +U-Boot-Users@lists.sourceforge.net +https://lists.sourceforge.net/lists/listinfo/u-boot-users + diff --git a/recipes/u-boot/files/u-boot-20061030-ext2load_hex.patch b/recipes/u-boot/files/u-boot-20061030-ext2load_hex.patch new file mode 100644 index 0000000000..3cecb7485d --- /dev/null +++ b/recipes/u-boot/files/u-boot-20061030-ext2load_hex.patch @@ -0,0 +1,14 @@ +This patch adds the hex-printing of the file size read by 'ext2load' +Index: u-boot.git/common/cmd_ext2.c +=================================================================== +--- u-boot.git.orig/common/cmd_ext2.c 2007-01-02 18:26:17.000000000 +0100 ++++ u-boot.git/common/cmd_ext2.c 2007-01-02 18:26:27.000000000 +0100 +@@ -279,7 +279,7 @@ + /* Loading ok, update default load address */ + load_addr = addr; + +- printf ("\n%ld bytes read\n", filelen); ++ printf ("\n%ld (0x%lx) bytes read\n", filelen, filelen); + sprintf(buf, "%lX", filelen); + setenv("filesize", buf); + diff --git a/recipes/u-boot/files/uboot-20070311-tools_makefile_ln_sf.patch b/recipes/u-boot/files/uboot-20070311-tools_makefile_ln_sf.patch new file mode 100644 index 0000000000..eca50615ad --- /dev/null +++ b/recipes/u-boot/files/uboot-20070311-tools_makefile_ln_sf.patch @@ -0,0 +1,26 @@ +Index: git/tools/Makefile +=================================================================== +--- git.orig/tools/Makefile 2008-03-03 13:32:32.000000000 +0800 ++++ git/tools/Makefile 2008-03-03 13:40:23.000000000 +0800 +@@ -208,18 +208,18 @@ + + $(obj)environment.c: + @rm -f $(obj)environment.c +- ln -s $(src)../common/environment.c $(obj)environment.c ++ ln -sf $(src)../common/environment.c $(obj)environment.c + + $(obj)environment.o: $(obj)environment.c + $(CC) -g $(HOST_ENVIRO_CFLAGS) $(CPPFLAGS) -c -o $@ $< + + $(obj)crc32.c: + @rm -f $(obj)crc32.c +- ln -s $(src)../lib_generic/crc32.c $(obj)crc32.c ++ ln -sf $(src)../lib_generic/crc32.c $(obj)crc32.c + + $(obj)sha1.c: + @rm -f $(obj)sha1.c +- ln -s $(src)../lib_generic/sha1.c $(obj)sha1.c ++ ln -sf $(src)../lib_generic/sha1.c $(obj)sha1.c + + $(LOGO_H): $(obj)bmp_logo $(LOGO_BMP) + $(obj)./bmp_logo $(LOGO_BMP) >$@ diff --git a/recipes/u-boot/files/uboot-eabi-fix-HACK.patch b/recipes/u-boot/files/uboot-eabi-fix-HACK.patch new file mode 100644 index 0000000000..65b212917d --- /dev/null +++ b/recipes/u-boot/files/uboot-eabi-fix-HACK.patch @@ -0,0 +1,197 @@ +Index: git/lib_arm/div0.c +=================================================================== +--- git.orig/lib_arm/div0.c ++++ git/lib_arm/div0.c +@@ -22,9 +22,3 @@ + */ + + /* Replacement (=dummy) for GNU/Linux division-by zero handler */ +-void __div0 (void) +-{ +- extern void hang (void); +- +- hang(); +-} +Index: git/board/neo1973/common/bootmenu.c +=================================================================== +--- git.orig/board/neo1973/common/bootmenu.c ++++ git/board/neo1973/common/bootmenu.c +@@ -118,3 +118,14 @@ void neo1973_bootmenu(void) + bootmenu_add("Factory reset", factory_reset, NULL); + bootmenu(); + } ++ ++void raise() ++{ ++ serial_printf( "*** something's wrong... please reset ***\n" ); ++} ++ ++void abort() ++{ ++ serial_printf( "*** something's wrong... please reset ***\n" ); ++} ++ +Index: git/board/neo1973/gta01/u-boot.lds +=================================================================== +--- git.orig/board/neo1973/gta01/u-boot.lds ++++ git/board/neo1973/gta01/u-boot.lds +@@ -39,6 +39,10 @@ SECTIONS + + . = ALIGN(4); + .rodata : { *(.rodata) } ++ .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } ++ __exidx_start = .; ++ .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } ++ __exidx_end = .; + + . = ALIGN(4); + .data : { *(.data) } +Index: git/board/neo1973/gta02/u-boot.lds +=================================================================== +--- git.orig/board/neo1973/gta02/u-boot.lds ++++ git/board/neo1973/gta02/u-boot.lds +@@ -39,6 +39,10 @@ SECTIONS + + . = ALIGN(4); + .rodata : { *(.rodata) } ++ .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } ++ __exidx_start = .; ++ .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } ++ __exidx_end = .; + + . = ALIGN(4); + .data : { *(.data) } +Index: git/board/neo1973/common/lowlevel_foo.lds +=================================================================== +--- git.orig/board/neo1973/common/lowlevel_foo.lds ++++ git/board/neo1973/common/lowlevel_foo.lds +@@ -37,6 +37,10 @@ SECTIONS + + . = ALIGN(4); + .rodata : { *(.rodata) } ++ .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } ++ __exidx_start = .; ++ .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } ++ __exidx_end = .; + + . = ALIGN(4); + .data : { *(.data) } +Index: git/board/hxd8/hxd8.c +=================================================================== +--- git.orig/board/hxd8/hxd8.c ++++ git/board/hxd8/hxd8.c +@@ -187,3 +187,6 @@ unsigned int dynpart_size[] = { + char *dynpart_names[] = { + "u-boot", "u-boot_env", "kernel", "splash", "rootfs", NULL }; + ++void raise() {} ++ ++void abort() {} +Index: git/board/hxd8/u-boot.lds +=================================================================== +--- git.orig/board/hxd8/u-boot.lds ++++ git/board/hxd8/u-boot.lds +@@ -39,6 +39,10 @@ SECTIONS + + . = ALIGN(4); + .rodata : { *(.rodata) } ++ .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } ++ __exidx_start = .; ++ .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } ++ __exidx_end = .; + + . = ALIGN(4); + .data : { *(.data) } +Index: git/board/hxd8/lowlevel_foo.lds +=================================================================== +--- git.orig/board/hxd8/lowlevel_foo.lds ++++ git/board/hxd8/lowlevel_foo.lds +@@ -37,6 +37,10 @@ SECTIONS + + . = ALIGN(4); + .rodata : { *(.rodata) } ++ .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } ++ __exidx_start = .; ++ .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } ++ __exidx_end = .; + + . = ALIGN(4); + .data : { *(.data) } +Index: git/board/qt2410/qt2410.c +=================================================================== +--- git.orig/board/qt2410/qt2410.c ++++ git/board/qt2410/qt2410.c +@@ -156,3 +156,7 @@ unsigned int dynpart_size[] = { + char *dynpart_names[] = { + "u-boot", "u-boot_env", "kernel", "splash", "rootfs", NULL }; + ++void raise() {} ++ ++void abort() {} ++ +Index: git/board/qt2410/u-boot.lds +=================================================================== +--- git.orig/board/qt2410/u-boot.lds ++++ git/board/qt2410/u-boot.lds +@@ -39,6 +39,10 @@ SECTIONS + + . = ALIGN(4); + .rodata : { *(.rodata) } ++ .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } ++ __exidx_start = .; ++ .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } ++ __exidx_end = .; + + . = ALIGN(4); + .data : { *(.data) } +Index: git/Makefile +=================================================================== +--- git.orig/Makefile ++++ git/Makefile +@@ -225,7 +225,7 @@ LIBS := $(addprefix $(obj),$(LIBS)) + .PHONY : $(LIBS) + + # Add GCC lib +-PLATFORM_LIBS += -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc ++PLATFORM_LIBS += -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc -lgcc_eh + + # The "tools" are needed early, so put this first + # Don't include stuff already done in $(LIBS) +Index: git/board/smdk2440/smdk2440.c +=================================================================== +--- git.orig/board/smdk2440/smdk2440.c ++++ git/board/smdk2440/smdk2440.c +@@ -150,3 +150,6 @@ char *dynpart_names[] = { + "u-boot", "u-boot_env", "kernel", "splash", "rootfs", NULL }; + + ++void raise() {} ++void abort() {} ++ +Index: git/board/smdk2440/u-boot.lds +=================================================================== +--- git.orig/board/smdk2440/u-boot.lds ++++ git/board/smdk2440/u-boot.lds +@@ -39,6 +39,10 @@ SECTIONS + + . = ALIGN(4); + .rodata : { *(.rodata) } ++ .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } ++ __exidx_start = .; ++ .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } ++ __exidx_end = .; + + . = ALIGN(4); + .data : { *(.data) } +Index: git/board/neo1973/gta02/gta02.c +=================================================================== +--- git.orig/board/neo1973/gta02/gta02.c ++++ git/board/neo1973/gta02/gta02.c +@@ -321,3 +321,7 @@ int neo1973_set_charge_mode(enum neo1973 + /* FIXME */ + return 0; + } ++ ++void raise() {} ++void abort() {} ++ |