Import u-boot_2012.04.01-2.debian.tar.gz
authorClint Adams <clint@debian.org>
Fri, 1 Jun 2012 01:04:49 +0000 (01:04 +0000)
committerClint Adams <clint@debian.org>
Fri, 1 Jun 2012 01:04:49 +0000 (01:04 +0000)
[dgit import tarball u-boot 2012.04.01-2 u-boot_2012.04.01-2.debian.tar.gz]

33 files changed:
README.Debian [new file with mode: 0644]
changelog [new file with mode: 0644]
control [new file with mode: 0644]
copyright [new file with mode: 0644]
env-configs/efikamx.config [new file with mode: 0644]
env-configs/guruplug.config [new file with mode: 0644]
env-configs/kurobox_pro.config [new file with mode: 0644]
env-configs/linkstation-mini.config [new file with mode: 0644]
env-configs/linkstation_pro_live.config [new file with mode: 0644]
env-configs/lsmipsel.config [new file with mode: 0644]
env-configs/lsppchg.config [new file with mode: 0644]
env-configs/openmoko_gta01.config [new file with mode: 0644]
env-configs/openmoko_gta02.config [new file with mode: 0644]
env-configs/qnap_ts101.config [new file with mode: 0644]
env-configs/qnap_ts109-209.config [new file with mode: 0644]
env-configs/qnap_ts119-219.config [new file with mode: 0644]
env-configs/sheevaplug.config [new file with mode: 0644]
lintian.overrides [new file with mode: 0644]
manpages/fw_printenv.8 [new file with mode: 0644]
manpages/fw_setenv.8 [new file with mode: 0644]
patches/ARM-OMAP3-Revamp-IGEP-default-configuration.diff [new file with mode: 0644]
patches/hurd.diff [new file with mode: 0644]
patches/kerma-sheevaplug-mvsata.diff [new file with mode: 0644]
patches/kerma-sheevaplug-mvsdio.diff [new file with mode: 0644]
patches/mipsel-native-endianness.diff [new file with mode: 0644]
patches/no-error-on-set-but-unused-variables.diff [new file with mode: 0644]
patches/openrd-mmc.diff [new file with mode: 0644]
patches/series [new file with mode: 0644]
patches/strip-env-tools.diff [new file with mode: 0644]
rules [new file with mode: 0755]
source/format [new file with mode: 0644]
targets [new file with mode: 0644]
watch [new file with mode: 0644]

