debian/0000755000000000000000000000000012242074705007171 5ustar debian/watch0000644000000000000000000000010412233672763010225 0ustar version=3 ftp://ftp.denx.de/pub/u-boot/ u-boot-([\d\.]+)\.tar\.bz2 debian/manpages/0000755000000000000000000000000012233672763010774 5ustar debian/manpages/fw_setenv.80000644000000000000000000000150312233672763013064 0ustar .\" Copyright © 2008 Per Andersson .\" 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 .PP This manual page was written by Per Andersson debian/manpages/fw_printenv.80000644000000000000000000000170312233672763013427 0ustar .\" Copyright © 2008 Per Andersson .\" 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 .PP This manual page was written by Per Andersson debian/lintian.overrides0000644000000000000000000001015612242070260012546 0ustar # These are not really shared libraries, they're binary bootloaders. u-boot: shared-lib-without-dependency-information usr/lib/u-boot/dockstar/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/guruplug/uboot.elf u-boot: shared-lib-without-dependency-information usr/lib/u-boot/openrd_ultimate/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/mx51_efikamx/uboot.elf u-boot: shared-lib-without-dependency-information usr/lib/u-boot/mx51_efikasb/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/omap3_beagle/uboot.elf u-boot: shared-lib-without-dependency-information usr/lib/u-boot/omap4_panda/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/am335x_boneblack/uboot.elf u-boot: shared-lib-without-dependency-information usr/lib/u-boot/wandboard_quad/uboot.elf u-boot: shared-lib-without-dependency-information usr/lib/u-boot/wandboard_dl/uboot.elf u-boot: shared-lib-without-dependency-information usr/lib/u-boot/wandboard_solo/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/dbau1100/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/ZUMA/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/sh7785lcr_32bit/uboot.elf # There are no file conflicts across architectures for u-boot, as each # target is only installed on a single architecture. In theory, some # targets could be built on multiple architectures, but could instead install # the package for the architecture needed. u-boot: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/dockstar/uboot.elf u-boot: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/dreamplug/uboot.elf u-boot: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/guruplug/uboot.elf u-boot: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/openrd_ultimate/uboot.elf u-boot: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/sheevaplug/uboot.elf u-boot: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/mx51_efikamx/uboot.elf u-boot: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/mx51_efikasb/uboot.elf u-boot: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/igep0020/uboot.elf u-boot: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/omap3_beagle/uboot.elf u-boot: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/omap4_panda/uboot.elf u-boot: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/mx53loco/uboot.elf u-boot: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/am335x_boneblack/uboot.elf u-boot: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/wandboard_quad/uboot.elf u-boot: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/wandboard_dl/uboot.elf u-boot: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/wandboard_solo/uboot.elf u-boot: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/hammerhead/uboot.elf u-boot: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/dbau1100/uboot.elf u-boot: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/qemu_mips/uboot.elf u-boot: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/ZUMA/uboot.elf u-boot: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/r2dplus/uboot.elf u-boot: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/sh7785lcr_32bit/uboot.elf u-boot: description-synopsis-starts-with-article debian/control0000644000000000000000000000253012241731423010570 0ustar Source: u-boot Section: admin Priority: optional Maintainer: Clint Adams Uploaders: Loïc Minier , Micah Anderson , Vagrant Cascadian Standards-Version: 3.9.4 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: armel armhf avr32 mips powerpc sh4 Multi-Arch: same 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 Multi-Arch: foreign 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. debian/README.Debian0000644000000000000000000000116512233672763011245 0ustar == Installation == At this point, you must install U-Boot to flash yourself. Some examples using mtd-utils: SheevaPlug: sudo flash_erase /dev/mtd0 0 0 sudo nandwrite -p /dev/mtd0 /usr/lib/u-boot/sheevaplug/u-boot.kwb GuruPlug: sudo flash_erase /dev/mtd0 0 0 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 DreamPlug: At this point you cannot write to the SPI/NOR flash from Linux, so you will need to replace U-Boot from within U-Boot. == U-Boot environment tools == fw_printenv / fw_setenv read /etc/fw_env.config for configuration. debian/changelog0000644000000000000000000004034612242074705011052 0ustar u-boot (2013.10-3) unstable; urgency=low * Move build of dbau1100 from mipsel to mips, which fixes FTBFS on mipsel, due to dbau1100 being big-endian. * Disable mipsel builds of u-boot, as it no longer has any targets. * Add patch to specify default mmc partition to use when loading uEnv.txt on BeagleBone Black. * Add patch to support raw initrds on BeagleBone Black. * Mark u-boot-tools as Multi-Arch: foreign. * Mark u-boot as Multi-Arch: same. * Update lintian overrides with list of current platforms. -- Vagrant Cascadian Sun, 17 Nov 2013 00:09:32 -0800 u-boot (2013.10-2) unstable; urgency=low * debian/rules: - Switch back to explicitly building the specified target. - Allow building multiple targets per platform. * debian/targets: - Build the spl/u-boot-spl.bin target on several armhf platforms, which generates the MLO file. -- Vagrant Cascadian Mon, 21 Oct 2013 11:33:01 -0700 u-boot (2013.10-1) unstable; urgency=low * New upstream version (Closes: #667680, #726699). - Update mipsel-native-endianness.diff * debian/rules: - Remove various tools/* files on clean target. - Build each platform target and install MLO file if present. (Closes: #687562). - Support parallel builds using DEB_BUILD_OPTIONS=parallel=N. * Enable BeagleBone Black and Wandboard platforms. * Add patch to support uEnv.txt and directly loading zimage for Wandboard. * Include env configs u-boot-tools examples (Closes: #631659, #636214). * Only build u-boot on architectures which generate images (Closes: #635050). * Drop i386 builds of u-boot, as the only target (eNET) was removed upstream. * debian/control: Add myself to uploaders. -- Vagrant Cascadian Sun, 20 Oct 2013 10:23:55 -0700 u-boot (2013.01.01-4) unstable; urgency=low * Upload to unstable. * Drop transitional packages uboot-envtools and uboot-mkimage. -- Clint Adams Thu, 09 May 2013 21:41:25 -0400 u-boot (2013.01.01-3) experimental; urgency=low * Disable unnecessary JFFS2 on GuruPlug * Disable MMC on GuruPlug, devices are not detected, they show up as USB devices instead -- Micah Anderson Mon, 25 Mar 2013 22:56:32 -0400 u-boot (2013.01.01-2) experimental; urgency=low * More properly enable MMC on GuruPlug. * Use new Efika target names. * Bump to Standards-Version 3.9.4. -- Clint Adams Sun, 24 Mar 2013 21:59:03 -0400 u-boot (2013.01.01-1) experimental; urgency=low * New upstream version. closes: #699232. - Drop strip-env-tools.diff (merged). - Update kerma-sheevaplug-mvsdio.diff. - Update mipsel-native-endianness.diff * Enable CONFIG_SYS_MVFS and CONFIG_CMD_MMC for GuruPlug. -- Clint Adams Thu, 21 Mar 2013 14:21:33 -0400 u-boot (2012.04.01-2) unstable; urgency=low * Remove code duplication in kerma-sheevaplug-mvsdio.diff. closes: #674230. -- Clint Adams 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 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 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 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 Mon, 02 Jan 2012 17:49:39 -0500 u-boot (2011.09-2) unstable; urgency=low * Patch from Pino Toscano to build on the Hurd. closes: #648295. * Drop gr_xc3s_1500 target. * Add build-arch and build-indep targets to debian/rules. -- Clint Adams 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 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 Sat, 06 Aug 2011 13:42:52 -0400 u-boot (2011.06-3) unstable; urgency=low * Add DreamPlug support. -- Clint Adams 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 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 Sat, 02 Jul 2011 19:25:28 -0400 u-boot (2011.06~rc3-1) unstable; urgency=low * New upstream version. -- Clint Adams 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Sat, 20 Nov 2010 18:20:40 -0500 u-boot (2010.09-1) unstable; urgency=low * New upstream release. -- Clint Adams Wed, 29 Sep 2010 00:06:25 -0400 u-boot (2010.09~rc2-1) unstable; urgency=low * New upstrem release candidate. -- Clint Adams 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 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 Sat, 11 Sep 2010 00:43:04 -0400 u-boot (2010.06-1) unstable; urgency=low * New upstream version. -- Clint Adams 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 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 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 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 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 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 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 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 Mon, 31 May 2010 19:29:40 -0400 u-boot (2010.03-1) unstable; urgency=low * Initial packaging. closes: #583605. -- Clint Adams Fri, 28 May 2010 16:20:39 -0400 debian/env-configs/0000755000000000000000000000000012233672763011417 5ustar debian/env-configs/lsmipsel.config0000644000000000000000000000055412233672763014442 0ustar # 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 debian/env-configs/kurobox_pro.config0000644000000000000000000000055312233672763015162 0ustar # 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 debian/env-configs/openmoko_gta02.config0000644000000000000000000000051412233672763015432 0ustar # 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 debian/env-configs/linkstation-mini.config0000644000000000000000000000045212233672763016100 0ustar # 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 debian/env-configs/qnap_ts119-219.config0000644000000000000000000000065612233672763015026 0ustar # 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 debian/env-configs/openmoko_gta01.config0000644000000000000000000000051212233672763015427 0ustar # 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 debian/env-configs/efikamx.config0000644000000000000000000000055412233672763014236 0ustar # 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 debian/env-configs/qnap_ts109-209.config0000644000000000000000000000056012233672763015016 0ustar # 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 debian/env-configs/lsppchg.config0000644000000000000000000000055412233672763014252 0ustar # 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 debian/env-configs/linkstation_pro_live.config0000644000000000000000000000055312233672763017047 0ustar # 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 debian/env-configs/sheevaplug.config0000644000000000000000000000055412233672763014755 0ustar # 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 debian/env-configs/qnap_ts101.config0000644000000000000000000000054112233672763014475 0ustar # 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 debian/env-configs/guruplug.config0000644000000000000000000000052612233672763014463 0ustar # 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 debian/targets0000644000000000000000000000143412233672763010577 0ustar # 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 mx51_efikamx u-boot.imx armhf mx51_efikasb u-boot.imx armhf igep0020 u-boot.bin spl/u-boot-spl.bin armhf omap3_beagle u-boot.bin spl/u-boot-spl.bin armhf omap4_panda u-boot.bin spl/u-boot-spl.bin armhf mx53loco u-boot.imx armhf am335x_boneblack u-boot.img spl/u-boot-spl.bin armhf wandboard_quad u-boot.imx armhf wandboard_dl u-boot.imx armhf wandboard_solo u-boot.imx avr32 hammerhead u-boot.img mips 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 debian/rules0000755000000000000000000001375112242023633010252 0ustar #!/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) 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) ifeq ($(DEB_HOST_ARCH),$(findstring $(DEB_HOST_ARCH), armel armhf avr32 mips powerpc sh4)) u_boot_package := true endif ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE)) export CROSS_COMPILE ?= $(DEB_HOST_GNU_TYPE)- endif # support parallel build using DEB_BUILD_OPTIONS=parallel=N ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) MAKEFLAGS += -j$(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) 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) ifeq (true,$(u_boot_package)) set -e; sed -n 's/^$(DEB_HOST_ARCH)[[:space:]]\+//p' debian/targets \ | while read platform targets; do \ for target in $$targets ; 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; \ if [ -f $$builddir/MLO ]; then \ $(INSTALL_FILE) $$builddir/MLO $$installdir/MLO; \ fi ; \ done ; \ done endif 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/$(package) debian/$(tools_package) rm -f build-arch $(MAKE) distclean rm -rf arch/arm/include/asm/arch arch/arm/include/asm/proc rm -rf tools/mkimage tools/mkenvimage tools/env/fw_printenv rm -rf debian/build rm -f `find . -name "*~"` binary-indep: checkroot $(checkdir) binary-arch: checkroot build $(checkdir) ifeq (true,$(u_boot_package)) $(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 -9fn `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) .. endif $(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/ $(INSTALL_DIR) debian/$(tools_package)/usr/share/doc/$(tools_package)/examples/ set -e ; for env_config in debian/env-configs/*.config ; do \ $(INSTALL_FILE) $${env_config} debian/$(tools_package)/usr/share/doc/$(tools_package)/examples/; \ done; \ 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 debian/copyright0000644000000000000000000010527612233672763011147 0ustar This is the Debian prepackaged version of Das U-Boot with lots of features. This package was put together by Clint Adams 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 and Marc Singer and from uboot-envtools which was copyright Per Andersson . 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 (C) Copyright 1999 Silicon Graphics, Inc. (C) Copyright 2000-2001 David Brownell (C) Copyright 2000-2002 David Brownell (C) Copyright 2000, Lineo Inc. (www.lineo.com) (C) Copyright 2000 Sysgo Real-Time Solutions, GmbH (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 (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, (C) Copyright 2002 Jun Gu (C) Copyright 2002,Motorola Inc. (C) Copyright 2002 Scott McNutt (C) Copyright 2002 SIXNET, dge@sixnetio.com. (C) Copyright 2002 Wolfgang Grandegger (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. (C) Copyright 2003 Embedded Edge, LLC (C) Copyright 2003 Intracom S.A. (C) Copyright 2003 Intrinsyc Software (C) Copyright 2003 Josef Baumgartner (C) Copyright 2003, 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 (C) Copyright 2003 Sandburst Corporation (C) Copyright 2003 Stefan Roese, stefan.roese@esd-electronics.com (C) Copyright 2003 Sysgo Real-Time Solutions, AG (C) Copyright 2003; Tundra Semiconductor Corp. (C) Copyright 2003 Wolfgang Grandegger (C) Copyright 2004-2005, Greg Ungerer (C) Copyright 2004-2006 Atmel Corporation (C) Copyright 2004-2008 Freescale Semiconductor, Inc. (C) Copyright 2004-2008 Texas Instruments, (C) Copyright 2004 Ales Jindra (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 (C) Copyright 2004 Paul Reynolds (C) Copyright 2004, Psyent Corporation (C) Copyright 2004 Sandburst Corporation (C) Copyright 2004, Shlomo Kut (C) Copyright 2004 Tundra Semiconductor Corp. (C) Copyright 2004 Wind River Systems Inc . (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 (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 (C) Copyright 2005 Embedded Alley Solutions, Inc. (C) Copyright 2005 Freescale Semiconductor, Inc. (C) Copyright 2005 Ladislav Michl (C) Copyright 2005 Netstal Maschinen AG (C) Copyright 2005, Psyent Corporation (C) Copyright 2005 REA Elektronik GmbH (C) Copyright 2005 Rowel Atienza (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 (C) Copyright 2006 Eukrea Electromatique (C) Copyright 2006; Freescale Semiconductor Corp. (C) Copyright 2006, Imagos S.a.s (C) Copyright 2006 Lab X Technologies (C) Copyright 2006 OpenMoko, Inc. (C) Copyright 2007-2008 Netstal Maschinen AG (C) Copyright 2007,2008 Nobuhiro Iwamatsu (C) Copyright 2007-2008 Semihalf (C) Copyright 2007-2008 Semihalf, Rafal Jaworowski (C) Copyright 2007-2009 Michal Simek (C) Copyright 2007 by OpenMoko, Inc. (C) Copyright 2007 Freescale Semiconductor, Inc. (C) Copyright 2007 Gary Jennejohn (C) Copyright 2007 Markus Kappeler (C) Copyright 2007 Nobuhiro Iwamatsu (C) Copyright 2007 OpenMoko, Inc. (C) Copyright 2007 Pengutronix, Juergen Beisert (C) Copyright 2007 Pengutronix, Sascha Hauer (C) Copyright 2007 Schindler Lift Inc. (C) Copyright 2007 STMicroelectronics, (C) Copyright 2007 Wind River Systems Inc . (C) Copyright 2007 Yoshihiro Shimoda (C) Copyright 2008, 2009 Andreas Pfefferle, (C) Copyright 2008,2009 Eric Jarrige (C) Copyright 2008-2009 Freescale Semiconductor, Inc. (C) Copyright 2008-2009 Stefan Roese , 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 (C) Copyright 2008, Daniel Hellström, daniel@gaisler.com (C) Copyright 2008 Dmitry Rakhchev, EmCraft Systems, rda@emcraft.com (C) Copyright 2008 Eric Jarrige (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 (C) Copyright 2008, Michael Trimarchi (C) Copyright 2008 Michal Simek (c) Copyright 2008 Nobuhiro Iwamatsu (c) Copyright 2008 Renesas Solutions Corp. (C) Copyright 2008 Semihalf (C) Copyright 2008 Sergey Lapin (C) Copyright 2008 Stefan Roese , DENX Software Engineering (C) Copyright 2008, Texas Instruments, Inc. http://www.ti.com/ (C) Copyright 2008 Wolfgang Grandegger (C) Copyright 2009 Alessandro Rubini (C) Copyright 2009 Atin Malaviya (atin.malaviya@gmail.com) (C) Copyright 2009 CJSC "NII STT", Russia, Smolensk (C) Copyright 2009, DAVE Srl (C) Copyright 2009 Detlev Zundel, (C) Copyright 2009 Faraday Technology (C) Copyright 2009 Freescale Semiconductor, Inc. (C) Copyright 2009 Ilya Yanok, Emcraft Systems Ltd (C) Copyright 2009 Industrie Dial Face S.p.A. (C) Copyright 2009 Magnus Lilja (C) Copyright 2009 Marco Stornelli (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 (C) Copyright 2010, Chris Zhang (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, Copyright 1999 Advanced Micro Devices, Inc. Copyright 1999 D. Jeff Dionne Copyright 2000-2001 Lineo, Inc. D. Jeff Dionne 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 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 , 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 , 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 Copyright 2007,2009 Wind River Systems, Inc. Copyright 2007, Embedded Specialties, Inc. Copyright 2008-2009 Stefan Roese , 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, Copyright 2009: Marvell Technology Group Ltd. Copyright 2009, Matthias Fuchs Copyright 2009, Robin Getz Copyright 2009 Semihalf. Copyright 2010, Renato Andreola 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 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 Copyright (C) 1998,2001 M-Systems Flash Disk Pioneers Ltd. Copyright (C) 1998 Dan Malek Copyright (C) 1998 D. Jeff Dionne , Copyright (C) 1998 Gabriel Paubert. Copyright (c) 1998 Harald Koerfgen Copyright (C) 1998 Kenneth Albanowski 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 et al. Copyright (C) 1999-2005 Igor Pavlov Copyright (C) 1999 ARM Limited. Copyright (C) 1999 Ben Williamson Copyright (C) 1999 by Silicon Graphics, Inc. Copyright (C) 1999 David Mosberger-Tang 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 Copyright (c) 1999 Nicolas Pitre Copyright (C) 1999 Niibe Yutaka Copyright (C) 1999 Russell King. Copyright (C) 1999 Silicon Graphics, Inc. Copyright (C) 1999 Vladimir Gurevich 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 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 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 Copyright (C) 2000 Netgem S.A. Copyright (C) 2000 NETsilicon, Inc. Copyright (c) 2000 Philip Edelbrock 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 Copyright (C) 2001,02 NEC Corporation Copyright(c) 2001-2002 Arcturus Networks Inc. Copyright (C) 2001, 2002 ETC s.r.o. Copyright (C) 2001,2002 Miles Bader Copyright (C) 2001,2002 NEC Corporation Copyright (C) 2001-2003 Christophe Devine Copyright (C) 2001-2003 David Woodhouse Copyright (C) 2001-2004 BUFFALO INC. Copyright (c) 2001, Advent Networks, Inc. Copyright (c) 2001 Alex Züpke 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 Copyright (c) 2001 Hewlett Packard Copyright (C) 2001, James Dougherty, jfd@cs.stanford.edu Copyright (C) 2001 Josh Huber Copyright (c) 2001 Marius Gröger Copyright (C) 2001 Miles Bader 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 Copyright(c) 2001 Tony Z. Kou Copyright (c) 2001 William L. Pitts Copyright (C) 2002-2003 Greg Ungerer Copyright(c) 2002,2003 Motorola Inc. Copyright (c) 2002, 2003 Omicron Ceti AB, Daniel Engström 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 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 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 Copyright (C) 2002 Maciej W. Rozycki Copyright (c) 2002 Omicron Ceti AB, Daniel Engström Copyright (C) 2002 Paul Mundt Copyright (C) 2002 rabeeh@galileo.co.il Copyright (C) 2002 RidgeRun, Inc. Copyright (C) 2002 Samsung Electronics SW.LEE Copyright (C) 2002 Scott McNutt Copyright (c) 2002 Stephan Linz , 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 , Copyright (C) 2003 Bernardo Innocenti 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 Copyright (C) 2003 John Williams Copyright (C) 2003 John Williams Copyright (C) 2003 John Williams Copyright (C) 2003 John Williams (jwilliams@itee.uq.edu.au) Copyright (c) 2003 Josef Baumgartner Copyright (C) 2003 Josef Baumgartner Copyright (C) 2003 Kai-Uwe Bloem, Copyright (C) 2003 Kai-Uwe Bloem Copyright (C) 2003 Konrad Eisele Copyright (c) 2003 Kshitij Copyright (C) 2003 Kyle Harris Copyright (C) 2003 Manuel Novoa III 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 Copyright (c) 2003 Metrowerks/Motorola Copyright(c) 2003 Metrowerks Copyright (C) 2003 Montavista Software, Inc Copyright (C) 2003 Motorola Inc. Copyright (c) 2003 Richard Woodruff Copyright (C) 2003 Robert Schwebel Copyright (C) 2003 SAN People Copyright (c) 2003 Texas Instruments Copyright (c) 2003 Thomas.Lange@corelatus.se Copyright (C) 2003 Travis B. Sawyer Copyright (C) 2004-2005 Arabella Software Ltd. Copyright (c) 2004-2005, Greg Ungerer Copyright (c) 2004-2005 Sergey Lyubka 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 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 Copyright (C) 2004 Sylvain Munaut Copyright (c) 2004 Texas Instruments 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 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 Copyright (c) 2005 Ben Gardner 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 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. Copyright (C) 2006-2007 Rodolfo Giometti 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 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 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 Copyright (C) 2006 Pavel Pisa, PiKRON Copyright (C) 2006 Texas Instruments Copyright (c) 2006 Thomas Gleixner 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 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 Copyright (C) 2007 Daniel Hellstrom Copyright (C) 2007 Eurotech S.p.A. Copyright (C) 2007 Freescale Semiconductor, Inc. Copyright (C) 2007 Gerald Van Baren, Custom IDEAS, vanbaren@cideas.com Copyright (C) 2007, Guennadi Liakhovetski Copyright (C) 2007 Kenati Technologies, Inc. Copyright (C) 2007 Lead Tech Design Copyright (C) 2007 Logic Product Development, Inc. Copyright (C) 2007 MontaVista Software, Inc. Copyright (C) 2007 Nobuhiro Iwamatsu Copyright (C) 2007 Pengutronix, Copyright (C) 2007 Ralf Baechle (ralf@linux-mips.org) Copyright (C) 2007 Rodolfo Giometti Copyright (c) 2007 Samsung Electronics Copyright (C) 2007 Sascha Hauer, Pengutronix Copyright (C) 2007 Semihalf Copyright (C) 2007 Sergey Kubushyn Copyright (C) 2007 Stelian Pop Copyright (C) 2007 Yoshihiro Shimoda Copyright (c) 2008-2009 Analog Devices Inc. Copyright (C) 2008,2009 Eric Jarrige 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. Copyright (c) 2008 Eric Jarrige Copyright (c) 2008 Excito Elektronik i Skåne AB Copyright (c) 2008 Freescale Semiconductor, Inc. Copyright (C) 2008, Guennadi Liakhovetski Copyright (C) 2008 Jean-Christophe PLAGNIOL-VILLARD Copyright (C) 2008 Kim B. Heino Copyright (C) 2008 Lyrtech Copyright (c) 2008, Michael Trimarchi Copyright (C) 2008 Miromico AG Copyright (C) 2008 MontaVista Software, Inc. Copyright (C) 2008 Nobuhiro Iwamatsu Copyright (C) 2008 Nokia Corporation Copyright (c) 2008 Nuovation System Designs, LLC Copyright (C) 2008 Philip Balister, OpenSDR Copyright (c) 2008 Pieter Voorthuijsen 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 Copyright (C) 2008 Texas Instruments, Inc Copyright (C) 2008 Vivek Kutal Copyright (c) 2008 Yoshihiro Shimoda Copyright (C) 2008 Yusuke Goda Copyright (C) 2009, 2010 Matthias Kaehlcke 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 Copyright (c) 2009 esd gmbh hannover germany. Copyright (C) 2009 Freescale Semiconductor, Inc. Copyright (C) 2009, Ilya Yanok, Emcraft Systems, Copyright (C) 2009 Jean-Christophe PLAGNIOL-VILLARD Copyright (C) 2009 Jens Scharsig (js_at_ng@scharsoft.de) Copyright (C) 2009 Matthias Kaehlcke Copyright (c) 2009 MontaVista Software, Inc. Copyright (C) 2009 Nick Thompson, GE Fanuc Ltd, Copyright (C) 2009 Nobuhiro Iwamatsu Copyright (C) 2009 Renesas Solutions Corp. Copyright (c) 2009 Robin Getz 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 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 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 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. debian/patches/0000755000000000000000000000000012241611072010611 5ustar debian/patches/am335x-uenv.txt.diff0000644000000000000000000000202512241611072014253 0ustar Specify mmc partition to check for uEnv.txt rather than raw device. Based on patch by Robert Nelson Index: u-boot/include/configs/am335x_evm.h =================================================================== --- u-boot.orig/include/configs/am335x_evm.h 2013-10-26 08:39:53.000000000 -0700 +++ u-boot/include/configs/am335x_evm.h 2013-10-28 16:53:36.476301322 -0700 @@ -70,6 +70,7 @@ "dfu_alt_info_mmc=" DFU_ALT_INFO_MMC "\0" \ "dfu_alt_info_emmc=rawemmc mmc 0 3751936\0" \ "mmcdev=0\0" \ + "mmcpart=1\0" \ "mmcroot=/dev/mmcblk0p2 ro\0" \ "mmcrootfstype=ext4 rootwait\0" \ "rootpath=/export/rootfs\0" \ @@ -97,7 +98,7 @@ "nfsroot=${serverip}:${rootpath},${nfsopts} rw " \ "ip=dhcp\0" \ "bootenv=uEnv.txt\0" \ - "loadbootenv=load mmc ${mmcdev} ${loadaddr} ${bootenv}\0" \ + "loadbootenv=load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${bootenv}\0" \ "importbootenv=echo Importing environment from mmc ...; " \ "env import -t $loadaddr $filesize\0" \ "dfu_alt_info_ram=" DFU_ALT_INFO_RAM "\0" \ debian/patches/kerma-sheevaplug-mvsata.diff0000644000000000000000000000314712233672763016220 0ustar Add mvsata support to SHEEVAPLUG Signed-off-by: Gérald Kerma --- 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 #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 debian/patches/openrd-mmc.diff0000644000000000000000000000104512233672763013523 0ustar 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 */ debian/patches/kerma-sheevaplug-mvsdio.diff0000644000000000000000000010002112233672763016213 0ustar 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 --- 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 @@ -38,6 +38,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 + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#include +#include +#include +#include +#include "mv_sdio.h" +#include +#include +#include +#include + +#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 + * + * 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 debian/patches/series0000644000000000000000000000044012241611072012024 0ustar 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 guruplug_mvfs_and_mmc.diff 0001-wandboard-uEnv.txt-bootz-n-fixes.patch ti_armv7_common-support_raw_initrd.diff am335x-uenv.txt.diff debian/patches/mipsel-native-endianness.diff0000644000000000000000000000530412233672763016366 0ustar [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 --- 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(-) Index: u-boot/examples/standalone/mips.lds =================================================================== --- u-boot.orig/examples/standalone/mips.lds 2013-10-17 12:15:25.000000000 -0700 +++ u-boot/examples/standalone/mips.lds 2013-10-19 17:04:58.463166717 -0700 @@ -5,10 +5,6 @@ * SPDX-License-Identifier: GPL-2.0+ */ -/* -OUTPUT_FORMAT("elf32-bigmips", "elf32-bigmips", "elf32-bigmips") -*/ -OUTPUT_FORMAT("elf32-tradbigmips", "elf32-tradbigmips", "elf32-tradlittlemips") OUTPUT_ARCH(mips) SECTIONS { Index: u-boot/arch/mips/config.mk =================================================================== --- u-boot.orig/arch/mips/config.mk 2013-10-17 12:15:23.000000000 -0700 +++ u-boot/arch/mips/config.mk 2013-10-19 17:04:58.463166717 -0700 @@ -5,7 +5,7 @@ # SPDX-License-Identifier: GPL-2.0+ # -CROSS_COMPILE ?= mips_4KC- +#CROSS_COMPILE ?= mips_4KC- # Handle special prefix in ELDK 4.0 toolchain ifneq (,$(findstring 4KCle,$(CROSS_COMPILE))) debian/patches/no-error-on-set-but-unused-variables.diff0000644000000000000000000000061412233672763020470 0ustar --- 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 debian/patches/guruplug_mvfs_and_mmc.diff0000644000000000000000000000130112233672763016040 0ustar --- a/include/configs/guruplug.h +++ b/include/configs/guruplug.h @@ -43,6 +43,15 @@ * Commands configuration */ #define CONFIG_SYS_NO_FLASH /* Declare no flash (NOR/SPI) */ +#define CONFIG_CMD_EXT2 +#define CONFIG_CMD_UBI +#define CONFIG_CMD_UBIFS +#define CONFIG_RBTREE +#define CONFIG_MTD_DEVICE /* needed for mtdparts commands */ +#define CONFIG_MTD_PARTITIONS +#define CONFIG_CMD_MTDPARTS +#define CONFIG_LZO + #include #define CONFIG_CMD_DHCP #define CONFIG_CMD_ENV @@ -108,4 +117,9 @@ #define CONFIG_SYS_ALT_MEMTEST +#ifdef CONFIG_CMD_MMC +#define CONFIG_MMC +#define CONFIG_MV_SDIO +#endif /* CONFIG_CMD_MMC */ + #endif /* _CONFIG_GURUPLUG_H */ debian/patches/ti_armv7_common-support_raw_initrd.diff0000644000000000000000000000075112233672763020521 0ustar Index: u-boot/include/configs/ti_armv7_common.h =================================================================== --- u-boot.orig/include/configs/ti_armv7_common.h 2013-10-26 08:38:27.433333811 -0700 +++ u-boot/include/configs/ti_armv7_common.h 2013-10-26 08:38:37.000000000 -0700 @@ -149,6 +149,7 @@ #define CONFIG_CMD_ASKENV #define CONFIG_CMD_ECHO #define CONFIG_CMD_BOOTZ +#define CONFIG_SUPPORT_RAW_INITRD /* * Common filesystems support. When we have removable storage we debian/patches/0001-wandboard-uEnv.txt-bootz-n-fixes.patch0000644000000000000000000001061612233672763020427 0ustar Downloaded from: https://raw.github.com/eewiki/u-boot-patches/master/v2013.07/0001-wandboard-uEnv.txt-bootz-n-fixes.patch Modified to remove patch already applied in 2013.10, and not changing the default bootdelay. From b5e95ced39892a0165fc7e200e6b7e06281cc943 Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Thu, 12 Sep 2013 11:08:10 -0500 Subject: [PATCH] wandboard: uEnv.txt, bootz, n fixes Signed-off-by: Robert Nelson --- include/configs/wandboard.h | 65 +++++++++++++++++++++++++++++---------------- 1 file changed, 42 insertions(+), 23 deletions(-) diff --git a/include/configs/wandboard.h b/include/configs/wandboard.h index ee6bf21..3be97d9 100644 --- a/include/configs/wandboard.h +++ b/include/configs/wandboard.h @@ -70,6 +70,8 @@ #define CONFIG_BOUNCE_BUFFER #define CONFIG_CMD_EXT2 #define CONFIG_CMD_FAT +#define CONFIG_CMD_EXT4 +#define CONFIG_CMD_FS_GENERIC #define CONFIG_DOS_PARTITION /* Ethernet Configuration */ @@ -119,9 +121,12 @@ "fdt_addr=0x11000000\0" \ "boot_fdt=try\0" \ "ip_dyn=yes\0" \ - "mmcdev=" __stringify(CONFIG_SYS_MMC_ENV_DEV) "\0" \ + "optargs=\0" \ + "video=\0" \ + "mmcdev=0\0" \ "mmcpart=1\0" \ - "mmcroot=/dev/mmcblk0p2 rootwait rw\0" \ + "mmcroot=/dev/mmcblk0p2 ro\0" \ + "mmcrootfstype=ext4 rootwait\0" \ "update_sd_firmware_filename=u-boot.imx\0" \ "update_sd_firmware=" \ "if test ${ip_dyn} = yes; then " \ @@ -137,27 +142,34 @@ "fi; " \ "fi\0" \ "mmcargs=setenv bootargs console=${console},${baudrate} " \ - "root=${mmcroot}\0" \ + "${optargs} " \ + "root=${mmcroot} " \ + "rootfstype=${mmcrootfstype} " \ + "video=${video}\0" \ + "loadbootenv=load mmc ${mmcdev}:${mmcpart} ${loadaddr} uEnv.txt\0" \ + "importbootenv=echo Importing environment from mmc (uEnv.txt)...; " \ + "env import -t $loadaddr $filesize\0" \ "loadbootscript=" \ "fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \ "bootscript=echo Running bootscript from mmc ...; " \ "source\0" \ "loaduimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${uimage}\0" \ - "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \ + "loadzimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} zImage\0" \ + "loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdt_addr} /dtbs/${fdt_file}\0" \ "mmcboot=echo Booting from mmc ...; " \ "run mmcargs; " \ "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ "if run loadfdt; then " \ - "bootm ${loadaddr} - ${fdt_addr}; " \ + "bootz ${loadaddr} - ${fdt_addr}; " \ "else " \ "if test ${boot_fdt} = try; then " \ - "bootm; " \ + "bootz ${loadaddr}; " \ "else " \ "echo WARN: Cannot load the DT; " \ "fi; " \ "fi; " \ "else " \ - "bootm; " \ + "bootz ${loadaddr}; " \ "fi;\0" \ "netargs=setenv bootargs console=${console},${baudrate} " \ "root=/dev/nfs " \ @@ -169,32 +181,38 @@ "else " \ "setenv get_cmd tftp; " \ "fi; " \ - "${get_cmd} ${uimage}; " \ + "${get_cmd} zImage; " \ "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \ - "bootm ${loadaddr} - ${fdt_addr}; " \ + "bootz ${loadaddr} - ${fdt_addr}; " \ "else " \ "if test ${boot_fdt} = try; then " \ - "bootm; " \ + "bootz ${loadaddr}; " \ "else " \ "echo WARN: Cannot load the DT; " \ "fi; " \ "fi; " \ "else " \ - "bootm; " \ + "bootz ${loadaddr}; " \ "fi;\0" #define CONFIG_BOOTCOMMAND \ - "mmc dev ${mmcdev}; if mmc rescan; then " \ - "if run loadbootscript; then " \ - "run bootscript; " \ - "else " \ - "if run loaduimage; then " \ - "run mmcboot; " \ - "else run netboot; " \ - "fi; " \ - "fi; " \ - "else run netboot; fi" + "mmc dev ${mmcdev};" \ + "if mmc rescan; then " \ + "echo SD/MMC found on device ${mmcdev};" \ + "if run loadbootenv; then " \ + "run importbootenv;" \ + "fi;" \ + "echo Checking if uenvcmd is set ...;" \ + "if test -n $uenvcmd; then " \ + "echo Running uenvcmd ...;" \ + "run uenvcmd;" \ + "fi;" \ + "echo Running default loadzimage ...;" \ + "if run loadzimage; then " \ + "run mmcboot;" \ + "fi;" \ + "fi;" /* Miscellaneous configurable options */ #define CONFIG_SYS_LONGHELP @@ -237,6 +255,7 @@ #define CONFIG_OF_LIBFDT #define CONFIG_CMD_BOOTZ +#define CONFIG_SUPPORT_RAW_INITRD #ifndef CONFIG_SYS_DCACHE_OFF #define CONFIG_CMD_CACHE -- 1.8.4.rc3 debian/patches/ARM-OMAP3-Revamp-IGEP-default-configuration.diff0000644000000000000000000000526212233672763021164 0ustar From ebdb222b0d65bcc050e3f0fd6e97faf17fb3eae4 Mon Sep 17 00:00:00 2001 Sender: Loïc Minier From: Enric Balletbo i Serra 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 --- 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 debian/patches/hurd.diff0000644000000000000000000000104512233672763012424 0ustar --- a/include/compiler.h +++ b/include/compiler.h @@ -15,7 +15,7 @@ defined(__sun__) || \ defined(__APPLE__) # include -#elif defined(__linux__) || defined(__WIN32__) || defined(__MINGW32__) +#elif defined(__linux__) || defined(__WIN32__) || defined(__MINGW32__) || defined(__GLIBC__) # include #endif @@ -41,7 +41,7 @@ #define O_BINARY 0 #endif -#ifdef __linux__ +#if defined(__linux__) || defined(__GLIBC__) # include # include #elif defined(__MACH__) || defined(__FreeBSD__) debian/f0000644000000000000000000000141112242070765007340 0ustar debian/targets: Move build of dbau1100 from mipsel to mips, which fixes FTBFS on mipsel, due to dbau1100 being big-endian. Disable mipsel builds of u-boot, as it no longer has any targets. Add patch to support raw initrds on ti armv7 builds. Add patch to specify default mmc partition to use when loading uEnv.txt. Mark u-boot-tools as Multi-Arch: foreign. Mark u-boot as Multi-Arch: same. Update lintian overrides with list of current platforms. Add lintian override for arch-dependent-file-not-in-arch-specific-directory: There are no file conflicts across architectures for u-boot, as each target is only installed on a single architecture. In theory, some targets could be built on multiple architectures, but could instead install the package for the architecture needed. debian/source/0000755000000000000000000000000012233672763010501 5ustar debian/source/format0000644000000000000000000000001412233672763011707 0ustar 3.0 (quilt)