u-boot (2012.04.01-2) unstable; urgency=low
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)
  * Remove code duplication in kerma-sheevaplug-mvsdio.diff.
    closes: #674230.

[dgit import unpatched u-boot 2012.04.01-2]

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

index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..93f81f7995ea954729c8661c9b73c0d227731ceb
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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.
++
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..7ccb575a889b1d6684bb5b81dfbf4dd4ee78d71d
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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 --cc debian/control
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..30780bf5155782b49b358fecc76389c096a0fbd8
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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.
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..1195aeaeeebf762607e0524e4bceb96fa32aa8ae
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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.
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..1aedc96159104a74e9bb23cb3991b35e50d03df9
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..8b30cbe333a94fbb393c043dbc78da99eadd0b82
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..83b6c6ac569b1e823a05389e35107342c1cffefd
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..92ce9de2da5f33d44922ae2153798712e3133bd0
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..83b6c6ac569b1e823a05389e35107342c1cffefd
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..abd8bcb50a8b19d2d9a92fa05fa9925a73a61336
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..4ccc5769ce8e0e98e7db98b264b733d57250d7c6
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..7fd45e39860de169a7d284a57aaca1e13db9ad38
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..1faa2f1f8ad342eeaedde6496f66b867c5c32d07
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..181c54b8c98bd550224a7ae4f21163545e5da0ce
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..4024e080ca2eed50fb60f374f168433790585424
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..98505a933e40084fd994d092f35e525ef53fbcf6
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..5bbd38d7f7938cccde3b6f5a7b5115dfc5403077
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..b176df5ac125bc9488bae2419392a8ec4eca93cb
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..a288852bc4acb12654689cf87ce7a2de95e62936
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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>
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..5a5114ab1f9bb6d41e5fb8fdaaee119d074a7edf
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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>
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..6cd7624db5216f07498fd8637a6d4584a888a607
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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
++
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..546e5fbb20bcabd24b092bf5d565801d23775dde
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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__)
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..34d9854cbdd5d4f3395c7ba24d952d623ea9a9a2
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..1c373a7c81252c3f58026ba213f7315b4b365d36
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..c63f18c6d2b8d8580b5e3f6acfa63707facc344d
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..307fd89c3b4ffd7ae7a3ccd4e34baffd65e09697
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..4457b6050c94266bb469740d4a81398868d54fa6
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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 */
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..f636816d70291124c95f0c06233bdff496e41423
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..c0e165e456d475cdd0a0ad16cc8844e0f2fd3608
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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 --cc debian/rules
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..1c2e7063ce5b6c179b2f56faaaee62a15881135f
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..163aaf8d82b6c54f23c45f32895dbdfdcc27b047
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++3.0 (quilt)
diff --cc debian/targets
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..e1892019261e87affa1c3777d2366bbb71662c41
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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 --cc debian/watch
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..142fed4f7744369fcc8c10bc665594b483aec7db
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,3 @@@
++version=3
++
++ftp://ftp.denx.de/pub/u-boot/ u-boot-([\d\.]+)\.tar\.bz2