diff --git a/README.Debian b/README.Debian
new file mode 100644 (file)
index 0000000..93f81f7
--- /dev/null
@@ -0,0 +1,24 @@
+== Installation ==
+
+At this point, you must install U-Boot to flash yourself.
+
+Some examples using mtd-utils:
+
+SheevaPlug:
+
+ sudo flash_eraseall /dev/mtd0
+ sudo nandwrite -p /dev/mtd0 /usr/lib/u-boot/sheevaplug/u-boot.kwb
+
+GuruPlug:
+
+ sudo flash_eraseall /dev/mtd0
+ sudo nandwrite -p /dev/mtd0 /usr/lib/u-boot/guruplug/u-boot.kwb
+
+MX53LOCO:
+
+ sudo dd bs=1024 if=u-boot.imx of=/dev/sdX seek=1
+
+== U-Boot environment tools ==
+
+fw_printenv / fw_setenv read /etc/fw_env.config for configuration.
+
diff --git a/changelog b/changelog
new file mode 100644 (file)
index 0000000..7ccb575
--- /dev/null
+++ b/changelog
@@ -0,0 +1,411 @@
+u-boot (2012.04.01-2) unstable; urgency=low
+
+  * Remove code duplication in kerma-sheevaplug-mvsdio.diff.
+    closes: #674230.
+
+ -- Clint Adams <clint@debian.org>  Thu, 31 May 2012 21:04:49 -0400
+
+u-boot (2012.04.01-1) unstable; urgency=low
+
+  * New upstream version.
+    - Update mipsel-native-endianness.diff.
+    - Update no-error-on-set-but-unused-variables.diff (partially merged).
+    - Drop kirkwood_spi-irq_mask.diff (merged).
+    - Drop kirkwood-disable-l2c.diff (merged).
+
+ -- Clint Adams <clint@debian.org>  Tue, 01 May 2012 18:07:19 -0400
+
+u-boot (2011.12-3) unstable; urgency=low
+
+  [ Jonathan Nieder ]
+  * kirkwood: disable L2 cache before Linux boot; thanks to Ian Campbell.
+    closes: #658904
+
+  [ Loïc Minier ]
+  * Add patch to strip env tools; sent to upstream mailing-list.
+
+ -- Loïc Minier <lool@debian.org>  Sun, 11 Mar 2012 16:12:50 +0100
+
+u-boot (2011.12-2) unstable; urgency=low
+
+  [ Loïc Minier ]
+  * Build u-boot.imx for efikasb on armhf
+
+  [ Clint Adams ]
+  * Patch from Ian Campbell to fix Dreamplug breakage.  closes: #655102.
+
+ -- Clint Adams <clint@debian.org>  Sun, 08 Jan 2012 15:11:03 -0500
+
+u-boot (2011.12-1) unstable; urgency=low
+
+  * New upstream version.
+    - Drop build-timestamp_autogenerated.h-without-config.patch (merged).
+    - Drop ublimage-NAND-block-size-isn-t-set-at-build-time.patch (merged).
+    - Update kerma-sheevaplug-mvsdio.diff
+    - Update mipsel-native-endianness.diff
+    - Drop dreamplug-v8.patch (merged).
+
+ -- Clint Adams <clint@debian.org>  Mon, 02 Jan 2012 17:49:39 -0500
+
+u-boot (2011.09-2) unstable; urgency=low
+
+  * Patch from Pino Toscano <pino@debian.org> to build on the Hurd.
+    closes: #648295.
+  * Drop gr_xc3s_1500 target.
+  * Add build-arch and build-indep targets to debian/rules.
+
+ -- Clint Adams <clint@debian.org>  Tue, 15 Nov 2011 23:53:01 -0500
+
+u-boot (2011.09-1) unstable; urgency=low
+
+  [ Hector Oron ]
+  * Enable MX53LOCO platform.
+  * Update lintian overrides.
+
+  [ Loïc Minier ]
+  * Fix FTBFS on amd64 and allow `make tools` to succeed without
+    config.
+
+  [ Clint Adams ]
+  * New upstream version.
+    - Update kerma-sheevaplug-mvsdio.diff.
+    - Drop panda-default-console.diff (refactored).
+    - Replace dreamplug patches with Jason's v8.
+  * Add Buffalo Linkstation Mini env config from Benjamin Cama.
+
+ -- Clint Adams <clint@debian.org>  Fri, 30 Sep 2011 21:22:23 -0400
+
+u-boot (2011.06-4) unstable; urgency=low
+
+  * Increase the USB non-bulk timeout by an order of magnitude.
+    May fix #635774.
+
+ -- Clint Adams <clint@debian.org>  Sat, 06 Aug 2011 13:42:52 -0400
+
+u-boot (2011.06-3) unstable; urgency=low
+
+  * Add DreamPlug support.
+
+ -- Clint Adams <clint@debian.org>  Sun, 24 Jul 2011 09:35:32 -0400
+
+u-boot (2011.06-2) unstable; urgency=low
+
+  * Use -Wno-error=unused-but-set-variable on i386.
+
+ -- Clint Adams <clint@debian.org>  Sat, 02 Jul 2011 22:14:44 -0400
+
+u-boot (2011.06-1) unstable; urgency=low
+
+  * New upstream version.
+  * Fix i386 and mipsel builds.
+
+ -- Clint Adams <clint@debian.org>  Sat, 02 Jul 2011 19:25:28 -0400
+
+u-boot (2011.06~rc3-1) unstable; urgency=low
+
+  * New upstream version.
+
+ -- Clint Adams <clint@debian.org>  Sat, 02 Jul 2011 15:50:46 -0400
+
+u-boot (2011.06~rc2-2) unstable; urgency=low
+
+  * Fix mipsel endianness problem again.
+  * Try building gr_xc3s_1500 on sparc.
+
+ -- Clint Adams <clint@debian.org>  Sat, 18 Jun 2011 10:13:53 -0400
+
+u-boot (2011.06~rc2-1) unstable; urgency=low
+
+  * New upstream version.
+  * Fix tools config selection.
+
+ -- Clint Adams <clint@debian.org>  Tue, 14 Jun 2011 20:53:07 -0400
+
+u-boot (2011.06~rc1-1) unstable; urgency=low
+
+  * New upstream version.
+    - Update mipsel-native-endianness.diff
+    - Drop Drop-config.h-include-in-tools-imximage.h.diff (merged).
+    - Drop openrd-client-and-ultimate.diff (merged).
+    - Update openrd-mmc.diff (formerly openrd-mmc-mtd-fat.diff).
+    - Drop eNET-monitor_flash_len.diff (merged).
+    - Update snapshot.commit to 2011.06-rc1.
+    - Use the first target for each arch to build the tools, or
+      fake it on the other architectures.
+  * Only build efikamx image on armhf.
+
+ -- Clint Adams <clint@debian.org>  Sat, 21 May 2011 11:04:30 -0400
+
+u-boot (2011.03-6) unstable; urgency=low
+
+  * Bump to Standards-Version 3.9.2.
+  * Tweak the u-boot-tools description.
+  * Drop igep0020, omap3_beagle, and omap4_panda targets from
+    armel; they are available on armhf.
+
+ -- Clint Adams <clint@debian.org>  Tue, 26 Apr 2011 16:11:24 -0400
+
+u-boot (2011.03-5) unstable; urgency=low
+
+  [ Sebastian Reichel ]
+  * Add Pandaboard target.  closes: #624123
+  * New patch to change default console on Pandaboard.
+
+ -- Clint Adams <clint@debian.org>  Mon, 25 Apr 2011 15:36:16 -0400
+
+u-boot (2011.03-4) unstable; urgency=low
+
+  * Enable FAT, SD/MMC, MTD, JFFS, UBIFS support on OpenRD boards.
+
+ -- Clint Adams <clint@debian.org>  Wed, 13 Apr 2011 18:05:36 -0400
+
+u-boot (2011.03-3) unstable; urgency=low
+
+  * Actually pass the right arch_number for OpenRD-Ultimate.
+
+ -- Clint Adams <clint@debian.org>  Tue, 12 Apr 2011 14:28:20 -0400
+
+u-boot (2011.03-2) unstable; urgency=low
+
+  * Fix i386 FTBFS with eNET-monitor_flash_len.diff
+  * Add patch for OpenRD-Client and OpenRD-Ultimate.
+  * Drop openrd_base target and add openrd_ultimate target.
+
+ -- Clint Adams <clint@debian.org>  Tue, 05 Apr 2011 15:56:43 -0400
+
+u-boot (2011.03-1) unstable; urgency=low
+
+  [ Loïc Minier ]
+  * Only try to build env tools when Linux MTD headers are present.
+    closes: #619673.
+
+  [ Clint Adams ]
+  * New upstream version.
+    - Drop fix-definition-of-global_data-struct.diff (now upstream).
+    - Drop EfikaMX-switch-to-MACH_TYPE_MX51_EFIKAMX.diff (upstream now).
+    - Drop sh-sh7785lcr-Fix-out-of-tree-building.diff (upstream now).
+    - Drop MIPS-dbau1x00-Remove-unused-flash-driver-stub.diff (upstream now).
+    - Drop x86-Align-config.mk-and-linker-scripts-with-other-ar.diff
+      (upstream now).
+    - Update snapshot.commit to 2011.03
+
+ -- Clint Adams <clint@debian.org>  Fri, 01 Apr 2011 10:30:46 -0400
+
+u-boot (2011.03~rc1-4) experimental; urgency=low
+
+  * Add patch x86-Align-config.mk-and-linker-scripts-with-other-ar.
+    From upstream mailing-list; fixes x86 build (eNET).
+
+ -- Loïc Minier <lool@debian.org>  Wed, 09 Feb 2011 14:51:01 +0100
+
+u-boot (2011.03~rc1-3) experimental; urgency=low
+
+  * Add debian/source/local-options
+    - unapply-patches: avoids committing patched tree after a build
+    - abort-on-upstream-changes: avoids creating a debian-changes-* patch
+      when building from a dirty tree
+  * Add patch MIPS-dbau1x00-Remove-unused-flash-driver-stub,
+    from u-boot-mipsel.git 17a990b55008fd79636e4880d9d10b7172ca87ce and also
+    sent to the upstream mailing-list; fixes build of dbau1x00 board by
+    removing board/dbau1x00/flash.c entirely, and hence fixes the build of
+    u-boot on mipsel.
+
+ -- Loïc Minier <lool@debian.org>  Tue, 08 Feb 2011 16:49:05 +0100
+
+u-boot (2011.03~rc1-2) experimental; urgency=low
+
+  * New patch sh-sh7785lcr-Fix-out-of-tree-building; from upstream
+    e72f46787f44c1104a8df18511ab230b6072a1f0; fixes Debian sh4 build; thanks
+    Nobuhiro Iwamatsu; closes: #611873.
+
+ -- Loïc Minier <lool@debian.org>  Mon, 07 Feb 2011 17:20:16 +0100
+
+u-boot (2011.03~rc1-1) experimental; urgency=low
+
+  * dpkg-shlibdeps usr/bin/* rather than just mkimage.
+  * uboot-mkimage's Section is utils.
+  * Allow overriding CROSS_COMPILE.
+  * New upstream release candidate.
+    - Merge commit v2011.03-rc1
+    - Update snapshot.commit to 2011.03-rc1
+  * Add EfikaMX support.
+    - Add patch EfikaMX-switch-to-MACH_TYPE_MX51_EFIKAMX from the upstream
+      mailing-list; fixes build on EfikaMX (EfikaMX: switch to
+      MACH_TYPE_MX51_EFIKAMX)
+    - Add patch Drop-config.h-include-in-tools-imximage.h from the upstream
+      mailing-list; fixes tools-all build of imximage.c.
+    - Build u-boot.imx for efikamx on armel.
+  * Refresh patch kerma-sheevaplug-mvsdio to fix fuzz.
+
+ -- Loïc Minier <lool@debian.org>  Thu, 03 Feb 2011 13:13:14 +0100
+
+u-boot (2010.12-2) unstable; urgency=low
+
+  * Avoid calling dpkg-architecture if DEB_HOST_ARCH is set.
+  * Misc refactoring of debian/rules.
+    - Split per architecture list of platform and targets into
+      debian/targets.
+    - Actually use INSTALL_FILE/INSTALL_DIR/INSTALL_PROGRAM.
+    - Add support for cross-builds; these will currently lack tools.
+    - Build board-specific u-boot files in a separate build dir from the
+      generic tools
+  * Fix handling of -Wl,foo LDFLAGS; the upstream build passes LDFLAGS
+    directly to ld instead of calling gcc for linking; so instead of passing
+    -Wl,foo in LDFLAGS as in automake builds, one should set LDFLAGS to foo
+    directly; add a snippet to strip -Wl, from LDFLAGS; alternatively, we
+    could do as in other special packages like the kernel and simply unset
+    LDFLAGS entirely; closes: #607613.
+  * Install and compress upstream mkimage manpage; based on a patch by
+    Marcin Juszkiewicz.
+  * Add a dummy uboot-mkimage package for upgrades from squeeze; based on a
+    patch by Marcin Juszkiewicz; closes: #607618.
+  * Add new patch, fix-definition-of-global_data-struct, from the upstream
+    x86 maintainer; fixes build of eNET board which breaks u-boot's build on
+    i386; closes: #608801.
+  * Workaround an upstream bug in distclean by removing include/asm/proc and
+    /arch explicitly for now; patch was sent upstream.
+  * Don't repeat Section: in binary package.
+  * Add myself to Uploaders.
+  * Split tools in u-boot-tools package.
+  * Drop board-specific tools; these are too dangerous; only ship mkimage for
+    now.
+  * Add igep0020 and omap3_beagle builds on armel
+  * Update snapshot.commit to the 2010.12 release contents; this avoids a
+    pointless diff with the tarball.
+
+ -- Loïc Minier <lool@debian.org>  Mon, 17 Jan 2011 22:43:41 +0100
+
+u-boot (2010.12-1) unstable; urgency=low
+
+  * New upstream version.
+  * Install more tools in preparation for splitting off a
+    u-boot-tools binary package.
+
+ -- Clint Adams <clint@gnu.org>  Tue, 28 Dec 2010 17:03:44 -0500
+
+u-boot (2010.12~rc3-1) unstable; urgency=low
+
+  * New upstream release candidate.
+  * Add dockstar target.
+
+ -- Clint Adams <clint@gnu.org>  Sun, 19 Dec 2010 09:45:42 -0500
+
+u-boot (2010.12~rc2-1) unstable; urgency=low
+
+  * New upstream release candidate.
+  * Add openrd_base target.
+
+ -- Clint Adams <clint@gnu.org>  Sat, 04 Dec 2010 15:32:38 -0500
+
+u-boot (2010.09-2) unstable; urgency=low
+
+  * Enable ext2 commands on GuruPlug.
+  * Ship ELF files (for loading into RAM with OpenOCD).
+
+ -- Clint Adams <clint@gnu.org>  Sat, 20 Nov 2010 18:20:40 -0500
+
+u-boot (2010.09-1) unstable; urgency=low
+
+  * New upstream release.
+
+ -- Clint Adams <schizo@debian.org>  Wed, 29 Sep 2010 00:06:25 -0400
+
+u-boot (2010.09~rc2-1) unstable; urgency=low
+
+  * New upstrem release candidate.
+
+ -- Clint Adams <schizo@debian.org>  Sun, 19 Sep 2010 14:20:52 -0400
+
+u-boot (2010.09~rc1-2) unstable; urgency=low
+
+  * Add patch from Gérald Kerma to add Sheevaplug mvsata support.
+  * Add patch from Gérald Kerma to add Sheevaplug mvsdio support.
+
+ -- Clint Adams <schizo@debian.org>  Sun, 12 Sep 2010 11:48:22 -0400
+
+u-boot (2010.09~rc1-1) unstable; urgency=low
+
+  * New upstream release candidate.
+    - Drop guruplug-miiphy_reset.diff.
+    - Update mipsel-native-endianness.diff.
+    - Drop sh4-native-compile.diff.
+  * Bump to Standards-Version 3.9.1.
+
+ -- Clint Adams <schizo@debian.org>  Sat, 11 Sep 2010 00:43:04 -0400
+
+u-boot (2010.06-1) unstable; urgency=low
+
+  * New upstream version.
+
+ -- Clint Adams <schizo@debian.org>  Sat, 03 Jul 2010 13:49:46 -0400
+
+u-boot (2010.06~rc3-1) unstable; urgency=low
+
+  * New upstream version.
+  * Fix sh4-native-compile.diff to not break sh64, thanks to Paul
+    Mundt.
+  * Ship mkimage, conflict/replace uboot-mkimage, build on all
+    architectures.
+
+ -- Clint Adams <schizo@debian.org>  Fri, 25 Jun 2010 14:49:06 -0400
+
+u-boot (2010.06~rc2-1) unstable; urgency=medium
+
+  * Add sh4-native-compile.diff from Aurelien Jarno.  closes: #586026.
+  * New upstream version.
+    - Drop marvell-machtypes.diff.
+
+ -- Clint Adams <schizo@debian.org>  Tue, 15 Jun 2010 21:37:26 -0400
+
+u-boot (2010.06~rc1-6) unstable; urgency=medium
+
+  * Add guruplug-miiphy_reset.diff.
+  * Clean between targets.  closes: #585570.
+
+ -- Clint Adams <schizo@debian.org>  Fri, 11 Jun 2010 21:57:31 -0400
+
+u-boot (2010.06~rc1-5) unstable; urgency=low
+
+  * Replace mipsel-native-endianness.diff with patch adapted
+    from a 2008 mailing list posting by Shinya Kuribayashi.
+
+ -- Clint Adams <schizo@debian.org>  Fri, 04 Jun 2010 20:08:27 -0400
+
+u-boot (2010.06~rc1-4) unstable; urgency=low
+
+  * Add r2dplus target for sh4.
+  * mipsel-native-endianness.diff: don't force endianness on mips/mipsel
+
+ -- Clint Adams <schizo@debian.org>  Thu, 03 Jun 2010 19:32:50 -0400
+
+u-boot (2010.06~rc1-3) unstable; urgency=low
+
+  * Fix mipsel typo.
+  * Apply patch from Nobuhiro Iwamatsu to change sh4 target board
+    from espt to sh7785lcr_32bit.  closes: #584192.
+
+ -- Clint Adams <schizo@debian.org>  Wed, 02 Jun 2010 08:25:04 -0400
+
+u-boot (2010.06~rc1-2) unstable; urgency=low
+
+  * Produce u-boot.bin on i386.
+  * Switch mipsel target to AMD DBAu1100.
+  * Add marvell-machtypes.diff.
+
+ -- Clint Adams <schizo@debian.org>  Mon, 31 May 2010 22:09:29 -0400
+
+u-boot (2010.06~rc1-1) unstable; urgency=low
+
+  * Add Vcs-Git and Vcs-Browser headers.
+  * Add GuruPlug target (armel).
+  * Switch mipsel target to TB0229.
+  * Add watch file.
+  * Update README.Debian for SheevaPlug and GuruPlug.
+
+ -- Clint Adams <schizo@debian.org>  Mon, 31 May 2010 19:29:40 -0400
+
+u-boot (2010.03-1) unstable; urgency=low
+
+  * Initial packaging.  closes: #583605.
+
+ -- Clint Adams <schizo@debian.org>  Fri, 28 May 2010 16:20:39 -0400
diff --git a/control b/control
new file mode 100644 (file)
index 0000000..30780bf
--- /dev/null
+++ b/control
@@ -0,0 +1,50 @@
+Source: u-boot
+Section: admin
+Priority: optional
+Maintainer: Clint Adams <clint@debian.org>
+Uploaders: Loïc Minier <lool@debian.org>
+Standards-Version: 3.9.2
+Homepage: http://www.denx.de/wiki/U-Boot/
+Vcs-Git: git://git.debian.org/collab-maint/u-boot.git
+Vcs-Browser: http://git.debian.org/?p=collab-maint/u-boot.git;a=summary
+
+Package: u-boot
+Architecture: any
+Description: A boot loader for embedded systems
+ Das U-Boot is a cross-platform bootloader for embedded systems,
+ used as the default boot loader by several board vendors.  It is
+ intended to be easy to port and to debug, and runs on many
+ supported architectures, including PPC, ARM, MIPS, x86, m68k,
+ NIOS, and Microblaze.
+
+Package: u-boot-tools
+Architecture: any
+Depends: ${shlibs:Depends}
+Breaks: uboot-envtools (<< 20081215-3~),
+        uboot-mkimage (<= 0.4build1),
+        u-boot (<< 2010.12-2)
+Replaces: uboot-envtools (<< 20081215-3~),
+          uboot-mkimage (<= 0.4build1),
+          u-boot (<< 2010.12-2)
+Description: companion tools for Das U-Boot bootloader
+ This package includes the mkimage program, which allows generation of U-Boot
+ images in various formats, and the fw_printenv and fw_setenv programs to read
+ and modify U-Boot's environment.
+
+Package: uboot-envtools
+Section: utils
+Architecture: all
+Depends: u-boot-tools
+Description: read/modify the environment for the U-Boot boot loader (transitional package)
+ Package to ease upgrading from uboot-envtools to u-boot-tools.
+ .
+ This package may safely be removed.
+
+Package: uboot-mkimage
+Section: utils
+Architecture: all
+Depends: u-boot-tools
+Description: generate kernel image for U-Boot (transitional package)
+ Package to ease upgrading from uboot-mkimage to u-boot-tools.
+ .
+ This package may safely be removed.
diff --git a/copyright b/copyright
new file mode 100644 (file)
index 0000000..1195aea
--- /dev/null
+++ b/copyright
@@ -0,0 +1,732 @@
+This is the Debian prepackaged version of Das U-Boot
+with lots of features.
+
+This package was put together by Clint Adams <schizo@debian.org>
+with sources obtained from:
+  ftp://ftp.denx.de/pub/u-boot/
+
+u-boot took over some packaging bits from uboot-mkimage which was copyright
+Joey Hess <joeyh@debian.org> and Marc Singer <elf@debian.org> and from
+uboot-envtools which was copyright Per Andersson <avtobiff@gmail.com>.
+
+The following copyright and license apply to this software:
+
+Copyright © 2000-2009 Wolfgang Denk, DENX Software Engineering, wd@denx.de.
+
+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.
+
+The full text of the GNU GPL may be found on your Debian system
+in /usr/share/common-licenses.
+
+
+Some of the files distributed in the source package are
+(C) Copyright 2009 Industrie Dial Face S.p.A.
+Copyright (C) Motorola, 2003.
+Copyright (C) 1999 David A. Hinds.
+Copyright (c) Marc A. Viredaz, 1998
+Copyright (c) 2003 Josef Baumgartner
+Copyright (c) 2000 Broadcom
+Copyright (c) 2001 Broadcom
+Copyright (C) 1998,1999 Cygnus Solutions
+Copyright 1996, 97, 99, 2002, 03 Ralf Baechle
+(C)Copyright 1997-1998 DAVICOM Semiconductor,Inc.
+Copyright 1997-2002 ELTEC Elektronik AG
+(C) Copyright 1999, by Curt McDowell, 08-06-99, Broadcom Corp.
+(C) Copyright 1999 Gregory P. Smith
+(C) Copyright 1999, Greg Ungerer (gerg@snapgear.com)
+(C) Copyright 1999 Johannes Erdfelt
+(C) Copyright 1999 Linus Torvalds
+(C) Copyright 1999 Randy Dunlap
+(C) Copyright 1999 Roman Weissgaerber <weissg@vienna.at>
+(C) Copyright 1999 Silicon Graphics, Inc.
+(C) Copyright 2000-2001 David Brownell <dbrownell@users.sourceforge.net>
+(C) Copyright 2000-2002 David Brownell
+(C) Copyright 2000, Lineo Inc. (www.lineo.com)
+(C) Copyright 2000 Sysgo Real-Time Solutions, GmbH <www.elinos.com>
+(C) Copyright 2001 Denis Peter, MPL AG Switzerland
+(C) Copyright 2001 ELTEC Elektronik AG
+(C) Copyright 2001, James Dougherty, 07/18/01, Broadcom Corp.
+(C) Copyright 2001, Stuart Hughes, Lineo Inc, stuarth@lineo.com
+(C) Copyright 2001 Sysgo Real-Time Solutions, GmbH <www.elinos.com>
+(C) Copyright 2002, 2003 Motorola Inc.
+(c) Copyright 2002-2004 Xilinx Inc.
+(C) Copyright 2002 Denis Peter, MPL AG Switzerland
+(C) Copyright 2002 ELTEC Elektronik AG
+(C) Copyright 2002 Gary Jennejohn, DENX Software Engineering, <garyj@denx.de>
+(C) Copyright 2002 Jun Gu <jung@artesyncp.com>
+(C) Copyright 2002,Motorola Inc.
+(C) Copyright 2002 Scott McNutt <smcnutt@artesyncp.com>
+(C) Copyright 2002 SIXNET, dge@sixnetio.com.
+(C) Copyright 2002 Wolfgang Grandegger <wg@denx.de>
+(c) Copyright 2002 Xilinx Inc.
+(C) Copyright 2003-2004 Arabella Software Ltd.
+(C) Copyright 2003-2005 Arabella Software Ltd.
+(C) Copyright 2003, ARM Ltd.
+(C) Copyright 2003, Dan Malek, Embedded Edge, LLC.  <dan@embeddededge.com>
+(C) Copyright 2003 Embedded Edge, LLC
+(C) Copyright 2003 Intracom S.A.
+(C) Copyright 2003 Intrinsyc Software
+(C) Copyright 2003 Josef Baumgartner <josef.baumgartner@telex.de>
+(C) Copyright 2003, Li-Pro.Net <www.li-pro.net>
+(C) Copyright 2003  Martin Winistoerfer, martinwinistoerfer@gmx.ch.
+(C) Copyright 2003 Motorola Inc.
+(C) Copyright 2003 Pengutronix e.K.
+(C) Copyright 2003 Picture Elements, Inc.
+(C) Copyright 2003, Psyent Corporation <www.psyent.com>
+(C) Copyright 2003 Sandburst Corporation
+(C) Copyright 2003 Stefan Roese, stefan.roese@esd-electronics.com
+(C) Copyright 2003 Sysgo Real-Time Solutions, AG <www.elinos.com>
+(C) Copyright 2003;  Tundra Semiconductor Corp.
+(C) Copyright 2003 Wolfgang Grandegger <wg@denx.de>
+(C) Copyright 2004-2005, Greg Ungerer <greg.ungerer@opengear.com>
+(C) Copyright 2004-2006 Atmel Corporation
+(C) Copyright 2004-2008 Freescale Semiconductor, Inc.
+(C) Copyright 2004-2008 Texas Instruments, <www.ti.com>
+(C) Copyright 2004 Ales Jindra <jindra@2n.cz>
+(C) Copyright 2004, ARM Ltd.
+(C) Copyright 2004 Atmark Techno, Inc.
+(C) Copyright 2004 by FS Forth-Systeme GmbH.
+(C) Copyright 2004 eslab.whut.edu.cn
+(C) Copyright 2004, Freescale, Inc
+(C) Copyright 2004 Freescale Semiconductor.
+(C) Copyright 2004 Intracom S.A.
+(C) Copyright 2004, Li-Pro.Net <www.li-pro.net>
+(C) Copyright 2004 Paul Reynolds <PaulReynolds@lhsolutions.com>
+(C) Copyright 2004, Psyent Corporation <www.psyent.com>
+(C) Copyright 2004 Sandburst Corporation
+(C) Copyright 2004, Shlomo Kut <skut@vyyo.com>
+(C) Copyright 2004 Tundra Semiconductor Corp.
+(C) Copyright 2004 Wind River Systems Inc <www.windriver.com>.
+(C) Copyright 2005-2007 Netstal Maschinen AG
+(C) Copyright 2005-2008 Netstal Maschinen AG
+(C) Copyright 2005-2008 Samsung Electronics
+(C) Copyright 2005-2009 BuS Elektronik GmbH & Co.KG <esw@bus-elektonik.de>
+(C) Copyright 2005-2009 Netstal Maschinen AG
+(C) Copyright 2005-2009 Samsung Electronics
+(C) Copyright 2005 2N TELEKOMUNIKACE, Ladislav Michl
+(C) Copyright 2005 BuS Elektronik GmbH & Co.KG <esw@bus-elektonik.de>
+(C) Copyright 2005 Embedded Alley Solutions, Inc.
+(C) Copyright 2005 Freescale Semiconductor, Inc.
+(C) Copyright 2005 Ladislav Michl <michl@2n.cz>
+(C) Copyright 2005 Netstal Maschinen AG
+(C) Copyright 2005, Psyent Corporation <www.psyent.com>
+(C) Copyright 2005 REA Elektronik GmbH <www.rea.de>
+(C) Copyright 2005 Rowel Atienza <rowel@diwalabs.com>
+(C) Copyright 2006, 2007 Detlev Zundel, dzu@denx.de
+(C) Copyright 2006-2007 Freescale Semiconductor, Inc.
+(C) Copyright 2006 ATMEL Rousset, Lacressonniere Nicolas
+(C) Copyright 2006 Detlev Zundel, dzu@denx.de
+(C) Copyright 2006 Embedded Artists AB <www.embeddedartists.com>
+(C) Copyright 2006 Eukrea Electromatique <www.eukrea.com>
+(C) Copyright 2006;  Freescale Semiconductor Corp.
+(C) Copyright 2006, Imagos S.a.s <www.imagos.it>
+(C) Copyright 2006 Lab X Technologies <zachary.landau@labxtechnologies.com>
+(C) Copyright 2006 OpenMoko, Inc.
+(C) Copyright 2007-2008 Netstal Maschinen AG
+(C) Copyright 2007,2008 Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
+(C) Copyright 2007-2008 Semihalf
+(C) Copyright 2007-2008 Semihalf, Rafal Jaworowski <raj@semihalf.com>
+(C) Copyright 2007-2009 Michal Simek
+(C) Copyright 2007 by OpenMoko, Inc.
+(C) Copyright 2007 Freescale Semiconductor, Inc.
+(C) Copyright 2007 Gary Jennejohn <garyj@denx.de>
+(C) Copyright 2007 Markus Kappeler <markus.kappeler@objectxp.com>
+(C) Copyright 2007 Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
+(C) Copyright 2007 OpenMoko, Inc.
+(C) Copyright 2007 Pengutronix, Juergen Beisert <j.beisert@pengutronix.de>
+(C) Copyright 2007 Pengutronix, Sascha Hauer <s.hauer@pengutronix.de>
+(C) Copyright 2007 Schindler Lift Inc.
+(C) Copyright 2007 STMicroelectronics, <www.st.com>
+(C) Copyright 2007 Wind River Systems Inc <www.windriver.com>.
+(C) Copyright 2007 Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com>
+(C) Copyright 2008, 2009 Andreas Pfefferle,
+(C) Copyright 2008,2009 Eric Jarrige <eric.jarrige@armadeus.org>
+(C) Copyright 2008-2009 Freescale Semiconductor, Inc.
+(C) Copyright 2008-2009 Stefan Roese <sr@denx.de>, DENX Software Engineering
+(C) Copyright 2008 Applied Micro Circuits Corporation
+(C) Copyright 2008 Armadeus Systems nc
+(C) Copyright 2008 Atmel Corporation
+(C) Copyright 2008 by Harald Welte <laforge@openmoko.org>
+(C) Copyright 2008, Daniel Hellström, daniel@gaisler.com
+(C) Copyright 2008 Dmitry Rakhchev, EmCraft Systems, rda@emcraft.com
+(C) Copyright 2008 Eric Jarrige <eric.jarrige@armadeus.org>
+(C) Copyright 2008, Excito Elektronik i Skåne AB
+(C) Copyright 2008 Freescale Semiconductor
+(C) Copyright 2008 Ilya Yanok, EmCraft Systems, yanok@emcraft.com
+(C) Copyright 2008 Magnus Lilja <lilja.magnus@gmail.com>
+(C) Copyright 2008, Michael Trimarchi <trimarchimichael@yahoo.it>
+(C) Copyright 2008 Michal Simek <monstr@monstr.eu>
+(c) Copyright 2008 Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>
+(c) Copyright 2008 Renesas Solutions Corp.
+(C) Copyright 2008 Semihalf
+(C) Copyright 2008 Sergey Lapin <slapin@ossfans.org>
+(C) Copyright 2008 Stefan Roese <sr@denx.de>, DENX Software Engineering
+(C) Copyright 2008, Texas Instruments, Inc. http://www.ti.com/
+(C) Copyright 2008 Wolfgang Grandegger <wg@denx.de>
+(C) Copyright 2009 Alessandro Rubini <rubini@unipv.it>
+(C) Copyright 2009 Atin Malaviya (atin.malaviya@gmail.com)
+(C) Copyright 2009 CJSC "NII STT", Russia, Smolensk
+(C) Copyright 2009, DAVE Srl <www.dave.eu>
+(C) Copyright 2009 Detlev Zundel,
+(C) Copyright 2009 Faraday Technology
+(C) Copyright 2009 Freescale Semiconductor, Inc.
+(C) Copyright 2009 Ilya Yanok, Emcraft Systems Ltd <yanok@emcraft.com>
+(C) Copyright 2009 Industrie Dial Face S.p.A.
+(C) Copyright 2009 Magnus Lilja <lilja.magnus@gmail.com>
+(C) Copyright 2009 Marco Stornelli <marco.stornelli@gmail.com>
+(C) Copyright 2009 mGine co.
+(C) Copyright 2009 Reinhard Arlt, reinhard.arlt@esd-electronics.com
+(C) Copyright 2009 Samsung Electronics
+(C) Copyright 2009 Semihalf, Grzegorz Bernacki
+(C) Copyright 2009 Stefan Roese <sr@denx.de>
+(C) Copyright 2010, Chris Zhang <chris@seamicro.com>
+(C) Copyright Andreas Gal 1999
+(C) Copyright David Brownell 2000 (kernel hotplug, usb_device_id)
+(C) Copyright Deti Fliegl 1999 (new USB architecture)
+(C) Copyright Gregory P. Smith 1999
+(C) Copyright Johannes Erdfelt 1999-2001
+(C) Copyright Linus Torvalds 1999
+(C) Copyright Motorola, Inc., 2000
+(C) Copyright Randy Dunlap 2000
+(C) Copyright Sheldon Instruments, Inc. 2008
+(C) Copyright Yggdrasil Computing, Inc. 2000
+Copyright 1992, Linus Torvalds.
+Copyright 1994, 1995, 2000 Neil Russell.
+Copyright 1994 - 2000 Neil Russell.
+Copyright 1995, Russell King.
+Copyright 1996 Roman Zippel
+Copyright 1998-2001 by Donald Becker.
+Copyright 1999-2000 D. Jeff Dionne, <jeff@uclinux.org>
+Copyright 1999 Advanced Micro Devices, Inc.
+Copyright 1999 D. Jeff Dionne <jeff@uclinux.org>
+Copyright 2000-2001 Lineo, Inc. D. Jeff Dionne <jeff@lineo.ca>
+Copyright 2000,2001 MontaVista Software Inc.
+Copyright 2000-2002 by Hans Reiser, licensing governed by reiserfs/README
+Copyright 2000 Paolo Scaffardi
+Copyright 2000 Roland Borde
+Copyright 2001-2005, Intel Corporation.
+Copyright © 2001-2007 Red Hat, Inc. and others
+Copyright 2001 Embedded Planet.  All rights reserved.
+Copyright 2001 MontaVista Software Inc.
+Copyright 2002 Arcturus Networks Inc. MaTed <mated@sympatico.ca>
+Copyright 2002 Etinsys Inc.
+Copyright 2002, GALILEO TECHNOLOGY, LTD.                      *
+Copyright 2002 Mind NV
+Copyright 2002 MontaVista Software Inc.
+Copyright 2002 SYSGO Real-Time Solutions GmbH
+Copyright 2003-2004 Jeff Garzik
+Copyright 2003-2004 Red Hat, Inc.  All rights reserved.
+Copyright 2003-2008 Analog Devices Inc.
+Copyright 2003 AMIRIX Systems Inc.
+Copyright 2003 Bas Vermeulen <bas@buyways.nl>,
+Copyright 2003 by FS Forth-Systeme GmbH.
+Copyright 2003 Metrowerks - for Blackfin
+Copyright 2003 Metrowerks/Motorola
+Copyright 2003 Motorola,Inc.
+Copyright 2004-2009 Analog Devices Inc.
+Copyright 2004-2009 Freescale Semiconductor.
+Copyright © 2004  Ferenc Havasi <havasi@inf.u-szeged.hu>,
+Copyright 2004 Karen Spearel
+Copyright 2004 Picture Elements, Inc.
+Copyright 2005 Alessandro Zummo
+Copyright 2005 ETIN SYSTEMS Co.,Ltd.
+Copyright 2005, Seagate Technology LLC
+Copyright 2006,2009-2010 Freescale Semiconductor, Inc.
+Copyright 2006 Applied Micro Circuits Corporation
+Copyright 2006 IBM
+Copyright 2007-2008 Freescale Semiconductor, Inc.
+Copyright 2007,2008 Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
+Copyright 2007,2009 Wind River Systems, Inc. <www.windriver.com>
+Copyright 2007, Embedded Specialties, Inc.
+Copyright 2008-2009 Stefan Roese <sr@denx.de>, DENX Software Engineering
+Copyright 2008-2010 Freescale Semiconductor, Inc.
+Copyright 2008 (C) Bryan O'Donoghue
+Copyright 2008 Extreme Engineering Solutions, Inc.
+Copyright 2008 Matrix Vision GmbH
+Copyright 2008 Mentor Graphics Corporation
+Copyright 2008, Network Appliance Inc.
+Copyright 2008 Qstreams Networks, Inc.
+Copyright 2008 Sascha Hauer, kernel@pengutronix.de
+Copyright 2008 Silicon Turnkey Express, Inc.
+Copyright 2009 Analog Devices Inc.
+Copyright 2009 CJSC "NII STT", http://www.niistt.ru/
+Copyright 2009(C) Marvell International Ltd. and its affiliates
+Copyright 2009 Dirk Behme, dirk.behme@googlemail.com
+Copyright 2009 Extreme Engineering Solutions, Inc.
+Copyright 2009 Freescale Semiconductor, Inc
+Copyright 2009 Ilya Yanok, <yanok@emcraft.com>
+Copyright 2009: Marvell Technology Group Ltd.
+Copyright 2009, Matthias Fuchs <matthias.fuchs@esd.eu>
+Copyright 2009, Robin Getz <rgetz@blackfin.uclinux.org>
+Copyright 2009 Semihalf.
+Copyright 2010, Renato Andreola <renato.andreola@imagos.it>
+Copyright (C) 1985 MIPS Computer Systems, Inc.
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+Copyright (C) 1990 - 1992, 1999 Silicon Graphics, Inc.
+Copyright (C) 1990, 1999 by Silicon Graphics, Inc.
+Copyright (C) 1991, 1992  Linus Torvalds
+Copyright (C) 1991,1996-1999,2001,2004,2007 Free Software Foundation, Inc.
+Copyright (C) 1991-2004 SciTech Software, Inc.
+Copyright (C) 1991-2004 SciTech Software, Inc. All rights reserved.
+Copyright (C) 1992, 1997 Free Software Foundation, Inc.
+Copyright (C) 1993, 1996, 2001, 2002 Free Software Foundation, Inc.
+Copyright (C) 1993        Hamish Macdonald
+Copyright (c) 1993 Herb Peyerl (hpeyerl@novatel.ca)
+Copyright (C) 1994, 1995, 1996, 1997, 2000, 2001 by Ralf Baechle
+Copyright (C) 1994, 1995, 1996, 1999 by Ralf Baechle
+Copyright (C) 1994, 1995, 1996 by Ralf Baechle
+Copyright (C) 1994, 1995 Waldorf GmbH
+Copyright (C) 1994 - 2000 Ralf Baechle
+Copyright (C) 1994 David S. Miller (davem@caip.rutgers.edu)
+Copyright (C) 1994 Hamish Macdonald
+Copyright (C) 1994 Waldorf GMBH
+Copyright (C) 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003 Ralf Baechle
+Copyright (C) 1995, 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
+Copyright (C) 1995-1996 Gary Thomas (gdt@linuxppc.org)
+Copyright (C) 1995-1998 Mark Adler
+Copyright (C) 1995, 1999 Silicon Graphics
+Copyright (C) 1995-2002 Russell King
+Copyright (C) 1995-2005 Jean-loup Gailly.
+Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler
+Copyright (C) 1995-2005 Mark Adler
+Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
+Copyright (C) 1995 Hamish Macdonald
+Copyright (C) 1996,1998 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
+Copyright (C) 1996, 1999, 2001 David S. Miller (davem@redhat.com)
+Copyright (C) 1996-1999 SciTech Software, Inc.
+Copyright (C) 1996-2002 Julian R Seward.  All rights reserved.
+Copyright (C) 1996-2002 Markus Franz Xaver Johannes Oberhumer
+Copyright (C) 1996-2005 Markus F.X.J. Oberhumer <markus@oberhumer.com>
+Copyright (C) 1996 by Erik Stahlman (ES)
+Copyright (C) 1996 by Paul M. Antoine
+Copyright (C) 1996 Larry Ewing (lewing@isc.tamu.edu)
+Copyright (C) 1996 Paul Mackerras.
+Copyright (C) 1996 Paul M. Antoine
+Copyright (C) 1997, 1999, 2001, 06 by Ralf Baechle
+Copyright (C) 1997-1999 Russel King
+Copyright (c) 1997 Dan Malek (dmalek@jlc.net)
+Copyright (C) 1997  Sten Wang
+Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
+Copyright (C) 1998, 1999 D. Jeff Dionne     <jeff@uclinux.org>
+Copyright (C) 1998,2001 M-Systems Flash Disk Pioneers Ltd.
+Copyright (C) 1998  Dan Malek <dmalek@jlc.net>
+Copyright (C) 1998  D. Jeff Dionne <jeff@ryeham.ee.ryerson.ca>,
+Copyright (C) 1998 Gabriel Paubert.
+Copyright (c) 1998 Harald Koerfgen
+Copyright (C) 1998       Kenneth Albanowski <kjahds@kjahds.com>
+Copyright (C) 1999 2000 2001 Erik Mouw (J.A.K.Mouw@its.tudelft.nl)
+Copyright (C) 1999 2000 2001 Jan-Derk bakker (J.D.Bakker@its.tudelft.nl)
+Copyright (C) 1999, 2000  Niibe Yutaka
+Copyright (C) 1999, 2000  Niibe Yutaka  &  Kaz Kojima
+Copyright (C) 1999, 2000 Silicon Graphics, Inc.
+Copyright(c) 1999 - 2002 Intel Corporation. All rights reserved.
+Copyright (C) 1999-2003 David Woodhouse <dwmw2@infradead.org> et al.
+Copyright (C) 1999-2005 Igor Pavlov
+Copyright (C) 1999 ARM Limited.
+Copyright (C) 1999 Ben Williamson <benw@pobox.com>
+Copyright (C) 1999 by Silicon Graphics, Inc.
+Copyright (C) 1999 David Mosberger-Tang <davidm@hpl.hp.com>
+Copyright (C) 1999 Egbert Eich
+Copyright (C) 1999 Hewlett-Packard Co
+Copyright (C) 1999 Linus Torvalds
+Copyright (C) 1999 Machine Vision Holdings, Inc.
+Copyright (C) 1999  Magnus Damm <kieraypc01.p.y.kie.era.ericsson.se>
+Copyright (c) 1999 Nicolas Pitre <nico@visuaide.com>
+Copyright (C) 1999 Niibe Yutaka
+Copyright (C) 1999 Russell King.
+Copyright (C) 1999 Silicon Graphics, Inc.
+Copyright (C) 1999       Vladimir Gurevich  <vgurevic@cisco.com>
+Copyright (C) 2000, 07 MIPS Technologies, Inc.
+Copyright (c) 2000, 2001, 2002 Lineo
+Copyright(c) 2000-2001 Broadcom Corporation.
+Copyright (c) 2000,2001 Epson Research and Development, Inc.
+Copyright (C) 2000,2001  Larry Doolittle  <larry@doolittle.boa.org>
+Copyright (C) 2000, 2001 NETsilicon, Inc.
+Copyright (C) 2000, 2001 Red Hat, Inc.
+Copyright (C) 2000, 2001 WireSpeed Communications Corporation
+Copyright (c) 2000-2002 Dave Ellis, SIXNET, dge@sixnetio.com
+Copyright (C) 2000, 2002  Maciej W. Rozycki
+Copyright (C) 2000-2002 Russell King
+Copyright (C) 2000-2002 Transmeta Corporation
+Copyright (C) 2000-2004 Steven J. Hill (sjhill@realitydiluted.com)
+Copyright (C) 2000-2005 Corelatus AB
+Copyright (c) 2000 by Silicon Graphics, Inc.
+Copyright (c) 2000 David Woodhouse <dwmw2@infradead.org>
+Copyright (C) 2000 Deep Blue Solutions Ltd.
+Copyright (C) 2000 FSMLabs, Inc.
+Copyright (C) 2000 MIPS Technologies, Inc.
+Copyright (c) 2000 MontaVista Software, Inc.   Dan Malek (dmalek@jlc.net)
+Copyright (c) 2000 MontaVista Software, Inc (source@mvista.com)
+Copyright (C) 2000     Murray Jensen <Murray.Jensen@cmst.csiro.au>
+Copyright (C) 2000 Netgem S.A.
+Copyright (C) 2000 NETsilicon, Inc.
+Copyright (c) 2000 Philip Edelbrock <phil@stimpy.netroedge.com>
+Copyright (C) 2000 Red Hat, Inc.
+Copyright (C) 2000 Silicon Graphics, Inc.
+Copyright (C) 2000 Steven J. Hill (sjhill@realitydiluted.com)
+Copyright (c) 2000 William L. Pitts and W. Gerald Hicks
+Copyright (C) 2000 WireSpeed Communications Corporation
+Copyright (C) 2001,02  Miles Bader <miles@gnu.org>
+Copyright (C) 2001,02  NEC Corporation
+Copyright(c)   2001-2002 Arcturus Networks Inc. <www.arcturusnetworks.com>
+Copyright (C) 2001, 2002 ETC s.r.o.
+Copyright (C) 2001,2002  Miles Bader <miles@gnu.org>
+Copyright (C) 2001,2002  NEC Corporation
+Copyright (C) 2001-2003  Christophe Devine
+Copyright (C) 2001-2003 David Woodhouse <dwmw2@infradead.org>
+Copyright (C) 2001-2004  BUFFALO INC.
+Copyright (c) 2001, Advent Networks, Inc.
+Copyright (c) 2001     Alex Züpke <azu@sysgo.de>
+Copyright (C) 2001 ARM Limited
+Copyright (C) 2001 Entity Cyber, Inc.
+Copyright (C) 2001 Entity Cyber, Inc.
+Copyright (C) 2001  Erik Mouw (J.A.K.Mouw@its.tudelft.nl)
+Copyright (C) 2001 Erik Mouw (J.A.K.Mouw@its.tudelft.nl)
+Copyright (c) 2001 Gerd Mennchen <Gerd.Mennchen@icn.siemens.de>
+Copyright (c) 2001 Hewlett Packard
+Copyright (C) 2001, James Dougherty, jfd@cs.stanford.edu
+Copyright (C) 2001  Josh Huber <huber@mclx.com>
+Copyright (c) 2001     Marius Gröger <mag@sysgo.de>
+Copyright (C) 2001  Miles Bader <miles@gnu.org>
+Copyright (C) 2001 MIPS Technologies, Inc.
+Copyright (c) 2001 Navin Boppuri / Prashant Patel
+Copyright (C) 2001  NEC Corporation
+Copyright (C) 2001 Peter Bergner.
+Copyright (C) 2001 Red Hat, Inc.
+Copyright (C) 2001 RidgeRun, Inc. (http://www.ridgerun.com)
+Copyright (C) 2001 Samsung Electronics by chc, 010406
+Copyright (C) 2001, Software Center, Motorola China.
+Copyright (C) 2001 Standard Microsystems Corporation (SMSC)
+Copyright (C) 2001     Sysgo Real-Time Solutions, GmbH <www.elinos.com>
+Copyright(c)   2001    Tony Z. Kou     <tonyko@arcturusnetworks.com>
+Copyright (c) 2001 William L. Pitts
+Copyright (C) 2002-2003 Greg Ungerer <gerg@snapgear.com>
+Copyright(c) 2002,2003 Motorola Inc.
+Copyright (c) 2002, 2003 Omicron Ceti AB, Daniel Engström <denaiel@omicron.se>
+Copyright (C) 2002-2003 SnapGear Inc
+Copyright (C) 2002-2007 Aleph One Ltd.
+Copyright (c) 2002-2007 Analog Devices Inc.
+Copyright (c) 2002     Alex Züpke <azu@sysgo.de>
+Copyright (C) 2002 Andrew Lunn
+Copyright (C) 2002 Daniel Engström, Omicron Ceti AB, daniel@omicron.se.
+Copyright (C) 2002 ETC s.r.o.
+Copyright (c) 2002     Gary Jennejohn <garyj@denx.de>
+Copyright (C) 2002 Gary Thomas
+Copyright (c) 2002, Infineon Technologies.
+Copyright (C) 2002 Intel Corporation.
+Copyright (C) 2002 James F. Dougherty (jfd@broadcom.com)
+Copyright (C) 2002     Kyle Harris <kharris@nexus-tech.net>
+Copyright (C) 2002  Maciej W. Rozycki
+Copyright (c) 2002     Omicron Ceti AB, Daniel Engström <denaiel@omicron.se>
+Copyright (C) 2002 Paul Mundt
+Copyright (C) 2002 rabeeh@galileo.co.il
+Copyright (C) 2002 RidgeRun, Inc.
+Copyright (C) 2002 Samsung Electronics SW.LEE  <hitchcar@sec.samsung.com>
+Copyright (C) 2002 Scott McNutt <smcnutt@artesyncp.com>
+Copyright (c) 2002     Stephan Linz <linz@mazet.de>, <linz@li-pro.net>
+Copyright (C) 2002 Thomas Gleixner (tglx@linutronix.de)
+Copyright (c) 2003/06, Courage Co., Ltd.
+Copyright (C) 2003-2004 Arabella Software Ltd.
+Copyright (C) 2003, 2004  Free Software Foundation, Inc.
+Copyright (C) 2003-2004, Greg Ungerer (gerg@snapgear.com)
+Copyright (C) 2003, 2004  Maciej W. Rozycki
+Copyright (C) 2003-2005 Arabella Software Ltd.
+Copyright (C) 2003-2005 Nokia Corporation
+Copyright (C) 2003-2006  Christophe Devine
+Copyright (C) 2003 Aleph One Ltd.
+Copyright (C) 2003 Arabella Software Ltd.
+Copyright (C) 2003 ATMEL
+Copyright (c) 2003     Bas Vermeulen <bas@buyways.nl>,
+Copyright (C) 2003 Bernardo Innocenti <bernie@develer.com>
+Copyright (C) 2003 Cirrus Logic, Inc
+Copyright (c) 2003 Denis Peter, MPL AG Switzerland, d.petr@mpl.ch.
+Copyright (C) 2003 ETC s.r.o.
+Copyright (C) 2003 IMMS gGmbH <www.imms.de>
+Copyright (C) 2003       John Williams <jwilliams@itee.uq.edu.au>
+Copyright (C) 2003     John Williams <jwilliams@itee.uq.edu.au>
+Copyright (C) 2003  John Williams <jwilliams@itee.uq.edu.au>
+Copyright (C) 2003     John Williams (jwilliams@itee.uq.edu.au)
+Copyright (c) 2003 Josef Baumgartner <josef.baumgartner@telex.de>
+Copyright (C) 2003     Josef Baumgartner <josef.baumgartner@telex.de>
+Copyright (C) 2003 Kai-Uwe Bloem,
+Copyright (C) 2003     Kai-Uwe Bloem <kai-uwe.bloem@auerswald.de>
+Copyright (C) 2003 Konrad Eisele <eiselekd@web.de>
+Copyright (c) 2003     Kshitij <kshitij@ti.com>
+Copyright (C) 2003     Kyle Harris <kharris@nexus-tech.net>
+Copyright (C) 2003  Manuel Novoa III  <mjn3@codepoet.org>
+Copyright (C) 2003 Martin Krause, TQ-Systems GmbH, martin.krause@tqs.de
+Copyright (C) 2003  Martin Winistoerfer, martinwinistoerfer@gmx.ch.
+Copyright (c) 2003  Masami Komiya <mkomiya@sonare.it>
+Copyright (c) 2003  Metrowerks/Motorola
+Copyright(c) 2003      Metrowerks      <mwaddel@metrowerks.com>
+Copyright (C) 2003 Montavista Software, Inc
+Copyright (C) 2003 Motorola Inc.
+Copyright (c) 2003     Richard Woodruff <r-woodruff2@ti.com>
+Copyright (C) 2003     Robert Schwebel <r.schwebel@pengutronix.de>
+Copyright (C) 2003 SAN People
+Copyright (c) 2003 Texas Instruments
+Copyright (c) 2003     Thomas.Lange@corelatus.se
+Copyright (C) 2003 Travis B. Sawyer <travis.sawyer@sandburst.com>
+Copyright (C) 2004-2005 Arabella Software Ltd.
+Copyright (c) 2004-2005, Greg Ungerer <greg.ungerer@opengear.com>
+Copyright (c) 2004-2005 Sergey Lyubka <valenok@gmail.com>
+Copyright (C) 2004-2006 Atmel Corporation
+Copyright (C) 2004-2007 ARM Limited.
+Copyright (C) 2004-2008 Arthur Shipkowski (art@videon-central.com)
+Copyright (c) 2004-2008 Texas Instruments
+Copyright (C) 2004-2009 Analog Devices Inc.
+Copyright (C) 2004-2009 Freescale Semiconductor, Inc.
+Copyright (C) 2004 Arabella Software Ltd.
+Copyright (C) 2004 by FS Forth-Systeme GmbH.
+Copyright (c) 2004     Cucy Systems (http://www.cucy.com)
+Copyright (C) 2004 David Brownell
+Copyright (C) 2004  Gaisler Research AB
+Copyright (C) 2004 Gary Jennejohn garyj@denx.de
+Copyright (C) 2004 IMMS gGmbH <www.imms.de>
+Copyright (C) 2004 Lothar Wassmann
+Copyright (C) 2004 MPC-Data Limited. (http://www.mpc-data.co.uk)
+Copyright (C) 2004 Nokia Corporation
+Copyright (C) 2004 Patrik Kluba,
+Copyright (C) 2004 PaulReynolds@lhsolutions.com
+Copyright (c) 2004 Picture Elements, Inc.
+Copyright (C) 2004 Psion Teklogix
+Copyright (C) 2004 Ray Lehtiniemi
+Copyright (C) 2004 Sascha Hauer, Synertronixx GmbH
+Copyright (C) 2004 Stefan Holst <mail@s-holst.de>
+Copyright (C) 2004 Sylvain Munaut <tnt@246tNt.com>
+Copyright (c) 2004     Texas Instruments <r-woodruff2@ti.com>
+Copyright (C) 2004 Thomas Gleixner (tglx@linutronix.de)
+Copyright (c) 2004 TsiChung Liew (Tsi-Chung.Liew@freescale.com)
+Copyright (C) 2005-2006 Atmel Corporation
+Copyright (c) 2005-2006 Gianluigi Tiesi <sherpya@netfarm.it>
+Copyright (c) 2005-2007 Samsung Electronics
+Copyright (C) 2005-2008 Arthur Shipkowski (art@videon-central.com)
+Copyright (C) 2005-2008 Atmel Corporation
+Copyright(c) 2005-2008 Samsung Electronics
+Copyright (c) 2005-2009 Analog Devices Inc.
+Copyright (c) 2005, 2009 Freescale Semiconductor, Inc
+Copyright (C) 2005-2009 Samsung Electronics
+Copyright (C) 2005 Arabella Software Ltd.
+Copyright (C) 2005 Bas Vermeulen, BuyWays BV <bas@buyways.nl>
+Copyright (c) 2005 Ben Gardner <bgardner@wabtec.com>
+Copyright (C) 2005 by Videon Central, Inc.
+Copyright (c) 2005 Cisco Systems.  All rights reserved.
+Copyright (C) 2005 David Brownell
+Copyright (c) 2005 Freescale Semiconductor, Inc.
+Copyright (C) 2005 HP Labs
+Copyright (C) 2005 Ivan Kokshaysky
+Copyright (c) 2005 MontaVista Software, Inc.
+Copyright (C) 2005 Olav Kongas <ok@artecdesign.ee>
+Copyright (C) 2005 Sandburst Corporation
+Copyright (C) 2005 Texas Instruments.
+Copyright (C) 2005 Videon Central, Inc.
+Copyright (C) 2005 Wind River Systems
+Copyright (C) 2006-2007 Eurotech S.p.A. <info@eurotech.it>
+Copyright (C) 2006-2007 Rodolfo Giometti <giometti@linux.it>
+Copyright (C) 2006, 2007 University of Szeged, Hungary
+Copyright (c) 2006-2007 Wind River Systems, Inc.
+Copyright (c) 2006-2008 Analog Devices Inc.
+Copyright (C) 2006, 2008 Atmel Corporation
+Copyright (c) 2006-2008 Freescale Semiconductor
+opyright (c) 2006, 2008 Junio C Hamano
+Copyright (C) 2006-2008 Nokia Corporation
+Copyright (c) 2006-2008 Syed Mohammed Khasim <x0khasim@ti.com>
+Copyright (c) 2006-2009 Analog Devices Inc.
+Copyright (c) 2006-2009 Freescale Semiconductor, Inc.
+Copyright (C) 2006 Aaron Gage, Ocean Optics Inc.
+Copyright (c) 2006 Ben Warren, Qstreams Networks Inc.
+Copyright (C) 2006 Bryan O'Donoghue, CodeHermit
+Copyright (C) 2006 by Weiss-Electronic GmbH.
+Copyright (C) 2006 CodeHermit.
+Copyright (C) 2006 David Gibson, IBM Corporation.
+Copyright (C) 2006 Dominic Rath <Dominic.Rath@gmx.de>
+Copyright (C) 2006  Embedded Artists AB (www.embeddedartists.com)
+Copyright (C) 2006 Embedded Planet, LLC.
+Copyright (C) 2006 Freescale Semiconductor, Inc.
+Copyright (C) 2006 Free Software Foundation, Inc.
+Copyright (C) 2006 Micronas GmbH
+Copyright (C) 2006 Mihai Georgian <u-boot@linuxnotincluded.org.uk>
+Copyright (C) 2006 Pavel Pisa, PiKRON <ppisa@pikron.com>
+Copyright (C) 2006 Texas Instruments
+Copyright (c) 2006 Thomas Gleixner <tglx@linutronix.de>
+Copyright (c) 2006 Wind River Systems, Inc.
+Copyright (c) 2007-2008 Analog Devices Inc.
+Copyright (C) 2007-2008 Freescale Semiconductor, Inc.
+Copyright (C) 2007-2008 Industrie Dial Face S.p.A.
+Copyright (c) 2007-2008, Juniper Networks, Inc.
+Copyright (C) 2007, 2008 Nobobuhiro Iwamatsu <iwamatsu@nigauri.org>
+Copyright (c) 2007-2009 Analog Devices Inc.
+Copyright (C) 2007-2009  Freescale Semiconductor, Inc.
+Copyright (C) 2007-2009 Industrie Dial Face S.p.A.
+Copyright (C) 2007-2009 Texas Instruments, Inc.
+Copyright (C) 2007 Andrew Victor
+Copyright (C) 2007 Atmel Corporation
+Copyright (c) 2007 Carlos Munoz <carlos@kenati.com>
+Copyright (C) 2007 Daniel Hellstrom <daniel@gaisler.com>
+Copyright (C) 2007 Eurotech S.p.A. <info@eurotech.it>
+Copyright (C) 2007 Freescale Semiconductor, Inc.
+Copyright (C) 2007 Gerald Van Baren, Custom IDEAS, vanbaren@cideas.com
+Copyright (C) 2007, Guennadi Liakhovetski <lg@denx.de>
+Copyright (C) 2007 Kenati Technologies, Inc.
+Copyright (C) 2007 Lead Tech Design <www.leadtechdesign.com>
+Copyright (C) 2007 Logic Product Development, Inc.
+Copyright (C) 2007 MontaVista Software, Inc.
+Copyright (C) 2007 Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
+Copyright (C) 2007 Pengutronix,
+Copyright (C) 2007 Ralf Baechle (ralf@linux-mips.org)
+Copyright (C) 2007 Rodolfo Giometti <giometti@linux.it>
+Copyright (c) 2007     Samsung Electronics
+Copyright (C) 2007 Sascha Hauer, Pengutronix
+Copyright (C) 2007 Semihalf
+Copyright (C) 2007 Sergey Kubushyn <ksi@koi8.net>
+Copyright (C) 2007 Stelian Pop <stelian.pop@leadtechdesign.com>
+Copyright (C) 2007 Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com>
+Copyright (c) 2008-2009 Analog Devices Inc.
+Copyright (C) 2008,2009 Eric Jarrige <jorasse@users.sourceforge.net>
+Copyright (c) 2008, 2009 esd gmbh Hannover Germany
+Copyright (c) 2008-2009 I-SYST.
+Copyright (C) 2008-2009  MontaVista Software, Inc.
+Copyright (C) 2008-2009 Samsung Electronics
+Copyright (c) 2008 Analog Devices Inc.
+Copyright (C) 2008 Arthur Shipkowski (art@videon-central.com)
+Copyright (C) 2008 Atmel Corporation
+Copyright (C) 2008 by Texas Instruments
+Copyright (C) 2008 Daniel Hellstrom (daniel@gaisler.com)
+Copyright (C) 2008 Dave S.r.l. <www.dave.eu>
+Copyright (c) 2008 Eric Jarrige <eric.jarrige@armadeus.org>
+Copyright (c) 2008 Excito Elektronik i Skåne AB
+Copyright (c) 2008 Freescale Semiconductor, Inc.
+Copyright (C) 2008, Guennadi Liakhovetski <lg@denx.de>
+Copyright (C) 2008 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
+Copyright (C) 2008 Kim B. Heino
+Copyright (C) 2008 Lyrtech <www.lyrtech.com>
+Copyright (c) 2008, Michael Trimarchi <trimarchimichael@yahoo.it>
+Copyright (C) 2008 Miromico AG
+Copyright (C) 2008 MontaVista Software, Inc.
+Copyright (C) 2008 Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>
+Copyright (C) 2008 Nokia Corporation
+Copyright (c) 2008 Nuovation System Designs, LLC
+Copyright (C) 2008 Philip Balister, OpenSDR <philip@opensdr.com>
+Copyright (c) 2008 Pieter Voorthuijsen <pieter.voorthuijsen@prodrive.nl>
+Copyright (C) 2008 Renaud CERRATO r.cerrato@til-technologies.fr
+Copyright (C) 2008 Renesas Solutions Corp.
+Copyright (C) 2008 Ronetix Ilko Iliev (www.ronetix.at)
+Copyright (C) 2008 RuggedCom, Inc.
+Copyright (C) 2008 Samsung Electronics
+Copyright (C) 2008 Sascha Hauer, Pengutronix <s.hauer@pengutronix.de>
+Copyright (C) 2008 Texas Instruments, Inc <www.ti.com>
+Copyright (C) 2008 Vivek Kutal      <vivek.kutal@azingo.com>
+Copyright (c) 2008 Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com>
+Copyright (C) 2008 Yusuke Goda <goda.yusuke@renesas.com>
+Copyright (C) 2009, 2010 Matthias Kaehlcke <matthias@kaehlcke.net>
+Copyright (C) 2009 Alessandro Rubini
+Copyright (c) 2009 Analog Devices Inc.
+Copyright (C) 2009 BuS Elektronik GmbH & Co. KG
+Copyright (C) 2009 David Brownell
+Copyright (C) 2009, Emcraft Systems, Ilya Yanok <yanok@emcraft.com>
+Copyright (c) 2009 esd gmbh hannover germany.
+Copyright (C) 2009 Freescale Semiconductor, Inc.
+Copyright (C) 2009, Ilya Yanok, Emcraft Systems, <yanok@emcraft.com>
+Copyright (C) 2009 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
+Copyright (C) 2009 Jens Scharsig (js_at_ng@scharsoft.de)
+Copyright (C) 2009 Matthias Kaehlcke <matthias@kaehlcke.net>
+Copyright (c) 2009  MontaVista Software, Inc.
+Copyright (C) 2009 Nick Thompson, GE Fanuc Ltd, <nick.thompson@gefanuc.com>
+Copyright (C) 2009 Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>
+Copyright (C) 2009 Renesas Solutions Corp.
+Copyright (c) 2009 Robin Getz <rgetz@blackfin.uclinux.org>
+Copyright (c) 2009 Samsung Electronics
+Copyright (C) 2009 Texas Instruments Incorporated - http://www.ti.com/
+Copyright (c) 2009 Wind River Systems, Inc.
+Copyright (C) 2010, 2009 Matthias Kaehlcke <matthias@kaehlcke.net>
+Copyright (C) Archway Digital Solutions.
+Copyright (C) ARM Limited 1998.
+Copyright (C) Excito Elektronik i Skåne AB
+Copyright (C) Freescale Semiconductor, Inc. 2006-2009.
+Copyright (c) International Business Machines Corp., 2006
+Copyright (C) Linux Networx. 2002
+Copyright (C) Matrix Vision GmbH 2008
+Copyright (c) Nokia Corporation, 2006, 2007
+Copyright (C) 2001, Russ Dill
+Copyright (c) Orbacom Systems, Inc <www.orbacom.com>
+Copyright (C) Procsys.
+Copyright (C) Samsung Electronics, 2009
+Copyright (C) SAN People
+Copyright (C) Sheldon Instruments, Inc. 2008
+Copyright Freescale Semiconductor, Inc. 2004, 2006, 2008.
+Copyright - Galileo technology.
+Copyright MontaVista Software Incorporated, 2000
+Copyright Motorola, Inc. 1993, 1994
+Copyright Motrola 1999
+Copyright Rob Taylor, Flying Pig Systems Ltd. 2000.
+Copyright Torsten Duwe <duwe@informatik.uni-erlangen.de> 1993
+Copyright Wind River Systems, Inc., 1984-2003
+(C) Copyright 2006 Eric Benard
+Copyright Motorola 1984 (!).
+Copyright (C) Motorola, 2003.
+Copyright (c) 1998 by Michael Barr
+Josh Huber, (C) Copyright 2001 Mission Critical Linux, Inc.
+(C) Copyright 2004 Gary Jennejohn
+(C) Copyright 2005 Eric Benard
+Copyright (c) 1999 Dan Malek (dmalek@jlc.net).
+Copyright (C) Motorola, 2001, present.
+Copyright (C) 2009 Red Hat
+Roel Loeffen, (C) Copyright 2006 Prodrive B.V.
+Copyright (C) Motorola, 2003.
+Copyright (C) 2004-2005 Barco Control Rooms
+Copyright (C) 2000 by Lineo, Inc., and
+Copyright (C) Motorola, 2003.
+Copyright (c) 1992, 1993 The Regents of the University of California.
+
+The aggregate work is under the terms of the GNU GPL though many
+of these files are under a 3-clause BSD license:
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+3. Neither the name of the University nor the names of its contributors
+   may be used to endorse or promote products derived from this software
+   without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+Some are under the zlib license:
+
+  This software is provided 'as-is', without any express or implied
+  warranty.  In no event will the authors be held liable for any damages
+  arising from the use of this software.
+
+  Permission is granted to anyone to use this software for any purpose,
+  including commercial applications, and to alter it and redistribute it
+  freely, subject to the following restrictions:
+
+  1. The origin of this software must not be misrepresented; you must not
+     claim that you wrote the original software. If you use this software
+     in a product, an acknowledgment in the product documentation would be
+     appreciated but is not required.
+  2. Altered source versions must be plainly marked as such, and must not be
+     misrepresented as being the original software.
+  3. This notice may not be removed or altered from any source distribution.
+
+
+Some files (mostly yaffs2) are distributed under the GNU LGPL v2 or later
+or the GNU LGPL v2.1 or later, both of which can be found in
+/usr/share/common-licenses on your Debian system.
diff --git a/env-configs/efikamx.config b/env-configs/efikamx.config
new file mode 100644 (file)
index 0000000..1aedc96
--- /dev/null
@@ -0,0 +1,9 @@
+# Configuration file for fw_(printenv/saveenv) utility.
+# Up to two entries are valid, in this case the redundant
+# environment sector is assumed present.
+#
+# XXX this configuration might miss a fifth parameter for the "Number of
+# sectors"
+
+# MTD device name   Device offset   Env. size   Flash sector size
+/dev/mtd1           0x00000         0x10000     0x01000
diff --git a/env-configs/guruplug.config b/env-configs/guruplug.config
new file mode 100644 (file)
index 0000000..8b30cbe
--- /dev/null
@@ -0,0 +1,10 @@
+# Configuration file for fw_(printenv/saveenv) utility.
+#
+# Hardware     : Marvell Plug2L Reference Board
+# No redundant environment
+#
+# XXX this configuration might miss a fifth parameter for the "Number of
+# sectors"
+
+# MTD device name   Device offset   Env. size   Flash sector size
+/dev/mtd0           0x40000         0x20000     0x20000
diff --git a/env-configs/kurobox_pro.config b/env-configs/kurobox_pro.config
new file mode 100644 (file)
index 0000000..83b6c6a
--- /dev/null
@@ -0,0 +1,9 @@
+# Configuration file for fw_(printenv/saveenv) utility.
+# Up to two entries are valid, in this case the redundant
+# environment sector is assumed present.
+#
+# XXX this configuration might miss a fifth parameter for the "Number of
+# sectors"
+
+# MTD device name   Device offset   Env. size   Flash sector size
+/dev/mtd0           0x3F000         0x1000      0x1000
diff --git a/env-configs/linkstation-mini.config b/env-configs/linkstation-mini.config
new file mode 100644 (file)
index 0000000..92ce9de
--- /dev/null
@@ -0,0 +1,7 @@
+# Configuration file for fw_(printenv/saveenv) utility.
+# Up to two entries are valid, in this case the redundand
+# environment sector is assumed present.
+
+# for Buffalo Linkstation Mini
+# MTD device name       Device offset   Env. size       Flash sector size
+/dev/mtd0              0x3f000         0x01000         0x01000
diff --git a/env-configs/linkstation_pro_live.config b/env-configs/linkstation_pro_live.config
new file mode 100644 (file)
index 0000000..83b6c6a
--- /dev/null
@@ -0,0 +1,9 @@
+# Configuration file for fw_(printenv/saveenv) utility.
+# Up to two entries are valid, in this case the redundant
+# environment sector is assumed present.
+#
+# XXX this configuration might miss a fifth parameter for the "Number of
+# sectors"
+
+# MTD device name   Device offset   Env. size   Flash sector size
+/dev/mtd0           0x3F000         0x1000      0x1000
diff --git a/env-configs/lsmipsel.config b/env-configs/lsmipsel.config
new file mode 100644 (file)
index 0000000..abd8bcb
--- /dev/null
@@ -0,0 +1,9 @@
+# Configuration file for fw_(printenv/saveenv) utility.
+# Up to two entries are valid, in this case the redundant
+# environment sector is assumed present.
+#
+# XXX this configuration might miss a fifth parameter for the "Number of
+# sectors"
+
+# MTD device name   Device offset   Env. size   Flash sector size
+/dev/mtd0           0x30000         0x10000     0x10000
diff --git a/env-configs/lsppchg.config b/env-configs/lsppchg.config
new file mode 100644 (file)
index 0000000..4ccc576
--- /dev/null
@@ -0,0 +1,9 @@
+# Configuration file for fw_(printenv/saveenv) utility.
+# Up to two entries are valid, in this case the redundant
+# environment sector is assumed present.
+#
+# XXX this configuration might miss a fifth parameter for the "Number of
+# sectors"
+
+# MTD device name   Device offset   Env. size   Flash sector size
+/dev/mtd4           0x360000        0x10000     0x10000
diff --git a/env-configs/openmoko_gta01.config b/env-configs/openmoko_gta01.config
new file mode 100644 (file)
index 0000000..7fd45e3
--- /dev/null
@@ -0,0 +1,7 @@
+# Configuration file for fw_(printenv/saveenv) utility.
+# Up to two entries are valid, in this case the redundant
+# environment sector is assumed present.
+# Notice, that the "Number of sectors" is ignored on NOR.
+
+# MTD device name      Device offset   Env. size       Flash sector size       Number of sectors
+/dev/mtd1              0x0000          0x4000          0x4000                  2
diff --git a/env-configs/openmoko_gta02.config b/env-configs/openmoko_gta02.config
new file mode 100644 (file)
index 0000000..1faa2f1
--- /dev/null
@@ -0,0 +1,7 @@
+# Configuration file for fw_(printenv/saveenv) utility.
+# Up to two entries are valid, in this case the redundant
+# environment sector is assumed present.
+# Notice, that the "Number of sectors" is ignored on NOR.
+
+# MTD device name      Device offset   Env. size       Flash sector size       Number of sectors
+/dev/mtd2              0x0000          0x40000         0x20000                 2
diff --git a/env-configs/qnap_ts101.config b/env-configs/qnap_ts101.config
new file mode 100644 (file)
index 0000000..181c54b
--- /dev/null
@@ -0,0 +1,9 @@
+# Configuration file for fw_(printenv/saveenv) utility.
+# Up to two entries are valid, in this case the redundant
+# environment sector is assumed present.
+#
+# XXX this configuration might miss a fifth parameter for the "Number of
+# sectors"
+
+# MTD device name       Device offset   Env. size       Flash sector size
+/dev/mtd5              0x00000         0x20000         0x20000
diff --git a/env-configs/qnap_ts109-209.config b/env-configs/qnap_ts109-209.config
new file mode 100644 (file)
index 0000000..4024e08
--- /dev/null
@@ -0,0 +1,9 @@
+# Configuration file for fw_(printenv/saveenv) utility.
+# Up to two entries are valid, in this case the redundant
+# environment sector is assumed present.
+#
+# XXX this configuration might miss a fifth parameter for the "Number of
+# sectors"
+
+# MTD device name   Device offset   Env. size   Flash sector size
+/dev/mtd4           0x0000          0x20000         0x20000
diff --git a/env-configs/qnap_ts119-219.config b/env-configs/qnap_ts119-219.config
new file mode 100644 (file)
index 0000000..98505a9
--- /dev/null
@@ -0,0 +1,11 @@
+# Configuration file for fw_(printenv/saveenv) utility.
+# Up to two entries are valid, in this case the redundant
+# environment sector is assumed present.
+#
+# This config is for QNAP TS-119, TS-219 and TS-219P boards.
+#
+# XXX this configuration might miss a fifth parameter for the "Number of
+# sectors"
+
+# MTD device name   Device offset   Env. size   Flash sector size
+/dev/mtd4           0x0000          0x1000         0x40000
diff --git a/env-configs/sheevaplug.config b/env-configs/sheevaplug.config
new file mode 100644 (file)
index 0000000..5bbd38d
--- /dev/null
@@ -0,0 +1,9 @@
+# Configuration file for fw_(printenv/saveenv) utility.
+# Up to two entries are valid, in this case the redundant
+# environment sector is assumed present.
+#
+# XXX this configuration might miss a fifth parameter for the "Number of
+# sectors"
+
+# MTD device name   Device offset   Env. size   Flash sector size
+/dev/mtd0           0x60000         0x20000     0x20000
diff --git a/lintian.overrides b/lintian.overrides
new file mode 100644 (file)
index 0000000..b176df5
--- /dev/null
@@ -0,0 +1,16 @@
+u-boot: shared-lib-without-dependency-information ./usr/lib/u-boot/guruplug/uboot.elf
+u-boot: shared-lib-without-dependency-information ./usr/lib/u-boot/sheevaplug/uboot.elf
+u-boot: shared-lib-without-dependency-information ./usr/lib/u-boot/dreamplug/uboot.elf
+u-boot: shared-lib-without-dependency-information ./usr/lib/u-boot/ZUMA/uboot.elf
+u-boot: shared-lib-without-dependency-information ./usr/lib/u-boot/eNET/uboot.elf
+u-boot: shared-lib-without-dependency-information ./usr/lib/u-boot/qemu_mips/uboot.elf
+u-boot: shared-lib-without-dependency-information ./usr/lib/u-boot/dbau1100/uboot.elf
+u-boot: shared-lib-without-dependency-information ./usr/lib/u-boot/hammerhead/uboot.elf
+u-boot: shared-lib-without-dependency-information ./usr/lib/u-boot/sh7785lcr_32bit/uboot.elf
+u-boot: shared-lib-without-dependency-information ./usr/lib/u-boot/r2dplus/uboot.elf
+u-boot: shared-lib-without-dependency-information ./usr/lib/u-boot/efikamx/uboot.elf
+u-boot: shared-lib-without-dependency-information ./usr/lib/u-boot/igep0020/uboot.elf
+u-boot: shared-lib-without-dependency-information ./usr/lib/u-boot/mx53loco/uboot.elf
+u-boot: shared-lib-without-dependency-information ./usr/lib/u-boot/omap3_beagle/uboot.elf
+u-boot: shared-lib-without-dependency-information ./usr/lib/u-boot/omap4_panda/uboot.elf
+u-boot: description-synopsis-starts-with-article
diff --git a/manpages/fw_printenv.8 b/manpages/fw_printenv.8
new file mode 100644 (file)
index 0000000..a288852
--- /dev/null
@@ -0,0 +1,31 @@
+.\" Copyright © 2008 Per Andersson <avtobiff@gmail.com>
+.\" This man page is covered by the GNU General Public License (GPLv2 or higher).
+.TH fw_printenv 8 "August 2008" "Debian Project" ""
+
+.SH NAME
+fw_printenv \- Tool for printing environment for the bootloader U-Boot
+
+.SH SYNOPSIS
+fw_printenv [ \fB\-n\fP \fIname\fP ] [ \fIname\fP \fI...\fP ]
+
+.SH DESCRIPTION
+\fIfw_printenv\fP is a simple tool for printing the environment for the
+bootloader U-Boot. All environment variables matching the names given as
+arguments are shown. If \fIfw_printenv\fP is called without any arguments the
+entire environment is printed.
+
+.SH OPTIONS
+.IP \fB\-n\fP
+If the \fBn\fP flag is set \fIfw_printenv\fP only prints the value of the supplied variable \fIname\fP.
+
+.SH FILES
+.IP \fB/etc/fw_env.config\fP
+Configuration file for fw_printenv.
+
+.SH SEE ALSO
+fw_setenv(8)
+
+.SH AUTHOR
+Wolfgang Denk <wd@denx.de>
+.PP
+This manual page was written by Per Andersson <avtobiff@gmail.com>
diff --git a/manpages/fw_setenv.8 b/manpages/fw_setenv.8
new file mode 100644 (file)
index 0000000..5a5114a
--- /dev/null
@@ -0,0 +1,27 @@
+.\" Copyright © 2008 Per Andersson <avtobiff@gmail.com>
+.\" This man page is covered by the GNU General Public License (GPLv2 or higher).
+.TH fw_setenv 8 "August 2008" "Debian Project" ""
+
+.SH NAME
+fw_setenv \- Tool for modifying the environment for the bootloader U\-Boot
+
+.SH SYNOPSIS
+fw_setenv \fIname\fP [ \fIvalue\fP ]
+
+.SH DESCRIPTION
+\fIfw_setenv\fP is a simple tool for modifying either the environment for the
+bootloader U-Boot. If the variable already is set in the environment it is
+updated, otherwise it is created and set. If only one argument is given,
+variable name, the corresponding variable is deleted.
+
+.SH FILES
+.IP \fB/etc/fw_env.config\fP
+Configuration file for fw_setenv.
+
+.SH SEE ALSO
+fw_printenv(8)
+
+.SH AUTHOR
+Wolfgang Denk <wd@denx.de>
+.PP
+This manual page was written by Per Andersson <avtobiff@gmail.com>
diff --git a/patches/ARM-OMAP3-Revamp-IGEP-default-configuration.diff b/patches/ARM-OMAP3-Revamp-IGEP-default-configuration.diff
new file mode 100644 (file)
index 0000000..6cd7624
--- /dev/null
@@ -0,0 +1,89 @@
+From ebdb222b0d65bcc050e3f0fd6e97faf17fb3eae4 Mon Sep 17 00:00:00 2001
+Sender: Loïc Minier <loic.minier@linaro.org>
+From: Enric Balletbo i Serra <eballetbo@iseebcn.com>
+Date: Wed, 23 Feb 2011 14:35:41 +0100
+Subject: [PATCH] ARM: OMAP3: Revamp IGEP default configuration
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The default IGEP configuration doesn't do anything useful; using some
+boot.scr search logic like BeagleBoard is much more useful.
+
+Signed-off-by: Loïc Minier <loic.minier@linaro.org>
+---
+ include/configs/igep0020.h |   55 ++++++++++++++++++++++++++++++++++++++++---
+ 1 files changed, 51 insertions(+), 4 deletions(-)
+
+diff --git a/include/configs/igep0020.h b/include/configs/igep0020.h
+index c19ecc0..2466562 100644
+--- a/include/configs/igep0020.h
++++ b/include/configs/igep0020.h
+@@ -130,13 +130,60 @@
+ #define CONFIG_TWL4030_POWER          1
+ /* Environment information */
+-#define CONFIG_BOOTCOMMAND \
+-      "mmc init 0 ; fatload mmc 0 0x80000000 setup.ini ; source \0"
+-
+ #define CONFIG_BOOTDELAY              3
+ #define CONFIG_EXTRA_ENV_SETTINGS \
+-      "usbtty=cdc_acm\0"
++      "loadaddr=0x82000000\0" \
++      "usbtty=cdc_acm\0" \
++      "console=ttyS2,115200n8\0" \
++      "mpurate=500\0" \
++      "vram=12M\0" \
++      "dvimode=1024x768MR-16@60\0" \
++      "defaultdisplay=dvi\0" \
++      "mmcdev=0\0" \
++      "mmcroot=/dev/mmcblk0p2 rw\0" \
++      "mmcrootfstype=ext3 rootwait\0" \
++      "nandroot=/dev/mtdblock4 rw\0" \
++      "nandrootfstype=jffs2\0" \
++      "mmcargs=setenv bootargs console=${console} " \
++              "mpurate=${mpurate} " \
++              "vram=${vram} " \
++              "omapfb.mode=dvi:${dvimode} " \
++              "omapfb.debug=y " \
++              "omapdss.def_disp=${defaultdisplay} " \
++              "root=${mmcroot} " \
++              "rootfstype=${mmcrootfstype}\0" \
++      "nandargs=setenv bootargs console=${console} " \
++              "mpurate=${mpurate} " \
++              "vram=${vram} " \
++              "omapfb.mode=dvi:${dvimode} " \
++              "omapfb.debug=y " \
++              "omapdss.def_disp=${defaultdisplay} " \
++              "root=${nandroot} " \
++              "rootfstype=${nandrootfstype}\0" \
++      "loadbootscript=fatload mmc ${mmcdev} ${loadaddr} boot.scr\0" \
++      "bootscript=echo Running bootscript from mmc ...; " \
++              "source ${loadaddr}\0" \
++      "loaduimage=fatload mmc ${mmcdev} ${loadaddr} uImage\0" \
++      "mmcboot=echo Booting from mmc ...; " \
++              "run mmcargs; " \
++              "bootm ${loadaddr}\0" \
++      "nandboot=echo Booting from nand ...; " \
++              "run nandargs; " \
++              "nand read ${loadaddr} 280000 400000; " \
++              "bootm ${loadaddr}\0" \
++
++#define CONFIG_BOOTCOMMAND \
++      "if mmc rescan ${mmcdev}; then " \
++              "if run loadbootscript; then " \
++                      "run bootscript; " \
++              "else " \
++                      "if run loaduimage; then " \
++                              "run mmcboot; " \
++                      "else run nandboot; " \
++                      "fi; " \
++              "fi; " \
++      "else run nandboot; fi"
+ #define CONFIG_AUTO_COMPLETE          1
+-- 
+1.7.2.3
+
diff --git a/patches/hurd.diff b/patches/hurd.diff
new file mode 100644 (file)
index 0000000..546e5fb
--- /dev/null
@@ -0,0 +1,20 @@
+--- a/include/compiler.h
++++ b/include/compiler.h
+@@ -15,7 +15,7 @@
+     defined(__sun__)   || \
+     defined(__APPLE__)
+ # include <inttypes.h>
+-#elif defined(__linux__) || defined(__WIN32__) || defined(__MINGW32__)
++#elif defined(__linux__) || defined(__WIN32__) || defined(__MINGW32__) || defined(__GLIBC__)
+ # include <stdint.h>
+ #endif
+@@ -41,7 +41,7 @@
+ #define O_BINARY      0
+ #endif
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+ # include <endian.h>
+ # include <byteswap.h>
+ #elif defined(__MACH__) || defined(__FreeBSD__)
diff --git a/patches/kerma-sheevaplug-mvsata.diff b/patches/kerma-sheevaplug-mvsata.diff
new file mode 100644 (file)
index 0000000..34d9854
--- /dev/null
@@ -0,0 +1,56 @@
+    Add mvsata support to SHEEVAPLUG
+
+Signed-off-by: Gérald Kerma <geraker at gmail.com>
+---
+Changes in v2:
+ * typo fixed
+ * list reordered
+
+ include/configs/sheevaplug.h |   29 +++++++++++++++++++++++++++++
+ 1 files changed, 29 insertions(+), 0 deletions(-)
+
+--- a/include/configs/sheevaplug.h
++++ b/include/configs/sheevaplug.h
+@@ -46,6 +46,7 @@
+ #include <config_cmd_default.h>
+ #define CONFIG_CMD_DHCP
+ #define CONFIG_CMD_ENV
++#define CONFIG_CMD_IDE
+ #define CONFIG_CMD_MII
+ #define CONFIG_CMD_NAND
+ #define CONFIG_CMD_PING
+@@ -98,6 +99,34 @@
+ #endif /* CONFIG_CMD_NET */
+ /*
++ * IDE Support on SATA port0
++ */
++#ifdef CONFIG_CMD_IDE
++#define __io
++#define CONFIG_CMD_EXT2
++#define CONFIG_MVSATA_IDE
++#define CONFIG_IDE_PREINIT
++#define CONFIG_MVSATA_IDE_USE_PORT0
++/* Needs byte-swapping for ATA data register */
++#define CONFIG_IDE_SWAP_IO
++/* Data, registers and alternate blocks are at the same offset */
++#define CONFIG_SYS_ATA_DATA_OFFSET    (0x0100)
++#define CONFIG_SYS_ATA_REG_OFFSET     (0x0100)
++#define CONFIG_SYS_ATA_ALT_OFFSET     (0x0100)
++/* Each 8-bit ATA register is aligned to a 4-bytes address */
++#define CONFIG_SYS_ATA_STRIDE         4
++/* Controller supports 48-bits LBA addressing */
++#define CONFIG_LBA48
++/* CONFIG_CMD_IDE requires some #defines for ATA registers */
++#define CONFIG_SYS_IDE_MAXBUS         1
++#define CONFIG_SYS_IDE_MAXDEVICE      1
++/* ATA registers base is at SATA controller base */
++#define CONFIG_SYS_ATA_BASE_ADDR      KW_SATA_BASE
++/* ATA bus 0 is Kirkwood port 1 on sheevaplug */
++#define CONFIG_SYS_ATA_IDE0_OFFSET    KW_SATA_PORT1_OFFSET
++#endif /* CONFIG_CMD_IDE */
++
++/*
+  * File system
+  */
+ #define CONFIG_CMD_EXT2
diff --git a/patches/kerma-sheevaplug-mvsdio.diff b/patches/kerma-sheevaplug-mvsdio.diff
new file mode 100644 (file)
index 0000000..1c373a7
--- /dev/null
@@ -0,0 +1,1156 @@
+This patch has been tweaked a lot to apply
+==========================================
+
+    Add mvsdio driver to Kirkwood SoC
+    Add SDIO support to SHEEVAPLUG
+    Fix environments for SHEEVAPLUG
+
+Signed-off-by: Gérald Kerma <geraker at gmail.com>
+---
+Changes in v1:
+ * Fix errors from SD/SDHC detect
+ * Minor fixes in boot env
+
+ arch/arm/cpu/arm926ejs/kirkwood/timer.c       |   23 +
+ arch/arm/include/asm/arch-kirkwood/kirkwood.h |    1 +
+ drivers/mmc/Makefile                          |    1 +
+ drivers/mmc/mv_sdio.c                         |  747 +++++++++++++++++++++++++
+ drivers/mmc/mv_sdio.h                         |  296 ++++++++++
+ include/configs/sheevaplug.h                  |   65 ++-
+ 6 files changed, 1124 insertions(+), 9 deletions(-)
+
+--- a/arch/arm/include/asm/arch-kirkwood/kirkwood.h
++++ b/arch/arm/include/asm/arch-kirkwood/kirkwood.h
+@@ -55,6 +55,7 @@
+ #define KW_EGIGA0_BASE                        (KW_REGISTER(0x72000))
+ #define KW_EGIGA1_BASE                        (KW_REGISTER(0x76000))
+ #define KW_SATA_BASE                  (KW_REGISTER(0x80000))
++#define KW_SDIO_BASE                  (KW_REGISTER(0x90000))
+ /* Kirkwood Sata controller has two ports */
+ #define KW_SATA_PORT0_OFFSET          0x2000
+--- a/drivers/mmc/Makefile
++++ b/drivers/mmc/Makefile
+@@ -34,6 +34,7 @@
+ COBJS-$(CONFIG_MMC_SPI) += mmc_spi.o
+ COBJS-$(CONFIG_ARM_PL180_MMCI) += arm_pl180_mmci.o
+ COBJS-$(CONFIG_MV_SDHCI) += mv_sdhci.o
++COBJS-$(CONFIG_MV_SDIO) += mv_sdio.o
+ COBJS-$(CONFIG_MXC_MMC) += mxcmmc.o
+ COBJS-$(CONFIG_MXS_MMC) += mxsmmc.o
+ COBJS-$(CONFIG_OMAP_HSMMC) += omap_hsmmc.o
+--- /dev/null
++++ b/drivers/mmc/mv_sdio.c
+@@ -0,0 +1,747 @@
++/*
++ * (C) Copyright 2003
++ * Kyle Harris, Nexus Technologies, Inc. kharris at nexus-tech.net
++ * Copyright (C) 2010 G?rald Kerma <geraker at gmail.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 <config.h>
++#include <common.h>
++#include <malloc.h>
++#include <mmc.h>
++#include "mv_sdio.h"
++#include <asm/errno.h>
++#include <part.h>
++#include <asm/io.h>
++#include <asm/arch/kirkwood.h>
++
++#ifdef CONFIG_MMC
++
++#define DRIVER_NAME "mv-sdio"
++
++//#define DEBUG
++
++//static int maxfreq = MVSD_CLOCKRATE_MAX;
++//static int nodma;
++
++static int is_sdhc;
++
++extern int fat_register_device(block_dev_desc_t *dev_desc, int part_no);
++
++static block_dev_desc_t mmc_dev;
++
++block_dev_desc_t * mmc_get_dev(int dev)
++{
++      return ((block_dev_desc_t *)&mmc_dev);
++}
++
++/*
++ * FIXME needs to read cid and csd info to determine block size
++ * and other parameters
++ */
++static uchar mmc_buf[MMC_BLOCK_SIZE];
++static mv_mmc_csd_t mv_mmc_csd;
++static int mmc_ready = 0;
++
++/* MMC_DEFAULT_RCA should probably be just 1, but this may break other code
++   that expects it to be shifted. */
++static u_int16_t rca = 0;
++
++static u_int32_t mv_mmc_size(const struct mv_mmc_csd *csd)
++{
++      u_int32_t block_len, mult, blocknr;
++
++      block_len = csd->read_bl_len << 12;
++      mult = csd->c_size_mult1 << 8;
++      blocknr = (csd->c_size+1) * mult;
++
++      return blocknr * block_len;
++}
++
++static int isprint (unsigned char ch)
++{
++      if (ch >= 32 && ch < 127)
++              return (1);
++
++      return (0);
++}
++
++static int toprint(char *dst, char c)
++{
++      if (isprint(c)) {
++              *dst = c;
++              return 1;
++      }
++
++      return sprintf(dst,"\\x%02x", c);
++
++}
++
++static void print_mmc_cid(mv_mmc_cid_t *cid)
++{
++      printf("MMC found. Card desciption is:\n");
++      printf("Manufacturer ID = %02x%02x%02x\n",
++              cid->id[0], cid->id[1], cid->id[2]);
++      printf("HW/FW Revision = %x %x\n",cid->hwrev, cid->fwrev);
++      cid->hwrev = cid->fwrev = 0;    /* null terminate string */
++      printf("Product Name = %s\n",cid->name);
++      printf("Serial Number = %02x%02x%02x\n",
++              cid->sn[0], cid->sn[1], cid->sn[2]);
++      printf("Month = %d\n",cid->month);
++      printf("Year = %d\n",1997 + cid->year);
++}
++
++static void print_sd_cid(mv_sd_cid_t *cid)
++{
++      int len;
++      char tbuf[64];
++
++      printf("SD%s found. Card desciption is:\n", is_sdhc?"HC":"");
++
++      len = 0;
++      len += toprint(&tbuf[len], cid->oid_0);
++      len += toprint(&tbuf[len], cid->oid_1);
++      tbuf[len] = 0;
++
++      printf("Manufacturer:       0x%02x, OEM \"%s\"\n",
++          cid->mid, tbuf);
++
++      len = 0;
++      len += toprint(&tbuf[len], cid->pnm_0);
++      len += toprint(&tbuf[len], cid->pnm_1);
++      len += toprint(&tbuf[len], cid->pnm_2);
++      len += toprint(&tbuf[len], cid->pnm_3);
++      len += toprint(&tbuf[len], cid->pnm_4);
++      tbuf[len] = 0;
++
++      printf("Product name:       \"%s\", revision %d.%d\n",
++              tbuf,
++          cid->prv >> 4, cid->prv & 15);
++
++      printf("Serial number:      %u\n",
++          cid->psn_0 << 24 | cid->psn_1 << 16 | cid->psn_2 << 8 |
++          cid->psn_3);
++      printf("Manufacturing date: %d/%d\n",
++          cid->mdt_1 & 15,
++          2000+((cid->mdt_0 & 15) << 4)+((cid->mdt_1 & 0xf0) >> 4));
++
++      printf("CRC:                0x%02x, b0 = %d\n",
++          cid->crc >> 1, cid->crc & 1);
++}
++
++static void mvsdio_set_clock(unsigned int clock)
++{
++      unsigned int m;
++
++      m = MVSDMMC_BASE_FAST_CLOCK/(2*clock) - 1;
++
++      debug("mvsdio_set_clock: dividor = 0x%x clock=%d\n",
++                    m, clock);
++
++
++      SDIO_REG_WRITE32(SDIO_CLK_DIV, m & 0x7ff);
++
++      if (isprint(1))
++      udelay(10*1000);
++}
++
++/****************************************************/
++static ulong * mv_mmc_cmd(ulong cmd, ulong arg, ushort xfermode, ushort resptype, ushort waittype)
++/****************************************************/
++{
++      static ulong resp[4];
++      ushort done ;
++      int err = 0 ;
++      ulong curr, start, diff, hz;
++      ushort response[8], resp_indx = 0;
++
++      debug("mv_mmc_cmd %x, arg: %x,xfer: %x,resp: %x, wait : %x\n"
++      , (unsigned int)cmd, (unsigned int)arg, xfermode, resptype, waittype);
++
++
++      //clear status
++      SDIO_REG_WRITE16(SDIO_NOR_INTR_STATUS, 0xffff);
++      SDIO_REG_WRITE16(SDIO_ERR_INTR_STATUS, 0xffff);
++
++      start = get_ticks();
++      hz = get_tbclk();
++
++      while((SDIO_REG_READ16(SDIO_PRESENT_STATE0) & CARD_BUSY)) {
++              curr = get_ticks();
++              diff = (long) curr - (long) start;
++              if (diff > (3*hz))
++              {
++                      // 3 seconds timeout, card busy, can't sent cmd
++                      printf("card too busy \n");
++                      return 0;
++              }
++      }
++
++      SDIO_REG_WRITE16(SDIO_ARG_LOW, (ushort)(arg&0xffff) );
++      SDIO_REG_WRITE16(SDIO_ARG_HI, (ushort)(arg>>16) );
++      SDIO_REG_WRITE16(SDIO_XFER_MODE, xfermode);
++      if( (cmd == MMC_CMD_READ_BLOCK) || (cmd == 25) )
++      {
++              SDIO_REG_WRITE16(SDIO_CMD, ((cmd << 8) | resptype | 0x3c ) );
++      debug("cmd reg : %x\n", SDIO_REG_READ16( SDIO_CMD )) ;
++
++      }
++      else
++      {
++              SDIO_REG_WRITE16(SDIO_CMD, ((cmd << 8) | resptype ) );
++      }
++
++      done = SDIO_REG_READ16(SDIO_NOR_INTR_STATUS) & waittype;
++      start = get_ticks();
++
++      while( done!=waittype)
++      {
++              done = SDIO_REG_READ16(SDIO_NOR_INTR_STATUS) & waittype;
++
++              if( SDIO_REG_READ16(SDIO_NOR_INTR_STATUS) & 0x8000 )
++              {               
++                      debug("Error! cmd : %d, err : %04x\n", (unsigned int)cmd, SDIO_REG_READ16(SDIO_ERR_INTR_STATUS) ) ;
++
++                      return 0 ;      // error happen
++              }
++
++              curr = get_ticks();
++              diff = (long) curr - (long) start;
++              if (diff > (3*hz))
++              {
++                      debug("cmd timeout, status : %04x\n", SDIO_REG_READ16(SDIO_NOR_INTR_STATUS));
++                      debug("xfer mode : %04x\n", SDIO_REG_READ16(SDIO_XFER_MODE));
++
++                      err = 1 ;
++                      break;
++              }
++      }
++
++      for (resp_indx = 0 ; resp_indx < 8; resp_indx++)
++              response[resp_indx] = SDIO_REG_READ16(SDIO_RSP(resp_indx));
++
++      memset(resp, 0, sizeof(resp));
++
++      switch (resptype & 0x3) {
++              case SDIO_CMD_RSP_48:
++              case SDIO_CMD_RSP_48BUSY:
++                      resp[0] = ((response[2] & 0x3f) << (8 - 8)) |
++                              ((response[1] & 0xffff) << (14 - 8)) |
++                              ((response[0] & 0x3ff) << (30 - 8));
++                      resp[1] = ((response[0] & 0xfc00) >> 10);
++                      break;
++
++              case SDIO_CMD_RSP_136:
++                      resp[3] = ((response[7] & 0x3fff) << 8) |
++                              ((response[6] & 0x3ff) << 22);
++                      resp[2] = ((response[6] & 0xfc00) >> 10)        |
++                              ((response[5] & 0xffff) << 6)   |
++                              ((response[4] & 0x3ff) << 22);
++                      resp[1] = ((response[4] & 0xfc00) >> 10)        |
++                              ((response[3] & 0xffff) << 6)   |
++                              ((response[2] & 0x3ff) << 22);
++                      resp[0] = ((response[2] & 0xfc00) >> 10)        |
++                              ((response[1] & 0xffff) << 6)   |
++                              ((response[0] & 0x3ff) << 22);
++                      break;
++              default:
++                      return 0;
++      }
++      int i;
++      debug("MMC resp :");
++      for (i=0; i<4; ++i ) {
++              debug(" %08x", (unsigned int)resp[i]);
++      }
++      debug("\n");
++      if( err )
++              return NULL ;
++      else
++              return resp;
++}
++
++/****************************************************/
++static int mv_mmc_block_read(uchar *dst, ulong src, ulong len)
++/****************************************************/
++{
++      ulong *resp;
++      //ushort argh, argl;
++      //ulong status;
++
++      if (len == 0) {
++              return 0;
++      }
++
++      if (is_sdhc) {
++              /* SDHC: use block address */
++              src >>= 9;
++      }
++
++      debug("mmc_block_rd dst %lx src %lx len %d\n", (ulong)dst, src, (int)len);
++
++      // prepare for dma transfer
++      SDIO_REG_WRITE16(SDIO_SYS_ADDR_LOW,((ulong)(dst))&0xffff);
++      SDIO_REG_WRITE16(SDIO_SYS_ADDR_HI,(((ulong)dst)>>16)&0xffff);
++      SDIO_REG_WRITE16(SDIO_BLK_SIZE,len);
++      SDIO_REG_WRITE16(SDIO_BLK_COUNT,1);
++      
++      /* send read command */
++      resp = mv_mmc_cmd(MMC_CMD_READ_BLOCK, src, 0x10 , // 0x12,
++                      SDIO_CMD_RSP_48, SDIO_NOR_XFER_DONE);
++      if (!resp) {
++              debug("mv_mmc_block_read: mmc read block cmd fails\n");
++              return -EIO;
++      }
++
++      return 0;
++}
++
++/****************************************************/
++static int mv_mmc_block_write(ulong dst, uchar *src, int len)
++/****************************************************/
++{
++      return -1 ;
++}
++
++/****************************************************/
++int mv_mmc_read(ulong src, uchar *dst, int size)
++/****************************************************/
++{
++      ulong end, part_start, part_end, part_len, aligned_start, aligned_end;
++      ulong mmc_block_size, mmc_block_address;
++
++      if (size == 0) {
++              return 0;
++      }
++
++      if (!mmc_ready) {
++              printf("Please initial the MMC first\n");
++              return -1;
++      }
++
++      mmc_block_size = MMC_BLOCK_SIZE;
++      mmc_block_address = ~(mmc_block_size - 1);
++
++      end = src + size;
++      part_start = ~mmc_block_address & src;
++      part_end = ~mmc_block_address & end;
++      aligned_start = mmc_block_address & src;
++      aligned_end = mmc_block_address & end;
++
++      /* all block aligned accesses */
++      debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
++      (long unsigned int)src,(ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
++
++      if (part_start) {
++              part_len = mmc_block_size - part_start;
++              debug("ps src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
++              (long unsigned int)src,(ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
++
++              if ((mv_mmc_block_read(mmc_buf, aligned_start, mmc_block_size)) < 0) {
++                      return -1;
++              }
++              memcpy(dst, mmc_buf+part_start, part_len);
++              dst += part_len;
++              src += part_len;
++      }
++      debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
++      (long unsigned int)src,(ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
++
++      for (; src < aligned_end; aligned_start +=mmc_block_size, src += mmc_block_size, dst += mmc_block_size) {
++              debug("al src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
++              (long unsigned int)src,(ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
++
++              if ((mv_mmc_block_read(mmc_buf, aligned_start, mmc_block_size)) < 0) {
++                      printf("mmc block read error\n");
++                      return -1;
++              }
++              //printf("mem copy from %x to %x, size %d\n", (ulong)mmc_buf, (ulong)dst, mmc_block_size );
++              memcpy(dst, mmc_buf, mmc_block_size);
++      }
++      debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
++      (long unsigned int)src,(ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
++
++      if (part_end && src < end) {
++              debug("pe src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
++              (long unsigned int)src,(ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
++
++              if ((mv_mmc_block_read(mmc_buf, aligned_end, mmc_block_size)) < 0) {
++                      return -1;
++              }
++              memcpy(dst, mmc_buf, part_end);
++      }
++      return 0;
++}
++
++/****************************************************/
++static int mv_mmc_write(uchar *src, ulong dst, int size)
++/****************************************************/
++{
++      ulong end, part_start, part_end, part_len, aligned_start, aligned_end;
++      ulong mmc_block_size, mmc_block_address;
++
++      if (size == 0) {
++              return 0;
++      }
++
++      if (!mmc_ready) {
++              printf("Please initial the MMC first\n");
++              return -1;
++      }
++
++      mmc_block_size = MMC_BLOCK_SIZE;
++      mmc_block_address = ~(mmc_block_size - 1);
++
++      end = dst + size;
++      part_start = ~mmc_block_address & dst;
++      part_end = ~mmc_block_address & end;
++      aligned_start = mmc_block_address & dst;
++      aligned_end = mmc_block_address & end;
++
++      /* all block aligned accesses */
++      debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
++      (long unsigned int)src,(ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
++
++      if (part_start) {
++              part_len = mmc_block_size - part_start;
++              debug("ps src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
++              (ulong)src, dst, end, part_start, part_end, aligned_start, aligned_end);
++
++              if ((mv_mmc_block_read(mmc_buf, aligned_start, mmc_block_size)) < 0) {
++                      return -1;
++              }
++              memcpy(mmc_buf+part_start, src, part_len);
++              if ((mv_mmc_block_write(aligned_start, mmc_buf, mmc_block_size)) < 0) {
++                      return -1;
++              }
++              dst += part_len;
++              src += part_len;
++      }
++      debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
++      (long unsigned int)src,(ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
++
++      for (; dst < aligned_end; src += mmc_block_size, dst += mmc_block_size) {
++              debug("al src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
++              (long unsigned int)src,(ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
++
++              if ((mv_mmc_block_write(dst, (uchar *)src, mmc_block_size)) < 0) {
++                      return -1;
++              }
++      }
++      debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
++      (long unsigned int)src,(ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
++
++      if (part_end && dst < end) {
++              debug("pe src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
++              (long unsigned int)src,(ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
++
++              if ((mv_mmc_block_read(mmc_buf, aligned_end, mmc_block_size)) < 0) {
++                      return -1;
++              }
++              memcpy(mmc_buf, src, part_end);
++              if ((mv_mmc_block_write(aligned_end, mmc_buf, mmc_block_size)) < 0) {
++                      return -1;
++              }
++      }
++      return 0;
++}
++
++/****************************************************/
++static ulong mv_mmc_bread(int dev_num, ulong blknr, ulong blkcnt, ulong *dst)
++/****************************************************/
++{
++      int mmc_block_size = MMC_BLOCK_SIZE;
++      ulong src = blknr * mmc_block_size;
++
++      mv_mmc_read(src, (uchar *)dst, blkcnt*mmc_block_size);
++      return blkcnt;
++}
++
++/****************************************************/
++int mmc_legacy_init(int verbose)
++/****************************************************/
++{
++      int retries, rc = -ENODEV;
++      ulong *resp;
++      int sd_ver20;
++      int is_sd;
++      ushort reg;
++      uchar cidbuf[64];
++
++      sd_ver20 = 0;
++      is_sdhc = 0;
++      is_sd = 0;
++
++      // Initial Host Ctrl : Timeout : max , Normal Speed mode, 4-bit data mode
++      // Big Endian, SD memory Card, Push_pull CMD Line
++      SDIO_REG_WRITE16(SDIO_HOST_CTRL,
++              SDIO_HOST_CTRL_TMOUT(0xf) |
++              SDIO_HOST_CTRL_DATA_WIDTH_4_BITS |
++              SDIO_HOST_CTRL_BIG_ENDIAN |
++              SDIO_HOST_CTRL_PUSH_PULL_EN |
++              SDIO_HOST_CTRL_CARD_TYPE_MEM_ONLY );
++
++      SDIO_REG_WRITE16(SDIO_CLK_CTRL, 0);
++
++      //enable status
++      SDIO_REG_WRITE16(SDIO_NOR_STATUS_EN, 0xffff);
++      SDIO_REG_WRITE16(SDIO_ERR_STATUS_EN, 0xffff);
++
++      //disable interrupts
++      SDIO_REG_WRITE16(SDIO_NOR_INTR_EN, 0);
++      SDIO_REG_WRITE16(SDIO_ERR_INTR_EN, 0);
++
++      SDIO_REG_WRITE16(SDIO_SW_RESET,0x100);
++      udelay(10000);
++
++      mv_mmc_csd.c_size = 0;
++
++      /* reset */
++      retries = 10;
++      //mv_mmc_cmd(ulong cmd, ulong arg, ushort xfermode, ushort resptype, ushort waittype);
++      resp = mv_mmc_cmd(0, 0, 0, SDIO_CMD_RSP_NONE, SDIO_NOR_CMD_DONE );
++      debug("cmd 0 resp : %08x %08x %08x %08x\n",
++      (unsigned int)resp[0], (unsigned int)resp[1], (unsigned int)resp[2], (unsigned int)resp[3] );
++
++
++      debug ("trying to detect SD card version\n");
++
++      resp = mv_mmc_cmd(8, 0x000001aa, 0,  SDIO_CMD_RSP_48, SDIO_NOR_CMD_DONE );
++      debug("cmd 8 resp : %08x %08x %08x %08x\n",
++      (unsigned int)resp[0], (unsigned int)resp[1], (unsigned int)resp[2], (unsigned int)resp[3] );
++
++      if (resp && (resp[0] & 0x1ff)==0x1aa) {
++              debug ("SD version 2.0 card detected\n");
++
++              sd_ver20 = 1;
++      }
++
++      if (sd_ver20)
++              retries = 50;
++      else
++              retries = 10;
++
++      while (retries--) {
++              resp = mv_mmc_cmd(55, 0, 0,  SDIO_CMD_RSP_48, SDIO_NOR_CMD_DONE );
++              debug("cmd 55 resp : %08x %08x %08x %08x\n",
++              (unsigned int)resp[0], (unsigned int)resp[1], (unsigned int)resp[2], (unsigned int)resp[3] );
++
++
++              if (sd_ver20)
++                      resp = mv_mmc_cmd(41, 0x40300000, 0,  SDIO_CMD_RSP_48, SDIO_NOR_CMD_DONE );
++              else
++                      resp = mv_mmc_cmd(41, 0x00300000, 0,  SDIO_CMD_RSP_48, SDIO_NOR_CMD_DONE );
++
++              debug("cmd 41 resp : %08x %08x %08x %08x\n",
++              (unsigned int)resp[0], (unsigned int)resp[1], (unsigned int)resp[2], (unsigned int)resp[3] );
++
++
++              if (resp && (resp[0] & 0x80000000)) {
++                      debug ("detected SD card\n");
++
++                      is_sd = 1;
++                      break;
++              }
++
++              udelay(100*1000);
++      }
++
++      if (retries <= 0 && !is_sd) {
++              debug ("failed to detect SD card, trying MMC\n");
++
++              retries = 10;
++              while (retries--) {
++                      resp = mv_mmc_cmd(1, 0, 0,  SDIO_CMD_RSP_48, SDIO_NOR_CMD_DONE );
++                      debug("cmd 01 resp : %08x %08x %08x %08x\n",
++                      (unsigned int)resp[0], (unsigned int)resp[1], (unsigned int)resp[2], (unsigned int)resp[3] );
++
++
++                      if (resp && (resp[0] & 0x80000000)) {
++                              printf ("detected MMC card\n");
++                              reg = SDIO_REG_READ16(SDIO_HOST_CTRL);
++                              reg &= ~(0x3<<1);
++                              reg |= SDIO_HOST_CTRL_CARD_TYPE_IO_MMC;
++                              SDIO_REG_WRITE16(SDIO_HOST_CTRL, reg);
++                              break;
++                      }
++
++                      udelay(100*1000);
++              }
++      }
++              
++      if (retries <= 0) {
++              debug ("detect fails\n");
++
++              return -ENODEV;
++      }
++
++      /* try to get card id */
++      resp = mv_mmc_cmd(2, 0, 0, SDIO_CMD_RSP_136, SDIO_NOR_CMD_DONE );
++      debug("cmd 2 resp : %08x %08x %08x %08x\n",
++      (unsigned int)resp[0], (unsigned int)resp[1], (unsigned int)resp[2], (unsigned int)resp[3] );
++
++
++      if (resp == NULL) {
++              debug ("read cid fails\n");
++
++              return -ENODEV;
++      }
++
++      if (is_sd) {
++              mv_sd_cid_t *cid = (mv_sd_cid_t *) resp;
++
++              memcpy(cidbuf, resp, sizeof(mv_sd_cid_t));
++
++              sprintf((char *) mmc_dev.vendor,
++                      "Man %02x OEM %c%c \"%c%c%c%c%c\"",
++                      cid->mid, cid->oid_0, cid->oid_1,
++                      cid->pnm_0, cid->pnm_1, cid->pnm_2, cid->pnm_3, cid->pnm_4);
++
++              sprintf((char *) mmc_dev.product, "%d",
++                      (cid->psn_0 << 24) | (cid->psn_1 <<16) | (cid->psn_2 << 8) | (cid->psn_3 << 8));
++              
++              sprintf((char *) mmc_dev.revision, "%d.%d", cid->prv>>4, cid->prv & 0xff);
++              
++      } else {
++              /* TODO configure mmc driver depending on card attributes */
++              mv_mmc_cid_t *cid = (mv_mmc_cid_t *) resp;
++
++              memcpy(cidbuf, resp, sizeof(mv_sd_cid_t));
++
++
++              sprintf((char *) mmc_dev.vendor,
++                      "Man %02x%02x%02x Snr %02x%02x%02x",
++                      cid->id[0], cid->id[1], cid->id[2],
++                      cid->sn[0], cid->sn[1], cid->sn[2]);
++              sprintf((char *) mmc_dev.product, "%s", cid->name);
++              sprintf((char *) mmc_dev.revision, "%x %x", cid->hwrev, cid->fwrev);
++      }
++      
++      /* fill in device description */
++      mmc_dev.if_type = IF_TYPE_MMC;
++      mmc_dev.part_type = PART_TYPE_DOS;
++      mmc_dev.dev = 0;
++      mmc_dev.lun = 0;
++      mmc_dev.type = 0;
++
++      /* FIXME fill in the correct size (is set to 128MByte) */
++      mmc_dev.blksz = MMC_BLOCK_SIZE;
++      mmc_dev.lba = 0x10000;
++
++      mmc_dev.removable = 0;
++      mmc_dev.block_read = mv_mmc_bread;
++
++      /* MMC exists, get CSD too */
++      resp = mv_mmc_cmd(MMC_CMD_SET_RCA, 0, 0, SDIO_CMD_RSP_48, SDIO_NOR_CMD_DONE );
++      if (resp == NULL) {
++              debug ("set rca fails\n");
++
++              return -ENODEV;
++      }
++      debug("cmd3 resp : 0x%08x 0x%08x 0x%08x 0x%08x\n",
++      (unsigned int)resp[0], (unsigned int)resp[1], (unsigned int)resp[2], (unsigned int)resp[3]);
++
++
++      if (is_sd)
++              rca = resp[0] >> 16;
++      else
++              rca = 0;
++
++      resp = mv_mmc_cmd(MMC_CMD_SEND_CSD, rca<<16, 0, SDIO_CMD_RSP_136,SDIO_NOR_CMD_DONE );
++      debug("cmd 9 resp : %08x %08x %08x %08x\n",
++      (unsigned int)resp[0], (unsigned int)resp[1], (unsigned int)resp[2], (unsigned int)resp[3] );
++
++      if (resp == NULL) {
++              debug ("read csd fails\n");
++
++              return -ENODEV;
++      }
++
++      memcpy(&mv_mmc_csd, (mv_mmc_csd_t *) resp, sizeof(mv_mmc_csd_t));
++      rc = 0;
++      mmc_ready = 1;
++
++      /* FIXME add verbose printout for csd */
++      debug ("size = %u\n", mv_mmc_size(&mv_mmc_csd));
++
++
++      resp = mv_mmc_cmd(7, rca<<16, 0, SDIO_CMD_RSP_48BUSY, SDIO_NOR_CMD_DONE);
++      if (resp == NULL) {
++              debug ("select card fails\n");
++
++              return -ENODEV;
++      }
++      debug("cmd 7 resp : %08x %08x %08x %08x\n",
++      (unsigned int)resp[0], (unsigned int)resp[1], (unsigned int)resp[2], (unsigned int)resp[3] );
++
++
++      if (is_sd) {
++              resp = mv_mmc_cmd(55, rca<<16, 0,  SDIO_CMD_RSP_48, SDIO_NOR_CMD_DONE );
++              if (resp == NULL) {
++                      debug ("cmd55 fails\n");
++
++                      return -ENODEV;
++              }
++              debug("cmd55 resp : 0x%08x 0x%08x 0x%08x 0x%08x\n",
++              (unsigned int)resp[0], (unsigned int)resp[1], (unsigned int)resp[2], (unsigned int)resp[3]);
++
++
++              resp = mv_mmc_cmd(6, (rca<<16) | 0x2 , 0, SDIO_CMD_RSP_48, SDIO_NOR_CMD_DONE );
++              if (resp == NULL) {
++                      debug ("cmd55 fails\n");
++
++                      return -ENODEV;
++              }
++      debug("cmd6 resp : 0x%08x 0x%08x 0x%08x 0x%08x\n",
++      (unsigned int)resp[0], (unsigned int)resp[1], (unsigned int)resp[2], (unsigned int)resp[3]);
++
++      }
++
++      resp = (ulong *) &mv_mmc_csd;
++      debug("csd: 0x%08x 0x%08x 0x%08x 0x%08x\n",
++      (unsigned int)resp[0], (unsigned int)resp[1], (unsigned int)resp[2], (unsigned int)resp[3]);
++
++
++      /* check SDHC */
++      if ((resp[0]&0xf0000000)==0x40000000)
++              is_sdhc = 1;
++
++      /* set block len */
++      resp = mv_mmc_cmd(MMC_CMD_SET_BLOCKLEN, MMC_BLOCK_SIZE, 0, SDIO_CMD_RSP_48, SDIO_NOR_CMD_DONE );
++      if (!resp) {
++              debug("mv_mmc_block_read: set blk len fails\n");
++              return -ENODEV;
++      }
++
++      if (verbose) {
++              if (is_sd)
++                      print_sd_cid((mv_sd_cid_t *) cidbuf);
++              else
++                      print_mmc_cid((mv_mmc_cid_t *) cidbuf);
++      }
++
++      mvsdio_set_clock(CONFIG_SYS_MMC_CLK_PP);
++
++      fat_register_device(&mmc_dev,1); /* partitions start counting with 1 */
++
++      return 0;
++}
++
++#endif        /* CONFIG_MMC */
++
+--- /dev/null
++++ b/drivers/mmc/mv_sdio.h
+@@ -0,0 +1,296 @@
++/*
++ * Copyright (C) 2008 Marvell Semiconductors, All Rights Reserved.
++ * Copyright (C) 2010 G?rald Kerma <gerald.kerma at gk2.net>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ */
++
++#ifndef _MVSDIO_INCLUDE
++#define _MVSDIO_INCLUDE
++
++#define SDIO_REG(x) (KW_SDIO_BASE + (x))
++
++#define SDIO_REG_WRITE32(offset,value) writel(value,SDIO_REG(offset))
++#define SDIO_REG_READ32(offset) readl(SDIO_REG(offset))
++
++#define SDIO_REG_WRITE16(offset,value) writew(value,SDIO_REG(offset))
++#define SDIO_REG_READ16(offset) readw(SDIO_REG(offset))
++
++#define MVSDMMC_DMA_SIZE                      65536
++#define MVSDMMC_CMD_TIMEOUT                   2 /* 100 usec*/
++
++/*
++ * Clock rates
++ */
++
++#define MVSD_CLOCKRATE_MAX                    50000000
++#define MVSD_BASE_DIV_MAX                     0x7ff
++
++#define CONFIG_SYS_MMC_CLK_PP                 25000000
++
++/*
++ * The base MMC clock rate
++ */
++
++#define MVSDMMC_CLOCKRATE_MIN                 100000
++#define MVSDMMC_CLOCKRATE_MAX                 MVSD_CLOCKRATE_MAX
++#define MVSDMMC_BASE_FAST_CLOCK                       CONFIG_SYS_TCLK
++
++
++/*
++ * SDIO register
++ */
++
++#define SDIO_SYS_ADDR_LOW                     0x000
++#define SDIO_SYS_ADDR_HI                      0x004
++#define SDIO_BLK_SIZE                         0x008
++#define SDIO_BLK_COUNT                                0x00c
++#define SDIO_ARG_LOW                          0x010
++#define SDIO_ARG_HI                           0x014
++#define SDIO_XFER_MODE                                0x018
++#define SDIO_CMD                              0x01c
++#define SDIO_RSP(i)                           (0x020 + ((i)<<2))
++#define SDIO_RSP0                             0x020
++#define SDIO_RSP1                             0x024
++#define SDIO_RSP2                             0x028
++#define SDIO_RSP3                             0x02c
++#define SDIO_RSP4                             0x030
++#define SDIO_RSP5                             0x034
++#define SDIO_RSP6                             0x038
++#define SDIO_RSP7                             0x03c
++#define SDIO_BUF_DATA_PORT                    0x040
++#define SDIO_RSVED                            0x044
++
++#define SDIO_PRESENT_STATE0                   0x048
++#define SDIO_PRESENT_STATE1                   0x04c
++#define SDIO_HOST_CTRL                                0x050
++#define SDIO_BLK_GAP_CTRL                     0x054
++#define SDIO_CLK_CTRL                         0x058
++#define SDIO_SW_RESET                         0x05c
++#define SDIO_NOR_INTR_STATUS                  0x060
++#define SDIO_ERR_INTR_STATUS                  0x064
++#define SDIO_NOR_STATUS_EN                    0x068
++#define SDIO_ERR_STATUS_EN                    0x06c
++#define SDIO_NOR_INTR_EN                      0x070
++#define SDIO_ERR_INTR_EN                      0x074
++#define SDIO_AUTOCMD12_ERR_STATUS             0x078
++#define SDIO_CURR_BYTE_LEFT                   0x07c
++#define SDIO_CURR_BLK_LEFT                    0x080
++#define SDIO_AUTOCMD12_ARG_LOW                        0x084
++#define SDIO_AUTOCMD12_ARG_HI                 0x088
++#define SDIO_AUTOCMD12_INDEX                  0x08c
++#define SDIO_AUTO_RSP(i)                      (0x090 + ((i)<<2))
++#define SDIO_AUTO_RSP0                                0x090
++#define SDIO_AUTO_RSP1                                0x094
++#define SDIO_AUTO_RSP2                                0x098
++#define SDIO_CLK_DIV                          0x128
++
++#define WINDOW_CTRL(i)                                (0x108 + ((i) << 3))
++#define WINDOW_BASE(i)                                (0x10c + ((i) << 3))
++
++
++/*
++ * SDIO_PRESENT_STATE
++ */
++
++#define CARD_BUSY                             (1 << 1)
++#define CMD_INHIBIT                           (1 << 0)
++#define CMD_TXACTIVE                          (1 << 8)
++#define CMD_RXACTIVE                          (1 << 9)
++#define CMD_AUTOCMD12ACTIVE                   (1 << 14)
++
++#define CMD_BUS_BUSY                          (CMD_AUTOCMD12ACTIVE|   \
++                                              CMD_RXACTIVE|   \
++                                              CMD_TXACTIVE|   \
++                                              CMD_INHIBIT|    \
++                                              CARD_BUSY)
++
++/*
++ * SDIO_CMD
++ */
++
++#define SDIO_CMD_RSP_NONE                     (0 << 0)
++#define SDIO_CMD_RSP_136                      (1 << 0)
++#define SDIO_CMD_RSP_48                               (2 << 0)
++#define SDIO_CMD_RSP_48BUSY                   (3 << 0)
++
++#define SDIO_CMD_CHECK_DATACRC16              (1 << 2)
++#define SDIO_CMD_CHECK_CMDCRC                 (1 << 3)
++#define SDIO_CMD_INDX_CHECK                   (1 << 4)
++#define SDIO_CMD_DATA_PRESENT                 (1 << 5)
++#define SDIO_UNEXPECTED_RESP                  (1 << 7)
++
++
++/*
++ * SDIO_XFER_MODE
++ */
++
++#define SDIO_XFER_MODE_STOP_CLK                       (1 << 5)
++#define SDIO_XFER_MODE_HW_WR_DATA_EN          (1 << 1)
++#define SDIO_XFER_MODE_AUTO_CMD12             (1 << 2)
++#define SDIO_XFER_MODE_INT_CHK_EN             (1 << 3)
++#define SDIO_XFER_MODE_TO_HOST                        (1 << 4)
++
++
++/*
++ * SDIO_HOST_CTRL
++ */
++
++#define SDIO_HOST_CTRL_PUSH_PULL_EN           (1 << 0)
++
++#define SDIO_HOST_CTRL_CARD_TYPE_MEM_ONLY     (0 << 1)
++#define SDIO_HOST_CTRL_CARD_TYPE_IO_ONLY      (1 << 1)
++#define SDIO_HOST_CTRL_CARD_TYPE_IO_MEM_COMBO         (2 << 1)
++#define SDIO_HOST_CTRL_CARD_TYPE_IO_MMC       (3 << 1)
++#define SDIO_HOST_CTRL_CARD_TYPE_MASK         (3 << 1)
++
++#define SDIO_HOST_CTRL_BIG_ENDIAN             (1 << 3)
++#define SDIO_HOST_CTRL_LSB_FIRST              (1 << 4)
++#define SDIO_HOST_CTRL_ID_MODE_LOW_FREQ       (1 << 5)
++#define SDIO_HOST_CTRL_HALF_SPEED             (1 << 6)
++#define SDIO_HOST_CTRL_DATA_WIDTH_4_BITS      (1 << 9)
++#define SDIO_HOST_CTRL_HI_SPEED_EN            (1 << 10)
++
++
++#define SDIO_HOST_CTRL_TMOUT_MASK             (0xf << 11)
++#define SDIO_HOST_CTRL_TMOUT_MAX              (0xf << 11)
++#define SDIO_HOST_CTRL_TMOUT(x)               ((x) << 11)
++#define SDIO_HOST_CTRL_TMOUT_EN               (1 << 15)
++
++#define SDIO_HOST_CTRL_DFAULT_OPEN_DRAIN      \
++              (SDIO_HOST_CTRL_TMOUT(x)(0xf))
++#define SDIO_HOST_CTRL_DFAULT_PUSH_PULL       \
++              (SDIO_HOST_CTRL_TMOUT(x)(0xf) | SDIO_HOST_CTRL_PUSH_PULL_EN)
++
++
++/*
++ * NOR status bits
++ */
++
++#define SDIO_NOR_ERROR                                (1 << 15)
++#define SDIO_NOR_UNEXP_RSP                    (1 << 14)
++#define SDIO_NOR_AUTOCMD12_DONE                       (1 << 13)
++#define SDIO_NOR_SUSPEND_ON                   (1 << 12)
++#define SDIO_NOR_LMB_FF_8W_AVAIL              (1 << 11)
++#define SDIO_NOR_LMB_FF_8W_FILLED             (1 << 10)
++#define SDIO_NOR_READ_WAIT_ON                 (1 << 9)
++#define SDIO_NOR_CARD_INT                     (1 << 8)
++#define SDIO_NOR_READ_READY                   (1 << 5)
++#define SDIO_NOR_WRITE_READY                  (1 << 4)
++#define SDIO_NOR_DMA_INI                      (1 << 3)
++#define SDIO_NOR_BLK_GAP_EVT                  (1 << 2)
++#define SDIO_NOR_XFER_DONE                    (1 << 1)
++#define SDIO_NOR_CMD_DONE                     (1 << 0)
++
++
++/*
++ * ERR status bits
++ */
++
++#define SDIO_ERR_CRC_STATUS                   (1 << 14)
++#define SDIO_ERR_CRC_STARTBIT                 (1 << 13)
++#define SDIO_ERR_CRC_ENDBIT                   (1 << 12)
++#define SDIO_ERR_RESP_TBIT                    (1 << 11)
++#define SDIO_ERR_SIZE                         (1 << 10)
++#define SDIO_ERR_CMD_STARTBIT                 (1 << 9)
++#define SDIO_ERR_AUTOCMD12                    (1 << 8)
++#define SDIO_ERR_DATA_ENDBIT                  (1 << 6)
++#define SDIO_ERR_DATA_CRC                     (1 << 5)
++#define SDIO_ERR_DATA_TIMEOUT                 (1 << 4)
++#define SDIO_ERR_CMD_INDEX                    (1 << 3)
++#define SDIO_ERR_CMD_ENDBIT                   (1 << 2)
++#define SDIO_ERR_CMD_CRC                      (1 << 1)
++#define SDIO_ERR_CMD_TIMEOUT                  (1 << 0)
++
++#define SDIO_ERR_INTR_MASK                    0xFFFF
++
++
++#define MMC_BLOCK_SIZE                  512
++#define MMC_CMD_RESET                   0
++#define MMC_CMD_SEND_OP_COND            1
++#define MMC_CMD_ALL_SEND_CID            2
++#define MMC_CMD_SET_RCA                 3
++#define MMC_CMD_SELECT_CARD           7
++#define MMC_CMD_SEND_CSD                9
++#define MMC_CMD_SEND_CID                10
++#define MMC_CMD_SEND_STATUS             13
++#define MMC_CMD_SET_BLOCKLEN            16
++#define MMC_CMD_READ_BLOCK              17
++#define MMC_CMD_RD_BLK_MULTI            18
++#define MMC_CMD_WRITE_BLOCK             24
++#define MMC_MAX_BLOCK_SIZE              512
++
++typedef struct mv_mmc_cid
++{
++      /* FIXME: BYTE_ORDER */
++      uchar year:4,
++      month:4;
++      uchar sn[3];
++      uchar fwrev:4,
++      hwrev:4;
++      uchar name[6];
++      uchar id[3];
++} mv_mmc_cid_t;
++
++typedef struct mv_mmc_csd
++{
++      uchar   ecc:2,
++              file_format:2,
++              tmp_write_protect:1,
++              perm_write_protect:1,
++              copy:1,
++              file_format_grp:1;
++      uint64_t content_prot_app:1,
++              rsvd3:4,
++              write_bl_partial:1,
++              write_bl_len:4,
++              r2w_factor:3,
++              default_ecc:2,
++              wp_grp_enable:1,
++              wp_grp_size:5,
++              erase_grp_mult:5,
++              erase_grp_size:5,
++              c_size_mult1:3,
++              vdd_w_curr_max:3,
++              vdd_w_curr_min:3,
++              vdd_r_curr_max:3,
++              vdd_r_curr_min:3,
++              c_size:12,
++              rsvd2:2,
++              dsr_imp:1,
++              read_blk_misalign:1,
++              write_blk_misalign:1,
++              read_bl_partial:1;
++      ushort  read_bl_len:4,
++              ccc:12;
++      uchar   tran_speed;
++      uchar   nsac;
++      uchar   taac;
++      uchar   rsvd1:2,
++              spec_vers:4,
++              csd_structure:2;
++} mv_mmc_csd_t;
++
++typedef struct {
++      char            pnm_0;  /* product name */
++      char            oid_1;  /* OEM/application ID */
++      char            oid_0;
++      uint8_t         mid;    /* manufacturer ID */
++      char            pnm_4;
++      char            pnm_3;
++      char            pnm_2;
++      char            pnm_1;
++      uint8_t         psn_2;  /* product serial number */
++      uint8_t         psn_1;
++      uint8_t         psn_0;  /* MSB */
++      uint8_t         prv;    /* product revision */
++      uint8_t         crc;    /* CRC7 checksum, b0 is unused and set to 1 */
++      uint8_t         mdt_1;  /* manufacturing date, LSB, RRRRyyyy yyyymmmm */
++      uint8_t         mdt_0;  /* MSB */
++      uint8_t         psn_3;  /* LSB */
++} mv_sd_cid_t;
++
++#endif /* _MVSDIO_INCLUDE */
+--- a/include/configs/sheevaplug.h
++++ b/include/configs/sheevaplug.h
+@@ -25,10 +25,12 @@
+ #ifndef _CONFIG_SHEEVAPLUG_H
+ #define _CONFIG_SHEEVAPLUG_H
++//#define DEBUG 1
++
+ /*
+  * Version number information
+  */
+-#define CONFIG_IDENT_STRING   "\nMarvell-Sheevaplug"
++#define CONFIG_IDENT_STRING   "\nMarvell-Sheevaplug - eSATA - SD/MMC"
+ /*
+  * High Level Configuration Options (easy to change)
+@@ -48,6 +50,7 @@
+ #define CONFIG_CMD_ENV
+ #define CONFIG_CMD_IDE
+ #define CONFIG_CMD_MII
++#define CONFIG_CMD_MMC
+ #define CONFIG_CMD_NAND
+ #define CONFIG_CMD_PING
+ #define CONFIG_CMD_USB
+@@ -79,16 +82,18 @@
+  */
+ #define CONFIG_BOOTCOMMAND            "${x_bootcmd_kernel}; " \
+       "setenv bootargs ${x_bootargs} ${x_bootargs_root}; "    \
+-      "${x_bootcmd_usb}; bootm 0x6400000;"
++      "${x_bootcmd_usb}; ${x_bootcmd_sata}; bootm 0x6400000;"
++
++#define CONFIG_MTDPARTS               "orion_nand:"   \
++      "512k(uboot),4m@1m(kernel),507m@5m(rootfs) rw\0"
+-#define CONFIG_MTDPARTS               "orion_nand:512k(uboot),"       \
+-      "3m@1m(kernel),1m@4m(psm),13m@5m(rootfs) rw\0"
+-#define CONFIG_EXTRA_ENV_SETTINGS     "x_bootargs=console"    \
+-      "=ttyS0,115200 mtdparts="CONFIG_MTDPARTS        \
+-      "x_bootcmd_kernel=nand read 0x6400000 0x100000 0x300000\0" \
+-      "x_bootcmd_usb=usb start\0" \
+-      "x_bootargs_root=root=/dev/mtdblock3 rw rootfstype=jffs2\0"
++#define CONFIG_EXTRA_ENV_SETTINGS     "x_bootargs=console"            \
++      "=ttyS0,115200 mtdparts="CONFIG_MTDPARTS                        \
++      "x_bootcmd_kernel=nand read 0x6400000 0x100000 0x400000\0"      \
++      "x_bootcmd_usb=usb start;\0"                                    \
++      "x_bootcmd_sata=ide reset;\0"                                   \
++      "x_bootargs_root=ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs\0"
+ /*
+  * Ethernet Driver configuration
+@@ -99,6 +104,14 @@
+ #endif /* CONFIG_CMD_NET */
+ /*
++ * SDIO/MMC Card Configuration
++ */
++#ifdef CONFIG_CMD_MMC
++#define CONFIG_MMC
++#define CONFIG_MV_SDIO
++#endif /* CONFIG_CMD_MMC */
++
++/*
+  * IDE Support on SATA port0
+  */
+ #ifdef CONFIG_CMD_IDE
diff --git a/patches/mipsel-native-endianness.diff b/patches/mipsel-native-endianness.diff
new file mode 100644 (file)
index 0000000..c63f18c
--- /dev/null
@@ -0,0 +1,137 @@
+[MIPS] Fix little-endian build with non-ELDK toolchains
+
+We've been in trouble for a long time when cross compiling with non-ELDK
+toolchains.  This is caused by -EB passed to CPPFLAGS incorrectly, by the
+lack of an endian specifier to LDFLAGS, and by wrong OUTPUT_FORMATs.
+
+We're going to implement two workarounds.  One is the endianness specifier
+bugfix not to pass -EB / -EL to CPPFLAGS unless ELDK toolchain is used.
+Note that ELDK and non-ELDK toolchains know their default endianness, so
+the endianness specifier may not be necessary in principle.
+
+The other is removal of OUTPUT_FORMAT in *.lds files.  If we have this,
+it doesn't work unless an endianness specifier is added to LDFLAGS.  As
+we haven't added that to LDFLAGS so far, it must have not worked properly,
+except ELDK; I don't know why and how ELDK works, though.
+
+With these two changes, all objects will be generated and linked in the
+toolchain's default endianness.  Then MAKEALL mips_el will work even with
+non-ELDK toolchain.
+
+Note that Linux/MIPS kernel has CONFIG_CPU_BIG_ENDIAN and
+CONFIG_CPU_LITTLE_ENDIAN alternatives to allow users to compile kernels
+with a toolchain for the other endianness. But U-Boot does not have such
+feature for now, and it's another story.
+
+Signed-off-by: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
+---
+ board/dbau1x00/u-boot.lds  |    4 ----
+ board/gth2/u-boot.lds      |    4 ----
+ board/incaip/u-boot.lds    |    4 ----
+ board/pb1x00/u-boot.lds    |    4 ----
+ board/purple/u-boot.lds    |    4 ----
+ board/qemu-mips/u-boot.lds |    4 ----
+ board/tb0229/u-boot.lds    |    2 --
+ cpu/mips/config.mk         |    8 --------
+ examples/mips.lds          |    4 ----
+ mips_config.mk             |   26 ++++++++++++++++++++++++++
+ 10 files changed, 26 insertions(+), 38 deletions(-)
+
+--- a/board/dbau1x00/u-boot.lds
++++ b/board/dbau1x00/u-boot.lds
+@@ -21,10 +21,6 @@
+  * MA 02111-1307 USA
+  */
+-/*
+-OUTPUT_FORMAT("elf32-bigmips", "elf32-bigmips", "elf32-bigmips")
+-*/
+-OUTPUT_FORMAT("elf32-tradbigmips", "elf32-tradbigmips", "elf32-tradlittlemips")
+ OUTPUT_ARCH(mips)
+ ENTRY(_start)
+ SECTIONS
+--- a/board/gth2/u-boot.lds
++++ b/board/gth2/u-boot.lds
+@@ -21,10 +21,6 @@
+  * MA 02111-1307 USA
+  */
+-/*
+-OUTPUT_FORMAT("elf32-bigmips", "elf32-bigmips", "elf32-bigmips")
+-*/
+-OUTPUT_FORMAT("elf32-tradbigmips", "elf32-tradbigmips", "elf32-tradlittlemips")
+ OUTPUT_ARCH(mips)
+ ENTRY(_start)
+ SECTIONS
+--- a/board/incaip/u-boot.lds
++++ b/board/incaip/u-boot.lds
+@@ -21,10 +21,6 @@
+  * MA 02111-1307 USA
+  */
+-/*
+-OUTPUT_FORMAT("elf32-bigmips", "elf32-bigmips", "elf32-bigmips")
+-*/
+-OUTPUT_FORMAT("elf32-tradbigmips", "elf32-tradbigmips", "elf32-tradlittlemips")
+ OUTPUT_ARCH(mips)
+ ENTRY(_start)
+ SECTIONS
+--- a/board/pb1x00/u-boot.lds
++++ b/board/pb1x00/u-boot.lds
+@@ -21,10 +21,6 @@
+  * MA 02111-1307 USA
+  */
+-/*
+-OUTPUT_FORMAT("elf32-bigmips", "elf32-bigmips", "elf32-bigmips")
+-*/
+-OUTPUT_FORMAT("elf32-tradlittlemips", "elf32-tradbigmips", "elf32-tradlittlemips")
+ OUTPUT_ARCH(mips)
+ ENTRY(_start)
+ SECTIONS
+--- a/board/qemu-mips/u-boot.lds
++++ b/board/qemu-mips/u-boot.lds
+@@ -21,10 +21,6 @@
+  * MA 02111-1307 USA
+  */
+-/*
+-OUTPUT_FORMAT("elf32-bigmips", "elf32-bigmips", "elf32-bigmips")
+-*/
+-OUTPUT_FORMAT("elf32-tradbigmips", "elf32-tradbigmips", "elf32-tradlittlemips")
+ OUTPUT_ARCH(mips)
+ ENTRY(_start)
+ SECTIONS
+--- a/examples/standalone/mips.lds
++++ b/examples/standalone/mips.lds
+@@ -21,10 +21,6 @@
+  * MA 02111-1307 USA
+  */
+-/*
+-OUTPUT_FORMAT("elf32-bigmips", "elf32-bigmips", "elf32-bigmips")
+-*/
+-OUTPUT_FORMAT("elf32-tradbigmips", "elf32-tradbigmips", "elf32-tradlittlemips")
+ OUTPUT_ARCH(mips)
+ SECTIONS
+ {
+--- a/arch/mips/cpu/mips32/config.mk
++++ b/arch/mips/cpu/mips32/config.mk
+@@ -45,5 +45,4 @@
+ # Default to EB if no endianess is configured
+ ENDIANNESS ?= -EB
+-PLATFORM_CPPFLAGS += $(MIPSFLAGS) $(ENDIANNESS)
+-PLATFORM_LDFLAGS += $(ENDIANNESS)
++PLATFORM_CPPFLAGS += $(MIPSFLAGS)
+--- a/arch/mips/config.mk
++++ b/arch/mips/config.mk
+@@ -21,7 +21,7 @@
+ # MA 02111-1307 USA
+ #
+-CROSS_COMPILE ?= mips_4KC-
++#CROSS_COMPILE ?= mips_4KC-
+ CONFIG_STANDALONE_LOAD_ADDR ?= 0x80200000 -T mips.lds
diff --git a/patches/no-error-on-set-but-unused-variables.diff b/patches/no-error-on-set-but-unused-variables.diff
new file mode 100644 (file)
index 0000000..307fd89
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/arch/x86/cpu/config.mk
++++ b/arch/x86/cpu/config.mk
+@@ -23,7 +23,7 @@
+ CROSS_COMPILE ?= i386-linux-
+-PLATFORM_CPPFLAGS += -DCONFIG_X86 -D__I386__ -march=i386 -Werror
++PLATFORM_CPPFLAGS += -DCONFIG_X86 -D__I386__ -march=i386 -Werror -Wno-error=unused-but-set-variable
+ # DO NOT MODIFY THE FOLLOWING UNLESS YOU REALLY KNOW WHAT YOU ARE DOING!
+ LDPPFLAGS += -DRESET_SEG_START=0xffff0000
diff --git a/patches/openrd-mmc.diff b/patches/openrd-mmc.diff
new file mode 100644 (file)
index 0000000..4457b60
--- /dev/null
@@ -0,0 +1,22 @@
+This partially depends on the kerma sheevaplug stuff.
+
+--- a/include/configs/openrd.h
++++ b/include/configs/openrd.h
+@@ -65,6 +65,7 @@
+ #define CONFIG_CMD_DHCP
+ #define CONFIG_CMD_ENV
+ #define CONFIG_CMD_MII
++#define CONFIG_CMD_MMC
+ #define CONFIG_CMD_NAND
+ #define CONFIG_CMD_PING
+ #define CONFIG_CMD_USB
+@@ -139,4 +140,9 @@
+ #define CONFIG_SYS_ATA_IDE1_OFFSET    MV_SATA_PORT1_OFFSET
+ #endif /*CONFIG_MVSATA_IDE*/
++#ifdef CONFIG_CMD_MMC
++#define CONFIG_MMC
++#define CONFIG_MV_SDIO
++#endif /* CONFIG_CMD_MMC */
++
+ #endif /* _CONFIG_OPENRD_BASE_H */
diff --git a/patches/series b/patches/series
new file mode 100644 (file)
index 0000000..f636816
--- /dev/null
@@ -0,0 +1,7 @@
+mipsel-native-endianness.diff
+kerma-sheevaplug-mvsata.diff
+kerma-sheevaplug-mvsdio.diff
+openrd-mmc.diff
+no-error-on-set-but-unused-variables.diff
+hurd.diff
+strip-env-tools.diff
diff --git a/patches/strip-env-tools.diff b/patches/strip-env-tools.diff
new file mode 100644 (file)
index 0000000..c0e165e
--- /dev/null
@@ -0,0 +1,28 @@
+From 17a2bf859d1dcd393db767a254442e35f01804f2 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Lo=C3=AFc=20Minier?= <lool@debian.org>
+Date: Sun, 11 Mar 2012 16:40:59 +0100
+Subject: [PATCH] Strip fw_printenv like the other tools
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Loïc Minier <lool@debian.org>
+---
+ tools/env/Makefile |    1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/tools/env/Makefile b/tools/env/Makefile
+index 28b73da..07634bc 100644
+--- a/tools/env/Makefile
++++ b/tools/env/Makefile
+@@ -41,6 +41,7 @@ all: $(obj)fw_printenv
+ # Some files complain if compiled with -pedantic, use HOSTCFLAGS_NOPED
+ $(obj)fw_printenv:    $(HOSTSRCS) $(HEADERS)
+       $(HOSTCC) $(HOSTCFLAGS_NOPED) $(HOSTLDFLAGS) -o $@ $(HOSTSRCS)
++      $(HOSTSTRIP) $@
+ clean:
+       rm -f $(obj)fw_printenv
+-- 
+1.7.9
+
diff --git a/rules b/rules
new file mode 100755 (executable)
index 0000000..1c2e706
--- /dev/null
+++ b/rules
@@ -0,0 +1,186 @@
+#!/usr/bin/make -f
+
+INSTALL_FILE    := install -m 644
+INSTALL_PROGRAM := install -m 755
+INSTALL_DIR     := install -m 755 -d
+
+version := $(shell dpkg-parsechangelog | sed -n 's/^Version: //p')
+tools_version := 20081215-3+$(version)
+
+env_package := uboot-envtools
+mkimage_package := uboot-mkimage
+package := u-boot
+tools_package := u-boot-tools
+
+DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
+DEB_HOST_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
+DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+
+ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
+export CROSS_COMPILE ?= $(DEB_HOST_GNU_TYPE)-
+endif
+
+# the upstream build passes LDFLAGS directly to ld instead of calling gcc for
+# linking; so instead of passing -Wl,foo in LDFLAGS as in automake builds, one
+# should set LDFLAGS to foo directly
+comma := ,
+LDFLAGS := $(patsubst -Wl$(comma)%,%,$(LDFLAGS))
+
+# macro to test whether a host header is present
+check_include = $(shell echo | $(CROSS_COMPILE)gcc -E -include $(1) -o /dev/null - 2>/dev/null && echo 1 || echo 0)
+
+# whether we have Linux MTD headers
+has_mtd_user := $(call check_include, mtd/mtd-user.h)
+
+build-indep:
+
+build: build-arch build-indep
+build-arch:
+       $(checkdir)
+
+       set -e; sed -n 's/^$(DEB_HOST_ARCH)[[:space:]]\+//p' debian/targets \
+           | while read platform target; do \
+               builddir=`pwd`/debian/build/$$platform; \
+               installdir=debian/$(package)/usr/lib/$(package)/$$platform; \
+               mkdir -p $$builddir; \
+               $(MAKE) O=$$builddir $${platform}_config; \
+               $(MAKE) O=$$builddir $$builddir/$$target; \
+               $(INSTALL_DIR) $$installdir; \
+               $(INSTALL_FILE) $$builddir/$$target $$installdir; \
+               $(INSTALL_FILE) $$builddir/u-boot $$installdir/uboot.elf; \
+               $(CROSS_COMPILE)strip --remove-section=.comment \
+                   $$installdir/uboot.elf; \
+       done
+
+ifeq ($(CROSS_COMPILE),)
+       # board-independent tools
+       $(INSTALL_DIR) debian/$(tools_package)/usr/bin/
+       touch include/config.h
+       $(MAKE) HOSTCC=$(CROSS_COMPILE)gcc HOSTSTRIP=$(CROSS_COMPILE)strip \
+           tools
+       $(INSTALL_PROGRAM) tools/mkimage debian/$(tools_package)/usr/bin/
+       # only build env tools if we have Linux MTD headers
+ifeq ($(has_mtd_user),1)
+       $(MAKE) HOSTCC=$(CROSS_COMPILE)gcc HOSTSTRIP=$(CROSS_COMPILE)strip env
+       $(INSTALL_PROGRAM) tools/env/fw_printenv debian/$(tools_package)/usr/bin/
+       ln -sf fw_printenv debian/$(tools_package)/usr/bin/fw_setenv
+endif
+       rm include/config.h
+endif
+
+       touch $@
+
+clean:
+       $(checkdir)
+       rm -f debian/files debian/*.substvars
+       rm -rf debian/$(env_package) debian/$(mkimage_package) debian/$(package) debian/$(tools_package)
+       rm -f build-arch
+       $(MAKE) distclean
+       rm -rf arch/arm/include/asm/arch arch/arm/include/asm/proc
+       rm -rf debian/build
+       rm -f `find . -name "*~"`
+
+binary-indep:  checkroot
+       $(checkdir)
+
+       $(INSTALL_DIR) debian/$(mkimage_package)/DEBIAN
+       $(INSTALL_DIR) debian/$(mkimage_package)/usr/share/doc/$(mkimage_package)/
+
+       $(INSTALL_FILE) debian/copyright \
+           debian/$(mkimage_package)/usr/share/doc/$(mkimage_package)/
+       $(INSTALL_FILE) debian/changelog \
+           debian/$(mkimage_package)/usr/share/doc/$(mkimage_package)/changelog.Debian
+
+       gzip -9f `find debian/$(mkimage_package)/usr/share/doc -type f ! -name "copyright"`
+       dpkg-gencontrol -ldebian/changelog -isp -p$(mkimage_package) -Tdebian/$(mkimage_package).substvars -Pdebian/$(mkimage_package)
+       cd debian/$(mkimage_package) && find * -type f ! -regex '^DEBIAN/.*' -print0 | xargs -r0 md5sum > DEBIAN/md5sums
+
+       chown -R root:root debian/$(mkimage_package)
+       chmod -R go=rX debian/$(mkimage_package)
+
+       dpkg --build debian/$(mkimage_package) ..
+
+
+       $(INSTALL_DIR) debian/$(env_package)/DEBIAN
+       $(INSTALL_DIR) debian/$(env_package)/usr/share/doc/$(env_package)/
+
+       $(INSTALL_FILE) debian/copyright \
+           debian/$(env_package)/usr/share/doc/$(env_package)/
+       $(INSTALL_FILE) debian/changelog \
+           debian/$(env_package)/usr/share/doc/$(env_package)/changelog.Debian
+
+       gzip -9f `find debian/$(env_package)/usr/share/doc -type f ! -name "copyright"`
+       dpkg-gencontrol -v$(tools_version) -ldebian/changelog -isp -p$(env_package) -Tdebian/$(env_package).substvars -Pdebian/$(env_package)
+       cd debian/$(env_package) && find * -type f ! -regex '^DEBIAN/.*' -print0 | xargs -r0 md5sum > DEBIAN/md5sums
+
+       chown -R root:root debian/$(env_package)
+       chmod -R go=rX debian/$(env_package)
+
+       dpkg --build debian/$(env_package) ..
+
+binary-arch:   checkroot build
+       $(checkdir)
+
+       $(INSTALL_DIR) debian/$(package)/DEBIAN
+
+       $(INSTALL_DIR) debian/$(package)/usr/share/doc/$(package)/
+       $(INSTALL_FILE) debian/README.Debian \
+           debian/$(package)/usr/share/doc/$(package)/
+       $(INSTALL_FILE) debian/copyright \
+           debian/$(package)/usr/share/doc/$(package)/
+       $(INSTALL_FILE) debian/changelog \
+           debian/$(package)/usr/share/doc/$(package)/changelog.Debian
+
+       $(INSTALL_DIR) debian/$(package)/usr/share/lintian/overrides/
+       $(INSTALL_FILE) debian/lintian.overrides \
+           debian/$(package)/usr/share/lintian/overrides/$(package)
+
+       gzip -9f `find debian/$(package)/usr/share/doc -type f ! -name "copyright"`
+       dpkg-gencontrol -ldebian/changelog -isp -p$(package) -Tdebian/$(package).substvars -Pdebian/$(package)
+       cd debian/$(package) && find * -type f ! -regex '^DEBIAN/.*' -print0 | xargs -r0 md5sum > DEBIAN/md5sums
+
+       chown -R root:root debian/$(package)
+       chmod -R go=rX debian/$(package)
+
+       dpkg --build debian/$(package) ..
+
+
+       $(INSTALL_DIR) debian/$(tools_package)/DEBIAN
+
+       $(INSTALL_DIR) debian/$(tools_package)/usr/share/doc/$(tools_package)/
+       $(INSTALL_FILE) debian/copyright     debian/$(tools_package)/usr/share/doc/$(tools_package)/
+       $(INSTALL_FILE) debian/changelog     debian/$(tools_package)/usr/share/doc/$(tools_package)/changelog.Debian
+
+       $(INSTALL_DIR) debian/$(tools_package)/usr/share/man/man1
+       $(INSTALL_DIR) debian/$(tools_package)/usr/share/man/man8
+       $(INSTALL_FILE) doc/mkimage.1                 debian/$(tools_package)/usr/share/man/man1/
+       $(INSTALL_FILE) debian/manpages/fw_printenv.8 debian/$(tools_package)/usr/share/man/man8/
+       $(INSTALL_FILE) debian/manpages/fw_setenv.8   debian/$(tools_package)/usr/share/man/man8/
+
+       gzip -9f `find debian/$(tools_package)/usr/share/doc -type f ! -name "copyright"`
+       gzip -9f `find debian/$(tools_package)/usr/share/man -type f`
+
+       dpkg-shlibdeps -Tdebian/$(tools_package).substvars \
+           debian/$(tools_package)/usr/bin/*
+       dpkg-gencontrol -ldebian/changelog -isp -p$(tools_package) -Tdebian/$(tools_package).substvars -Pdebian/$(tools_package)
+       cd debian/$(tools_package) && find * -type f ! -regex '^DEBIAN/.*' -print0 | xargs -r0 md5sum > DEBIAN/md5sums
+
+       chown -R root:root debian/$(tools_package)
+       chmod -R go=rX debian/$(tools_package)
+
+       dpkg --build debian/$(tools_package) ..
+
+define checkdir
+       test -f debian/rules
+endef
+
+binary:                binary-arch binary-indep
+
+prebuild:
+       @true
+
+checkroot:
+       $(checkdir)
+       test root = "`whoami`"
+
+.PHONY: build build-indep binary binary-arch binary-indep clean checkroot prebuild
diff --git a/source/format b/source/format
new file mode 100644 (file)
index 0000000..163aaf8
--- /dev/null
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/targets b/targets
new file mode 100644 (file)
index 0000000..e189201
--- /dev/null
+++ b/targets
@@ -0,0 +1,20 @@
+# DEB_HOST_ARCH                platform        target
+# --------------------------------------------
+armel                  dockstar        u-boot.kwb
+armel                  dreamplug       u-boot.kwb
+armel                  guruplug        u-boot.kwb
+armel                  openrd_ultimate u-boot.kwb
+armel                  sheevaplug      u-boot.kwb
+armhf                  efikamx         u-boot.imx
+armhf                  efikasb         u-boot.imx
+armhf                  igep0020        u-boot.bin
+armhf                  omap3_beagle    u-boot.bin
+armhf                  omap4_panda     u-boot.bin
+armhf                  mx53loco        u-boot.imx
+avr32                  hammerhead      u-boot.img
+i386                   eNET            u-boot.bin
+mipsel                 dbau1100        u-boot.img
+mips                   qemu_mips       u-boot.img
+powerpc                        ZUMA            u-boot.img
+sh4                    r2dplus         u-boot.img
+sh4                    sh7785lcr_32bit u-boot.img
diff --git a/watch b/watch
new file mode 100644 (file)
index 0000000..142fed4
--- /dev/null
+++ b/watch
@@ -0,0 +1,3 @@
+version=3
+
+ftp://ftp.denx.de/pub/u-boot/ u-boot-([\d\.]+)\.tar\.bz2