Import u-boot_2014.10+dfsg1-5.debian.tar.xz
authorVagrant Cascadian <vagrant@debian.org>
Tue, 7 Apr 2015 20:42:30 +0000 (20:42 +0000)
committerVagrant Cascadian <vagrant@debian.org>
Tue, 7 Apr 2015 20:42:30 +0000 (20:42 +0000)
[dgit import tarball u-boot 2014.10+dfsg1-5 u-boot_2014.10+dfsg1-5.debian.tar.xz]

82 files changed:
debian/bin/u-boot-install-targets [new file with mode: 0755]
debian/bin/update-lintian-overrides [new file with mode: 0755]
debian/changelog [new file with mode: 0644]
debian/compat [new file with mode: 0644]
debian/control [new file with mode: 0644]
debian/copyright [new file with mode: 0644]
debian/env-configs/efikamx.config [new file with mode: 0644]
debian/env-configs/guruplug.config [new file with mode: 0644]
debian/env-configs/kurobox_pro.config [new file with mode: 0644]
debian/env-configs/linkstation-mini.config [new file with mode: 0644]
debian/env-configs/linkstation_pro_live.config [new file with mode: 0644]
debian/env-configs/lsmipsel.config [new file with mode: 0644]
debian/env-configs/lsppchg.config [new file with mode: 0644]
debian/env-configs/openmoko_gta01.config [new file with mode: 0644]
debian/env-configs/openmoko_gta02.config [new file with mode: 0644]
debian/env-configs/qnap_ts101.config [new file with mode: 0644]
debian/env-configs/qnap_ts109-209.config [new file with mode: 0644]
debian/env-configs/qnap_ts119-219.config [new file with mode: 0644]
debian/env-configs/sheevaplug.config [new file with mode: 0644]
debian/env-configs/udoo_quad.config [new file with mode: 0644]
debian/manpages/fw_printenv.8 [new file with mode: 0644]
debian/manpages/fw_setenv.8 [new file with mode: 0644]
debian/patches/0001-Set-DCDC1-DDR3-to-1.35V-for-Beaglebone-Black.patch [new file with mode: 0644]
debian/patches/A20-OLinuXino-LIME2/sun7i-Add-support-for-Olimex-A20-OLinuXino-LIME2.patch [new file with mode: 0644]
debian/patches/ARM-OMAP3-Revamp-IGEP-default-configuration.diff [new file with mode: 0644]
debian/patches/BananaPro/Add-support-for-the-LeMaker-Banana-Pro.patch [new file with mode: 0644]
debian/patches/Makefile-add-kwb-target-to-all.patch [new file with mode: 0644]
debian/patches/add-debian-revision-to-u-boot-version [new file with mode: 0644]
debian/patches/am335x-bootscript.diff [new file with mode: 0644]
debian/patches/am335x-try-boot-from-first-partition.diff [new file with mode: 0644]
debian/patches/am335x-uenv.txt.diff [new file with mode: 0644]
debian/patches/arndale/board-spl-rule.diff [new file with mode: 0644]
debian/patches/arndale/exynos-Enable-config_distro_defaults.h.patch [new file with mode: 0644]
debian/patches/arndale/exynos5-Use-config_distro_bootcmd.h.patch [new file with mode: 0644]
debian/patches/cubox-i/cubox-i-raw-initrd.diff [new file with mode: 0644]
debian/patches/cubox-i/cubox-i-standardize-variables.diff [new file with mode: 0644]
debian/patches/cubox-i/cubox-i-support.diff [new file with mode: 0644]
debian/patches/cubox-i/emulate-config_distro_bootcmd-standardization.diff [new file with mode: 0644]
debian/patches/cubox-i/generic-board.diff [new file with mode: 0644]
debian/patches/cubox-i/imx6-spl-support.diff [new file with mode: 0644]
debian/patches/cubox-i/spl-sata-support.diff [new file with mode: 0644]
debian/patches/cubox-i/steal-board-eth-init-from-hummingboard.diff [new file with mode: 0644]
debian/patches/guruplug_mvfs_and_mmc.diff [new file with mode: 0644]
debian/patches/hurd.diff [new file with mode: 0644]
debian/patches/mipsel-native-endianness.diff [new file with mode: 0644]
debian/patches/mx53loco [new file with mode: 0644]
debian/patches/n900-bootz-raw-initrd.diff [new file with mode: 0644]
debian/patches/no-error-on-set-but-unused-variables.diff [new file with mode: 0644]
debian/patches/no-force-CROSS_COMPILE-powerpc.diff [new file with mode: 0644]
debian/patches/openrd-mmc.diff [new file with mode: 0644]
debian/patches/series [new file with mode: 0644]
debian/patches/sh4-fix-linker-name-prefix.patch [new file with mode: 0644]
debian/patches/ti_armv7_common-support_raw_initrd.diff [new file with mode: 0644]
debian/patches/tools-generic-builds.patch [new file with mode: 0644]
debian/patches/tools-only-in-no-dot-config-targets.diff [new file with mode: 0644]
debian/patches/udoo_quad-support.patch [new file with mode: 0644]
debian/patches/wandboard/emulate-config_distro_bootcmd-standardization.diff [new file with mode: 0644]
debian/patches/wandboard/wandboard-standardized-variables [new file with mode: 0644]
debian/patches/wandboard/wandboard-uEnv.txt-bootz-n-fixes.patch [new file with mode: 0644]
debian/patches/workaround-env-ftbfs [new file with mode: 0644]
debian/rules [new file with mode: 0755]
debian/source/format [new file with mode: 0644]
debian/source/include-binaries [new file with mode: 0644]
debian/targets [new file with mode: 0644]
debian/u-boot-exynos.install [new file with mode: 0755]
debian/u-boot-exynos.lintian-overrides [new file with mode: 0644]
debian/u-boot-imx.README.Debian [new file with mode: 0644]
debian/u-boot-imx.install [new file with mode: 0755]
debian/u-boot-imx.lintian-overrides [new file with mode: 0644]
debian/u-boot-omap.README.Debian [new file with mode: 0644]
debian/u-boot-omap.install [new file with mode: 0755]
debian/u-boot-omap.lintian-overrides [new file with mode: 0644]
debian/u-boot-sunxi.README.Debian [new file with mode: 0644]
debian/u-boot-sunxi.install [new file with mode: 0755]
debian/u-boot-sunxi.lintian-overrides [new file with mode: 0644]
debian/u-boot-tools.install [new file with mode: 0755]
debian/u-boot-tools.links [new file with mode: 0644]
debian/u-boot.README.Debian [new file with mode: 0644]
debian/u-boot.install [new file with mode: 0755]
debian/u-boot.lintian-overrides [new file with mode: 0644]
debian/watch [new file with mode: 0644]
tools/logos/solidrun.bmp [new file with mode: 0644]

diff --git a/debian/bin/u-boot-install-targets b/debian/bin/u-boot-install-targets
new file mode 100755 (executable)
index 0000000..6f55fcc
--- /dev/null
@@ -0,0 +1,5 @@
+#!/bin/sh
+subarch_install_file="debian/build/targets.${1}"
+if [ -f "${subarch_install_file}" ]; then
+    cat "${subarch_install_file}"
+fi
diff --git a/debian/bin/update-lintian-overrides b/debian/bin/update-lintian-overrides
new file mode 100755 (executable)
index 0000000..b6c17c1
--- /dev/null
@@ -0,0 +1,38 @@
+#!/bin/sh
+
+target_file=debian/targets
+
+awk '/^[a-z0-9]/{print $2}' ${target_file} | sort -u | while read subarch ; do
+    case ${subarch} in
+        -) package=u-boot ;;
+        *) package=u-boot-${subarch} ;;
+    esac
+    overrides=debian/${package}.lintian-overrides
+
+    cat >${overrides}<<EOF
+
+# 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.
+EOF
+
+    sed -n "/^[a-z0-9].*[[:space:]]$subarch[[:space:]]/p" ${target_file} | while read arch subarch2 platform targets ; do
+        echo "${package} [${arch}]: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/${platform}/uboot.elf"
+    done >> ${overrides}
+
+    cat >>${overrides}<<EOF
+
+# These bootloaders need to be statically linked.
+EOF
+
+    sed -n "/^[a-z0-9].*[[:space:]]$subarch[[:space:]]/p" ${target_file} | while read arch subarch2 platform targets ; do
+        echo "${package} [${arch}]: statically-linked-binary usr/lib/u-boot/${platform}/uboot.elf"
+    done >> ${overrides}
+
+    cat >>${overrides}<<EOF
+
+${package}: description-synopsis-starts-with-article
+EOF
+
+done
diff --git a/debian/changelog b/debian/changelog
new file mode 100644 (file)
index 0000000..c487b57
--- /dev/null
@@ -0,0 +1,797 @@
+u-boot (2014.10+dfsg1-5) unstable; urgency=medium
+
+  [ John Paul Adrian Glaubitz ]
+  * [sh4] Fix FTBFS due to incorrect target names (Closes: #780066).
+
+  [ Vagrant Cascadian ]
+  * [armhf] u-boot-sunxi: Enable A20-OLinuXino_MICRO. Thanks to Arne
+    Ploese for testing!
+  * [armhf] u-boot-sunxi: Enable Linksprite_pcDuino3. Thanks to Patrice Go
+    for testing!
+
+ -- Vagrant Cascadian <vagrant@debian.org>  Tue, 07 Apr 2015 13:42:30 -0700
+
+u-boot (2014.10+dfsg1-4) unstable; urgency=medium
+
+  [ Karsten Merker ]
+  * Backport support for the LeMaker Banana Pro board (Closes: #779908).
+
+  [ Vagrant Cascadian ]
+  * Update lintian rules for BananaPro and A20-OlinuXino-LIME2.
+
+ -- Vagrant Cascadian <vagrant@debian.org>  Sun, 08 Mar 2015 11:13:07 -0700
+
+u-boot (2014.10+dfsg1-3) unstable; urgency=medium
+
+  * cubox-i-support.diff: Refresh patch, dropping solidrun.bmp, which
+    causes FTBFS with newer version of patch (Closes: #777518).
+
+  * Add patch to support A20-OLinuXino-LIME2, backported from u-boot
+    2015.01. Thanks to Karsten Merker for the patch (Closes: #777466).
+
+ -- Vagrant Cascadian <vagrant@debian.org>  Sat, 21 Feb 2015 13:13:31 -0800
+
+u-boot (2014.10+dfsg1-2.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * debian/patches:
+    - Add sh4-fix-linker-name-prefix.patch to use the proper
+      linker name prefix on sh4. Fixes FTBFS. (Closes: #771747)
+
+ -- John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>  Thu, 11 Dec 2014 00:00:08 +0100
+
+u-boot (2014.10+dfsg1-2) unstable; urgency=medium
+
+  [ Steve Langasek ]
+  * Resync cubox-i patches with github.
+    - fixes support for booting on the cubox-i2ultra/i2ex.
+      (Closes: #766266)
+  
+  [ Vagrant Cascadian ]
+  * wandboard, cubox-i: Add patches to use variables expected by
+    debian-installer bootscript.
+  * cubox-i: Move importing bootenv before loading the boot script, to
+    allow environment variables useful to the boot script to be set.
+  * cubox-i: Run autodetectfdt before attempting to load the boot script.
+  * Split README.Debian by subarchitecture, and document installing u-boot
+    on several additional boards.
+
+ -- Vagrant Cascadian <vagrant@debian.org>  Sat, 01 Nov 2014 16:33:33 -0700
+
+u-boot (2014.10+dfsg1-1) unstable; urgency=medium
+
+  [ Vagrant Cascadian ]
+  * New upstream release.
+  * Refresh cubox-i patches to 2014.10.
+  * Update cubox-i patches to use generic board.
+  * Remove debian/patches/kerma-sheevaplug-mvsata.diff, merged upstream.
+  * Patch to allow tools-only to build without a configuration.
+  * Update Standards-Version to 3.9.6, no changes needed.
+
+  [ Ian Campbell ]
+  * Rebase arndale patches onto 2014.10
+
+ -- Vagrant Cascadian <vagrant@debian.org>  Sun, 19 Oct 2014 11:34:39 -0700
+
+u-boot (2014.10~rc3+dfsg1-2) experimental; urgency=medium
+
+  [ Ian Campbell ]
+  * Add support for the Arndale board (Closes: #763186).
+
+ -- Vagrant Cascadian <vagrant@debian.org>  Thu, 09 Oct 2014 11:41:31 -0700
+
+u-boot (2014.10~rc3+dfsg1-1) unstable; urgency=medium
+
+  * New upstream release candidate.
+  * Remove patches applied upstream:
+    - bootcmd-scsi-scan-before-scsi.patch
+    - sunxi/0001-sun7i-Add-support-for-Olimex-A20-OLinuXino-LIME.patch
+  * Refresh patches:  
+    - am335x-bootscript.diff
+    - am335x-uenv.txt.diff
+    - cubox-i/cubox-i-support.diff
+    - no-force-CROSS_COMPILE-powerpc.diff
+
+ -- Vagrant Cascadian <vagrant@debian.org>  Wed, 08 Oct 2014 09:57:35 -0700
+
+u-boot (2014.10~rc2+dfsg1-2) unstable; urgency=medium
+
+  [ Héctor Orón Martínez ]
+  * Fix cross building.
+  * Build extra tools for kirkwood and sunxi (Closes: #750108).
+  * Build extra tools and env just once, and install in PATH again.
+  * Add nitrogen6q support to u-boot-imx.
+
+  [ Vagrant Cascadian ]
+  * Use "make all" instead of making individual targets, recording a list
+    of targets to install in each subarch package.
+  * Build FEL variants for all sunxi platforms, based on patches from Ian
+    Campbell.
+  * Add build-depends on "bc".
+  * Patch to add the debian revision to the U-boot version.
+  * Updated cubox-i patches and re-enable mx6_cubox-i target.
+  * Build tools and env with NO_SDL=1 to avoid complaining about missing
+    sdl-config.
+  * Remove mips target dbau1100, an old platform with no testers.
+  * Swich qemu_mips target to install u-boot.bin, which is what is
+    actually needed by qemu.
+  * Add patch to Set DCDC1 DDR3 to 1.35V for Beaglebone Black. Thanks to
+    Robert Nelson for the patch.
+
+  [ Ian Campbell ]
+  * Add patch to add u-boot.kwb to "make all" on Kirkwood platforms.
+  * Build tools out-of-tree too so as not to dirty the source used for the
+    actual platforms (Closes: #763024).
+  * Add patch to initialize scsi before trying scsi disks in
+    config_distro_bootcmd (Closes: #764069).
+
+ -- Vagrant Cascadian <vagrant@debian.org>  Mon, 06 Oct 2014 16:58:04 -0700
+
+u-boot (2014.10~rc2+dfsg1-2~exp1) experimental; urgency=medium
+
+  * Split u-boot package into u-boot-imx, u-boot-omap and u-boot-sunxi
+    packages on armhf.
+
+  * debian/targets:
+    - Enable A10-OLinuXino-Lime target.
+    - Enable Cubieboard2 and Cubieboard2_FEL targets (Closes: #762383).
+    - Enable A20-OLinuXino-LIME target.
+    - Disable mx6_cubox-i
+    - Disable efikamx and efikasb.
+  
+  * debian/patches:
+    - Add patch from upstream to support A20-OLinuXino-LIME.
+    - Disable patches for cubox-i.
+  
+  * debian/rules:
+    - Remove excess conditional architecture check, drop build-dep on
+      dctrl-tools.
+    - Remove executable bit from u-boot targets.
+
+  * Updated lintian overrides.
+
+ -- Vagrant Cascadian <vagrant@debian.org>  Mon, 22 Sep 2014 18:30:12 -0500
+
+u-boot (2014.10~rc2+dfsg1-1) experimental; urgency=medium
+
+  * New upstream release candidate.
+  
+  * Update debian/patches:
+    - Remove Cubieboard and Cubietruck patches, applied upstream.
+    - Remove kerma-sheevaplug-mvsdio patch, applied upstream.
+    - Update openrd-mmc patch, partially applied upstream.
+    - Add patch to workaround failure when building env tools.
+  
+  * [armhf] Add Bananapi target.
+
+  * debian/rules:
+    - Install fw_printenv and fw_setenv symlink in platform-specific dir.
+    - Create include/config/auto.conf to allow tools-only target to build.
+    - Update to use defconfig target rather than config target.
+  
+  * debian/copyright:
+    - Update Files-Excluded as some files were removed upstream.
+  
+  * Updated lintian overrides.
+
+ -- Vagrant Cascadian <vagrant@debian.org>  Wed, 03 Sep 2014 23:28:59 -0700
+
+u-boot (2014.07+dfsg1-2) unstable; urgency=medium
+
+  [ Steve Langasek ]
+  * Rebase cubox-i patches on 2014.07 and re-enable the target.
+
+  [ Vagrant Cascadian ]
+  * Switch to debhelper 9 with executable .install files.
+  * Remove the efikamx and efikasb targets.
+
+ -- Vagrant Cascadian <vagrant@debian.org>  Sun, 14 Sep 2014 23:01:50 -0500
+
+u-boot (2014.07+dfsg1-1) unstable; urgency=medium
+
+  * New upstream version.
+  * [armhf] Temporarily disable cubox-i target, which needs re-working for
+    new upstream version.
+  * Refresh Cubietruck and Cubieboard patches.
+
+ -- Vagrant Cascadian <vagrant@debian.org>  Thu, 28 Aug 2014 12:22:06 -0700
+
+u-boot (2014.07~rc4+dfsg1-1) experimental; urgency=medium
+
+  * New upstream release candidate.
+  * Updated patches for sheevaplug MMC and SATA support.
+  * Updated openrd patches to use MMC driver.
+
+ -- Vagrant Cascadian <vagrant@debian.org>  Sat, 12 Jul 2014 17:24:51 -0700
+
+u-boot (2014.04+dfsg1-3) unstable; urgency=medium
+
+  * Add patch for mx53loco that enables support for ext4, the "load" command,
+    and using bootz with raw initrds.
+  * Remove ZUMA platform and drop powerpc from u-boot architectures
+    (Closes: #754610).
+
+ -- Vagrant Cascadian <vagrant@debian.org>  Mon, 28 Jul 2014 15:30:26 -0700
+
+u-boot (2014.04+dfsg1-2) unstable; urgency=medium
+
+  * Enable udoo_quad target, with patch improving the udoo_quad boot
+    environment. Thanks to Michael Fladischer! (Closes: #753376).
+  * Enable Cubieboard target and patches.
+  * Update lintian overrides.
+
+ -- Vagrant Cascadian <vagrant@debian.org>  Wed, 09 Jul 2014 12:37:12 -0700
+
+u-boot (2014.04+dfsg1-1) unstable; urgency=medium
+
+  [ Vagrant Cascadian ]
+  * Repack upstream tarball to remove files containing firmware without
+    sources (Closes: #750912).
+
+  * Add patches for Cubietruck from upstream.
+  * Add Cubietruck and Cubietruck_FEL targets (Closes: #750473).
+
+  * Add support for bootscripts to BeagleBone Black.
+    - Support loading files from either first or second partition.
+
+  * Modified wandboard patches:
+    - Add support for bootscripts.
+    - Support both fat and ext filesystems by consistantly using the "load"
+      command.
+    - Try loading bootscript from /boot/ as a fallback if not found in /.
+
+  * Update debian/copyright to use copyright format 1.0.
+    - Document which files are removed in debian/copyright.
+  * Update debian/watch to handle +dfsg version.
+  * Update lintian overrides:
+    - Ignore 'u-boot: statically-linked-binary'.
+    - Include new u-boot targets.
+
+  [ Andreas Henriksson ]
+  * Add patches for sunxi AHCI driver (Cubietruck) (Closes: #750473).
+
+ -- Vagrant Cascadian <vagrant@debian.org>  Sun, 15 Jun 2014 21:03:40 -0700
+
+u-boot (2014.04-2) unstable; urgency=medium
+
+  * Fix FTBFS on powerpc by not setting CROSS_COMPILE when empty. 
+
+ -- Vagrant Cascadian <vagrant@debian.org>  Mon, 26 May 2014 11:32:49 -0700
+
+u-boot (2014.04-1) unstable; urgency=low
+
+  [ Steve Langasek ]
+  * Patches taken from https://github.com/rabeeh/u-boot-imx6.git to support
+    the SolidRun CuBox-i series:
+    - debian/patches/spl-sata-support.diff:
+      Add support for SATA in SPL mode
+    - debian/patches/imx6-spl-support.diff:
+      Add support for SPL on i.MX6-based systems
+    - debian/patches/cubox-support.diff, tools/logos/solidrun.bmp:
+      Add support for the CuBox-i.
+  * Build the mx6_cubox-i target (Closes: #741127).
+
+  [ Vagrant Cascadian ]
+  * Add Nokia nokia_rx51 (n900) to targets to build.
+    - Patch n900 build to support bootz and raw initrds.
+  * debian/rules: Fix building of targets for v2014.04.
+    - Move fw_printenv creation into board-specific targets.
+    - Build target "tools-only".
+    - Drop special-casing of MLO, add MLO to debian/targets.
+  * debian/patches/cubox-i-raw-initrd.diff:
+    - Patch to support raw initrd on cubox-i. 
+  * debian/watch: Use http.
+  * debian/control: Bump Standards-Version to 3.9.5, no changes needed.
+
+ -- Vagrant Cascadian <vagrant@debian.org>  Tue, 20 May 2014 10:04:56 -0700
+
+u-boot (2014.01-2) unstable; urgency=medium
+
+  * Set Maintainer to Vagrant Cascadian (Closes: #738446).
+  * Remove Micah Anderson from uploaders.
+  * Add Clint Adams <clint@debian.org> to uploaders.
+  * Use grep-dctrl to pull architecture list from debian/control, rather than
+    hardcoding architectures in debian/rules.
+  * u-boot-tools: Set architecture to linux-any (Closes: #730833).
+  * Build raspberry pi (rpi_b) image on armel.
+    - Patch to to enable EXT2/EXT4 support and raw initrds.
+
+ -- Vagrant Cascadian <vagrant@debian.org>  Tue, 04 Mar 2014 14:13:22 -0800
+
+u-boot (2014.01-1) unstable; urgency=low
+
+  * New upstream version. 
+  * Updated patches. 
+  * debian/watch: Update to catch -rc versions.
+  * debian/control: Update Vcs-* headers.
+  * u-boot-tools: Strip comment sections from mkimage and fw_printenv.
+
+ -- Vagrant Cascadian <vagrant@debian.org>  Tue, 11 Feb 2014 15:11:47 -0800
+
+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 <vagrant@debian.org>  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 <vagrant@debian.org>  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 <vagrant@debian.org>  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 <clint@debian.org>  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 <micah@debian.org>  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 <clint@debian.org>  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 <clint@debian.org>  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 <clint@debian.org>  Thu, 31 May 2012 21:04:49 -0400
+
+u-boot (2012.04.01-1) unstable; urgency=low
+
+  * New upstream version.
+    - Update mipsel-native-endianness.diff.
+    - Update no-error-on-set-but-unused-variables.diff (partially merged).
+    - Drop kirkwood_spi-irq_mask.diff (merged).
+    - Drop kirkwood-disable-l2c.diff (merged).
+
+ -- Clint Adams <clint@debian.org>  Tue, 01 May 2012 18:07:19 -0400
+
+u-boot (2011.12-3) unstable; urgency=low
+
+  [ Jonathan Nieder ]
+  * kirkwood: disable L2 cache before Linux boot; thanks to Ian Campbell.
+    closes: #658904
+
+  [ Loïc Minier ]
+  * Add patch to strip env tools; sent to upstream mailing-list.
+
+ -- Loïc Minier <lool@debian.org>  Sun, 11 Mar 2012 16:12:50 +0100
+
+u-boot (2011.12-2) unstable; urgency=low
+
+  [ Loïc Minier ]
+  * Build u-boot.imx for efikasb on armhf
+
+  [ Clint Adams ]
+  * Patch from Ian Campbell to fix Dreamplug breakage.  closes: #655102.
+
+ -- Clint Adams <clint@debian.org>  Sun, 08 Jan 2012 15:11:03 -0500
+
+u-boot (2011.12-1) unstable; urgency=low
+
+  * New upstream version.
+    - Drop build-timestamp_autogenerated.h-without-config.patch (merged).
+    - Drop ublimage-NAND-block-size-isn-t-set-at-build-time.patch (merged).
+    - Update kerma-sheevaplug-mvsdio.diff
+    - Update mipsel-native-endianness.diff
+    - Drop dreamplug-v8.patch (merged).
+
+ -- Clint Adams <clint@debian.org>  Mon, 02 Jan 2012 17:49:39 -0500
+
+u-boot (2011.09-2) unstable; urgency=low
+
+  * Patch from Pino Toscano <pino@debian.org> to build on the Hurd.
+    closes: #648295.
+  * Drop gr_xc3s_1500 target.
+  * Add build-arch and build-indep targets to debian/rules.
+
+ -- Clint Adams <clint@debian.org>  Tue, 15 Nov 2011 23:53:01 -0500
+
+u-boot (2011.09-1) unstable; urgency=low
+
+  [ Hector Oron ]
+  * Enable MX53LOCO platform.
+  * Update lintian overrides.
+
+  [ Loïc Minier ]
+  * Fix FTBFS on amd64 and allow `make tools` to succeed without
+    config.
+
+  [ Clint Adams ]
+  * New upstream version.
+    - Update kerma-sheevaplug-mvsdio.diff.
+    - Drop panda-default-console.diff (refactored).
+    - Replace dreamplug patches with Jason's v8.
+  * Add Buffalo Linkstation Mini env config from Benjamin Cama.
+
+ -- Clint Adams <clint@debian.org>  Fri, 30 Sep 2011 21:22:23 -0400
+
+u-boot (2011.06-4) unstable; urgency=low
+
+  * Increase the USB non-bulk timeout by an order of magnitude.
+    May fix #635774.
+
+ -- Clint Adams <clint@debian.org>  Sat, 06 Aug 2011 13:42:52 -0400
+
+u-boot (2011.06-3) unstable; urgency=low
+
+  * Add DreamPlug support.
+
+ -- Clint Adams <clint@debian.org>  Sun, 24 Jul 2011 09:35:32 -0400
+
+u-boot (2011.06-2) unstable; urgency=low
+
+  * Use -Wno-error=unused-but-set-variable on i386.
+
+ -- Clint Adams <clint@debian.org>  Sat, 02 Jul 2011 22:14:44 -0400
+
+u-boot (2011.06-1) unstable; urgency=low
+
+  * New upstream version.
+  * Fix i386 and mipsel builds.
+
+ -- Clint Adams <clint@debian.org>  Sat, 02 Jul 2011 19:25:28 -0400
+
+u-boot (2011.06~rc3-1) unstable; urgency=low
+
+  * New upstream version.
+
+ -- Clint Adams <clint@debian.org>  Sat, 02 Jul 2011 15:50:46 -0400
+
+u-boot (2011.06~rc2-2) unstable; urgency=low
+
+  * Fix mipsel endianness problem again.
+  * Try building gr_xc3s_1500 on sparc.
+
+ -- Clint Adams <clint@debian.org>  Sat, 18 Jun 2011 10:13:53 -0400
+
+u-boot (2011.06~rc2-1) unstable; urgency=low
+
+  * New upstream version.
+  * Fix tools config selection.
+
+ -- Clint Adams <clint@debian.org>  Tue, 14 Jun 2011 20:53:07 -0400
+
+u-boot (2011.06~rc1-1) unstable; urgency=low
+
+  * New upstream version.
+    - Update mipsel-native-endianness.diff
+    - Drop Drop-config.h-include-in-tools-imximage.h.diff (merged).
+    - Drop openrd-client-and-ultimate.diff (merged).
+    - Update openrd-mmc.diff (formerly openrd-mmc-mtd-fat.diff).
+    - Drop eNET-monitor_flash_len.diff (merged).
+    - Update snapshot.commit to 2011.06-rc1.
+    - Use the first target for each arch to build the tools, or
+      fake it on the other architectures.
+  * Only build efikamx image on armhf.
+
+ -- Clint Adams <clint@debian.org>  Sat, 21 May 2011 11:04:30 -0400
+
+u-boot (2011.03-6) unstable; urgency=low
+
+  * Bump to Standards-Version 3.9.2.
+  * Tweak the u-boot-tools description.
+  * Drop igep0020, omap3_beagle, and omap4_panda targets from
+    armel; they are available on armhf.
+
+ -- Clint Adams <clint@debian.org>  Tue, 26 Apr 2011 16:11:24 -0400
+
+u-boot (2011.03-5) unstable; urgency=low
+
+  [ Sebastian Reichel ]
+  * Add Pandaboard target.  closes: #624123
+  * New patch to change default console on Pandaboard.
+
+ -- Clint Adams <clint@debian.org>  Mon, 25 Apr 2011 15:36:16 -0400
+
+u-boot (2011.03-4) unstable; urgency=low
+
+  * Enable FAT, SD/MMC, MTD, JFFS, UBIFS support on OpenRD boards.
+
+ -- Clint Adams <clint@debian.org>  Wed, 13 Apr 2011 18:05:36 -0400
+
+u-boot (2011.03-3) unstable; urgency=low
+
+  * Actually pass the right arch_number for OpenRD-Ultimate.
+
+ -- Clint Adams <clint@debian.org>  Tue, 12 Apr 2011 14:28:20 -0400
+
+u-boot (2011.03-2) unstable; urgency=low
+
+  * Fix i386 FTBFS with eNET-monitor_flash_len.diff
+  * Add patch for OpenRD-Client and OpenRD-Ultimate.
+  * Drop openrd_base target and add openrd_ultimate target.
+
+ -- Clint Adams <clint@debian.org>  Tue, 05 Apr 2011 15:56:43 -0400
+
+u-boot (2011.03-1) unstable; urgency=low
+
+  [ Loïc Minier ]
+  * Only try to build env tools when Linux MTD headers are present.
+    closes: #619673.
+
+  [ Clint Adams ]
+  * New upstream version.
+    - Drop fix-definition-of-global_data-struct.diff (now upstream).
+    - Drop EfikaMX-switch-to-MACH_TYPE_MX51_EFIKAMX.diff (upstream now).
+    - Drop sh-sh7785lcr-Fix-out-of-tree-building.diff (upstream now).
+    - Drop MIPS-dbau1x00-Remove-unused-flash-driver-stub.diff (upstream now).
+    - Drop x86-Align-config.mk-and-linker-scripts-with-other-ar.diff
+      (upstream now).
+    - Update snapshot.commit to 2011.03
+
+ -- Clint Adams <clint@debian.org>  Fri, 01 Apr 2011 10:30:46 -0400
+
+u-boot (2011.03~rc1-4) experimental; urgency=low
+
+  * Add patch x86-Align-config.mk-and-linker-scripts-with-other-ar.
+    From upstream mailing-list; fixes x86 build (eNET).
+
+ -- Loïc Minier <lool@debian.org>  Wed, 09 Feb 2011 14:51:01 +0100
+
+u-boot (2011.03~rc1-3) experimental; urgency=low
+
+  * Add debian/source/local-options
+    - unapply-patches: avoids committing patched tree after a build
+    - abort-on-upstream-changes: avoids creating a debian-changes-* patch
+      when building from a dirty tree
+  * Add patch MIPS-dbau1x00-Remove-unused-flash-driver-stub,
+    from u-boot-mipsel.git 17a990b55008fd79636e4880d9d10b7172ca87ce and also
+    sent to the upstream mailing-list; fixes build of dbau1x00 board by
+    removing board/dbau1x00/flash.c entirely, and hence fixes the build of
+    u-boot on mipsel.
+
+ -- Loïc Minier <lool@debian.org>  Tue, 08 Feb 2011 16:49:05 +0100
+
+u-boot (2011.03~rc1-2) experimental; urgency=low
+
+  * New patch sh-sh7785lcr-Fix-out-of-tree-building; from upstream
+    e72f46787f44c1104a8df18511ab230b6072a1f0; fixes Debian sh4 build; thanks
+    Nobuhiro Iwamatsu; closes: #611873.
+
+ -- Loïc Minier <lool@debian.org>  Mon, 07 Feb 2011 17:20:16 +0100
+
+u-boot (2011.03~rc1-1) experimental; urgency=low
+
+  * dpkg-shlibdeps usr/bin/* rather than just mkimage.
+  * uboot-mkimage's Section is utils.
+  * Allow overriding CROSS_COMPILE.
+  * New upstream release candidate.
+    - Merge commit v2011.03-rc1
+    - Update snapshot.commit to 2011.03-rc1
+  * Add EfikaMX support.
+    - Add patch EfikaMX-switch-to-MACH_TYPE_MX51_EFIKAMX from the upstream
+      mailing-list; fixes build on EfikaMX (EfikaMX: switch to
+      MACH_TYPE_MX51_EFIKAMX)
+    - Add patch Drop-config.h-include-in-tools-imximage.h from the upstream
+      mailing-list; fixes tools-all build of imximage.c.
+    - Build u-boot.imx for efikamx on armel.
+  * Refresh patch kerma-sheevaplug-mvsdio to fix fuzz.
+
+ -- Loïc Minier <lool@debian.org>  Thu, 03 Feb 2011 13:13:14 +0100
+
+u-boot (2010.12-2) unstable; urgency=low
+
+  * Avoid calling dpkg-architecture if DEB_HOST_ARCH is set.
+  * Misc refactoring of debian/rules.
+    - Split per architecture list of platform and targets into
+      debian/targets.
+    - Actually use INSTALL_FILE/INSTALL_DIR/INSTALL_PROGRAM.
+    - Add support for cross-builds; these will currently lack tools.
+    - Build board-specific u-boot files in a separate build dir from the
+      generic tools
+  * Fix handling of -Wl,foo LDFLAGS; the upstream build passes LDFLAGS
+    directly to ld instead of calling gcc for linking; so instead of passing
+    -Wl,foo in LDFLAGS as in automake builds, one should set LDFLAGS to foo
+    directly; add a snippet to strip -Wl, from LDFLAGS; alternatively, we
+    could do as in other special packages like the kernel and simply unset
+    LDFLAGS entirely; closes: #607613.
+  * Install and compress upstream mkimage manpage; based on a patch by
+    Marcin Juszkiewicz.
+  * Add a dummy uboot-mkimage package for upgrades from squeeze; based on a
+    patch by Marcin Juszkiewicz; closes: #607618.
+  * Add new patch, fix-definition-of-global_data-struct, from the upstream
+    x86 maintainer; fixes build of eNET board which breaks u-boot's build on
+    i386; closes: #608801.
+  * Workaround an upstream bug in distclean by removing include/asm/proc and
+    /arch explicitly for now; patch was sent upstream.
+  * Don't repeat Section: in binary package.
+  * Add myself to Uploaders.
+  * Split tools in u-boot-tools package.
+  * Drop board-specific tools; these are too dangerous; only ship mkimage for
+    now.
+  * Add igep0020 and omap3_beagle builds on armel
+  * Update snapshot.commit to the 2010.12 release contents; this avoids a
+    pointless diff with the tarball.
+
+ -- Loïc Minier <lool@debian.org>  Mon, 17 Jan 2011 22:43:41 +0100
+
+u-boot (2010.12-1) unstable; urgency=low
+
+  * New upstream version.
+  * Install more tools in preparation for splitting off a
+    u-boot-tools binary package.
+
+ -- Clint Adams <clint@gnu.org>  Tue, 28 Dec 2010 17:03:44 -0500
+
+u-boot (2010.12~rc3-1) unstable; urgency=low
+
+  * New upstream release candidate.
+  * Add dockstar target.
+
+ -- Clint Adams <clint@gnu.org>  Sun, 19 Dec 2010 09:45:42 -0500
+
+u-boot (2010.12~rc2-1) unstable; urgency=low
+
+  * New upstream release candidate.
+  * Add openrd_base target.
+
+ -- Clint Adams <clint@gnu.org>  Sat, 04 Dec 2010 15:32:38 -0500
+
+u-boot (2010.09-2) unstable; urgency=low
+
+  * Enable ext2 commands on GuruPlug.
+  * Ship ELF files (for loading into RAM with OpenOCD).
+
+ -- Clint Adams <clint@gnu.org>  Sat, 20 Nov 2010 18:20:40 -0500
+
+u-boot (2010.09-1) unstable; urgency=low
+
+  * New upstream release.
+
+ -- Clint Adams <schizo@debian.org>  Wed, 29 Sep 2010 00:06:25 -0400
+
+u-boot (2010.09~rc2-1) unstable; urgency=low
+
+  * New upstrem release candidate.
+
+ -- Clint Adams <schizo@debian.org>  Sun, 19 Sep 2010 14:20:52 -0400
+
+u-boot (2010.09~rc1-2) unstable; urgency=low
+
+  * Add patch from Gérald Kerma to add Sheevaplug mvsata support.
+  * Add patch from Gérald Kerma to add Sheevaplug mvsdio support.
+
+ -- Clint Adams <schizo@debian.org>  Sun, 12 Sep 2010 11:48:22 -0400
+
+u-boot (2010.09~rc1-1) unstable; urgency=low
+
+  * New upstream release candidate.
+    - Drop guruplug-miiphy_reset.diff.
+    - Update mipsel-native-endianness.diff.
+    - Drop sh4-native-compile.diff.
+  * Bump to Standards-Version 3.9.1.
+
+ -- Clint Adams <schizo@debian.org>  Sat, 11 Sep 2010 00:43:04 -0400
+
+u-boot (2010.06-1) unstable; urgency=low
+
+  * New upstream version.
+
+ -- Clint Adams <schizo@debian.org>  Sat, 03 Jul 2010 13:49:46 -0400
+
+u-boot (2010.06~rc3-1) unstable; urgency=low
+
+  * New upstream version.
+  * Fix sh4-native-compile.diff to not break sh64, thanks to Paul
+    Mundt.
+  * Ship mkimage, conflict/replace uboot-mkimage, build on all
+    architectures.
+
+ -- Clint Adams <schizo@debian.org>  Fri, 25 Jun 2010 14:49:06 -0400
+
+u-boot (2010.06~rc2-1) unstable; urgency=medium
+
+  * Add sh4-native-compile.diff from Aurelien Jarno.  closes: #586026.
+  * New upstream version.
+    - Drop marvell-machtypes.diff.
+
+ -- Clint Adams <schizo@debian.org>  Tue, 15 Jun 2010 21:37:26 -0400
+
+u-boot (2010.06~rc1-6) unstable; urgency=medium
+
+  * Add guruplug-miiphy_reset.diff.
+  * Clean between targets.  closes: #585570.
+
+ -- Clint Adams <schizo@debian.org>  Fri, 11 Jun 2010 21:57:31 -0400
+
+u-boot (2010.06~rc1-5) unstable; urgency=low
+
+  * Replace mipsel-native-endianness.diff with patch adapted
+    from a 2008 mailing list posting by Shinya Kuribayashi.
+
+ -- Clint Adams <schizo@debian.org>  Fri, 04 Jun 2010 20:08:27 -0400
+
+u-boot (2010.06~rc1-4) unstable; urgency=low
+
+  * Add r2dplus target for sh4.
+  * mipsel-native-endianness.diff: don't force endianness on mips/mipsel
+
+ -- Clint Adams <schizo@debian.org>  Thu, 03 Jun 2010 19:32:50 -0400
+
+u-boot (2010.06~rc1-3) unstable; urgency=low
+
+  * Fix mipsel typo.
+  * Apply patch from Nobuhiro Iwamatsu to change sh4 target board
+    from espt to sh7785lcr_32bit.  closes: #584192.
+
+ -- Clint Adams <schizo@debian.org>  Wed, 02 Jun 2010 08:25:04 -0400
+
+u-boot (2010.06~rc1-2) unstable; urgency=low
+
+  * Produce u-boot.bin on i386.
+  * Switch mipsel target to AMD DBAu1100.
+  * Add marvell-machtypes.diff.
+
+ -- Clint Adams <schizo@debian.org>  Mon, 31 May 2010 22:09:29 -0400
+
+u-boot (2010.06~rc1-1) unstable; urgency=low
+
+  * Add Vcs-Git and Vcs-Browser headers.
+  * Add GuruPlug target (armel).
+  * Switch mipsel target to TB0229.
+  * Add watch file.
+  * Update README.Debian for SheevaPlug and GuruPlug.
+
+ -- Clint Adams <schizo@debian.org>  Mon, 31 May 2010 19:29:40 -0400
+
+u-boot (2010.03-1) unstable; urgency=low
+
+  * Initial packaging.  closes: #583605.
+
+ -- Clint Adams <schizo@debian.org>  Fri, 28 May 2010 16:20:39 -0400
diff --git a/debian/compat b/debian/compat
new file mode 100644 (file)
index 0000000..f11c82a
--- /dev/null
@@ -0,0 +1 @@
+9
\ No newline at end of file
diff --git a/debian/control b/debian/control
new file mode 100644 (file)
index 0000000..1433227
--- /dev/null
@@ -0,0 +1,97 @@
+Source: u-boot
+Section: admin
+Priority: optional
+Maintainer: Vagrant Cascadian <vagrant@debian.org>
+Uploaders: Loïc Minier <lool@debian.org>, Clint Adams <clint@debian.org>
+Build-Depends: debhelper (>= 9), bc, device-tree-compiler
+Standards-Version: 3.9.6
+Homepage: http://www.denx.de/wiki/U-Boot/
+Vcs-Git: git://anonscm.debian.org/collab-maint/u-boot.git
+Vcs-Browser: http://anonscm.debian.org/gitweb/?p=collab-maint/u-boot.git;a=summary
+
+Package: u-boot
+Architecture: armel armhf avr32 mips sh4
+Multi-Arch: same
+Depends: ${misc:Depends},
+ u-boot-imx [armhf], u-boot-omap [armhf], u-boot-sunxi [armhf], u-boot-exynos [armhf]
+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-imx
+Architecture: armhf
+Multi-Arch: same
+Depends: ${misc:Depends}
+Breaks: u-boot (<< 2014.10~rc2+dfsg1-2~)
+Replaces: u-boot (<< 2014.10~rc2+dfsg1-2~)
+Description: A boot loader for imx 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.
+ .
+ This package includes boot loaders for various imx platforms.
+
+Package: u-boot-omap
+Architecture: armhf
+Multi-Arch: same
+Depends: ${misc:Depends}
+Breaks: u-boot (<< 2014.10~rc2+dfsg1-2~)
+Replaces: u-boot (<< 2014.10~rc2+dfsg1-2~)
+Description: A boot loader for omap 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.
+ .
+ This package includes boot loaders for various omap and related
+ platforms.
+
+Package: u-boot-sunxi
+Architecture: armhf
+Multi-Arch: same
+Depends: ${misc:Depends}
+Breaks: u-boot (<< 2014.10~rc2+dfsg1-2~)
+Replaces: u-boot (<< 2014.10~rc2+dfsg1-2~)
+Description: A boot loader for sunxi 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.
+ .
+ This package includes boot loaders for various Allwinner/sunxi
+ platforms.
+
+Package: u-boot-exynos
+Architecture: armhf
+Multi-Arch: same
+Depends: ${misc:Depends}
+Description: A boot loader for exynos 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.
+ .
+ This package includes boot loaders for various Exynos platforms.
+
+Package: u-boot-tools
+Architecture: linux-any
+Multi-Arch: foreign
+Depends: ${shlibs:Depends}, ${misc: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.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644 (file)
index 0000000..6188376
--- /dev/null
@@ -0,0 +1,449 @@
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: Das U-Boot
+Source: ftp://ftp.denx.de/pub/u-boot/
+Files-Excluded: *fpgadata*
+ arch/powerpc/cpu/mpc8xx/upatch.c
+ board/dave/PPChameleonEVB/fpgadata.c 
+ drivers/dma/MCD_tasks.c
+
+Files: *
+Copyright: 2000-2013 Wolfgang Denk <wd@denx.de>
+ 1995-2002 Russell King
+ 1996-1998 Russell King
+ 1996-1999 Russell King
+ 1996-2000 Russell King
+ 1996 Russell King
+ 1997-1999 Russell King
+ 1999-2002 Vojtech Pavlik
+ 1999 Linus Torvalds / 2000-2002 Transmeta Corporation
+ 1999 Russell King
+ 2000-2002 Russell King
+ 2000-2010 David Woodhouse <dwmw2@infradead.org>
+ 2000 Steven J. Hill (sjhill@realitydiluted.com)
+ 2001, 2002, 2003 / 2004 Gary Jennejohn garyj@denx.de
+ 2002-2007 Aleph One Ltd
+ 2002-2011 Aleph One Ltd
+ 2002 Thomas Gleixner (tglx@linutronix.de)
+ 2003 Kai-Uwe Bloem / 2000-2002 Transmeta Corporation / 1999 Linus Torvalds
+ 2004 by David Brownell
+ 2004 Nokia Corporation
+ 2004 Thomas Gleixner (tglx@linutronix.de)
+ 2005-2006 by Texas Instruments
+ 2005-2006 by Texas Instruments / 2005 Mentor Graphics Corporation / 2006-2007 Nokia Corporation
+ 2005-2007 Samsung Electronics
+ 2005-2007 Samsung Electronics / Samsung Electronics, 2009 / Nokia Corporation, 2007
+ 2005-2008 Samsung Electronics
+ 2005 Mentor Graphics Corporation / 2005-2006 by Texas Instruments / 2006-2007 Nokia Corporation
+ 2005 Mentor Graphics Corporation / 2005-2006 by Texas Instruments / 2008-2009 MontaVista Software, Inc. <source@mvista.com> / 2006-2007 Nokia Corporation
+ 2005, Seagate Technology LLC / 2008 Stefan Roese <sr@denx.de>, DENX Software Engineering
+ 2006-2007 Nokia Corporation / 2005-2006 by Texas Instruments / 2005 Mentor Graphics Corporation
+ 2006-2007 Nokia Corporation / 2005 Mentor Graphics Corporation / 2005-2006 by Texas Instruments
+ 2006-2007 Nokia Corporation / 2005 Mentor Graphics Corporation / 2005-2006 by Texas Instruments / 2008-2009 MontaVista Software, Inc. <source@mvista.com>
+ 2006, 2007 University of Szeged, Hungary / 2006-2008 Nokia Corporation
+ 2006-2008 Nokia Corporation
+ 2006,2009 Freescale Semiconductor, Inc
+ 2006-2009 Solarflare Communications Inc
+ 2006 Freescale Semiconductor, Inc
+ 2006 Nokia Corporation / 2005-2007 by Texas Instruments
+ 2006 Pavel Pisa, PiKRON <ppisa@pikron.com> / 2008 Sascha Hauer, Pengutronix <s.hauer@pengutronix.de> / 2009 Ilya Yanok, <yanok@emcraft.com>
+ 2006 Thomas Gleixner <tglx@linutronix.de>
+ 2007-2011 Freescale Semiconductor, Inc
+ 2007 Freescale Semiconductor, Inc
+ 2008-2009 / 2006-2008 Nokia Corporation
+ 2008-2009 Freescale Semiconductor, Inc
+ 2008-2009, MontaVista Software, Inc. <source@mvista.com> / 2010, by Texas Instruments
+ 2008,2009 STMicroelectronics / 2010 Joakim Axelsson <joakim.axelsson AT stericsson.com> / 2009 Alessandro Rubini <rubini@unipv.it>
+ 2008-2010 / 2006-2008 Nokia Corporation
+ 2008-2011 Freescale Semiconductor, Inc
+ 2008, 2011 Freescale Semiconductor, Inc
+ 2008,2011 Freescale Semiconductor, Inc
+ 2008-2012 Freescale Semiconductor, Inc
+ 2008 Altera Corporation / 2010 Thomas Chou <thomas@wytron.com.tw>
+ 2008 Atmel Corporation / 2013 Jagannadha Sutradharudu Teki, Xilinx Inc
+ 2008 by Texas Instruments / 2008 Mentor Graphics Corporation
+ 2008 Dave S.r.l. <www.dave.eu>
+ 2008 Extreme Engineering Solutions, Inc
+ 2008 Freescale Semiconductor, Inc
+ 2008 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> / 2004-2007 ARM Limited
+ 2008 Kim B. Heino / 2009
+ 2008 Qstreams Networks, Inc
+ 2008 Samsung Electronics / 2008-2009 Stefan Roese <sr@denx.de>, DENX Software Engineering
+ 2008 STMicroelectronics / 2010 Joakim Axelsson <joakim.axelsson AT stericsson.com> / 2009 Alessandro Rubini <rubini@unipv.it>
+ 2008 Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com>
+ 2009-2010 eXMeritus, A Boeing Company / 2008-2009 Freescale Semiconductor, Inc
+ 2009-2010 Freescale Semiconductor, Inc
+ 2009-2010 Texas Instruments, Inc
+ 2009-2011 Freescale Semiconductor, Inc
+ 2009 coresystems GmbH
+ 2009 Freescale Semiconductor, Inc
+ 2009 Micrel Inc / 2011 Bticino s.p.a, Roberto Cerati <roberto.cerati@bticino.it>
+ 2009 MontaVista Software, Inc. <source@mvista.com> / 2006-2007 Nokia Corporation / 2005-2006 by Texas Instruments / 2005 Mentor Graphics Corporation
+ 2010-2011 Freescale Semiconductor, Inc
+ 2010-2011 NVIDIA Corporation
+ 2010-2012 NVIDIA Corporation
+ 2010-2013 NVIDIA Corporation
+ 2010 Broadcom / 2012 Oleksandr Tymoshenko / 2012 Stephen Warren
+ 2010 NISHIMOTO Hiroki / 2010 Renesas Solutions Corp
+ 2010 Thomas Chou <thomas@wytron.com.tw>
+ 2010, Thomas Chou <thomas@wytron.com.tw>
+ 2010 Thomas Chou <thomas@wytron.com.tw> / 2008-2009 Avionic Design GmbH / 2007-2008 Avionic Design Development GmbH
+ 2010 Thomas Chou <thomas@wytron.com.tw> / 2008 Altera Corporation
+ 2011-2012 Renesas Solutions Corp
+ 2011 - 2012 Samsung Electronics / 2003-2006, Cluster File Systems, Inc, info@clusterfs.com
+ 2011 Analog Devices Inc
+ 2011 Freescale Semiconductor, Inc
+ 2011 Infineon Technologies
+ 2011 Ivan Djelic <ivan.djelic@parrot.com>
+ 2011 Macpaul Lin (macpaul@andestech.com) / 2011 Andes Technology Corporation / 1995-2002 Russell King / 2010 Shawn Lin (nobuhiro@andestech.com)
+ 2011 Macpaul Lin (macpaul@andestech.com) / 2011 Andes Technology Corporation / 1996-1998 Russell King / 2010 Shawn Lin (nobuhiro@andestech.com)
+ 2011 Macpaul Lin (macpaul@andestech.com) / 2011 Andes Technology Corporation / 2010 Shawn Lin (nobuhiro@andestech.com)
+ 2011 Maxim Integrated Products
+ 2011 Parrot S.A
+ 2011 Renesas Solutions Corp
+ 2011 Renesas Solutions Corp / 2011 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
+ 2011 The ChromiumOS Authors. All rights reserved
+ 2012-2013 Stephen Warren
+ 2012, by Texas Instruments
+ 2012, Google Inc
+ 2012 Renesas Solutions Corp
+ 2012 Samsung Electronics Co., Ltd
+ 2012 Stephen Warren
+ 2012 Texas Instruments Incorporated - http://www.ti.com/
+ 2013 Synopsys, Inc. (www.synopsys.com)
+License: GPL-2
+
+Files: 
+ drivers/tpm/tpm_atmel_twi.c
+ drivers/gpio/tca642x.c
+ include/splash.h
+ include/fdt.h
+ include/libfdt.h
+ include/configs/controlcenterd.h
+ include/configs/mxs.h
+ include/configs/T1040QDS.h
+ include/tca642x.h
+ board/gdsys/p1022/tlb.c
+ board/gdsys/p1022/sdhc_boot.c
+ board/gdsys/p1022/ddr.c
+ board/gdsys/p1022/controlcenterd-id.c
+ board/gdsys/p1022/diu.c
+ board/gdsys/p1022/controlcenterd-id.h
+ board/gdsys/p1022/controlcenterd.c
+ board/gdsys/p1022/law.c
+ board/gdsys/common/dp501.h
+ common/splash.c
+ fs/jffs2/compr_lzo.c
+ arch/arm/include/asm/arch-am33xx/hardware_ti816x.h
+ arch/arm/cpu/armv7/exynos/dmc_init_exynos4.c
+ arch/arm/cpu/armv7/exynos/lowlevel_init.c
+ arch/arm/cpu/armv7/exynos/clock_init_exynos4.c
+ arch/arm/cpu/armv7/exynos/common_setup.h
+ arch/arm/cpu/armv7/am33xx/clock_ti816x.c
+Copyright: 
+  2013 Texas Instruments, Inc
+  2013, Boundary Devices <info@boundarydevices.com>
+  2006 David Gibson, IBM Corporation 
+  2012 Kim Phillips, Freescale Semiconductor
+  2010-2013 Freescale Semiconductor, Inc
+  2013 Marek Vasut <marex@denx.de>
+  2010-2011 Freescale Semiconductor, Inc
+  2004 Patrik Kluba
+  1996-2002 Markus Franz Xaver Johannes Oberhumer
+  2013 NVIDIA Corporation
+  2011 The Chromium OS Authors
+  2013 Samsung Electronics
+  2013, Adeneo Embedded <www.adeneo-embedded.com> 
+  2009, Texas Instruments, Incorporated
+License: GPL-2+
+
+Files: debian/*
+Copyright: Clint Adams <clint@debian.org>
+ Joey Hess <joeyh@debian.org>
+ Marc Singer <elf@debian.org>
+ Per Andersson <avtobiff@gmail.com>
+ Vagrant Cascadian <vagrant@debian.org>
+ Loïc Minier <lool@debian.org>
+License: GPL-2+
+
+Files: fs/yaffs2/yaffs_allocator.h
+ fs/yaffs2/yaffs_verify.h
+ fs/yaffs2/yaffs_packedtags1.h
+ fs/yaffs2/yaffs_yaffs1.h
+ fs/yaffs2/ydirectenv.h
+ fs/yaffs2/yaffs_yaffs2.h
+ fs/yaffs2/yaffsfs.h
+ fs/yaffs2/yaffs_osglue.h
+ fs/yaffs2/yaffs_flashif.h
+ fs/yaffs2/yaffs_nand.h
+ fs/yaffs2/yportenv.h
+ fs/yaffs2/yaffs_packedtags2.h
+ fs/yaffs2/yaffs_attribs.h
+ fs/yaffs2/yaffs_ecc.h
+ fs/yaffs2/yaffs_trace.h
+ fs/yaffs2/yaffs_guts.h
+ fs/yaffs2/yaffs_getblockinfo.h
+ fs/yaffs2/yaffs_bitmap.h
+ fs/yaffs2/yaffs_nameval.h
+ fs/yaffs2/yaffscfg.h
+ fs/yaffs2/yaffs_nandemul2k.h
+ fs/yaffs2/yaffs_mtdif2.h
+ fs/yaffs2/yaffs_flashif2.h
+ fs/yaffs2/yaffs_checkptrw.h
+ fs/yaffs2/yaffs_tagscompat.h
+ fs/yaffs2/yaffs_nandif.h
+ fs/yaffs2/yaffs_summary.h
+ fs/yaffs2/yaffs_mtdif.h
+Copyright: Copyright (C) 2002-2011 Aleph One Ltd.
+License: LGPL-2.1
+
+Files: lib/sha1.c
+Copyright: Copyright (C) 2003-2006  Christophe Devine
+License: LGPL-2.1
+
+Files: include/bzlib.h  
+ lib/bzlib_private.h
+ lib/bzlib.c
+ lib/bzlib_huffman.c
+ lib/bzlib_decompress.c
+ lib/bzlib_randtable.c
+ lib/bzlib_crctable.c
+Copyright: Copyright (C) 1996-2002 Julian R Seward.  All rights reserved.
+License: bzlib-BSD-3
+
+Files: arch/x86/include/asm/arch-coreboot/ipchecksum.h
+ arch/x86/cpu/coreboot/ipchecksum.c
+Copyright: Copyright (c) 2001 Charles Mott <cm@linktel.net>
+ Copyright (c) 2008 coresystems GmbH
+License: BSD-2
+
+Files: drivers/usb/musb-new/musb_host.h
+ drivers/usb/musb-new/musb_core.h
+ drivers/usb/musb-new/musb_core.c
+ drivers/usb/musb-new/musb_gadget.c
+ drivers/usb/musb-new/musb_gadget.h
+ drivers/usb/musb-new/musb_dma.h
+ drivers/usb/musb-new/musb_regs.h
+ drivers/usb/musb-new/musb_debug.h
+ drivers/usb/musb-new/musb_host.c
+ drivers/usb/musb-new/musb_gadget_ep0.c
+ drivers/usb/musb-new/musb_io.h
+Copyright: Copyright 2005 Mentor Graphics Corporation
+ Copyright (C) 2005-2006 by Texas Instruments
+ Copyright (C) 2006-2007 Nokia Corporation
+ Copyright (C) 2008-2009 MontaVista Software, Inc. <source@mvista.com>
+License: GPL-2
+
+Files: net/dns.c
+ include/slre.h
+ lib/slre.c
+Copyright: 2008 Pieter Voorthuijsen <pieter.voorthuijsen@prodrive.nl>
+ 2004-2005 Sergey Lyubka <valenok@gmail.com>
+ 2009 Robin Getz <rgetz@blackfin.uclinux.org>]
+License: Beerware
+
+Files: include/libfdt.h
+ include/fdt.h
+Copyright: 2006 David Gibson, IBM Corporation
+ 2012 Kim Phillips, Freescale Semiconductor
+License: libfdt-BSD-GPL
+
+Files: include/pcmcia/cirrus.h
+ include/pcmcia/i82365.h
+ include/pcmcia/ss.h
+ include/pcmcia/ti113x.h
+ include/pcmcia/yenta.h
+Copyright: 1999 David A. Hinds. All Rights Reserved
+License: MPL-GPL
+
+License: MPL-GPL
+ * The contents of this file are subject to the Mozilla Public License
+ * Version 1.1 (the "License"); you may not use this file except in
+ * compliance with the License. You may obtain a copy of the License
+ * at http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+ * the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * The initial developer of the original code is David A. Hinds
+ * <dahinds@users.sourceforge.net>.  Portions created by David A. Hinds
+ * are Copyright (C) 1999 David A. Hinds.  All Rights Reserved.
+ *
+ * Alternatively, the contents of this file may be used under the
+ * terms of the GNU General Public License version 2 (the "GPL"), in
+ * which case the provisions of the GPL are applicable instead of the
+ * above.  If you wish to allow the use of your version of this file
+ * only under the terms of the GPL and not to allow others to use
+ * your version of this file under the MPL, indicate your decision by
+ * deleting the provisions above and replace them with the notice and
+ * other provisions required by the GPL.  If you do not delete the
+ * provisions above, a recipient may use your version of this file
+ * under either the MPL or the GPL.
+
+License: libfdt-BSD-GPL
+ * libfdt is dual licensed: you can use it either under the terms of
+ * the GPL, or the BSD license, at your option.
+ *
+ *  a) This library 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 library 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 library; if not, write to the Free
+ *     Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ *     MA 02110-1301 USA
+ *
+ * Alternatively,
+ *
+ *  b) 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.
+ *
+ *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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.
+
+License: Beerware
+ "THE BEER-WARE LICENSE" (Revision 42):
+ Sergey Lyubka wrote this file.  As long as you retain this notice you
+ can do whatever you want with this stuff. If we meet some day, and you think
+ this stuff is worth it, you can buy me a beer in return.
+
+License: BSD-2
+ 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.
+ . 
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+
+License: GPL-2
+ 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.
+ .
+ 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., 51 Franklin St, Fifth Floor, Boston, MA
+ 02110-1301 USA
+ .
+ On Debian systems, the full text of the GNU General Public
+ License version 2 can be found in the file
+ `/usr/share/common-licenses/GPL-2'.
+
+License: bzlib-BSD-3
+  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. 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.
+  .
+  3. Altered source versions must be plainly marked as such, and must
+     not be misrepresented as being the original software.
+  .
+  4. The name of the author may not be used to endorse or promote
+     products derived from this software without specific prior written
+     permission.
+  .
+  THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+License: GPL-2+
+ 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 package; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ Boston, MA  02110-1301 USA
+ .
+ On Debian systems, the full text of the GNU General Public
+ License version 2 can be found in the file
+ `/usr/share/common-licenses/GPL-2'.
+
+License: LGPL-2.1
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 2.1 as
+ published by the Free Software Foundation.
+ .
+ This library 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
+ Lesser General Public License for more details.
+ . 
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ MA  02110-1301  USA
+ .
+ On Debian systems, the full text of the GNU General Public
+ License version 2 can be found in the file
+ `/usr/share/common-licenses/LGPL-2.1'.
diff --git a/debian/env-configs/efikamx.config b/debian/env-configs/efikamx.config
new file mode 100644 (file)
index 0000000..1aedc96
--- /dev/null
@@ -0,0 +1,9 @@
+# Configuration file for fw_(printenv/saveenv) utility.
+# Up to two entries are valid, in this case the redundant
+# environment sector is assumed present.
+#
+# XXX this configuration might miss a fifth parameter for the "Number of
+# sectors"
+
+# MTD device name   Device offset   Env. size   Flash sector size
+/dev/mtd1           0x00000         0x10000     0x01000
diff --git a/debian/env-configs/guruplug.config b/debian/env-configs/guruplug.config
new file mode 100644 (file)
index 0000000..8b30cbe
--- /dev/null
@@ -0,0 +1,10 @@
+# Configuration file for fw_(printenv/saveenv) utility.
+#
+# Hardware     : Marvell Plug2L Reference Board
+# No redundant environment
+#
+# XXX this configuration might miss a fifth parameter for the "Number of
+# sectors"
+
+# MTD device name   Device offset   Env. size   Flash sector size
+/dev/mtd0           0x40000         0x20000     0x20000
diff --git a/debian/env-configs/kurobox_pro.config b/debian/env-configs/kurobox_pro.config
new file mode 100644 (file)
index 0000000..83b6c6a
--- /dev/null
@@ -0,0 +1,9 @@
+# Configuration file for fw_(printenv/saveenv) utility.
+# Up to two entries are valid, in this case the redundant
+# environment sector is assumed present.
+#
+# XXX this configuration might miss a fifth parameter for the "Number of
+# sectors"
+
+# MTD device name   Device offset   Env. size   Flash sector size
+/dev/mtd0           0x3F000         0x1000      0x1000
diff --git a/debian/env-configs/linkstation-mini.config b/debian/env-configs/linkstation-mini.config
new file mode 100644 (file)
index 0000000..92ce9de
--- /dev/null
@@ -0,0 +1,7 @@
+# Configuration file for fw_(printenv/saveenv) utility.
+# Up to two entries are valid, in this case the redundand
+# environment sector is assumed present.
+
+# for Buffalo Linkstation Mini
+# MTD device name       Device offset   Env. size       Flash sector size
+/dev/mtd0              0x3f000         0x01000         0x01000
diff --git a/debian/env-configs/linkstation_pro_live.config b/debian/env-configs/linkstation_pro_live.config
new file mode 100644 (file)
index 0000000..83b6c6a
--- /dev/null
@@ -0,0 +1,9 @@
+# Configuration file for fw_(printenv/saveenv) utility.
+# Up to two entries are valid, in this case the redundant
+# environment sector is assumed present.
+#
+# XXX this configuration might miss a fifth parameter for the "Number of
+# sectors"
+
+# MTD device name   Device offset   Env. size   Flash sector size
+/dev/mtd0           0x3F000         0x1000      0x1000
diff --git a/debian/env-configs/lsmipsel.config b/debian/env-configs/lsmipsel.config
new file mode 100644 (file)
index 0000000..abd8bcb
--- /dev/null
@@ -0,0 +1,9 @@
+# Configuration file for fw_(printenv/saveenv) utility.
+# Up to two entries are valid, in this case the redundant
+# environment sector is assumed present.
+#
+# XXX this configuration might miss a fifth parameter for the "Number of
+# sectors"
+
+# MTD device name   Device offset   Env. size   Flash sector size
+/dev/mtd0           0x30000         0x10000     0x10000
diff --git a/debian/env-configs/lsppchg.config b/debian/env-configs/lsppchg.config
new file mode 100644 (file)
index 0000000..4ccc576
--- /dev/null
@@ -0,0 +1,9 @@
+# Configuration file for fw_(printenv/saveenv) utility.
+# Up to two entries are valid, in this case the redundant
+# environment sector is assumed present.
+#
+# XXX this configuration might miss a fifth parameter for the "Number of
+# sectors"
+
+# MTD device name   Device offset   Env. size   Flash sector size
+/dev/mtd4           0x360000        0x10000     0x10000
diff --git a/debian/env-configs/openmoko_gta01.config b/debian/env-configs/openmoko_gta01.config
new file mode 100644 (file)
index 0000000..7fd45e3
--- /dev/null
@@ -0,0 +1,7 @@
+# Configuration file for fw_(printenv/saveenv) utility.
+# Up to two entries are valid, in this case the redundant
+# environment sector is assumed present.
+# Notice, that the "Number of sectors" is ignored on NOR.
+
+# MTD device name      Device offset   Env. size       Flash sector size       Number of sectors
+/dev/mtd1              0x0000          0x4000          0x4000                  2
diff --git a/debian/env-configs/openmoko_gta02.config b/debian/env-configs/openmoko_gta02.config
new file mode 100644 (file)
index 0000000..1faa2f1
--- /dev/null
@@ -0,0 +1,7 @@
+# Configuration file for fw_(printenv/saveenv) utility.
+# Up to two entries are valid, in this case the redundant
+# environment sector is assumed present.
+# Notice, that the "Number of sectors" is ignored on NOR.
+
+# MTD device name      Device offset   Env. size       Flash sector size       Number of sectors
+/dev/mtd2              0x0000          0x40000         0x20000                 2
diff --git a/debian/env-configs/qnap_ts101.config b/debian/env-configs/qnap_ts101.config
new file mode 100644 (file)
index 0000000..181c54b
--- /dev/null
@@ -0,0 +1,9 @@
+# Configuration file for fw_(printenv/saveenv) utility.
+# Up to two entries are valid, in this case the redundant
+# environment sector is assumed present.
+#
+# XXX this configuration might miss a fifth parameter for the "Number of
+# sectors"
+
+# MTD device name       Device offset   Env. size       Flash sector size
+/dev/mtd5              0x00000         0x20000         0x20000
diff --git a/debian/env-configs/qnap_ts109-209.config b/debian/env-configs/qnap_ts109-209.config
new file mode 100644 (file)
index 0000000..4024e08
--- /dev/null
@@ -0,0 +1,9 @@
+# Configuration file for fw_(printenv/saveenv) utility.
+# Up to two entries are valid, in this case the redundant
+# environment sector is assumed present.
+#
+# XXX this configuration might miss a fifth parameter for the "Number of
+# sectors"
+
+# MTD device name   Device offset   Env. size   Flash sector size
+/dev/mtd4           0x0000          0x20000         0x20000
diff --git a/debian/env-configs/qnap_ts119-219.config b/debian/env-configs/qnap_ts119-219.config
new file mode 100644 (file)
index 0000000..98505a9
--- /dev/null
@@ -0,0 +1,11 @@
+# Configuration file for fw_(printenv/saveenv) utility.
+# Up to two entries are valid, in this case the redundant
+# environment sector is assumed present.
+#
+# This config is for QNAP TS-119, TS-219 and TS-219P boards.
+#
+# XXX this configuration might miss a fifth parameter for the "Number of
+# sectors"
+
+# MTD device name   Device offset   Env. size   Flash sector size
+/dev/mtd4           0x0000          0x1000         0x40000
diff --git a/debian/env-configs/sheevaplug.config b/debian/env-configs/sheevaplug.config
new file mode 100644 (file)
index 0000000..5bbd38d
--- /dev/null
@@ -0,0 +1,9 @@
+# Configuration file for fw_(printenv/saveenv) utility.
+# Up to two entries are valid, in this case the redundant
+# environment sector is assumed present.
+#
+# XXX this configuration might miss a fifth parameter for the "Number of
+# sectors"
+
+# MTD device name   Device offset   Env. size   Flash sector size
+/dev/mtd0           0x60000         0x20000     0x20000
diff --git a/debian/env-configs/udoo_quad.config b/debian/env-configs/udoo_quad.config
new file mode 100644 (file)
index 0000000..9ffdf9f
--- /dev/null
@@ -0,0 +1,9 @@
+# Configuration file for fw_(printenv/saveenv) utility.
+# Up to two entries are valid, in this case the redundant
+# environment sector is assumed present.
+#
+# XXX this configuration might miss a fifth parameter for the "Number of
+# sectors"
+
+# MTD device name   Device offset   Env. size   Flash sector size
+/dev/mmcblk0        0xC0000         0x2000
diff --git a/debian/manpages/fw_printenv.8 b/debian/manpages/fw_printenv.8
new file mode 100644 (file)
index 0000000..a288852
--- /dev/null
@@ -0,0 +1,31 @@
+.\" Copyright Â© 2008 Per Andersson <avtobiff@gmail.com>
+.\" This man page is covered by the GNU General Public License (GPLv2 or higher).
+.TH fw_printenv 8 "August 2008" "Debian Project" ""
+
+.SH NAME
+fw_printenv \- Tool for printing environment for the bootloader U-Boot
+
+.SH SYNOPSIS
+fw_printenv [ \fB\-n\fP \fIname\fP ] [ \fIname\fP \fI...\fP ]
+
+.SH DESCRIPTION
+\fIfw_printenv\fP is a simple tool for printing the environment for the
+bootloader U-Boot. All environment variables matching the names given as
+arguments are shown. If \fIfw_printenv\fP is called without any arguments the
+entire environment is printed.
+
+.SH OPTIONS
+.IP \fB\-n\fP
+If the \fBn\fP flag is set \fIfw_printenv\fP only prints the value of the supplied variable \fIname\fP.
+
+.SH FILES
+.IP \fB/etc/fw_env.config\fP
+Configuration file for fw_printenv.
+
+.SH SEE ALSO
+fw_setenv(8)
+
+.SH AUTHOR
+Wolfgang Denk <wd@denx.de>
+.PP
+This manual page was written by Per Andersson <avtobiff@gmail.com>
diff --git a/debian/manpages/fw_setenv.8 b/debian/manpages/fw_setenv.8
new file mode 100644 (file)
index 0000000..5a5114a
--- /dev/null
@@ -0,0 +1,27 @@
+.\" Copyright Â© 2008 Per Andersson <avtobiff@gmail.com>
+.\" This man page is covered by the GNU General Public License (GPLv2 or higher).
+.TH fw_setenv 8 "August 2008" "Debian Project" ""
+
+.SH NAME
+fw_setenv \- Tool for modifying the environment for the bootloader U\-Boot
+
+.SH SYNOPSIS
+fw_setenv \fIname\fP [ \fIvalue\fP ]
+
+.SH DESCRIPTION
+\fIfw_setenv\fP is a simple tool for modifying either the environment for the
+bootloader U-Boot. If the variable already is set in the environment it is
+updated, otherwise it is created and set. If only one argument is given,
+variable name, the corresponding variable is deleted.
+
+.SH FILES
+.IP \fB/etc/fw_env.config\fP
+Configuration file for fw_setenv.
+
+.SH SEE ALSO
+fw_printenv(8)
+
+.SH AUTHOR
+Wolfgang Denk <wd@denx.de>
+.PP
+This manual page was written by Per Andersson <avtobiff@gmail.com>
diff --git a/debian/patches/0001-Set-DCDC1-DDR3-to-1.35V-for-Beaglebone-Black.patch b/debian/patches/0001-Set-DCDC1-DDR3-to-1.35V-for-Beaglebone-Black.patch
new file mode 100644 (file)
index 0000000..dbc9ccc
--- /dev/null
@@ -0,0 +1,48 @@
+From f7a841a0c8eab661fa06657ff6bf732041e4f07f Mon Sep 17 00:00:00 2001
+From: Vagrant Cascadian <vagrant@debian.org>
+Date: Tue, 30 Sep 2014 10:20:26 -0700
+Subject: [PATCH] Set DCDC1 (DDR3) to 1.35V for Beaglebone Black.
+
+Based on Patch by Robert Nelson <robertcnelson@gmail.com>:
+
+  https://github.com/RobertCNelson/Bootloader-Builder/raw/master/patches/v2014.10-rc2/0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch
+---
+ board/ti/am335x/board.c  | 9 +++++++++
+ include/power/tps65217.h | 1 +
+ 2 files changed, 10 insertions(+)
+
+diff --git a/board/ti/am335x/board.c b/board/ti/am335x/board.c
+index 0739e60..6b6dea0 100644
+--- a/board/ti/am335x/board.c
++++ b/board/ti/am335x/board.c
+@@ -300,6 +300,15 @@ void am33xx_spl_board_init(void)
+                       return;
+               }
++              /* Set DCDC1 (DDR3) to 1.35V for Beaglebone Black. */
++              if (board_is_bone_lt(&header)) {
++                      if (tps65217_voltage_update(TPS65217_DEFDCDC1,
++                                                  TPS65217_DCDC_VOLT_SEL_1350MV)) {
++                              puts("tps65217_voltage_update failure\n");
++                              return;
++                      }
++              }
++
+               /*
+                * Set LDO3, LDO4 output voltage to 3.3V for Beaglebone.
+                * Set LDO3 to 1.8V and LDO4 to 3.3V for Beaglebone Black.
+diff --git a/include/power/tps65217.h b/include/power/tps65217.h
+index 297c4cb..008fd6d 100644
+--- a/include/power/tps65217.h
++++ b/include/power/tps65217.h
+@@ -68,6 +68,7 @@ enum {
+ #define TPS65217_DCDC_VOLT_SEL_1125MV         0x09
+ #define TPS65217_DCDC_VOLT_SEL_1275MV         0x0F
+ #define TPS65217_DCDC_VOLT_SEL_1325MV         0x11
++#define TPS65217_DCDC_VOLT_SEL_1350MV         0x12
+ #define TPS65217_LDO_MASK                     0x1F
+ #define TPS65217_LDO_VOLTAGE_OUT_1_8          0x06
+-- 
+2.1.0
+
diff --git a/debian/patches/A20-OLinuXino-LIME2/sun7i-Add-support-for-Olimex-A20-OLinuXino-LIME2.patch b/debian/patches/A20-OLinuXino-LIME2/sun7i-Add-support-for-Olimex-A20-OLinuXino-LIME2.patch
new file mode 100644 (file)
index 0000000..1b18815
--- /dev/null
@@ -0,0 +1,99 @@
+From d71910fc509933fab881f85ae244ea95525a41d6 Mon Sep 17 00:00:00 2001
+From: Iain Paton <ipaton0@gmail.com>
+Date: Sun, 28 Sep 2014 14:18:42 +0100
+Subject: [PATCH 1/1] sun7i: Add support for Olimex A20-OLinuXino-LIME2
+Origin: http://git.denx.de/?p=u-boot.git;a=patch;h=d71910fc509933fab881f85ae244ea95525a41d6;hp=5b3ee386fde82a1ba42ff09b95247842c9a1585e
+
+This adds support for the Olimex A20-OLinuXino-Lime2
+https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXIno-LIME2
+
+Differences to previous Lime boards are 1GB RAM and gigabit ethernet
+
+Signed-off-by: Iain Paton <ipaton0@gmail.com>
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+---
+ board/sunxi/MAINTAINERS               |    6 ++++++
+ board/sunxi/Makefile                  |    1 +
+ board/sunxi/dram_a20_olinuxino_l2.c   |   31 +++++++++++++++++++++++++++++++
+ configs/A20-OLinuXino-Lime2_defconfig |    5 +++++
+ 4 files changed, 43 insertions(+)
+ create mode 100644 board/sunxi/dram_a20_olinuxino_l2.c
+ create mode 100644 configs/A20-OLinuXino-Lime2_defconfig
+
+diff --git a/board/sunxi/MAINTAINERS b/board/sunxi/MAINTAINERS
+index 4f32195..4ed82cf 100644
+--- a/board/sunxi/MAINTAINERS
++++ b/board/sunxi/MAINTAINERS
+@@ -38,3 +38,9 @@ M:   FUKAUMI Naoki <naobsd@gmail.com>
+ S:    Maintained
+ F:    board/sunxi/dram_a20_olinuxino_l.c
+ F:    configs/A20-OLinuXino-Lime_defconfig
++
++A20-OLINUXINO-LIME2 BOARD
++M:    Iain Paton <ipaton0@gmail.com>
++S:    Maintained
++F:    board/sunxi/dram_a20_olinuxino_l2.c
++F:    configs/A20-OLinuXino-Lime2_defconfig
+diff --git a/board/sunxi/Makefile b/board/sunxi/Makefile
+index 56073a0..d63a6d2 100644
+--- a/board/sunxi/Makefile
++++ b/board/sunxi/Makefile
+@@ -16,6 +16,7 @@ obj-$(CONFIG_A10S_OLINUXINO_M)       += dram_a10s_olinuxino_m.o
+ obj-$(CONFIG_A13_OLINUXINO)   += dram_a13_olinuxino.o
+ obj-$(CONFIG_A13_OLINUXINOM)  += dram_a13_oli_micro.o
+ obj-$(CONFIG_A20_OLINUXINO_L) += dram_a20_olinuxino_l.o
++obj-$(CONFIG_A20_OLINUXINO_L2)        += dram_a20_olinuxino_l2.o
+ obj-$(CONFIG_A20_OLINUXINO_M) += dram_sun7i_384_1024_iow16.o
+ # This is not a typo, uses the same mem settings as the a10s-olinuxino-m
+ obj-$(CONFIG_AUXTEK_T004)     += dram_a10s_olinuxino_m.o
+diff --git a/board/sunxi/dram_a20_olinuxino_l2.c b/board/sunxi/dram_a20_olinuxino_l2.c
+new file mode 100644
+index 0000000..2115d37
+--- /dev/null
++++ b/board/sunxi/dram_a20_olinuxino_l2.c
+@@ -0,0 +1,31 @@
++/* this file is generated, don't edit it yourself */
++
++#include <common.h>
++#include <asm/arch/dram.h>
++
++static struct dram_para dram_para = {
++      .clock = 480,
++      .type = 3,
++      .rank_num = 1,
++      .density = 4096,
++      .io_width = 16,
++      .bus_width = 32,
++      .cas = 9,
++      .zq = 0x7f,
++      .odt_en = 0,
++      .size = 1024,
++      .tpr0 = 0x42d899b7,
++      .tpr1 = 0xa090,
++      .tpr2 = 0x22a00,
++      .tpr3 = 0,
++      .tpr4 = 0,
++      .tpr5 = 0,
++      .emr1 = 0x4,
++      .emr2 = 0x10,
++      .emr3 = 0,
++};
++
++unsigned long sunxi_dram_init(void)
++{
++      return dramc_init(&dram_para);
++}
+diff --git a/configs/A20-OLinuXino-Lime2_defconfig b/configs/A20-OLinuXino-Lime2_defconfig
+new file mode 100644
+index 0000000..75ef872
+--- /dev/null
++++ b/configs/A20-OLinuXino-Lime2_defconfig
+@@ -0,0 +1,5 @@
++CONFIG_SPL=y
++CONFIG_SYS_EXTRA_OPTIONS="A20_OLINUXINO_L2,AXP209_POWER,SUNXI_GMAC,RGMII,AHCI,SATAPWR=SUNXI_GPC(3),USB_EHCI"
++CONFIG_FDTFILE="sun7i-a20-olinuxino-lime2.dtb"
+++S:CONFIG_ARM=y
+++S:CONFIG_TARGET_SUN7I=y
+-- 
+1.7.10.4
+
diff --git a/debian/patches/ARM-OMAP3-Revamp-IGEP-default-configuration.diff b/debian/patches/ARM-OMAP3-Revamp-IGEP-default-configuration.diff
new file mode 100644 (file)
index 0000000..6cd7624
--- /dev/null
@@ -0,0 +1,89 @@
+From ebdb222b0d65bcc050e3f0fd6e97faf17fb3eae4 Mon Sep 17 00:00:00 2001
+Sender: Loïc Minier <loic.minier@linaro.org>
+From: Enric Balletbo i Serra <eballetbo@iseebcn.com>
+Date: Wed, 23 Feb 2011 14:35:41 +0100
+Subject: [PATCH] ARM: OMAP3: Revamp IGEP default configuration
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The default IGEP configuration doesn't do anything useful; using some
+boot.scr search logic like BeagleBoard is much more useful.
+
+Signed-off-by: Loïc Minier <loic.minier@linaro.org>
+---
+ include/configs/igep0020.h |   55 ++++++++++++++++++++++++++++++++++++++++---
+ 1 files changed, 51 insertions(+), 4 deletions(-)
+
+diff --git a/include/configs/igep0020.h b/include/configs/igep0020.h
+index c19ecc0..2466562 100644
+--- a/include/configs/igep0020.h
++++ b/include/configs/igep0020.h
+@@ -130,13 +130,60 @@
+ #define CONFIG_TWL4030_POWER          1
+ /* Environment information */
+-#define CONFIG_BOOTCOMMAND \
+-      "mmc init 0 ; fatload mmc 0 0x80000000 setup.ini ; source \0"
+-
+ #define CONFIG_BOOTDELAY              3
+ #define CONFIG_EXTRA_ENV_SETTINGS \
+-      "usbtty=cdc_acm\0"
++      "loadaddr=0x82000000\0" \
++      "usbtty=cdc_acm\0" \
++      "console=ttyS2,115200n8\0" \
++      "mpurate=500\0" \
++      "vram=12M\0" \
++      "dvimode=1024x768MR-16@60\0" \
++      "defaultdisplay=dvi\0" \
++      "mmcdev=0\0" \
++      "mmcroot=/dev/mmcblk0p2 rw\0" \
++      "mmcrootfstype=ext3 rootwait\0" \
++      "nandroot=/dev/mtdblock4 rw\0" \
++      "nandrootfstype=jffs2\0" \
++      "mmcargs=setenv bootargs console=${console} " \
++              "mpurate=${mpurate} " \
++              "vram=${vram} " \
++              "omapfb.mode=dvi:${dvimode} " \
++              "omapfb.debug=y " \
++              "omapdss.def_disp=${defaultdisplay} " \
++              "root=${mmcroot} " \
++              "rootfstype=${mmcrootfstype}\0" \
++      "nandargs=setenv bootargs console=${console} " \
++              "mpurate=${mpurate} " \
++              "vram=${vram} " \
++              "omapfb.mode=dvi:${dvimode} " \
++              "omapfb.debug=y " \
++              "omapdss.def_disp=${defaultdisplay} " \
++              "root=${nandroot} " \
++              "rootfstype=${nandrootfstype}\0" \
++      "loadbootscript=fatload mmc ${mmcdev} ${loadaddr} boot.scr\0" \
++      "bootscript=echo Running bootscript from mmc ...; " \
++              "source ${loadaddr}\0" \
++      "loaduimage=fatload mmc ${mmcdev} ${loadaddr} uImage\0" \
++      "mmcboot=echo Booting from mmc ...; " \
++              "run mmcargs; " \
++              "bootm ${loadaddr}\0" \
++      "nandboot=echo Booting from nand ...; " \
++              "run nandargs; " \
++              "nand read ${loadaddr} 280000 400000; " \
++              "bootm ${loadaddr}\0" \
++
++#define CONFIG_BOOTCOMMAND \
++      "if mmc rescan ${mmcdev}; then " \
++              "if run loadbootscript; then " \
++                      "run bootscript; " \
++              "else " \
++                      "if run loaduimage; then " \
++                              "run mmcboot; " \
++                      "else run nandboot; " \
++                      "fi; " \
++              "fi; " \
++      "else run nandboot; fi"
+ #define CONFIG_AUTO_COMPLETE          1
+-- 
+1.7.2.3
+
diff --git a/debian/patches/BananaPro/Add-support-for-the-LeMaker-Banana-Pro.patch b/debian/patches/BananaPro/Add-support-for-the-LeMaker-Banana-Pro.patch
new file mode 100644 (file)
index 0000000..dfbd1fa
--- /dev/null
@@ -0,0 +1,48 @@
+Index: u-boot-2014.10+dfsg1/board/sunxi/MAINTAINERS
+===================================================================
+--- u-boot-2014.10+dfsg1.orig/board/sunxi/MAINTAINERS
++++ u-boot-2014.10+dfsg1/board/sunxi/MAINTAINERS
+@@ -19,6 +19,7 @@ F:   configs/r7-tv-dongle_defconfig
+ F:    include/configs/sun7i.h
+ F:    configs/A20-OLinuXino_MICRO_defconfig
+ F:    configs/Bananapi_defconfig
++F:    configs/Bananapro_defconfig
+ F:    configs/i12-tvbox_defconfig
+ F:    configs/Linksprite_pcDuino3_defconfig
+ F:    configs/qt840a_defconfig
+Index: u-boot-2014.10+dfsg1/board/sunxi/Makefile
+===================================================================
+--- u-boot-2014.10+dfsg1.orig/board/sunxi/Makefile
++++ u-boot-2014.10+dfsg1/board/sunxi/Makefile
+@@ -22,6 +22,7 @@ obj-$(CONFIG_A20_OLINUXINO_M)        += dram_su
+ obj-$(CONFIG_AUXTEK_T004)     += dram_a10s_olinuxino_m.o
+ obj-$(CONFIG_BA10_TV_BOX)     += dram_sun4i_384_1024_iow8.o
+ obj-$(CONFIG_BANANAPI)                += dram_bananapi.o
++obj-$(CONFIG_BANANAPRO)       += dram_bananapi.o
+ obj-$(CONFIG_CUBIEBOARD)      += dram_cubieboard.o
+ obj-$(CONFIG_CUBIEBOARD2)     += dram_cubieboard2.o
+ obj-$(CONFIG_CUBIETRUCK)      += dram_cubietruck.o
+Index: u-boot-2014.10+dfsg1/board/sunxi/gmac.c
+===================================================================
+--- u-boot-2014.10+dfsg1.orig/board/sunxi/gmac.c
++++ u-boot-2014.10+dfsg1/board/sunxi/gmac.c
+@@ -29,7 +29,7 @@ int sunxi_gmac_initialize(bd_t *bis)
+        * need to set bits 10-12 GTXDC "GMAC Transmit Clock Delay Chain"
+        * of the GMAC clk register to 3.
+        */
+-#ifdef CONFIG_BANANAPI
++#if defined CONFIG_BANANAPI || defined CONFIG_BANANAPRO
+       setbits_le32(&ccm->gmac_clk_cfg, 0x3 << 10);
+ #endif
+Index: u-boot-2014.10+dfsg1/configs/Bananapro_defconfig
+===================================================================
+--- /dev/null
++++ u-boot-2014.10+dfsg1/configs/Bananapro_defconfig
+@@ -0,0 +1,6 @@
++CONFIG_SPL=y
++CONFIG_SYS_EXTRA_OPTIONS="BANANAPRO,AXP209_POWER,SUNXI_GMAC,RGMII,MACPWR=SUNXI_GPH(23),AHCI,USB_EHCI,SUNXI_USB_VBUS0_GPIO=SUNXI_GPH(0),SUNXI_USB_VBUS1_GPIO=SUNXI_GPH(1)"
++CONFIG_FDTFILE="sun7i-a20-bananapro.dtb"
+++S:CONFIG_ARM=y
+++S:CONFIG_TARGET_SUN7I=y
++
diff --git a/debian/patches/Makefile-add-kwb-target-to-all.patch b/debian/patches/Makefile-add-kwb-target-to-all.patch
new file mode 100644 (file)
index 0000000..6667649
--- /dev/null
@@ -0,0 +1,12 @@
+Add u-boot.kwb to "make all" target on Kirkwood.
+
+--- a/Makefile
++++ b/Makefile
+@@ -736,6 +736,7 @@
+ ALL-$(CONFIG_SPL) += spl/u-boot-spl.bin
+ ALL-$(CONFIG_SPL_FRAMEWORK) += u-boot.img
+ ALL-$(CONFIG_TPL) += tpl/u-boot-tpl.bin
++ALL-$(CONFIG_KIRKWOOD) += u-boot.kwb
+ ALL-$(CONFIG_OF_SEPARATE) += u-boot.dtb u-boot-dtb.bin
+ ifeq ($(CONFIG_SPL_FRAMEWORK),y)
+ ALL-$(CONFIG_OF_SEPARATE) += u-boot-dtb.img
diff --git a/debian/patches/add-debian-revision-to-u-boot-version b/debian/patches/add-debian-revision-to-u-boot-version
new file mode 100644 (file)
index 0000000..8e6bccd
--- /dev/null
@@ -0,0 +1,16 @@
+Add the debian revision to the U-boot version, which is displayed at
+boot and can be helpful to determine which specific version is used.
+
+Index: u-boot/Makefile
+===================================================================
+--- u-boot.orig/Makefile
++++ u-boot/Makefile
+@@ -350,7 +350,7 @@ KBUILD_AFLAGS   := -D__ASSEMBLY__
+ # Read UBOOTRELEASE from include/config/uboot.release (if it exists)
+ UBOOTRELEASE = $(shell cat include/config/uboot.release 2> /dev/null)
+-UBOOTVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION)
++UBOOTVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION)$(DEBIAN_REVISION)
+ export VERSION PATCHLEVEL SUBLEVEL UBOOTRELEASE UBOOTVERSION
+ export ARCH CPU BOARD VENDOR SOC CPUDIR BOARDDIR
diff --git a/debian/patches/am335x-bootscript.diff b/debian/patches/am335x-bootscript.diff
new file mode 100644 (file)
index 0000000..d91f145
--- /dev/null
@@ -0,0 +1,36 @@
+Add support for boot scripts.
+
+Index: u-boot/include/configs/am335x_evm.h
+===================================================================
+--- u-boot.orig/include/configs/am335x_evm.h
++++ u-boot/include/configs/am335x_evm.h
+@@ -125,6 +125,12 @@
+       "loadramdisk=load mmc ${mmcdev} ${rdaddr} ramdisk.gz\0" \
+       "loadimage=load mmc ${bootpart} ${loadaddr} ${bootdir}/${bootfile}\0" \
+       "loadfdt=load mmc ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}\0" \
++      "script=boot.scr\0" \
++      "scriptfile=${script}\0" \
++      "loadbootscript=" \
++              "load mmc ${bootpart} ${loadaddr} ${scriptfile};\0" \
++      "bootscript=echo Running bootscript from mmc ...; " \
++              "source ${loadaddr}\0" \
+       "mmcloados=run mmcargs; " \
+               "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
+                       "if run loadfdt; then " \
+@@ -153,6 +159,16 @@
+                                       "echo Running uenvcmd ...;" \
+                                       "run uenvcmd;" \
+                               "fi;" \
++                              "setenv scriptfile ${script};" \
++                              "if run loadbootscript; then " \
++                                      "echo Loaded script from ${scriptfile};" \
++                                      "run bootscript;" \
++                              "fi;" \
++                              "setenv scriptfile /boot/${script};" \
++                              "if run loadbootscript; then " \
++                                      "echo Loaded script from ${scriptfile};" \
++                                      "run bootscript;" \
++                              "fi;" \
+                               "if run loadimage; then " \
+                                       "run mmcloados;" \
+                               "fi;" \
diff --git a/debian/patches/am335x-try-boot-from-first-partition.diff b/debian/patches/am335x-try-boot-from-first-partition.diff
new file mode 100644 (file)
index 0000000..db74bf9
--- /dev/null
@@ -0,0 +1,21 @@
+Attempt booting from the first partition on each device if the second
+partition doesn't have any of the expected boot files.
+
+Index: u-boot/include/configs/am335x_evm.h
+===================================================================
+--- u-boot.orig/include/configs/am335x_evm.h
++++ u-boot/include/configs/am335x_evm.h
+@@ -191,9 +191,13 @@
+ #define CONFIG_BOOTCOMMAND \
+       "run findfdt; " \
+       "run mmcboot;" \
++      "setenv bootpart 0:1; " \
++      "run mmcboot;" \
+       "setenv mmcdev 1; " \
+       "setenv bootpart 1:2; " \
+       "run mmcboot;" \
++      "setenv bootpart 1:1; " \
++      "run mmcboot;" \
+       "run nandboot;"
+ /* NS16550 Configuration */
diff --git a/debian/patches/am335x-uenv.txt.diff b/debian/patches/am335x-uenv.txt.diff
new file mode 100644 (file)
index 0000000..55636f2
--- /dev/null
@@ -0,0 +1,17 @@
+Specify mmc partition to check for uEnv.txt rather than raw device.
+
+Based on patch by Robert Nelson <robertcnelson@gmail.com>
+
+Index: u-boot/include/configs/am335x_evm.h
+===================================================================
+--- u-boot.orig/include/configs/am335x_evm.h
++++ u-boot/include/configs/am335x_evm.h
+@@ -115,7 +115,7 @@
+       "loadbootscript=load mmc ${mmcdev} ${loadaddr} boot.scr\0" \
+       "bootscript=echo Running bootscript from mmc${mmcdev} ...; " \
+               "source ${loadaddr}\0" \
+-      "loadbootenv=load mmc ${mmcdev} ${loadaddr} ${bootenv}\0" \
++      "loadbootenv=load mmc ${bootpart} ${loadaddr} ${bootenv}\0" \
+       "importbootenv=echo Importing environment from mmc ...; " \
+               "env import -t -r $loadaddr $filesize\0" \
+       "ramargs=setenv bootargs console=${console} " \
diff --git a/debian/patches/arndale/board-spl-rule.diff b/debian/patches/arndale/board-spl-rule.diff
new file mode 100644 (file)
index 0000000..e2cf895
--- /dev/null
@@ -0,0 +1,17 @@
+Description: Enable generic spl/$(BOARD)-spl.bin rule
+Author: Ian Campbell <ijc@debian.org>
+
+Needed for spl/arndale-spl.bin
+
+--- a/Makefile
++++ b/Makefile
+@@ -1142,6 +1142,9 @@
+ spl/sunxi-spl.bin: spl/u-boot-spl
+       @:
++spl/$(BOARD)-spl.bin: spl/u-boot-spl
++      @:
++
+ tpl/u-boot-tpl.bin: tools prepare
+       $(Q)$(MAKE) obj=tpl -f $(srctree)/scripts/Makefile.spl all
diff --git a/debian/patches/arndale/exynos-Enable-config_distro_defaults.h.patch b/debian/patches/arndale/exynos-Enable-config_distro_defaults.h.patch
new file mode 100644 (file)
index 0000000..44d857e
--- /dev/null
@@ -0,0 +1,138 @@
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: [U-Boot,v2,1/2] exynos: Enable config_distro_defaults.h
+From: Ian Campbell <ijc@hellion.org.uk>
+X-Patchwork-Id: 400300
+Message-Id: <1413467042-32028-1-git-send-email-ijc@hellion.org.uk>
+To: u-boot@lists.denx.de,
+       Minkyu Kang <mk7.kang@samsung.com>
+Cc: Ian Campbell <ian.campbell@citrix.com>
+Date: Thu, 16 Oct 2014 14:44:01 +0100
+
+From: Ian Campbell <ian.campbell@citrix.com>
+
+...and remove explicit setting of things which this implies. This is done for
+all exynos platforms (4 & 5) so it is added to exynos-common.h
+
+I'm mainly interested in CONFIG_CMD_BOOTZ and CONFIG_SUPPORT_RAW_INITRD
+
+I have build tested on all exynos platforms (MAKEALL -s exynos), but only boot
+tested on arndale.
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+v2: This patch was previously "arndale: Enable config_distro_defaults.h". It
+required significant rebasing.
+---
+ include/configs/arndale.h        |  2 --
+ include/configs/exynos-common.h  | 13 ++-----------
+ include/configs/exynos5-common.h | 11 -----------
+ 3 files changed, 2 insertions(+), 24 deletions(-)
+
+diff --git a/include/configs/arndale.h b/include/configs/arndale.h
+index f9ee40f..a87806d 100644
+--- a/include/configs/arndale.h
++++ b/include/configs/arndale.h
+@@ -17,8 +17,6 @@
+ /* allow to overwrite serial and ethaddr */
+ #define CONFIG_ENV_OVERWRITE
+-#define CONFIG_CMD_EXT2
+-
+ /* USB */
+ #define CONFIG_USB_EHCI
+ #define CONFIG_USB_EHCI_EXYNOS
+diff --git a/include/configs/exynos-common.h b/include/configs/exynos-common.h
+index 371f32d..ea40bb6 100644
+--- a/include/configs/exynos-common.h
++++ b/include/configs/exynos-common.h
+@@ -23,9 +23,6 @@
+ #define CONFIG_SKIP_LOWLEVEL_INIT
+ #define CONFIG_BOARD_EARLY_INIT_F
+-/* Enable fdt support */
+-#define CONFIG_OF_LIBFDT
+-
+ /* Keep L2 Cache Disabled */
+ #define CONFIG_CMD_CACHE
+@@ -35,7 +32,6 @@
+ #define CONFIG_SETUP_MEMORY_TAGS
+ #define CONFIG_CMDLINE_TAG
+ #define CONFIG_INITRD_TAG
+-#define CONFIG_CMDLINE_EDITING
+ #define CONFIG_ENV_OVERWRITE
+ /* Size of malloc() pool before and after relocation */
+@@ -54,7 +50,6 @@
+ #define CONFIG_EXYNOS_DWMMC
+ #define CONFIG_BOUNCE_BUFFER
+-#define CONFIG_BOOTDELAY              3
+ #define CONFIG_ZERO_BOOTDELAY_CHECK
+ /* PWM */
+@@ -64,19 +59,13 @@
+ #include <config_cmd_default.h>
+ #define CONFIG_CMD_MMC
+-#define CONFIG_CMD_EXT4
+ #define CONFIG_CMD_EXT4_WRITE
+-#define CONFIG_CMD_FAT
+ #define CONFIG_FAT_WRITE
+-#define CONFIG_DOS_PARTITION
+-#define CONFIG_EFI_PARTITION
+ #define CONFIG_CMD_PART
+ #define CONFIG_PARTITION_UUIDS
+ /* Miscellaneous configurable options */
+-#define CONFIG_SYS_LONGHELP           /* undef to save memory */
+-#define CONFIG_SYS_HUSH_PARSER                /* use "hush" command parser    */
+ #define CONFIG_SYS_CBSIZE             256     /* Console I/O Buffer Size */
+ #define CONFIG_SYS_PBSIZE             384     /* Print Buffer Size */
+ #define CONFIG_SYS_MAXARGS            16      /* max number of command args */
+@@ -88,4 +77,6 @@
+ #define CONFIG_SYS_NO_FLASH
+ #undef CONFIG_CMD_IMLS
++#include <config_distro_defaults.h>
++
+ #endif        /* __CONFIG_H */
+diff --git a/include/configs/exynos5-common.h b/include/configs/exynos5-common.h
+index ba591e7..b03966d 100644
+--- a/include/configs/exynos5-common.h
++++ b/include/configs/exynos5-common.h
+@@ -55,9 +55,6 @@
+ #define CONFIG_EXTRA_ENV_SETTINGS \
+       EXYNOS_DEVICE_SETTINGS
+-#define CONFIG_CMD_PING
+-#define CONFIG_CMD_ELF
+-#define CONFIG_CMD_NET
+ #define CONFIG_CMD_HASH
+ /* Thermal Management Unit */
+@@ -174,12 +171,6 @@
+ #define CONFIG_ENV_SROM_BANK          1
+ #endif /*CONFIG_CMD_NET*/
+-/* Enable PXE Support */
+-#ifdef CONFIG_CMD_NET
+-#define CONFIG_CMD_PXE
+-#define CONFIG_MENU
+-#endif
+-
+ /* SHA hashing */
+ #define CONFIG_CMD_HASH
+ #define CONFIG_HASH_VERIFY
+@@ -189,8 +180,6 @@
+ /* Enable Time Command */
+ #define CONFIG_CMD_TIME
+-#define CONFIG_CMD_BOOTZ
+-
+ #define CONFIG_CMD_GPIO
+ /* USB boot mode */
diff --git a/debian/patches/arndale/exynos5-Use-config_distro_bootcmd.h.patch b/debian/patches/arndale/exynos5-Use-config_distro_bootcmd.h.patch
new file mode 100644 (file)
index 0000000..b667a19
--- /dev/null
@@ -0,0 +1,173 @@
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: [U-Boot,v2,2/2] exynos5: Use config_distro_bootcmd.h
+From: Ian Campbell <ijc@hellion.org.uk>
+X-Patchwork-Id: 400301
+Message-Id: <1413467042-32028-2-git-send-email-ijc@hellion.org.uk>
+To: u-boot@lists.denx.de,
+       Minkyu Kang <mk7.kang@samsung.com>
+Cc: Ian Campbell <ian.campbell@citrix.com>
+Date: Thu, 16 Oct 2014 14:44:02 +0100
+
+From: Ian Campbell <ian.campbell@citrix.com>
+
+This replaces the existing CONFIG_BOOTCOMMAND for exynos5250 and 5420.
+
+exynos4 platforms seem to have existing complex extra env configuration for
+booting and so are excluded here. Hence the bootcmd.h is added to
+exynos5-common.h.
+
+I have build tested on all exynos platforms (MAKEALL -s exynos), but only boot
+tested on arndale.
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+v2: This was previously "arndale: Use config_distro_bootcmd.h" but required
+significant rebasing.
+
+Is replacing the existing bootcommand in this way acceptable? The
+distro_bootcmd.h infrastructure does not seem to provide a way to integrate the
+"raw" style of booting.
+---
+ include/configs/arndale.h           |  3 +++
+ include/configs/exynos5-common.h    | 45 ++++++++++++++++++++++++++++++-------
+ include/configs/exynos5-dt-common.h | 17 ++++++--------
+ include/configs/exynos5250-common.h |  2 --
+ include/configs/exynos5420-common.h |  2 --
+ 5 files changed, 47 insertions(+), 22 deletions(-)
+
+diff --git a/include/configs/arndale.h b/include/configs/arndale.h
+index a87806d..919729d 100644
+--- a/include/configs/arndale.h
++++ b/include/configs/arndale.h
+@@ -9,6 +9,9 @@
+ #ifndef __CONFIG_ARNDALE_H
+ #define __CONFIG_ARNDALE_H
++#define EXYNOS_FDTFILE_SETTING \
++      "fdtfile=exynos5250-arndale.dtb\0"
++
+ #include "exynos5250-common.h"
+ /* SD/MMC configuration */
+diff --git a/include/configs/exynos5-common.h b/include/configs/exynos5-common.h
+index b03966d..8f9b780 100644
+--- a/include/configs/exynos5-common.h
++++ b/include/configs/exynos5-common.h
+@@ -47,14 +47,6 @@
+ #define CONFIG_SYS_CONSOLE_IS_IN_ENV
+ #define CONFIG_CONSOLE_MUX
+-#define EXYNOS_DEVICE_SETTINGS \
+-              "stdin=serial\0" \
+-              "stdout=serial\0" \
+-              "stderr=serial\0"
+-
+-#define CONFIG_EXTRA_ENV_SETTINGS \
+-      EXYNOS_DEVICE_SETTINGS
+-
+ #define CONFIG_CMD_HASH
+ /* Thermal Management Unit */
+@@ -192,4 +184,41 @@
+ #define CONFIG_FIT
+ #define CONFIG_FIT_BEST_MATCH
++
++#define BOOT_TARGET_DEVICES(func) \
++      func(MMC, mmc, 1) \
++      func(MMC, mmc, 0) \
++      func(PXE, pxe, na) \
++      func(DHCP, dhcp, na)
++
++#include <config_distro_bootcmd.h>
++
++#ifndef MEM_LAYOUT_ENV_SETTINGS
++/* 2GB RAM, bootm size of 256M, load scripts after that */
++#define MEM_LAYOUT_ENV_SETTINGS \
++      "bootm_size=0x10000000\0" \
++      "kernel_addr_r=0x42000000\0" \
++      "fdt_addr_r=0x43000000\0" \
++      "ramdisk_addr_r=0x43300000\0" \
++      "scriptaddr=0x50000000\0" \
++      "pxefile_addr_r=0x51000000\0"
++#endif
++
++#ifndef EXYNOS_DEVICE_SETTINGS
++#define EXYNOS_DEVICE_SETTINGS \
++      "stdin=serial\0" \
++      "stdout=serial\0" \
++      "stderr=serial\0"
++#endif
++
++#ifndef EXYNOS_FDTFILE_SETTING
++#define EXYNOS_FDTFILE_SETTING
++#endif
++
++#define CONFIG_EXTRA_ENV_SETTINGS \
++      EXYNOS_DEVICE_SETTINGS \
++      EXYNOS_FDTFILE_SETTING \
++      MEM_LAYOUT_ENV_SETTINGS \
++      BOOTENV
++
+ #endif        /* __CONFIG_EXYNOS5_COMMON_H */
+diff --git a/include/configs/exynos5-dt-common.h b/include/configs/exynos5-dt-common.h
+index 66547fa..9cef0b0 100644
+--- a/include/configs/exynos5-dt-common.h
++++ b/include/configs/exynos5-dt-common.h
+@@ -9,6 +9,13 @@
+ #ifndef __CONFIG_EXYNOS5_DT_COMMON_H
+ #define __CONFIG_EXYNOS5_DT_COMMON_H
++/* Console configuration */
++#undef EXYNOS_DEVICE_SETTINGS
++#define EXYNOS_DEVICE_SETTINGS \
++              "stdin=serial,cros-ec-keyb\0" \
++              "stdout=serial,lcd\0" \
++              "stderr=serial,lcd\0"
++
+ #include "exynos5-common.h"
+ /* PMIC */
+@@ -22,14 +29,4 @@
+ #define CONFIG_CMD_CROS_EC
+ #define CONFIG_KEYBOARD
+-/* Console configuration */
+-#undef EXYNOS_DEVICE_SETTINGS
+-#define EXYNOS_DEVICE_SETTINGS \
+-              "stdin=serial,cros-ec-keyb\0" \
+-              "stdout=serial,lcd\0" \
+-              "stderr=serial,lcd\0"
+-
+-#define CONFIG_EXTRA_ENV_SETTINGS \
+-      EXYNOS_DEVICE_SETTINGS
+-
+ #endif
+diff --git a/include/configs/exynos5250-common.h b/include/configs/exynos5250-common.h
+index 713614f..a0107e8 100644
+--- a/include/configs/exynos5250-common.h
++++ b/include/configs/exynos5250-common.h
+@@ -29,8 +29,6 @@
+ #define CONFIG_SPL_TEXT_BASE  0x02023400
+-#define CONFIG_BOOTCOMMAND    "mmc read 40007000 451 2000; bootm 40007000"
+-
+ #define CONFIG_IRAM_STACK     0x02050000
+ #define CONFIG_SYS_INIT_SP_ADDR       CONFIG_IRAM_STACK
+diff --git a/include/configs/exynos5420-common.h b/include/configs/exynos5420-common.h
+index b0f940c..3cf9f01 100644
+--- a/include/configs/exynos5420-common.h
++++ b/include/configs/exynos5420-common.h
+@@ -44,8 +44,6 @@
+ #define CONFIG_BOARD_REV_GPIO_COUNT   2
+-#define CONFIG_BOOTCOMMAND    "mmc read 20007000 451 2000; bootm 20007000"
+-
+ #define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS    2
+ /*
diff --git a/debian/patches/cubox-i/cubox-i-raw-initrd.diff b/debian/patches/cubox-i/cubox-i-raw-initrd.diff
new file mode 100644 (file)
index 0000000..67716e4
--- /dev/null
@@ -0,0 +1,12 @@
+Index: u-boot/include/configs/mx6_cubox-i.h
+===================================================================
+--- u-boot.orig/include/configs/mx6_cubox-i.h
++++ u-boot/include/configs/mx6_cubox-i.h
+@@ -352,6 +352,7 @@ extern char *config_sys_prompt;
+ #define CONFIG_OF_LIBFDT
+ #define CONFIG_CMD_BOOTZ
++#define CONFIG_SUPPORT_RAW_INITRD
+ #ifndef CONFIG_SYS_DCACHE_OFF
+ #define CONFIG_CMD_CACHE
diff --git a/debian/patches/cubox-i/cubox-i-standardize-variables.diff b/debian/patches/cubox-i/cubox-i-standardize-variables.diff
new file mode 100644 (file)
index 0000000..39509d2
--- /dev/null
@@ -0,0 +1,26 @@
+Add compatibility variables defined in README for kernel_addr_r,
+fdt_addr_r, ramdisk_addr_r and fdtfile.
+
+Index: u-boot/include/configs/mx6_cubox-i.h
+===================================================================
+--- u-boot.orig/include/configs/mx6_cubox-i.h
++++ u-boot/include/configs/mx6_cubox-i.h
+@@ -170,6 +170,9 @@
+         "initrd_high=0xffffffff\0" \
+         "fdt_addr=0x18000000\0" \
+         "ramdiskaddr=0x11800000\0" \
++        "kernel_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \
++        "fdt_addr_r=0x18000000\0" \
++        "ramdisk_addr_r=0x11800000\0" \
+         "ramdisk=uInitrd\0" \
+         "boot_fdt=try\0" \
+         "ip_dyn=yes\0" \
+@@ -205,7 +208,7 @@
+                         "setenv fdt_file ${fdt_prefix}-cubox-i.dtb; " \
+                 "else " \
+                         "setenv fdt_file ${fdt_prefix}-hummingboard.dtb; " \
+-                "fi;\0" \
++                "fi; setenv fdtfile ${fdt_file};\0" \
+         "loadbootenv=load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${bootenv};\0" \
+         "loadfdt=if test ${boottype} = mmc; then " \
+                      "load mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${file_prefix}${fdt_file}; " \
diff --git a/debian/patches/cubox-i/cubox-i-support.diff b/debian/patches/cubox-i/cubox-i-support.diff
new file mode 100644 (file)
index 0000000..894e7f5
--- /dev/null
@@ -0,0 +1,3292 @@
+Author: Rabeeh Khoury <rabeeh@solid-run.com>,
+       Jon Nettleton <jon.nettleton@gmail.com>
+Description: SolidRun CuBox-i support
+ Taken from https://github.com/rabeeh/u-boot-imx6.git
+
+diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
+index 72558b8..c6c526a 100644
+--- a/arch/arm/Kconfig
++++ b/arch/arm/Kconfig
+@@ -414,6 +414,12 @@ config TARGET_GW_VENTANA
+ config TARGET_HUMMINGBOARD
+       bool "Support hummingboard"
++config TARGET_MX6_C1
++      bool "Support mx6_c1"
++
++config TARGET_MX6_CUBOX_I
++      bool "Support mx6_cubox-i"
++
+ config TARGET_TQMA6
+       bool "TQ Systems TQMa6 board"
+@@ -671,6 +677,8 @@ source "board/siemens/rut/Kconfig"
+ source "board/siemens/taurus/Kconfig"
+ source "board/silica/pengwyn/Kconfig"
+ source "board/solidrun/hummingboard/Kconfig"
++source "board/solidrun/mx6_c1/Kconfig"
++source "board/solidrun/mx6_cubox-i/Kconfig"
+ source "board/spear/spear300/Kconfig"
+ source "board/spear/spear310/Kconfig"
+ source "board/spear/spear320/Kconfig"
+diff --git a/arch/arm/cpu/armv7/mx6/soc.c b/arch/arm/cpu/armv7/mx6/soc.c
+index 6352422..8079840 100644
+--- a/arch/arm/cpu/armv7/mx6/soc.c
++++ b/arch/arm/cpu/armv7/mx6/soc.c
+@@ -389,10 +389,17 @@ void s_init(void)
+               (periph2 != 0x3) && (periph1 != 0x3))
+               mask528 |= ANATOP_PFD_CLKGATE_MASK(2);
+-      writel(mask480, &anatop->pfd_480_set);
+-      writel(mask528, &anatop->pfd_528_set);
+-      writel(mask480, &anatop->pfd_480_clr);
+-      writel(mask528, &anatop->pfd_528_clr);
++      reg = readl(&anatop->pfd_480);
++      if (!(reg & ((1 << 6) | (1 << 14) | (1 << 22)))) {
++              writel(mask480, &anatop->pfd_480_set);
++              writel(mask480, &anatop->pfd_480_clr);
++      }
++
++      reg = readl(&anatop->pfd_528);
++      if (!(reg & ((1 << 6) | (1 << 14) | (1 << 22)))) {
++              writel(mask528, &anatop->pfd_528_set);
++              writel(mask528, &anatop->pfd_528_clr);
++      }
+ }
+ #ifdef CONFIG_IMX_HDMI
+@@ -409,6 +416,9 @@ void imx_enable_hdmi_phy(void)
+       udelay(3000);
+       reg |= HDMI_PHY_CONF0_GEN2_TXPWRON_MASK;
+       writeb(reg, &hdmi->phy_conf0);
++      udelay(3000);
++      reg &= ~HDMI_PHY_CONF0_GEN2_PDDQ_MASK;
++      writeb(reg, &hdmi->phy_conf0);
+       writeb(HDMI_MC_PHYRSTZ_ASSERT, &hdmi->mc_phyrstz);
+ }
+diff --git a/board/solidrun/mx6-microsom/1066mhz_4x128mx16.cfg b/board/solidrun/mx6-microsom/1066mhz_4x128mx16.cfg
+new file mode 100644
+index 0000000..19da53e
+--- /dev/null
++++ b/board/solidrun/mx6-microsom/1066mhz_4x128mx16.cfg
+@@ -0,0 +1,103 @@
++/*
++ * Copyright (C) 2013 Boundary Devices
++ * Copyright (C) 2013 SolidRun ltd.
++ * Copyright (C) 2013 Jon Nettleton <jon.nettleton@gmail.com>
++ *
++ * See file CREDITS for list of people who contributed to this
++ * project.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of
++ * the License or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not write to the Free Software
++ * Foundation Inc. 51 Franklin Street Fifth Floor Boston,
++ * MA 02110-1301 USA
++ *
++ */
++/*
++ * Calibrations
++ * ZQ 
++ */
++
++DATA 4, MX6_MMDC_P0_MPZQHWCTRL, 0xa1390003 /* 0xa1380003 */
++DATA 4, MX6_MMDC_P1_MPZQHWCTRL, 0xa1390003 /* 0xa1380003 */
++/* write leveling */
++DATA 4, MX6_MMDC_P0_MPWLDECTRL0, 0x00000000
++DATA 4, MX6_MMDC_P0_MPWLDECTRL1, 0x00000000
++DATA 4, MX6_MMDC_P1_MPWLDECTRL0, 0x00000000
++DATA 4, MX6_MMDC_P1_MPWLDECTRL1, 0x00000000
++/*
++ * DQS gating, read delay, write delay calibration values
++ * based on calibration compare of 0x00ffff00
++ */
++DATA 4, MX6_MMDC_P0_MPDGCTRL0, 0x0314031c
++DATA 4, MX6_MMDC_P0_MPDGCTRL1, 0x023e0304
++DATA 4, MX6_MMDC_P1_MPDGCTRL0, 0x03240330
++DATA 4, MX6_MMDC_P1_MPDGCTRL1, 0x03180260
++DATA 4, MX6_MMDC_P0_MPRDDLCTL, 0x3630323c
++DATA 4, MX6_MMDC_P1_MPRDDLCTL, 0x3436283a
++DATA 4, MX6_MMDC_P0_MPWRDLCTL, 0x36344038
++DATA 4, MX6_MMDC_P1_MPWRDLCTL, 0x422a423c
++/* read data bit delay */
++DATA 4, MX6_MMDC_P0_MPRDDQBY0DL, 0x33333333
++DATA 4, MX6_MMDC_P0_MPRDDQBY1DL, 0x33333333
++DATA 4, MX6_MMDC_P0_MPRDDQBY2DL, 0x33333333
++DATA 4, MX6_MMDC_P0_MPRDDQBY3DL, 0x33333333
++DATA 4, MX6_MMDC_P1_MPRDDQBY0DL, 0x33333333
++DATA 4, MX6_MMDC_P1_MPRDDQBY1DL, 0x33333333
++DATA 4, MX6_MMDC_P1_MPRDDQBY2DL, 0x33333333
++DATA 4, MX6_MMDC_P1_MPRDDQBY3DL, 0x33333333
++/* Complete calibration by forced measurement */
++DATA 4, MX6_MMDC_P0_MPMUR0, 0x00000800
++DATA 4, MX6_MMDC_P1_MPMUR0, 0x00000800
++
++/*
++ * MMDC init:
++ * in DDR3, 32-bit mode, only MMDC0 is initiated:
++ */
++DATA 4, MX6_MMDC_P0_MDPDC, 0x00025576
++DATA 4, MX6_MMDC_P0_MDOTC, 0x09444040
++
++DATA 4, MX6_MMDC_P0_MDCFG0, 0x54597955
++DATA 4, MX6_MMDC_P0_MDCFG1, 0xFF328F64
++DATA 4, MX6_MMDC_P0_MDCFG2, 0x01FF00DB
++
++DATA 4, MX6_MMDC_P0_MDMISC, 0x00011740
++DATA 4, MX6_MMDC_P0_MDSCR, 0x00008000
++DATA 4, MX6_MMDC_P0_MDRWD, 0x000026d2
++DATA 4, MX6_MMDC_P0_MDOR, 0x005B0E21
++DATA 4, MX6_MMDC_P0_MDASP, 0x00000027
++
++/* MMDC0_MAARCR ADOPT optimized priorities. Dyn jump disabled */
++DATA 4, 0x021b0400, 0x11420000
++
++DATA 4, MX6_MMDC_P0_MDCTL, 0x831A0000
++
++/*
++ * Initialize 2GB DDR3 - Samsung K4B2G1646E-BCK0
++ */
++DATA 4, MX6_MMDC_P0_MDSCR, 0x02088032
++DATA 4, MX6_MMDC_P0_MDSCR, 0x0208803A
++DATA 4, MX6_MMDC_P0_MDSCR, 0x00008033
++DATA 4, MX6_MMDC_P0_MDSCR, 0x0000803B
++DATA 4, MX6_MMDC_P0_MDSCR, 0x00408031
++DATA 4, MX6_MMDC_P0_MDSCR, 0x00408039
++DATA 4, MX6_MMDC_P0_MDSCR, 0x09408030
++DATA 4, MX6_MMDC_P0_MDSCR, 0x09408038
++DATA 4, MX6_MMDC_P0_MDSCR, 0x04008040
++DATA 4, MX6_MMDC_P0_MDSCR, 0x04008048
++
++/* final DDR setup */
++DATA 4, MX6_MMDC_P0_MDREF, 0x00005800
++DATA 4, MX6_MMDC_P0_MPODTCTRL, 0x00000007
++DATA 4, MX6_MMDC_P1_MPODTCTRL, 0x00000007
++DATA 4, MX6_MMDC_P0_MDSCR, 0x00000000
++DATA 4, MX6_MMDC_P0_MAPSR, 0x00011006
+diff --git a/board/solidrun/mx6-microsom/1066mhz_4x256mx16.cfg b/board/solidrun/mx6-microsom/1066mhz_4x256mx16.cfg
+new file mode 100644
+index 0000000..0800afc
+--- /dev/null
++++ b/board/solidrun/mx6-microsom/1066mhz_4x256mx16.cfg
+@@ -0,0 +1,103 @@
++/*
++ * Copyright (C) 2013 Boundary Devices
++ * Copyright (C) 2013 SolidRun ltd.
++ * Copyright (C) 2013 Jon Nettleton <jon.nettleton@gmail.com>
++ *
++ * See file CREDITS for list of people who contributed to this
++ * project.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of
++ * the License or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not write to the Free Software
++ * Foundation Inc. 51 Franklin Street Fifth Floor Boston,
++ * MA 02110-1301 USA
++ *
++ */
++/*
++ * Calibrations
++ * ZQ 
++ */
++
++DATA 4, MX6_MMDC_P0_MPZQHWCTRL, 0xa1390003 /* 0xa1380003 */
++DATA 4, MX6_MMDC_P1_MPZQHWCTRL, 0xa1390003 /* 0xa1380003 */
++/* write leveling */
++DATA 4, MX6_MMDC_P0_MPWLDECTRL0, 0x00000000
++DATA 4, MX6_MMDC_P0_MPWLDECTRL1, 0x00000000
++DATA 4, MX6_MMDC_P1_MPWLDECTRL0, 0x00000000
++DATA 4, MX6_MMDC_P1_MPWLDECTRL1, 0x00000000
++/*
++ * DQS gating, read delay, write delay calibration values
++ * based on calibration compare of 0x00ffff00
++ */
++DATA 4, MX6_MMDC_P0_MPDGCTRL0, 0x0314031c
++DATA 4, MX6_MMDC_P0_MPDGCTRL1, 0x023e0304
++DATA 4, MX6_MMDC_P1_MPDGCTRL0, 0x03240330
++DATA 4, MX6_MMDC_P1_MPDGCTRL1, 0x03180260
++DATA 4, MX6_MMDC_P0_MPRDDLCTL, 0x3630323c
++DATA 4, MX6_MMDC_P1_MPRDDLCTL, 0x3436283a
++DATA 4, MX6_MMDC_P0_MPWRDLCTL, 0x36344038
++DATA 4, MX6_MMDC_P1_MPWRDLCTL, 0x422a423c
++/* read data bit delay */
++DATA 4, MX6_MMDC_P0_MPRDDQBY0DL, 0x33333333
++DATA 4, MX6_MMDC_P0_MPRDDQBY1DL, 0x33333333
++DATA 4, MX6_MMDC_P0_MPRDDQBY2DL, 0x33333333
++DATA 4, MX6_MMDC_P0_MPRDDQBY3DL, 0x33333333
++DATA 4, MX6_MMDC_P1_MPRDDQBY0DL, 0x33333333
++DATA 4, MX6_MMDC_P1_MPRDDQBY1DL, 0x33333333
++DATA 4, MX6_MMDC_P1_MPRDDQBY2DL, 0x33333333
++DATA 4, MX6_MMDC_P1_MPRDDQBY3DL, 0x33333333
++/* Complete calibration by forced measurement */
++DATA 4, MX6_MMDC_P0_MPMUR0, 0x00000800
++DATA 4, MX6_MMDC_P1_MPMUR0, 0x00000800
++
++/*
++ * MMDC init:
++ * in DDR3, 32-bit mode, only MMDC0 is initiated:
++ */
++DATA 4, MX6_MMDC_P0_MDPDC, 0x00025576
++DATA 4, MX6_MMDC_P0_MDOTC, 0x09444040
++
++DATA 4, MX6_MMDC_P0_MDCFG0, 0x898E7975
++DATA 4, MX6_MMDC_P0_MDCFG1, 0xFF328F64
++DATA 4, MX6_MMDC_P0_MDCFG2, 0x01FF00DB
++
++DATA 4, MX6_MMDC_P0_MDMISC, 0x00011740
++DATA 4, MX6_MMDC_P0_MDSCR, 0x00008000
++DATA 4, MX6_MMDC_P0_MDRWD, 0x000026d2
++DATA 4, MX6_MMDC_P0_MDOR, 0x005B0E21
++DATA 4, MX6_MMDC_P0_MDASP, 0x00000047
++
++/* MMDC0_MAARCR ADOPT optimized priorities. Dyn jump disabled */
++DATA 4, 0x021b0400, 0x11420000
++
++DATA 4, MX6_MMDC_P0_MDCTL, 0x841A0000
++
++/*
++ * Initialize 2GB DDR3 - Samsung K4B4G1646B-HYK0
++ */
++DATA 4, MX6_MMDC_P0_MDSCR, 0x02088032
++DATA 4, MX6_MMDC_P0_MDSCR, 0x0208803A
++DATA 4, MX6_MMDC_P0_MDSCR, 0x00008033
++DATA 4, MX6_MMDC_P0_MDSCR, 0x0000803B
++DATA 4, MX6_MMDC_P0_MDSCR, 0x00408031
++DATA 4, MX6_MMDC_P0_MDSCR, 0x00408039
++DATA 4, MX6_MMDC_P0_MDSCR, 0x09408030
++DATA 4, MX6_MMDC_P0_MDSCR, 0x09408038
++DATA 4, MX6_MMDC_P0_MDSCR, 0x04008040
++DATA 4, MX6_MMDC_P0_MDSCR, 0x04008048
++
++/* final DDR setup */
++DATA 4, MX6_MMDC_P0_MDREF, 0x00005800
++DATA 4, MX6_MMDC_P0_MPODTCTRL, 0x00000007
++DATA 4, MX6_MMDC_P1_MPODTCTRL, 0x00000007
++DATA 4, MX6_MMDC_P0_MDSCR, 0x00000000
++DATA 4, MX6_MMDC_P0_MAPSR, 0x00011006
+diff --git a/board/solidrun/mx6-microsom/800mhz_4x128mx16.cfg b/board/solidrun/mx6-microsom/800mhz_4x128mx16.cfg
+new file mode 100644
+index 0000000..0dea747
+--- /dev/null
++++ b/board/solidrun/mx6-microsom/800mhz_4x128mx16.cfg
+@@ -0,0 +1,99 @@
++/*
++ * Copyright (C) 2013 Boundary Devices
++ * Copyright (C) 2013 SolidRun ltd.
++ * Copyright (C) 2013 Jon Nettleton <jon.nettleton@gmail.com>
++ *
++ * See file CREDITS for list of people who contributed to this
++ * project.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of
++ * the License or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not write to the Free Software
++ * Foundation Inc. 51 Franklin Street Fifth Floor Boston,
++ * MA 02110-1301 USA
++ *
++ */
++/*
++ * Calibrations
++ * ZQ 
++ */
++DATA 4, MX6_MMDC_P0_MPZQHWCTRL, 0xa1390003
++/* write leveling */
++DATA 4, MX6_MMDC_P0_MPWLDECTRL0, 0x0045004D
++DATA 4, MX6_MMDC_P0_MPWLDECTRL1, 0x003A0047
++DATA 4, MX6_MMDC_P1_MPWLDECTRL0, 0x001F001F
++DATA 4, MX6_MMDC_P1_MPWLDECTRL1, 0x00210035
++
++/*
++ * DQS gating, read delay, write delay calibration values
++ * based on calibration compare of 0x00ffff00
++ */
++DATA 4, MX6_MMDC_P0_MPDGCTRL0, 0x023C0224
++DATA 4, MX6_MMDC_P0_MPDGCTRL1, 0x02000220
++DATA 4, MX6_MMDC_P1_MPDGCTRL0, 0x02200220
++DATA 4, MX6_MMDC_P1_MPDGCTRL1, 0x02040208
++
++DATA 4, MX6_MMDC_P0_MPRDDLCTL, 0x44444846
++DATA 4, MX6_MMDC_P1_MPRDDLCTL, 0x4042463C
++
++DATA 4, MX6_MMDC_P0_MPWRDLCTL, 0x32343032
++DATA 4, MX6_MMDC_P1_MPWRDLCTL, 0x36363430
++
++/* read data bit delay */
++DATA 4, MX6_MMDC_P0_MPRDDQBY0DL, 0x33333333
++DATA 4, MX6_MMDC_P0_MPRDDQBY1DL, 0x33333333
++DATA 4, MX6_MMDC_P0_MPRDDQBY2DL, 0x33333333
++DATA 4, MX6_MMDC_P0_MPRDDQBY3DL, 0x33333333
++DATA 4, MX6_MMDC_P1_MPRDDQBY0DL, 0x33333333
++DATA 4, MX6_MMDC_P1_MPRDDQBY1DL, 0x33333333
++DATA 4, MX6_MMDC_P1_MPRDDQBY2DL, 0x33333333
++DATA 4, MX6_MMDC_P1_MPRDDQBY3DL, 0x33333333
++
++/* Complete calibration by forced measurement */
++DATA 4, MX6_MMDC_P0_MPMUR0, 0x00000800
++DATA 4, MX6_MMDC_P1_MPMUR0, 0x00000800
++
++/*
++ * MMDC init:
++ * in DDR3, 64-bit mode, only MMDC0 is initiated:
++ */
++DATA 4, MX6_MMDC_P0_MDPDC, 0x0002002d
++DATA 4, MX6_MMDC_P0_MDOTC, 0x00333040
++DATA 4, MX6_MMDC_P0_MDCFG0, 0x3F4352F3
++DATA 4, MX6_MMDC_P0_MDCFG1, 0xB66D8B63
++DATA 4, MX6_MMDC_P0_MDCFG2, 0x01FF00DB
++DATA 4, MX6_MMDC_P0_MDMISC, 0x00011740
++
++DATA 4, MX6_MMDC_P0_MDSCR, 0x00008000
++DATA 4, MX6_MMDC_P0_MDRWD, 0x000026d2
++DATA 4, MX6_MMDC_P0_MDOR, 0x00431023
++DATA 4, MX6_MMDC_P0_MDASP, 0x00000027
++
++/* MMDC0_MDCTL- row-14bits */
++DATA 4, MX6_MMDC_P0_MDCTL, 0x831A0000
++
++/*
++ * Initialize 2GB DDR3 - Micron MT41J128M
++ */
++DATA 4, MX6_MMDC_P0_MDSCR, 0x02008032
++DATA 4, MX6_MMDC_P0_MDSCR, 0x00008033
++DATA 4, MX6_MMDC_P0_MDSCR, 0x04008031
++DATA 4, MX6_MMDC_P0_MDSCR, 0x05208030
++DATA 4, MX6_MMDC_P0_MDSCR, 0x04008040
++
++/* final DDR setup */
++DATA 4, MX6_MMDC_P0_MDREF, 0x00007800
++DATA 4, MX6_MMDC_P0_MPODTCTRL, 0x00000007
++DATA 4, MX6_MMDC_P1_MPODTCTRL, 0x00000007
++DATA 4, MX6_MMDC_P0_MDPDC, 0x0002556d
++DATA 4, MX6_MMDC_P0_MAPSR, 0x00011006
++DATA 4, MX6_MMDC_P0_MDSCR, 0x00000000
+diff --git a/board/solidrun/mx6-microsom/clocks.cfg b/board/solidrun/mx6-microsom/clocks.cfg
+index 1288811..d579eef 100644
+--- a/board/solidrun/mx6-microsom/clocks.cfg
++++ b/board/solidrun/mx6-microsom/clocks.cfg
+@@ -4,6 +4,16 @@
+  * Copyright (C) 2013 Jon Nettleton <jon.nettleton@gmail.com>
+  *
+  * SPDX-License-Identifier:   GPL-2.0+
++ *
++ * Device Configuration Data (DCD)
++ *
++ * Each entry must have the format:
++ * Addr-type           Address        Value
++ *
++ * where:
++ *      Addr-type register length (1,2 or 4 bytes)
++ *      Address   absolute address of the register
++ *      value     value to be stored in the register
+  */
+ /* set the default clock gate to save power */
+diff --git a/board/solidrun/mx6-microsom/ddr-1066mhz-64bit-setup.cfg b/board/solidrun/mx6-microsom/ddr-1066mhz-64bit-setup.cfg
+new file mode 100644
+index 0000000..1a8af4e
+--- /dev/null
++++ b/board/solidrun/mx6-microsom/ddr-1066mhz-64bit-setup.cfg
+@@ -0,0 +1,101 @@
++/*
++ * Copyright (C) 2013 Boundary Devices
++ * Copyright (C) 2013 SolidRun ltd.
++ * Copyright (C) 2013 Jon Nettleton <jon.nettleton@gmail.com>
++ *
++ * See file CREDITS for list of people who contributed to this
++ * project.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of
++ * the License or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not write to the Free Software
++ * Foundation Inc. 51 Franklin Street Fifth Floor Boston,
++ * MA 02110-1301 USA
++ *
++ * Device Configuration Data (DCD)
++ *
++ * Each entry must have the format:
++ * Addr-type           Address        Value
++ *
++ * where:
++ *      Addr-type register length (1,2 or 4 bytes)
++ *      Address   absolute address of the register
++ *      value     value to be stored in the register
++ */
++
++/*
++ * DDR3 settings
++ * MX6Q    ddr is limited to 1066 Mhz currently 1056 MHz(528 MHz clock),
++ *       memory bus width: 64 bits    x16/x32/x64
++ * MX6DL   ddr is limited to 800 MHz(400 MHz clock)
++ *       memory bus width: 64 bits    x16/x32/x64
++ * MX6SOLO ddr is limited to 800 MHz(400 MHz clock)
++ *       memory bus width: 32 bits    x16/x32
++ */
++/* DDR IO TYPE */
++DATA 4, MX6_IOM_GRP_DDR_TYPE, 0x000C0000
++DATA 4, MX6_IOM_GRP_DDRPKE, 0x00000000
++/* Clock */
++DATA 4, MX6_IOM_DRAM_SDCLK_0, 0x00020030
++DATA 4, MX6_IOM_DRAM_SDCLK_1, 0x00020030
++/* Address */
++DATA 4, MX6_IOM_DRAM_CAS, 0x00020030
++DATA 4, MX6_IOM_DRAM_RAS, 0x00020030
++DATA 4, MX6_IOM_GRP_ADDDS, 0x00000030
++/* Control */
++DATA 4, MX6_IOM_DRAM_RESET, 0x00020030
++DATA 4, MX6_IOM_DRAM_SDCKE0, 0x00003000
++DATA 4, MX6_IOM_DRAM_SDCKE1, 0x00003000
++DATA 4, MX6_IOM_DRAM_SDBA2, 0x00000000
++DATA 4, MX6_IOM_DRAM_SDODT0, 0x00003030
++DATA 4, MX6_IOM_DRAM_SDODT1, 0x00003030
++
++/*
++ * Data Strobe: IOMUXC_SW_PAD_CTL_GRP_DDRMODE_CTL - DDR_INPUT=0, CMOS,
++ * CMOS mode saves power, but have less timing margin in case of DDR
++ * timing issue on your board you can try DDR_MODE:  [= 0x00020000]
++ */
++DATA 4, MX6_IOM_DDRMODE_CTL, 0x00020000
++
++DATA 4, MX6_IOM_DRAM_SDQS0, 0x00000030
++DATA 4, MX6_IOM_DRAM_SDQS1, 0x00000030
++DATA 4, MX6_IOM_DRAM_SDQS2, 0x00000030
++DATA 4, MX6_IOM_DRAM_SDQS3, 0x00000030
++DATA 4, MX6_IOM_DRAM_SDQS4, 0x00000030
++DATA 4, MX6_IOM_DRAM_SDQS5, 0x00000030
++DATA 4, MX6_IOM_DRAM_SDQS6, 0x00000030
++DATA 4, MX6_IOM_DRAM_SDQS7, 0x00000030
++
++/*
++ * DATA:IOMUXC_SW_PAD_CTL_GRP_DDRMODE - DDR_INPUT=0, CMOS,
++ * CMOS mode saves power, but have less timing margin in case of DDR
++ * timing issue on your board you can try DDR_MODE:  [= 0x00020000]
++ */
++DATA 4, MX6_IOM_GRP_DDRMODE, 0x00020000
++
++DATA 4, MX6_IOM_GRP_B0DS, 0x00000030
++DATA 4, MX6_IOM_GRP_B1DS, 0x00000030
++DATA 4, MX6_IOM_GRP_B2DS, 0x00000030
++DATA 4, MX6_IOM_GRP_B3DS, 0x00000030
++DATA 4, MX6_IOM_GRP_B4DS, 0x00000030
++DATA 4, MX6_IOM_GRP_B5DS, 0x00000030
++DATA 4, MX6_IOM_GRP_B6DS, 0x00000030
++DATA 4, MX6_IOM_GRP_B7DS, 0x00000030
++
++DATA 4, MX6_IOM_DRAM_DQM0, 0x00020030
++DATA 4, MX6_IOM_DRAM_DQM1, 0x00020030
++DATA 4, MX6_IOM_DRAM_DQM2, 0x00020030
++DATA 4, MX6_IOM_DRAM_DQM3, 0x00020030
++DATA 4, MX6_IOM_DRAM_DQM4, 0x00020030
++DATA 4, MX6_IOM_DRAM_DQM5, 0x00020030
++DATA 4, MX6_IOM_DRAM_DQM6, 0x00020030
++DATA 4, MX6_IOM_DRAM_DQM7, 0x00020030
+diff --git a/board/solidrun/mx6-microsom/ddr-800mhz-64bit-setup.cfg b/board/solidrun/mx6-microsom/ddr-800mhz-64bit-setup.cfg
+new file mode 100644
+index 0000000..a7a372d
+--- /dev/null
++++ b/board/solidrun/mx6-microsom/ddr-800mhz-64bit-setup.cfg
+@@ -0,0 +1,100 @@
++/*
++ * Copyright (C) 2013 Boundary Devices
++ * Copyright (C) 2013 SolidRun ltd.
++ * Copyright (C) 2013 Jon Nettleton <jon.nettleton@gmail.com>
++ *
++ * See file CREDITS for list of people who contributed to this
++ * project.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of
++ * the License or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not write to the Free Software
++ * Foundation Inc. 51 Franklin Street Fifth Floor Boston,
++ * MA 02110-1301 USA
++ *
++ * Device Configuration Data (DCD)
++ *
++ * Each entry must have the format:
++ * Addr-type           Address        Value
++ *
++ * where:
++ *      Addr-type register length (1,2 or 4 bytes)
++ *      Address   absolute address of the register
++ *      value     value to be stored in the register
++ */
++
++/*
++ * DDR3 settings
++ * MX6Q    ddr is limited to 1066 Mhz currently 1056 MHz(528 MHz clock),
++ *       memory bus width: 64 bits    x16/x32/x64
++ * MX6DL   ddr is limited to 800 MHz(400 MHz clock)
++ *       memory bus width: 64 bits    x16/x32/x64
++ * MX6SOLO ddr is limited to 800 MHz(400 MHz clock)
++ *       memory bus width: 32 bits    x16/x32
++ */
++/* DDR IO TYPE */
++DATA 4, MX6_IOM_GRP_DDR_TYPE, 0x000c0000
++DATA 4, MX6_IOM_GRP_DDRPKE, 0x00000000
++/* Clock */
++DATA 4, MX6_IOM_DRAM_SDCLK_0, 0x00000028
++DATA 4, MX6_IOM_DRAM_SDCLK_1, 0x00000028
++/* Address */
++DATA 4, MX6_IOM_DRAM_CAS, 0x00000028
++DATA 4, MX6_IOM_DRAM_RAS, 0x00000028
++DATA 4, MX6_IOM_GRP_ADDDS, 0x00000028
++/* Control */
++DATA 4, MX6_IOM_DRAM_RESET, 0x00000028
++DATA 4, MX6_IOM_DRAM_SDBA2, 0x00000000
++DATA 4, MX6_IOM_DRAM_SDODT0, 0x00000028
++DATA 4, MX6_IOM_DRAM_SDODT1, 0x00000028
++DATA 4, MX6_IOM_GRP_CTLDS, 0x00000028
++
++/*
++ * Data Strobe: IOMUXC_SW_PAD_CTL_GRP_DDRMODE_CTL - DDR_INPUT=0, CMOS,
++ * CMOS mode saves power, but have less timing margin in case of DDR
++ * timing issue on your board you can try DDR_MODE:  [= 0x00020000]
++ */
++DATA 4, MX6_IOM_DDRMODE_CTL, 0x00020000
++
++DATA 4, MX6_IOM_DRAM_SDQS0, 0x00000028
++DATA 4, MX6_IOM_DRAM_SDQS1, 0x00000028
++DATA 4, MX6_IOM_DRAM_SDQS2, 0x00000028
++DATA 4, MX6_IOM_DRAM_SDQS3, 0x00000028
++DATA 4, MX6_IOM_DRAM_SDQS4, 0x00000028
++DATA 4, MX6_IOM_DRAM_SDQS5, 0x00000028
++DATA 4, MX6_IOM_DRAM_SDQS6, 0x00000028
++DATA 4, MX6_IOM_DRAM_SDQS7, 0x00000028
++
++/*
++ * DATA:IOMUXC_SW_PAD_CTL_GRP_DDRMODE - DDR_INPUT=0, CMOS,
++ * CMOS mode saves power, but have less timing margin in case of DDR
++ * timing issue on your board you can try DDR_MODE:  [= 0x00020000]
++ */
++DATA 4, MX6_IOM_GRP_DDRMODE, 0x00020000
++
++DATA 4, MX6_IOM_GRP_B0DS, 0x00000028
++DATA 4, MX6_IOM_GRP_B1DS, 0x00000028
++DATA 4, MX6_IOM_GRP_B2DS, 0x00000028
++DATA 4, MX6_IOM_GRP_B3DS, 0x00000028
++DATA 4, MX6_IOM_GRP_B4DS, 0x00000028
++DATA 4, MX6_IOM_GRP_B5DS, 0x00000028
++DATA 4, MX6_IOM_GRP_B6DS, 0x00000028
++DATA 4, MX6_IOM_GRP_B7DS, 0x00000028
++
++DATA 4, MX6_IOM_DRAM_DQM0, 0x00000028
++DATA 4, MX6_IOM_DRAM_DQM1, 0x00000028
++DATA 4, MX6_IOM_DRAM_DQM2, 0x00000028
++DATA 4, MX6_IOM_DRAM_DQM3, 0x00000028
++DATA 4, MX6_IOM_DRAM_DQM4, 0x00000028
++DATA 4, MX6_IOM_DRAM_DQM5, 0x00000028
++DATA 4, MX6_IOM_DRAM_DQM6, 0x00000028
++DATA 4, MX6_IOM_DRAM_DQM7, 0x00000028
+diff --git a/board/solidrun/mx6_c1/Kconfig b/board/solidrun/mx6_c1/Kconfig
+new file mode 100644
+index 0000000..4db29bb
+--- /dev/null
++++ b/board/solidrun/mx6_c1/Kconfig
+@@ -0,0 +1,23 @@
++if TARGET_MX6_C1
++
++config SYS_CPU
++      string
++      default "armv7"
++
++config SYS_BOARD
++      string
++      default "mx6_c1"
++
++config SYS_VENDOR
++      string
++      default "solidrun"
++
++config SYS_SOC
++      string
++      default "mx6"
++
++config SYS_CONFIG_NAME
++      string
++      default "mx6_c1"
++
++endif
+diff --git a/board/solidrun/mx6_c1/Makefile b/board/solidrun/mx6_c1/Makefile
+new file mode 100644
+index 0000000..b772936
+--- /dev/null
++++ b/board/solidrun/mx6_c1/Makefile
+@@ -0,0 +1,23 @@
++#
++# Copyright (C) 2012-2013, Guennadi Liakhovetski <lg@denx.de>
++# (C) Copyright 2012-2013 Freescale Semiconductor, Inc.
++# Copyright (C) 2013, Boundary Devices <info@boundarydevices.com>
++# Copyright (C) 2013, Jon Nettleton <jon.nettleton@gmail.com>
++#
++# This program is free software; you can redistribute it and/or
++# modify it under the terms of the GNU General Public License as
++# published by the Free Software Foundation; either version 2 of
++# the License, or (at your option) any later version.
++#
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++# GNU General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, write to the Free Software
++# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++# MA 02111-1307 USA
++#
++
++obj-y  := mx6_c1.o
+diff --git a/board/solidrun/mx6_c1/mx6_c1.c b/board/solidrun/mx6_c1/mx6_c1.c
+new file mode 100644
+index 0000000..ef0b9e2
+--- /dev/null
++++ b/board/solidrun/mx6_c1/mx6_c1.c
+@@ -0,0 +1,340 @@
++/*
++ * Copyright (C) 2012 Freescale Semiconductor, Inc.
++ * Copyright (C) 2013 SolidRun ltd.
++ * Copyright (C) 2013 Jon Nettleton <jon.nettleton@gmail.com>.
++ *
++ * Author: Fabio Estevam <fabio.estevam@freescale.com>
++ *
++ * See file CREDITS for list of people who contributed to this
++ * project.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of
++ * the License, or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ */
++
++#include <asm/arch/clock.h>
++#include <asm/arch/crm_regs.h>
++#include <asm/arch/imx-regs.h>
++#include <asm/arch/iomux.h>
++#include <asm/arch/mx6-pins.h>
++#include <asm/arch/mxc_hdmi.h>
++#include <asm/arch/sys_proto.h>
++#include <asm/errno.h>
++#include <asm/gpio.h>
++#include <asm/imx-common/iomux-v3.h>
++#include <asm/imx-common/boot_mode.h>
++#include <asm/io.h>
++#include <mmc.h>
++#include <fsl_esdhc.h>
++#include <miiphy.h>
++#include <netdev.h>
++#include <ipu_pixfmt.h>
++#include "../../../drivers/video/mxcfb.h"
++
++DECLARE_GLOBAL_DATA_PTR;
++
++#define UART_PAD_CTRL  (PAD_CTL_PUS_100K_UP |                 \
++      PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm |                 \
++      PAD_CTL_SRE_FAST  | PAD_CTL_HYS)
++
++#define USDHC_PAD_CTRL (PAD_CTL_PUS_47K_UP |                  \
++      PAD_CTL_SPEED_LOW | PAD_CTL_DSE_80ohm |                 \
++      PAD_CTL_SRE_FAST  | PAD_CTL_HYS)
++
++#define USDHC_PAD_CLK_CTRL (PAD_CTL_SPEED_LOW |                       \
++      PAD_CTL_DSE_80ohm | PAD_CTL_SRE_FAST |                  \
++      PAD_CTL_HYS)
++
++#define USDHC_PAD_GPIO_CTRL (PAD_CTL_PUS_22K_UP |             \
++      PAD_CTL_SPEED_LOW | PAD_CTL_DSE_40ohm |                 \
++      PAD_CTL_SRE_FAST  | PAD_CTL_HYS)
++
++#define ENET_PAD_CTRL  (PAD_CTL_PUS_100K_UP |                 \
++      PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
++
++#define ENET_PAD_CTRL_PD  (PAD_CTL_PUS_100K_DOWN |            \
++      PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
++
++#define ENET_PAD_CTRL_CLK  (PAD_CTL_PUS_100K_UP & ~PAD_CTL_PKE | \
++      PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_SRE_FAST)
++
++int dram_init(void)
++{
++      gd->ram_size = ((phys_size_t)CONFIG_DDR_MB * 1024 * 1024);
++
++      return 0;
++}
++
++iomux_v3_cfg_t const uart1_pads[] = {
++      MX6_PAD_CSI0_DAT10__UART1_TXD | MUX_PAD_CTRL(UART_PAD_CTRL),
++      MX6_PAD_CSI0_DAT11__UART1_RXD | MUX_PAD_CTRL(UART_PAD_CTRL),
++};
++
++static void setup_iomux_uart(void)
++{
++      imx_iomux_v3_setup_multiple_pads(uart1_pads, ARRAY_SIZE(uart1_pads));
++}
++
++iomux_v3_cfg_t const usdhc2_pads[] = {
++      MX6_PAD_SD2_CLK__USDHC2_CLK     | MUX_PAD_CTRL(USDHC_PAD_CLK_CTRL),
++      MX6_PAD_SD2_CMD__USDHC2_CMD     | MUX_PAD_CTRL(USDHC_PAD_CTRL),
++      MX6_PAD_SD2_DAT0__USDHC2_DAT0   | MUX_PAD_CTRL(USDHC_PAD_CTRL),
++      MX6_PAD_SD2_DAT1__USDHC2_DAT1   | MUX_PAD_CTRL(USDHC_PAD_CTRL),
++      MX6_PAD_SD2_DAT2__USDHC2_DAT2   | MUX_PAD_CTRL(USDHC_PAD_CTRL),
++      MX6_PAD_SD2_DAT3__USDHC2_DAT3   | MUX_PAD_CTRL(USDHC_PAD_CTRL),
++        MX6_PAD_GPIO_4__USDHC2_CD       | MUX_PAD_CTRL(USDHC_PAD_GPIO_CTRL),
++};
++
++#ifdef CONFIG_FSL_ESDHC
++struct fsl_esdhc_cfg usdhc_cfg[1] = {
++        { USDHC2_BASE_ADDR },
++};
++
++int board_mmc_getcd(struct mmc *mmc)
++{
++        struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv;
++
++        if (cfg->esdhc_base == USDHC2_BASE_ADDR) {
++                return !gpio_get_value(IMX_GPIO_NR(1, 4));
++        }
++
++        return 0;
++}
++
++int board_mmc_init(bd_t *bis)
++{
++        /*
++         * Only one USDHC controller on titianium
++         */
++        imx_iomux_v3_setup_multiple_pads(usdhc2_pads, ARRAY_SIZE(usdhc2_pads));
++        gpio_direction_input(IMX_GPIO_NR(1, 4));
++        usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC2_CLK);
++
++        return fsl_esdhc_initialize(bis, &usdhc_cfg[0]);
++}
++#endif
++
++#ifdef CONFIG_FEC_MXC
++iomux_v3_cfg_t const enet_pads[] = {
++      MX6_PAD_ENET_MDIO__ENET_MDIO            | MUX_PAD_CTRL(ENET_PAD_CTRL),          
++      MX6_PAD_ENET_MDC__ENET_MDC              | MUX_PAD_CTRL(ENET_PAD_CTRL),          
++      /* AR8035 reset */
++      MX6_PAD_KEY_ROW4__GPIO_4_15             | MUX_PAD_CTRL(ENET_PAD_CTRL_PD),               
++      /* AR8035 interrupt */
++      MX6_PAD_DI0_PIN2__GPIO_4_18             | MUX_PAD_CTRL(NO_PAD_CTRL),            
++      /* GPIO16 -> AR8035 25MHz */
++      MX6_PAD_GPIO_16__ENET_REF_CLK           | MUX_PAD_CTRL(NO_PAD_CTRL),            
++      MX6_PAD_RGMII_TXC__ENET_RGMII_TXC               | MUX_PAD_CTRL(NO_PAD_CTRL),            
++      MX6_PAD_RGMII_TD0__ENET_RGMII_TD0               | MUX_PAD_CTRL(ENET_PAD_CTRL),          
++      MX6_PAD_RGMII_TD1__ENET_RGMII_TD1               | MUX_PAD_CTRL(ENET_PAD_CTRL),          
++      MX6_PAD_RGMII_TD2__ENET_RGMII_TD2               | MUX_PAD_CTRL(ENET_PAD_CTRL),          
++      MX6_PAD_RGMII_TD3__ENET_RGMII_TD3               | MUX_PAD_CTRL(ENET_PAD_CTRL),          
++      MX6_PAD_RGMII_TX_CTL__RGMII_TX_CTL              | MUX_PAD_CTRL(ENET_PAD_CTRL),          
++      /* AR8035 CLK_25M --> ENET_REF_CLK (V22) */
++      MX6_PAD_ENET_REF_CLK__ENET_TX_CLK               | MUX_PAD_CTRL(ENET_PAD_CTRL_CLK),              
++        MX6_PAD_RGMII_RXC__ENET_RGMII_RXC       | MUX_PAD_CTRL(ENET_PAD_CTRL),
++        MX6_PAD_RGMII_RD0__ENET_RGMII_RD0       | MUX_PAD_CTRL(ENET_PAD_CTRL_PD),
++        MX6_PAD_RGMII_RD1__ENET_RGMII_RD1       | MUX_PAD_CTRL(ENET_PAD_CTRL_PD),
++        MX6_PAD_RGMII_RD2__ENET_RGMII_RD2       | MUX_PAD_CTRL(ENET_PAD_CTRL),
++        MX6_PAD_RGMII_RD3__ENET_RGMII_RD3       | MUX_PAD_CTRL(ENET_PAD_CTRL),
++        MX6_PAD_RGMII_RX_CTL__RGMII_RX_CTL      | MUX_PAD_CTRL(ENET_PAD_CTRL_PD),
++};
++
++static void setup_iomux_enet(void)
++{
++      imx_iomux_v3_setup_multiple_pads(enet_pads, ARRAY_SIZE(enet_pads));
++
++      /*
++       * Reset AR8035 PHY. Since it runs 25MHz reference clock, it
++       * requires two resets.
++       */
++      gpio_direction_output(IMX_GPIO_NR(4, 15), 0);
++      udelay(1000 * 2);
++      gpio_set_value(IMX_GPIO_NR(4, 15), 1);
++      udelay(1000 * 2);
++      gpio_set_value(IMX_GPIO_NR(4, 15), 0);
++      udelay(1000 * 2);
++      gpio_set_value(IMX_GPIO_NR(4, 15), 1);
++      udelay(1000 * 2);
++}
++
++int board_phy_config(struct phy_device *phydev)
++{
++      if (phydev->drv->config)
++              phydev->drv->config(phydev);
++
++      return 0;
++}
++
++int enable_fec_anatop_clock(void)
++{
++      u32 reg = 0;
++      s32 timeout = 100000;
++
++      struct anatop_regs __iomem *anatop =
++      (struct anatop_regs __iomem *)ANATOP_BASE_ADDR;
++
++      reg = readl(&anatop->pll_enet);
++      reg &= 0xfffffffc; /* Set PLL to generate 25MHz */
++      writel(reg, &anatop->pll_enet);
++      if ((reg & BM_ANADIG_PLL_ENET_POWERDOWN) ||
++          (!(reg & BM_ANADIG_PLL_ENET_LOCK))) {
++              reg &= ~BM_ANADIG_PLL_ENET_POWERDOWN;
++              writel(reg, &anatop->pll_enet);
++              while (timeout--) {
++                      if (readl(&anatop->pll_enet) & BM_ANADIG_PLL_ENET_LOCK)
++                              break;
++              }
++              if (timeout < 0)
++                      return -ETIMEDOUT;
++      }
++      /* Enable FEC clock */
++      reg |= BM_ANADIG_PLL_ENET_ENABLE;
++      reg &= ~BM_ANADIG_PLL_ENET_BYPASS;
++      writel(reg, &anatop->pll_enet);
++
++      return 0;
++}
++int board_eth_init(bd_t *bis)
++{
++      int ret;
++        struct iomuxc *const iomuxc_regs
++                = (struct iomuxc *) IOMUXC_BASE_ADDR;
++      struct anatop_regs __iomem *anatop =
++                (struct anatop_regs __iomem *)ANATOP_BASE_ADDR;
++      u32 reg = 0;
++      s32 timeout = 100000;
++
++      enable_fec_anatop_clock();
++      /* set gpr1[21] */
++        clrsetbits_le32(&iomuxc_regs->gpr[1], 0, (1 << 21));
++
++      while (timeout--) {
++              if (readl(&anatop->pll_enet) & BM_ANADIG_PLL_ENET_LOCK)
++                      break;
++      }
++
++      setup_iomux_enet();
++
++      ret = cpu_eth_init(bis);
++      if (ret)
++              printf("FEC MXC: %s:failed\n", __func__);
++
++      return 0;
++}
++#endif
++
++#ifdef CONFIG_VIDEO_IPUV3
++static struct fb_videomode const hdmi = {
++        .name           = "HDMI",
++        .refresh        = 60,
++        .xres           = 1024,
++        .yres           = 768,
++        .pixclock       = 15385,
++        .left_margin    = 220,
++        .right_margin   = 40,
++        .upper_margin   = 21,
++        .lower_margin   = 7,
++        .hsync_len      = 60,
++        .vsync_len      = 10,
++        .sync           = FB_SYNC_EXT | FB_SYNC_CLK_LAT_FALL,
++        .vmode          = FB_VMODE_NONINTERLACED
++};
++
++static int detect_hdmi(void)
++{
++        struct hdmi_regs *hdmi  = (struct hdmi_regs *)HDMI_ARB_BASE_ADDR;
++        return readb(&hdmi->phy_stat0) & HDMI_DVI_STAT;
++}
++
++int board_video_skip(void)
++{
++        int ret;
++
++        ret = ipuv3_fb_init(&hdmi, 0, IPU_PIX_FMT_RGB24);
++
++        if (ret)
++                printf("HDMI cannot be configured: %d\n", ret);
++
++      if (detect_hdmi())
++              imx_enable_hdmi_phy();
++
++        return ret;
++}
++
++static void setup_display(void)
++{
++        struct mxc_ccm_reg *mxc_ccm = (struct mxc_ccm_reg *)CCM_BASE_ADDR;
++        int reg;
++
++        enable_ipu_clock();
++        imx_setup_hdmi();
++
++        reg = readl(&mxc_ccm->chsccdr);
++        reg |= (CHSCCDR_CLK_SEL_LDB_DI0
++                << MXC_CCM_CHSCCDR_IPU1_DI0_CLK_SEL_OFFSET);
++        writel(reg, &mxc_ccm->chsccdr);
++}
++#endif /* CONFIG_VIDEO_IPUV3 */
++
++#ifdef CONFIG_USB_EHCI_MX6
++int board_ehci_hcd_init(int port)
++{
++        return 0;
++}
++#endif
++
++int board_early_init_f(void)
++{
++      setup_iomux_uart();
++
++#ifdef CONFIG_VIDEO_IPUV3
++      setup_display();
++#endif
++      return 0;
++}
++
++int board_init(void)
++{
++      /* address of boot parameters */
++      gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
++
++      return 0;
++}
++
++static char const *board_type = "uninitialized";
++
++int checkboard(void)
++{
++      puts("Board: MX6-C1\n");
++      board_type = "mx6-c1";
++      return 0;
++}
++
++#ifdef CONFIG_CMD_BMODE
++static const struct boot_mode board_boot_modes[] = {
++      /* 4 bit bus width */
++      {"mmc0", MAKE_CFGVAL(0x40, 0x28, 0x00, 0x00)},
++      {NULL,   0},
++};
++#endif
++
++int board_late_init(void)
++{
++        int cpurev = get_cpu_rev();
++        setenv("cpu",get_imx_type((cpurev & 0xFF000) >> 12));
++        setenv("board",board_type);
++
++#ifdef CONFIG_CMD_BMODE
++        add_board_boot_modes(board_boot_modes);
++#endif
++
++      return 0;
++}
+diff --git a/board/solidrun/mx6_c1/mx6_c1_bootscript.txt b/board/solidrun/mx6_c1/mx6_c1_bootscript.txt
+new file mode 100644
+index 0000000..c061885
+--- /dev/null
++++ b/board/solidrun/mx6_c1/mx6_c1_bootscript.txt
+@@ -0,0 +1,30 @@
++setenv bootargs enable_wait_mode=off
++setenv nextcon 0;
++
++if test xXGA = "x$panel" ; then
++      setenv bootargs $bootargs video=mxcfb${nextcon}:dev=ldb,LDB-XGA,if=RGB24
++else
++      setenv bootargs $bootargs video=mxcfb${nextcon}:dev=ldb,OC-VGA,if=RGB24
++fi
++
++setenv nextcon 1
++setenv fbmem "fbmem=10M";
++if hdmidet ; then
++      setenv bootargs $bootargs video=mxcfb${nextcon}:dev=hdmi,1280x720M@60,if=RGB24
++      setenv fbmem $fbmem,28M;
++      setexpr nextcon $nextcon + 1;
++else
++      echo "------ no HDMI monitor";
++fi
++
++while test "4" -ne $nextcon ; do
++      setenv bootargs $bootargs video=mxcfb${nextcon}:off ;
++      setexpr nextcon $nextcon + 1 ;
++done
++
++setenv bootargs $bootargs $fbmem
++setenv bootargs $bootargs console=ttymxc0,115200 vmalloc=400M consoleblank=0 ;
++${fs}load ${dtype} ${disk}:1 10800000 /boot/uImage
++&& ${fs}load ${dtype} ${disk}:1 12800000 /boot/uramdisk.img
++&& bootm 10800000 12800000 ;
++echo "Error loading kernel image"
+diff --git a/board/solidrun/mx6_c1/mx6_c1d.cfg b/board/solidrun/mx6_c1/mx6_c1d.cfg
+new file mode 100644
+index 0000000..8211ac8
+--- /dev/null
++++ b/board/solidrun/mx6_c1/mx6_c1d.cfg
+@@ -0,0 +1,46 @@
++/*
++ * Copyright (C) 2013 Boundary Devices
++ * Copyright (C) 2013 Jon Nettleton <jon.nettleton@gmail.com>
++ *
++ * See file CREDITS for list of people who contributed to this
++ * project.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of
++ * the License or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not write to the Free Software
++ * Foundation Inc. 51 Franklin Street Fifth Floor Boston,
++ * MA 02110-1301 USA
++ *
++ * Refer docs/README.imxmage for more details about how-to configure
++ * and create imximage boot image
++ *
++ * The syntax is taken as close as possible with the kwbimage
++ */
++
++/* image version */
++IMAGE_VERSION 2
++
++/*
++ * Boot Device : one of
++ * spi, sd (the board has no nand neither onenand)
++ */
++BOOT_FROM      sd
++
++#define __ASSEMBLY__
++#include <config.h>
++#include "asm/arch/mx6-ddr.h"
++#include "asm/arch/iomux.h"
++#include "asm/arch/crm_regs.h"
++
++#include "../mx6-microsom/ddr-1066mhz-64bit-setup.cfg"
++#include "../mx6-microsom/1066mhz_4x256mx16.cfg"
++#include "../mx6-microsom/clocks.cfg"
+diff --git a/board/solidrun/mx6_c1/mx6_c1dl.cfg b/board/solidrun/mx6_c1/mx6_c1dl.cfg
+new file mode 100644
+index 0000000..33eddd4
+--- /dev/null
++++ b/board/solidrun/mx6_c1/mx6_c1dl.cfg
+@@ -0,0 +1,46 @@
++/*
++ * Copyright (C) 2013 Boundary Devices
++ * Copyright (C) 2013 Jon Nettleton <jon.nettleton@gmail.com>
++ *
++ * See file CREDITS for list of people who contributed to this
++ * project.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of
++ * the License or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not write to the Free Software
++ * Foundation Inc. 51 Franklin Street Fifth Floor Boston,
++ * MA 02110-1301 USA
++ *
++ * Refer docs/README.imxmage for more details about how-to configure
++ * and create imximage boot image
++ *
++ * The syntax is taken as close as possible with the kwbimage
++ */
++
++/* image version */
++IMAGE_VERSION 2
++
++/*
++ * Boot Device : one of
++ * spi, sd (the board has no nand neither onenand)
++ */
++BOOT_FROM      sd
++
++#define __ASSEMBLY__
++#include <config.h>
++#include "asm/arch/mx6-ddr.h"
++#include "asm/arch/iomux.h"
++#include "asm/arch/crm_regs.h"
++
++#include "../mx6-microsom/ddr-800mhz-64bit-setup.cfg"
++#include "../mx6-microsom/800mhz_4x128mx16.cfg"
++#include "../mx6-microsom/clocks.cfg"
+diff --git a/board/solidrun/mx6_c1/mx6_c1q.cfg b/board/solidrun/mx6_c1/mx6_c1q.cfg
+new file mode 100644
+index 0000000..8211ac8
+--- /dev/null
++++ b/board/solidrun/mx6_c1/mx6_c1q.cfg
+@@ -0,0 +1,46 @@
++/*
++ * Copyright (C) 2013 Boundary Devices
++ * Copyright (C) 2013 Jon Nettleton <jon.nettleton@gmail.com>
++ *
++ * See file CREDITS for list of people who contributed to this
++ * project.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of
++ * the License or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not write to the Free Software
++ * Foundation Inc. 51 Franklin Street Fifth Floor Boston,
++ * MA 02110-1301 USA
++ *
++ * Refer docs/README.imxmage for more details about how-to configure
++ * and create imximage boot image
++ *
++ * The syntax is taken as close as possible with the kwbimage
++ */
++
++/* image version */
++IMAGE_VERSION 2
++
++/*
++ * Boot Device : one of
++ * spi, sd (the board has no nand neither onenand)
++ */
++BOOT_FROM      sd
++
++#define __ASSEMBLY__
++#include <config.h>
++#include "asm/arch/mx6-ddr.h"
++#include "asm/arch/iomux.h"
++#include "asm/arch/crm_regs.h"
++
++#include "../mx6-microsom/ddr-1066mhz-64bit-setup.cfg"
++#include "../mx6-microsom/1066mhz_4x256mx16.cfg"
++#include "../mx6-microsom/clocks.cfg"
+diff --git a/board/solidrun/mx6_c1/mx6_c1solo.cfg b/board/solidrun/mx6_c1/mx6_c1solo.cfg
+new file mode 100644
+index 0000000..8acb5ba
+--- /dev/null
++++ b/board/solidrun/mx6_c1/mx6_c1solo.cfg
+@@ -0,0 +1,46 @@
++/*
++ * Copyright (C) 2013 Boundary Devices
++ * Copyright (C) 2013 Jon Nettleton <jon.nettleton@gmail.com>
++ *
++ * See file CREDITS for list of people who contributed to this
++ * project.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of
++ * the License or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not write to the Free Software
++ * Foundation Inc. 51 Franklin Street Fifth Floor Boston,
++ * MA 02110-1301 USA
++ *
++ * Refer docs/README.imxmage for more details about how-to configure
++ * and create imximage boot image
++ *
++ * The syntax is taken as close as possible with the kwbimage
++ */
++
++/* image version */
++IMAGE_VERSION 2
++
++/*
++ * Boot Device : one of
++ * spi, sd (the board has no nand neither onenand)
++ */
++BOOT_FROM      sd
++
++#define __ASSEMBLY__
++#include <config.h>
++#include "asm/arch/mx6-ddr.h"
++#include "asm/arch/iomux.h"
++#include "asm/arch/crm_regs.h"
++
++#include "../mx6-microsom/ddr-800mhz-32bit-setup.cfg"
++#include "../mx6-microsom/800mhz_2x128mx16.cfg"
++#include "../mx6-microsom/clocks.cfg"
+diff --git a/board/solidrun/mx6_cubox-i/Kconfig b/board/solidrun/mx6_cubox-i/Kconfig
+new file mode 100644
+index 0000000..c4ec8fb
+--- /dev/null
++++ b/board/solidrun/mx6_cubox-i/Kconfig
+@@ -0,0 +1,23 @@
++if TARGET_MX6_CUBOX_I
++
++config SYS_CPU
++      string
++      default "armv7"
++
++config SYS_BOARD
++      string
++      default "mx6_cubox-i"
++
++config SYS_VENDOR
++      string
++      default "solidrun"
++
++config SYS_SOC
++      string
++      default "mx6"
++
++config SYS_CONFIG_NAME
++      string
++      default "mx6_cubox-i"
++
++endif
+diff --git a/board/solidrun/mx6_cubox-i/MAINTAINERS b/board/solidrun/mx6_cubox-i/MAINTAINERS
+new file mode 100644
+index 0000000..36ddf06
+--- /dev/null
++++ b/board/solidrun/mx6_cubox-i/MAINTAINERS
+@@ -0,0 +1,6 @@
++MX6 CuBox-I BOARD
++M:    Steve Langasek <vorlon@debian.org>
++S:    Maintained
++F:    board/solidrun/mx6_cubox-i/
++F:    include/configs/mx6_cubox-i.h
++F:    configs/mx6_cubox-i_defconfig
+diff --git a/board/solidrun/mx6_cubox-i/Makefile b/board/solidrun/mx6_cubox-i/Makefile
+new file mode 100644
+index 0000000..2de7a70
+--- /dev/null
++++ b/board/solidrun/mx6_cubox-i/Makefile
+@@ -0,0 +1,23 @@
++#
++# Copyright (C) 2012-2013, Guennadi Liakhovetski <lg@denx.de>
++# (C) Copyright 2012-2013 Freescale Semiconductor, Inc.
++# Copyright (C) 2013, Boundary Devices <info@boundarydevices.com>
++# Copyright (C) 2013, Jon Nettleton <jon.nettleton@gmail.com>
++#
++# This program is free software; you can redistribute it and/or
++# modify it under the terms of the GNU General Public License as
++# published by the Free Software Foundation; either version 2 of
++# the License, or (at your option) any later version.
++#
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++# GNU General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, write to the Free Software
++# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++# MA 02111-1307 USA
++#
++
++obj-y := mx6_cubox-i.o mx6_cubox-i_spl.o
+diff --git a/board/solidrun/mx6_cubox-i/imx6image.cfg b/board/solidrun/mx6_cubox-i/imx6image.cfg
+new file mode 100644
+index 0000000..e9736fb
+--- /dev/null
++++ b/board/solidrun/mx6_cubox-i/imx6image.cfg
+@@ -0,0 +1,28 @@
++/*
++ * Maintainer : Richard Hu <linuxfae@technexion.com>
++ *
++ * Derived from Nitrogen6x code by Boundary Devices
++ *
++ * SPDX-License-Identifier:   GPL-2.0+
++ *
++ * Refer doc/README.imximage for more details about how-to configure
++ * and create imximage boot image
++ *
++ * The syntax is taken as close as possible with the kwbimage
++ */
++
++/* image version */
++IMAGE_VERSION 2
++
++/*
++ * Boot Device : one of
++ * spi, sd (the board has no nand neither onenand)
++ */
++BOOT_FROM      sd
++
++#define __ASSEMBLY__
++#include <config.h>
++#include "asm/arch/iomux.h"
++#include "asm/arch/crm_regs.h"
++
++#include "../mx6-microsom/clocks.cfg"
+diff --git a/board/solidrun/mx6_cubox-i/mx6_cubox-i.c b/board/solidrun/mx6_cubox-i/mx6_cubox-i.c
+new file mode 100644
+index 0000000..8b1e2e3
+--- /dev/null
++++ b/board/solidrun/mx6_cubox-i/mx6_cubox-i.c
+@@ -0,0 +1,484 @@
++/*
++ * Copyright (C) 2012 Freescale Semiconductor, Inc.
++ * Copyright (C) 2013 SolidRun ltd.
++ * Copyright (C) 2013 Jon Nettleton <jon.nettleton@gmail.com>.
++ *
++ * Author: Fabio Estevam <fabio.estevam@freescale.com>
++ *
++ * See file CREDITS for list of people who contributed to this
++ * project.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of
++ * the License, or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ */
++
++#include <asm/arch/clock.h>
++#include <asm/arch/crm_regs.h>
++#include <asm/arch/imx-regs.h>
++#include <asm/arch/iomux.h>
++#include <asm/arch/mx6-pins.h>
++#include <asm/arch/mxc_hdmi.h>
++#include <asm/arch/sys_proto.h>
++#include <asm/errno.h>
++#include <asm/gpio.h>
++#include <asm/imx-common/iomux-v3.h>
++#include <asm/imx-common/boot_mode.h>
++#include <asm/io.h>
++#include <mmc.h>
++#include <fsl_esdhc.h>
++#include <miiphy.h>
++#include <netdev.h>
++#include <ipu_pixfmt.h>
++#include "../../../drivers/video/mxcfb.h"
++
++DECLARE_GLOBAL_DATA_PTR;
++
++#define MX6QDL_SET_PAD(p, q) \
++      if (is_cpu_type(MXC_CPU_MX6Q) || is_cpu_type(MXC_CPU_MX6D)) \
++              imx_iomux_v3_setup_pad(MX6Q_##p | q);\
++      else \
++              imx_iomux_v3_setup_pad(MX6DL_##p | q)
++
++#define UART_PAD_CTRL  (PAD_CTL_PUS_100K_UP |                 \
++      PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm |                 \
++      PAD_CTL_SRE_FAST  | PAD_CTL_HYS)
++
++#define USDHC_PAD_CTRL (PAD_CTL_PUS_47K_UP |                  \
++      PAD_CTL_SPEED_LOW | PAD_CTL_DSE_80ohm |                 \
++      PAD_CTL_SRE_FAST  | PAD_CTL_HYS)
++
++#define USDHC_PAD_CLK_CTRL (PAD_CTL_SPEED_LOW |                       \
++      PAD_CTL_DSE_80ohm | PAD_CTL_SRE_FAST |                  \
++      PAD_CTL_HYS)
++
++#define USDHC_PAD_GPIO_CTRL (PAD_CTL_PUS_22K_UP |             \
++      PAD_CTL_SPEED_LOW | PAD_CTL_DSE_40ohm |                 \
++      PAD_CTL_SRE_FAST  | PAD_CTL_HYS)
++
++#define ENET_PAD_CTRL  (PAD_CTL_PUS_100K_UP |                 \
++      PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
++
++#define ENET_PAD_CTRL_PD  (PAD_CTL_PUS_100K_DOWN |            \
++      PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
++
++#define ENET_PAD_CTRL_CLK  (PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | \
++      PAD_CTL_SRE_FAST)
++
++#define LED IMX_GPIO_NR(4, 29)
++
++int hb_cuboxi_ = 0; /* 1 is HummingBoard, 0 is CuBox-i */
++int dram_init(void)
++{
++      uint cpurev, imxtype;
++      u32 sdram_size;
++
++      cpurev = get_cpu_rev();
++      imxtype = (cpurev & 0xFF000) >> 12;
++
++      switch (imxtype){
++      case MXC_CPU_MX6SOLO:
++              sdram_size = 512u * 1024 * 1024;
++              break;
++      case MXC_CPU_MX6Q:
++      case MXC_CPU_MX6D:
++      {
++              /* Read first the snoop control unit config register */
++              u32 scu_config = *(u32 *)(SCU_BASE_ADDR + 0x4);
++              if ((scu_config & 0x3) == 0x3) /* Quad core */
++                      sdram_size = 2u * 1024 * 1024 * 1024;
++              else /* Dual core */
++                      sdram_size = 1u * 1024 * 1024 * 1024;
++              break;
++      }
++      case MXC_CPU_MX6DL:
++      default:
++              sdram_size = 1u * 1024 * 1024 * 1024;
++              break;
++      }
++      gd->ram_size = get_ram_size((void *)PHYS_SDRAM, sdram_size);
++
++      return 0;
++}
++
++#if defined(CONFIG_MX6Q) || defined(CONFIG_MX6DL)
++iomux_v3_cfg_t const uart1_pads[] = {
++      MX6_PAD_CSI0_DAT10__UART1_TX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL),
++      MX6_PAD_CSI0_DAT11__UART1_RX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL),
++};
++
++
++iomux_v3_cfg_t const usdhc2_pads[] = {
++      MX6_PAD_SD2_CLK__SD2_CLK        | MUX_PAD_CTRL(USDHC_PAD_CLK_CTRL),
++      MX6_PAD_SD2_CMD__SD2_CMD        | MUX_PAD_CTRL(USDHC_PAD_CTRL),
++      MX6_PAD_SD2_DAT0__SD2_DATA0     | MUX_PAD_CTRL(USDHC_PAD_CTRL),
++      MX6_PAD_SD2_DAT1__SD2_DATA1     | MUX_PAD_CTRL(USDHC_PAD_CTRL),
++      MX6_PAD_SD2_DAT2__SD2_DATA2     | MUX_PAD_CTRL(USDHC_PAD_CTRL),
++      MX6_PAD_SD2_DAT3__SD2_DATA3     | MUX_PAD_CTRL(USDHC_PAD_CTRL),
++        MX6_PAD_GPIO_4__SD2_CD_B       | MUX_PAD_CTRL(USDHC_PAD_GPIO_CTRL),
++};
++iomux_v3_cfg_t const key_row1[] = {
++      /* Following is only for sensing if it's CuBox-i or HummingBoard */
++      MX6_PAD_KEY_ROW1__GPIO4_IO09      | MUX_PAD_CTRL(UART_PAD_CTRL),
++};
++#endif
++
++static void setup_iomux_uart(void)
++{
++#if defined(CONFIG_MX6Q) || defined(CONFIG_MX6DL)
++      imx_iomux_v3_setup_multiple_pads(uart1_pads, ARRAY_SIZE(uart1_pads));
++#endif
++#if defined(CONFIG_MX6QDL)
++      MX6QDL_SET_PAD(PAD_CSI0_DAT10__UART1_TX_DATA, MUX_PAD_CTRL(UART_PAD_CTRL));
++      MX6QDL_SET_PAD(PAD_CSI0_DAT11__UART1_RX_DATA, MUX_PAD_CTRL(UART_PAD_CTRL));
++#endif
++}
++
++#ifdef CONFIG_FSL_ESDHC
++struct fsl_esdhc_cfg usdhc_cfg[1] = {
++        { USDHC2_BASE_ADDR },
++};
++
++int board_mmc_getcd(struct mmc *mmc)
++{
++        struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv;
++
++        if (cfg->esdhc_base == USDHC2_BASE_ADDR) {
++                return !gpio_get_value(IMX_GPIO_NR(1, 4));
++        }
++
++        return 0;
++}
++
++int board_mmc_init(bd_t *bis)
++{
++        /*
++         * Only one USDHC controller
++         */
++#if defined(CONFIG_MX6Q) || defined(CONFIG_MX6DL)
++        imx_iomux_v3_setup_multiple_pads(usdhc2_pads, ARRAY_SIZE(usdhc2_pads));
++#endif
++#if defined(CONFIG_MX6QDL)
++      MX6QDL_SET_PAD(PAD_SD2_CLK__SD2_CLK   , MUX_PAD_CTRL(USDHC_PAD_CTRL));
++      MX6QDL_SET_PAD(PAD_SD2_CMD__SD2_CMD   , MUX_PAD_CTRL(USDHC_PAD_CTRL));
++      MX6QDL_SET_PAD(PAD_SD2_DAT0__SD2_DATA0, MUX_PAD_CTRL(USDHC_PAD_CTRL));
++      MX6QDL_SET_PAD(PAD_SD2_DAT1__SD2_DATA1, MUX_PAD_CTRL(USDHC_PAD_CTRL));
++      MX6QDL_SET_PAD(PAD_SD2_DAT2__SD2_DATA2, MUX_PAD_CTRL(USDHC_PAD_CTRL));
++      MX6QDL_SET_PAD(PAD_SD2_DAT3__SD2_DATA3, MUX_PAD_CTRL(USDHC_PAD_CTRL));
++      /* Carrier MicroSD Card Detect */
++      MX6QDL_SET_PAD(PAD_GPIO_4__SD2_CD_B     , MUX_PAD_CTRL(NO_PAD_CTRL));
++#endif
++        gpio_direction_input(IMX_GPIO_NR(1, 4));
++        usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC2_CLK);
++
++        return fsl_esdhc_initialize(bis, &usdhc_cfg[0]);
++}
++#endif
++
++#ifdef CONFIG_FEC_MXC
++#if defined(CONFIG_MX6Q) || defined(CONFIG_MX6DL)
++iomux_v3_cfg_t const enet_pads[] = {
++      MX6_PAD_ENET_MDIO__ENET_MDIO            | MUX_PAD_CTRL(ENET_PAD_CTRL),          
++      MX6_PAD_ENET_MDC__ENET_MDC              | MUX_PAD_CTRL(ENET_PAD_CTRL),          
++      /* AR8035 reset */
++      MX6_PAD_KEY_ROW4__GPIO4_IO15            | MUX_PAD_CTRL(ENET_PAD_CTRL_PD),               
++      /* AR8035 interrupt */
++      MX6_PAD_DI0_PIN2__GPIO4_IO18            | MUX_PAD_CTRL(NO_PAD_CTRL),            
++      /* GPIO16 -> AR8035 25MHz */
++      MX6_PAD_GPIO_16__ENET_REF_CLK           | MUX_PAD_CTRL(NO_PAD_CTRL),            
++      MX6_PAD_RGMII_TXC__RGMII_TXC            | MUX_PAD_CTRL(NO_PAD_CTRL),            
++      MX6_PAD_RGMII_TD0__RGMII_TD0            | MUX_PAD_CTRL(ENET_PAD_CTRL),          
++      MX6_PAD_RGMII_TD1__RGMII_TD1            | MUX_PAD_CTRL(ENET_PAD_CTRL),          
++      MX6_PAD_RGMII_TD2__RGMII_TD2            | MUX_PAD_CTRL(ENET_PAD_CTRL),          
++      MX6_PAD_RGMII_TD3__RGMII_TD3            | MUX_PAD_CTRL(ENET_PAD_CTRL),          
++      MX6_PAD_RGMII_TX_CTL__RGMII_TX_CTL              | MUX_PAD_CTRL(ENET_PAD_CTRL),          
++      /* AR8035 CLK_25M --> ENET_REF_CLK (V22) */
++      MX6_PAD_ENET_REF_CLK__ENET_TX_CLK               | MUX_PAD_CTRL(ENET_PAD_CTRL_CLK),              
++        MX6_PAD_RGMII_RXC__RGMII_RXC       | MUX_PAD_CTRL(ENET_PAD_CTRL),
++        MX6_PAD_RGMII_RD0__RGMII_RD0       | MUX_PAD_CTRL(ENET_PAD_CTRL_PD),
++        MX6_PAD_RGMII_RD1__RGMII_RD1       | MUX_PAD_CTRL(ENET_PAD_CTRL_PD),
++        MX6_PAD_RGMII_RD2__RGMII_RD2       | MUX_PAD_CTRL(ENET_PAD_CTRL),
++        MX6_PAD_RGMII_RD3__RGMII_RD3       | MUX_PAD_CTRL(ENET_PAD_CTRL),
++        MX6_PAD_RGMII_RX_CTL__RGMII_RX_CTL      | MUX_PAD_CTRL(ENET_PAD_CTRL_PD),
++};
++#endif
++
++static void setup_iomux_enet(void)
++{
++#if defined(CONFIG_MX6Q) || defined(CONFIG_MX6DL)
++      imx_iomux_v3_setup_multiple_pads(enet_pads, ARRAY_SIZE(enet_pads));
++#endif
++#if defined(CONFIG_MX6QDL)
++      MX6QDL_SET_PAD(PAD_ENET_MDIO__ENET_MDIO, MUX_PAD_CTRL(ENET_PAD_CTRL));
++      MX6QDL_SET_PAD(PAD_ENET_MDC__ENET_MDC, MUX_PAD_CTRL(ENET_PAD_CTRL));
++      /* AR8035 reset */
++      MX6QDL_SET_PAD(PAD_KEY_ROW4__GPIO4_IO15, MUX_PAD_CTRL(ENET_PAD_CTRL_PD));
++      /* AR8035 interrupt */
++      MX6QDL_SET_PAD(PAD_DI0_PIN2__GPIO4_IO18, MUX_PAD_CTRL(NO_PAD_CTRL));
++      /* GPIO16 -> AR8035 25MHz */
++      MX6QDL_SET_PAD(PAD_GPIO_16__ENET_REF_CLK, MUX_PAD_CTRL(NO_PAD_CTRL));
++      MX6QDL_SET_PAD(PAD_RGMII_TXC__RGMII_TXC, MUX_PAD_CTRL(NO_PAD_CTRL));
++      MX6QDL_SET_PAD(PAD_RGMII_TD0__RGMII_TD0, MUX_PAD_CTRL(ENET_PAD_CTRL));
++      MX6QDL_SET_PAD(PAD_RGMII_TD1__RGMII_TD1, MUX_PAD_CTRL(ENET_PAD_CTRL));
++      MX6QDL_SET_PAD(PAD_RGMII_TD2__RGMII_TD2, MUX_PAD_CTRL(ENET_PAD_CTRL));
++      MX6QDL_SET_PAD(PAD_RGMII_TD3__RGMII_TD3, MUX_PAD_CTRL(ENET_PAD_CTRL));
++      MX6QDL_SET_PAD(PAD_RGMII_TX_CTL__RGMII_TX_CTL, MUX_PAD_CTRL(ENET_PAD_CTRL));
++      /* AR8035 CLK_25M --> ENET_REF_CLK (V22) */
++      MX6QDL_SET_PAD(PAD_ENET_REF_CLK__ENET_TX_CLK, MUX_PAD_CTRL(ENET_PAD_CTRL_CLK));
++      MX6QDL_SET_PAD(PAD_RGMII_RXC__RGMII_RXC, MUX_PAD_CTRL(ENET_PAD_CTRL));
++      MX6QDL_SET_PAD(PAD_RGMII_RD0__RGMII_RD0, MUX_PAD_CTRL(ENET_PAD_CTRL_PD));
++      MX6QDL_SET_PAD(PAD_RGMII_RD1__RGMII_RD1, MUX_PAD_CTRL(ENET_PAD_CTRL_PD));
++      MX6QDL_SET_PAD(PAD_RGMII_RD2__RGMII_RD2, MUX_PAD_CTRL(ENET_PAD_CTRL));
++      MX6QDL_SET_PAD(PAD_RGMII_RD3__RGMII_RD3, MUX_PAD_CTRL(ENET_PAD_CTRL));
++      MX6QDL_SET_PAD(PAD_RGMII_RX_CTL__RGMII_RX_CTL, MUX_PAD_CTRL(ENET_PAD_CTRL_PD));
++#endif
++      /*
++       * Reset AR8035 PHY. Since it runs 25MHz reference clock, it
++       * requires two resets.
++       */
++      gpio_direction_output(IMX_GPIO_NR(4, 15), 0);
++      udelay(1000 * 2);
++      gpio_set_value(IMX_GPIO_NR(4, 15), 1);
++      udelay(1000 * 2);
++      gpio_set_value(IMX_GPIO_NR(4, 15), 0);
++      udelay(1000 * 2);
++      gpio_set_value(IMX_GPIO_NR(4, 15), 1);
++      udelay(1000 * 2);
++}
++int fecmxc_initialize(bd_t *bd)
++{
++      /*
++       * Initialize the phy in address 0x0 or 0x4.
++       * The LED_ACT pin on the carrier-one boards had a pull down that
++       * forces the phy address to 0x0; where on CuBox-i and the production
++       * HummingBoard that pin is connected directly to LED that depending
++       * on the pull down strength of the LED it might be sampled
++       * as '0' or '1' thus the phy address might appear as either address
++       * 0x0 or 0x4.
++       */
++      if (fecmxc_initialize_multi(bd, -1, 0x0, IMX_FEC_BASE) == 0) return 0;
++      return fecmxc_initialize_multi(bd, -1, 0x4, IMX_FEC_BASE);
++}
++
++int board_phy_config(struct phy_device *phydev)
++{
++      if (phydev->drv->config)
++              phydev->drv->config(phydev);
++
++      return 0;
++}
++
++int board_eth_init(bd_t *bis)
++{
++      int ret;
++        struct iomuxc *const iomuxc_regs
++                = (struct iomuxc *) IOMUXC_BASE_ADDR;
++      struct anatop_regs __iomem *anatop =
++                (struct anatop_regs __iomem *)ANATOP_BASE_ADDR;
++      u32 reg = 0;
++      s32 timeout = 100000;
++
++      enable_fec_anatop_clock(ENET_25MHz);
++      /* set gpr1[21] */
++        clrsetbits_le32(&iomuxc_regs->gpr[1], 0, (1 << 21));
++
++      while (timeout--) {
++              if (readl(&anatop->pll_enet) & BM_ANADIG_PLL_ENET_LOCK)
++                      break;
++      }
++
++      setup_iomux_enet();
++
++      ret = cpu_eth_init(bis);
++      if (ret)
++              printf("FEC MXC: %s:failed\n", __func__);
++
++      return 0;
++}
++#endif
++
++#ifdef CONFIG_VIDEO_IPUV3
++static struct fb_videomode const hdmi = {
++        .name           = "HDMI",
++        .refresh        = 60,
++        .xres           = 1024,
++        .yres           = 768,
++        .pixclock       = 15385,
++        .left_margin    = 220,
++        .right_margin   = 40,
++        .upper_margin   = 21,
++        .lower_margin   = 7,
++        .hsync_len      = 60,
++        .vsync_len      = 10,
++        .sync           = FB_SYNC_EXT | FB_SYNC_CLK_LAT_FALL,
++        .vmode          = FB_VMODE_NONINTERLACED
++};
++
++static int detect_hdmi(void)
++{
++        struct hdmi_regs *hdmi  = (struct hdmi_regs *)HDMI_ARB_BASE_ADDR;
++        return readb(&hdmi->phy_stat0) & HDMI_DVI_STAT;
++}
++
++int board_video_skip(void)
++{
++        int ret;
++
++        ret = ipuv3_fb_init(&hdmi, 0, IPU_PIX_FMT_RGB24);
++
++        if (ret)
++                printf("HDMI cannot be configured: %d\n", ret);
++
++      if (detect_hdmi())
++              imx_enable_hdmi_phy();
++
++        return ret;
++}
++
++static void setup_display(void)
++{
++        struct mxc_ccm_reg *mxc_ccm = (struct mxc_ccm_reg *)CCM_BASE_ADDR;
++        int reg;
++
++        enable_ipu_clock();
++        imx_setup_hdmi();
++
++        reg = readl(&mxc_ccm->chsccdr);
++        reg |= (CHSCCDR_CLK_SEL_LDB_DI0
++                << MXC_CCM_CHSCCDR_IPU1_DI0_CLK_SEL_OFFSET);
++        writel(reg, &mxc_ccm->chsccdr);
++}
++#endif /* CONFIG_VIDEO_IPUV3 */
++
++#ifdef CONFIG_USB_EHCI_MX6
++#define USB_OTG_EN IMX_GPIO_NR(3, 22)
++#define USB_H1_EN IMX_GPIO_NR(1, 0)
++#if defined(CONFIG_MX6Q) || defined(CONFIG_MX6DL)
++iomux_v3_cfg_t const usb_en_pads[] = {
++      MX6_PAD_EIM_D22__GPIO3_IO22 | MUX_PAD_CTRL(UART_PAD_CTRL),
++      MX6_PAD_GPIO_0__GPIO1_IO00 | MUX_PAD_CTRL(UART_PAD_CTRL),
++};
++iomux_v3_cfg_t const usb_id_pad[] = {
++      MX6_PAD_GPIO_1__USB_OTG_ID,
++};
++#endif
++
++int board_ehci_hcd_init(int port)
++{
++        return 0;
++}
++#endif
++
++char config_sys_prompt_cuboxi[] = "CuBox-i U-Boot > ";
++char config_sys_prompt_hummingboard[] = "HummingBoard U-Boot > ";
++char *config_sys_prompt = config_sys_prompt_cuboxi;
++static void detect_board(void)
++{
++      int val;
++#if defined(CONFIG_MX6Q) || defined(CONFIG_MX6DL)
++      imx_iomux_v3_setup_multiple_pads(key_row1, ARRAY_SIZE(key_row1));
++#endif
++#if defined(CONFIG_MX6QDL)
++      MX6QDL_SET_PAD(PAD_KEY_ROW1__GPIO4_IO09, MUX_PAD_CTRL(UART_PAD_CTRL));
++#endif
++        gpio_direction_input(IMX_GPIO_NR(4, 9));
++      val = gpio_get_value(IMX_GPIO_NR(4, 9));
++      if (val == 0) {
++              hb_cuboxi_ = 0;
++              config_sys_prompt = config_sys_prompt_cuboxi;
++      } else {
++              hb_cuboxi_ = 1;
++              config_sys_prompt = config_sys_prompt_hummingboard;
++      }
++}
++
++int board_early_init_f(void)
++{
++      setup_iomux_uart();
++      detect_board();
++#ifdef CONFIG_VIDEO_IPUV3
++      setup_display();
++#endif
++#ifdef CONFIG_USB_EHCI_MX6
++#if defined(CONFIG_MX6QDL)
++      MX6QDL_SET_PAD(PAD_EIM_D22__GPIO3_IO22 , MUX_PAD_CTRL(UART_PAD_CTRL));
++      MX6QDL_SET_PAD(PAD_GPIO_0__GPIO1_IO00 , MUX_PAD_CTRL(UART_PAD_CTRL));
++      MX6QDL_SET_PAD(PAD_GPIO_1__USB_OTG_ID, 0);
++#else
++      /* Setup USB OTG ID */
++      imx_iomux_v3_setup_multiple_pads(usb_id_pad, ARRAY_SIZE(usb_id_pad));
++      /* Setup enable pads */
++      imx_iomux_v3_setup_multiple_pads(usb_en_pads, ARRAY_SIZE(usb_en_pads));
++#endif
++      /* Enable USB OTG and H1 current limiter */
++      gpio_direction_output(USB_OTG_EN, 1);
++      gpio_direction_output(USB_H1_EN, 1);
++#endif
++      return 0;
++}
++
++#if defined(CONFIG_MX6Q) || defined(CONFIG_MX6DL)
++iomux_v3_cfg_t const led_pads[] = {
++      MX6_PAD_DISP0_DAT8__GPIO4_IO29 | MUX_PAD_CTRL(UART_PAD_CTRL),
++};
++#endif
++
++int board_init(void)
++{
++      /* address of boot parameters */
++      gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
++      /*
++       * The reason hb_cuboxi_ is not checked here is because it seems to be
++       * overwritten somewhere, somehow
++       */
++
++      if (config_sys_prompt == config_sys_prompt_cuboxi) {
++              gd->bd->bi_arch_number = 4821; /* CuBox-i machine ID */
++              /* Enable front LED */
++              gpio_direction_output(LED, 0);
++      } else {
++              gd->bd->bi_arch_number = 4773; /* HummingBoard machine ID */
++      }
++      return 0;
++}
++
++static char const *board_type = "uninitialized";
++
++int checkboard(void)
++{
++      if (hb_cuboxi_ == 0) {
++              puts("Board: MX6-CuBox-i\n");
++              board_type = "mx6-cubox-i";
++      } else {
++              puts("Board: MX6-HummingBoard\n");
++              board_type = "mx6-hummingboard";
++      }
++      return 0;
++}
++
++#ifdef CONFIG_CMD_BMODE
++static const struct boot_mode board_boot_modes[] = {
++      /* 4 bit bus width */
++      {"mmc0", MAKE_CFGVAL(0x40, 0x28, 0x00, 0x00)},
++      {NULL,   0},
++};
++#endif
++
++int board_late_init(void)
++{
++        int cpurev = get_cpu_rev();
++        setenv("cpu",get_imx_type((cpurev & 0xFF000) >> 12));
++        setenv("board",board_type);
++
++#ifdef CONFIG_CMD_BMODE
++        add_board_boot_modes(board_boot_modes);
++#endif
++
++      return 0;
++}
+diff --git a/board/solidrun/mx6_cubox-i/mx6_cubox-i_bootscript.txt b/board/solidrun/mx6_cubox-i/mx6_cubox-i_bootscript.txt
+new file mode 100644
+index 0000000..c061885
+--- /dev/null
++++ b/board/solidrun/mx6_cubox-i/mx6_cubox-i_bootscript.txt
+@@ -0,0 +1,30 @@
++setenv bootargs enable_wait_mode=off
++setenv nextcon 0;
++
++if test xXGA = "x$panel" ; then
++      setenv bootargs $bootargs video=mxcfb${nextcon}:dev=ldb,LDB-XGA,if=RGB24
++else
++      setenv bootargs $bootargs video=mxcfb${nextcon}:dev=ldb,OC-VGA,if=RGB24
++fi
++
++setenv nextcon 1
++setenv fbmem "fbmem=10M";
++if hdmidet ; then
++      setenv bootargs $bootargs video=mxcfb${nextcon}:dev=hdmi,1280x720M@60,if=RGB24
++      setenv fbmem $fbmem,28M;
++      setexpr nextcon $nextcon + 1;
++else
++      echo "------ no HDMI monitor";
++fi
++
++while test "4" -ne $nextcon ; do
++      setenv bootargs $bootargs video=mxcfb${nextcon}:off ;
++      setexpr nextcon $nextcon + 1 ;
++done
++
++setenv bootargs $bootargs $fbmem
++setenv bootargs $bootargs console=ttymxc0,115200 vmalloc=400M consoleblank=0 ;
++${fs}load ${dtype} ${disk}:1 10800000 /boot/uImage
++&& ${fs}load ${dtype} ${disk}:1 12800000 /boot/uramdisk.img
++&& bootm 10800000 12800000 ;
++echo "Error loading kernel image"
+diff --git a/board/solidrun/mx6_cubox-i/mx6_cubox-i_spl.c b/board/solidrun/mx6_cubox-i/mx6_cubox-i_spl.c
+new file mode 100644
+index 0000000..3a6c63f
+--- /dev/null
++++ b/board/solidrun/mx6_cubox-i/mx6_cubox-i_spl.c
+@@ -0,0 +1,479 @@
++/*
++ * Author: Tungyi Lin <tungyilin1127@gmail.com>
++ *
++ * Derived from EDM_CF_IMX6 code by TechNexion,Inc
++ * Ported to SolidRun microSOM by Rabeeh Khoury <rabeeh@solid-run.com>
++ *
++ * SPDX-License-Identifier:     GPL-2.0+
++ */
++#include <common.h>
++#include <asm/io.h>
++#include <asm/arch/sys_proto.h>
++#ifdef CONFIG_SPL
++#include <spl.h>
++#endif
++
++#define CONFIG_SPL_STACK      0x0091FFB8
++
++#define __REG16(x)    (*((volatile u16 *)(x)))
++
++DECLARE_GLOBAL_DATA_PTR;
++
++#if defined(CONFIG_SPL_BUILD)
++
++#include "asm/arch/mx6-ddr.h"
++
++static void spl_dram_init_mx6solo_512mb(void);
++static void spl_dram_init_mx6dl_1g(void);
++static void spl_dram_init_mx6dq_1g(void);
++static void spl_dram_init_mx6dq_2g(void);
++static void spl_dram_init(void);
++
++static void spl_mx6q_dram_setup_iomux(void)
++{
++      volatile struct mx6dq_iomux_ddr_regs *mx6q_ddr_iomux;
++      volatile struct mx6dq_iomux_grp_regs *mx6q_grp_iomux;
++
++      mx6q_ddr_iomux = (struct mx6dq_iomux_ddr_regs *) MX6DQ_IOM_DDR_BASE;
++      mx6q_grp_iomux = (struct mx6dq_iomux_grp_regs *) MX6DQ_IOM_GRP_BASE;
++
++      mx6q_grp_iomux->grp_ddr_type = (u32)0x000c0000;
++      mx6q_grp_iomux->grp_ddrpke = (u32)0x00000000;
++      mx6q_ddr_iomux->dram_sdclk_0 = (u32)0x00020030;
++      mx6q_ddr_iomux->dram_sdclk_1 = (u32)0x00020030;
++      mx6q_ddr_iomux->dram_cas = (u32)0x00020030;
++      mx6q_ddr_iomux->dram_ras = (u32)0x00020030;
++      mx6q_grp_iomux->grp_addds = (u32)0x00000030;
++      mx6q_ddr_iomux->dram_reset = (u32)0x00020030;
++      mx6q_ddr_iomux->dram_sdcke0 = (u32)0x00003000;
++      mx6q_ddr_iomux->dram_sdcke1 = (u32)0x00003000;
++      mx6q_ddr_iomux->dram_sdba2 = (u32)0x00000000;
++      mx6q_ddr_iomux->dram_sdodt0 = (u32)0x00003030;
++      mx6q_ddr_iomux->dram_sdodt1 = (u32)0x00003030;
++      mx6q_grp_iomux->grp_ctlds = (u32)0x00000030;
++      mx6q_grp_iomux->grp_ddrmode_ctl = (u32)0x00020000;
++      mx6q_ddr_iomux->dram_sdqs0 = (u32)0x00000030;
++      mx6q_ddr_iomux->dram_sdqs1 = (u32)0x00000030;
++      mx6q_ddr_iomux->dram_sdqs2 = (u32)0x00000030;
++      mx6q_ddr_iomux->dram_sdqs3 = (u32)0x00000030;
++      mx6q_ddr_iomux->dram_sdqs4 = (u32)0x00000030;
++      mx6q_ddr_iomux->dram_sdqs5 = (u32)0x00000030;
++      mx6q_ddr_iomux->dram_sdqs6 = (u32)0x00000030;
++      mx6q_ddr_iomux->dram_sdqs7 = (u32)0x00000030;
++      mx6q_grp_iomux->grp_ddrmode = (u32)0x00020000;
++      mx6q_grp_iomux->grp_b0ds = (u32)0x00000030;
++      mx6q_grp_iomux->grp_b1ds = (u32)0x00000030;
++      mx6q_grp_iomux->grp_b2ds = (u32)0x00000030;
++      mx6q_grp_iomux->grp_b3ds = (u32)0x00000030;
++      mx6q_grp_iomux->grp_b4ds = (u32)0x00000030;
++      mx6q_grp_iomux->grp_b5ds = (u32)0x00000030;
++      mx6q_grp_iomux->grp_b6ds = (u32)0x00000030;
++      mx6q_grp_iomux->grp_b7ds = (u32)0x00000030;
++      mx6q_ddr_iomux->dram_dqm0 = (u32)0x00020030;
++      mx6q_ddr_iomux->dram_dqm1 = (u32)0x00020030;
++      mx6q_ddr_iomux->dram_dqm2 = (u32)0x00020030;
++      mx6q_ddr_iomux->dram_dqm3 = (u32)0x00020030;
++      mx6q_ddr_iomux->dram_dqm4 = (u32)0x00020030;
++      mx6q_ddr_iomux->dram_dqm5 = (u32)0x00020030;
++      mx6q_ddr_iomux->dram_dqm6 = (u32)0x00020030;
++      mx6q_ddr_iomux->dram_dqm7 = (u32)0x00020030;
++}
++
++static void spl_mx6dl_dram_setup_iomux(void)
++{
++      volatile struct mx6sdl_iomux_ddr_regs *mx6dl_ddr_iomux;
++      volatile struct mx6sdl_iomux_grp_regs *mx6dl_grp_iomux;
++
++      mx6dl_ddr_iomux = (struct mx6sdl_iomux_ddr_regs *) MX6SDL_IOM_DDR_BASE;
++      mx6dl_grp_iomux = (struct mx6sdl_iomux_grp_regs *) MX6SDL_IOM_GRP_BASE;
++
++      mx6dl_grp_iomux->grp_ddr_type = (u32)0x000c0000;
++      mx6dl_grp_iomux->grp_ddrpke = (u32)0x00000000;
++      mx6dl_ddr_iomux->dram_sdclk_0 = (u32)0x00000028;
++      mx6dl_ddr_iomux->dram_sdclk_1 = (u32)0x00000028;
++      mx6dl_ddr_iomux->dram_cas = (u32)0x00000028;
++      mx6dl_ddr_iomux->dram_ras = (u32)0x00000028;
++      mx6dl_grp_iomux->grp_addds = (u32)0x00000028;
++      mx6dl_ddr_iomux->dram_reset = (u32)0x000c0028;
++      mx6dl_ddr_iomux->dram_sdcke0 = (u32)0x00003000;
++      mx6dl_ddr_iomux->dram_sdcke1 = (u32)0x00003000;
++      mx6dl_ddr_iomux->dram_sdba2 = (u32)0x00000000;
++      mx6dl_ddr_iomux->dram_sdodt0 = (u32)0x00003030;
++      mx6dl_ddr_iomux->dram_sdodt1 = (u32)0x00003030;
++      mx6dl_grp_iomux->grp_ctlds = (u32)0x00000028;
++      mx6dl_grp_iomux->grp_ddrmode_ctl = (u32)0x00020000;
++      mx6dl_ddr_iomux->dram_sdqs0 = (u32)0x00000028;
++      mx6dl_ddr_iomux->dram_sdqs1 = (u32)0x00000028;
++      mx6dl_ddr_iomux->dram_sdqs2 = (u32)0x00000028;
++      mx6dl_ddr_iomux->dram_sdqs3 = (u32)0x00000028;
++      mx6dl_ddr_iomux->dram_sdqs4 = (u32)0x00000028;
++      mx6dl_ddr_iomux->dram_sdqs5 = (u32)0x00000028;
++      mx6dl_ddr_iomux->dram_sdqs6 = (u32)0x00000028;
++      mx6dl_ddr_iomux->dram_sdqs7 = (u32)0x00000028;
++      mx6dl_grp_iomux->grp_ddrmode = (u32)0x00020000;
++      mx6dl_grp_iomux->grp_b0ds = (u32)0x00000028;
++      mx6dl_grp_iomux->grp_b1ds = (u32)0x00000028;
++      mx6dl_grp_iomux->grp_b2ds = (u32)0x00000028;
++      mx6dl_grp_iomux->grp_b3ds = (u32)0x00000028;
++      mx6dl_grp_iomux->grp_b4ds = (u32)0x00000028;
++      mx6dl_grp_iomux->grp_b5ds = (u32)0x00000028;
++      mx6dl_grp_iomux->grp_b6ds = (u32)0x00000028;
++      mx6dl_grp_iomux->grp_b7ds = (u32)0x00000028;
++      mx6dl_ddr_iomux->dram_dqm0 = (u32)0x00000028;
++      mx6dl_ddr_iomux->dram_dqm1 = (u32)0x00000028;
++      mx6dl_ddr_iomux->dram_dqm2 = (u32)0x00000028;
++      mx6dl_ddr_iomux->dram_dqm3 = (u32)0x00000028;
++      mx6dl_ddr_iomux->dram_dqm4 = (u32)0x00000028;
++      mx6dl_ddr_iomux->dram_dqm5 = (u32)0x00000028;
++      mx6dl_ddr_iomux->dram_dqm6 = (u32)0x00000028;
++      mx6dl_ddr_iomux->dram_dqm7 = (u32)0x00000028;
++}
++
++/* microSOM with Solo processor 512MByte memory */
++static void spl_dram_init_mx6solo_512mb(void)
++{
++      volatile struct mmdc_p_regs *mmdc_p0;
++      volatile struct mmdc_p_regs *mmdc_p1;
++      mmdc_p0 = (struct mmdc_p_regs *) MMDC_P0_BASE_ADDR;
++      mmdc_p1 = (struct mmdc_p_regs *) MMDC_P1_BASE_ADDR;
++
++      /* ZQ */
++      mmdc_p0->mpzqhwctrl = (u32)0xa1390003;
++      mmdc_p1->mpzqhwctrl = (u32)0xa1390003;
++      /* Write leveling */
++      mmdc_p0->mpwldectrl0 = (u32)0x0045004D;
++      mmdc_p0->mpwldectrl1 = (u32)0x003A0047;
++
++      mmdc_p0->mpdgctrl0 = (u32)0x023C0224;
++      mmdc_p0->mpdgctrl1 = (u32)0x02000220;
++      mmdc_p0->mprddlctl = (u32)0x44444846;
++      mmdc_p0->mpwrdlctl = (u32)0x32343032;
++      /* Read data bit delay */
++      mmdc_p0->mprddqby0dl = (u32)0x33333333;
++      mmdc_p0->mprddqby1dl = (u32)0x33333333;
++      mmdc_p0->mprddqby2dl = (u32)0x33333333;
++      mmdc_p0->mprddqby3dl = (u32)0x33333333;
++      mmdc_p1->mprddqby0dl = (u32)0x33333333;
++      mmdc_p1->mprddqby1dl = (u32)0x33333333;
++      mmdc_p1->mprddqby2dl = (u32)0x33333333;
++      mmdc_p1->mprddqby3dl = (u32)0x33333333;
++      /* Complete calibration by forced measurement */
++      mmdc_p0->mpmur0 = (u32)0x00000800;
++      mmdc_p0->mdpdc = (u32)0x0002002d;
++      mmdc_p0->mdotc = (u32)0x00333040;
++      mmdc_p0->mdcfg0 = (u32)0x3f435313;//0x3F4352F3;//0x3f435313
++      mmdc_p0->mdcfg1 = (u32)0xb66e8b63;//0xB66D8B63;//0xb66e8b63
++      mmdc_p0->mdcfg2 = (u32)0x01ff00db;
++      mmdc_p0->mdmisc = (u32)0x00011740;
++      mmdc_p0->mdscr = (u32)0x00008000;
++      mmdc_p0->mdrwd = (u32)0x000026d2;
++      mmdc_p0->mdor = (u32)0x00431023;
++      mmdc_p0->mdasp = (u32)0x00000017;//0x00000017
++      mmdc_p0->mdctl = (u32)0x83190000;//0x83190000 <-- this should be it
++      mmdc_p0->mdscr = (u32)0x02008032;
++      mmdc_p0->mdscr = (u32)0x00008033;
++      mmdc_p0->mdscr = (u32)0x04008031;
++      mmdc_p0->mdscr = (u32)0x05208030;
++      mmdc_p0->mdscr = (u32)0x04008040;
++      mmdc_p0->mdref = (u32)0x00007800;
++      mmdc_p0->mpodtctrl = (u32)0x00011117;
++      mmdc_p1->mpodtctrl = (u32)0x00011117;
++      mmdc_p0->mdpdc = (u32)0x0002556d;
++      mmdc_p1->mdpdc = (u32)0x00011006;
++      mmdc_p0->mdscr = (u32)0x00000000;
++}
++
++/* microSOM with Dual lite processor 1GByte memory */
++static void spl_dram_init_mx6dl_1g(void)
++{
++      volatile struct mmdc_p_regs *mmdc_p0;
++      volatile struct mmdc_p_regs *mmdc_p1;
++      mmdc_p0 = (struct mmdc_p_regs *) MMDC_P0_BASE_ADDR;
++      mmdc_p1 = (struct mmdc_p_regs *) MMDC_P1_BASE_ADDR;
++
++      /* Calibrations */
++      /* ZQ */
++      mmdc_p0->mpzqhwctrl = (u32)0xa1390003;
++      mmdc_p1->mpzqhwctrl = (u32)0xa1390003;
++      /* write leveling */
++      mmdc_p0->mpwldectrl0 = (u32)0x0045004D;
++      mmdc_p0->mpwldectrl1 = (u32)0x003A0047;
++      mmdc_p1->mpwldectrl0 = (u32)0x001F001F;
++      mmdc_p1->mpwldectrl1 = (u32)0x00210035;
++      /* DQS gating, read delay, write delay calibration values
++      based on calibration compare of 0x00ffff00 */
++      mmdc_p0->mpdgctrl0 = (u32)0x023C0224;
++      mmdc_p0->mpdgctrl1 = (u32)0x02000220;
++      mmdc_p1->mpdgctrl0 = (u32)0x02200220;
++      mmdc_p1->mpdgctrl1 = (u32)0x02040208;
++      mmdc_p0->mprddlctl = (u32)0x44444846;
++      mmdc_p1->mprddlctl = (u32)0x4042463C;
++      mmdc_p0->mpwrdlctl = (u32)0x32343032;
++      mmdc_p1->mpwrdlctl = (u32)0x36363430;
++      /* read data bit delay */
++      mmdc_p0->mprddqby0dl = (u32)0x33333333;
++      mmdc_p0->mprddqby1dl = (u32)0x33333333;
++      mmdc_p0->mprddqby2dl = (u32)0x33333333;
++      mmdc_p0->mprddqby3dl = (u32)0x33333333;
++      mmdc_p1->mprddqby0dl = (u32)0x33333333;
++      mmdc_p1->mprddqby1dl = (u32)0x33333333;
++      mmdc_p1->mprddqby2dl = (u32)0x33333333;
++      mmdc_p1->mprddqby3dl = (u32)0x33333333;
++      /* Complete calibration by forced measurment */
++      mmdc_p0->mpmur0 = (u32)0x00000800;
++      mmdc_p1->mpmur0 = (u32)0x00000800;
++      /* MMDC init:
++       in DDR3, 64-bit mode, only MMDC0 is initiated: */
++      mmdc_p0->mdpdc = (u32)0x0002002d;
++      mmdc_p0->mdotc = (u32)0x00333040;
++
++      mmdc_p0->mdcfg0 = (u32)0x3F4352F3;
++      mmdc_p0->mdcfg1 = (u32)0xB66D8B63;
++
++      mmdc_p0->mdcfg2 = (u32)0x01ff00db;
++      mmdc_p0->mdmisc = (u32)0x00011740;
++      mmdc_p0->mdscr = (u32)0x00008000;
++      mmdc_p0->mdrwd = (u32)0x000026d2;
++      mmdc_p0->mdor = (u32)0x00431023;
++      mmdc_p0->mdasp = (u32)0x00000027;
++      mmdc_p0->mdctl = (u32)0x831A0000;
++
++      /* Initialize 2GB DDR3 - Micron MT41J128M */
++      /* MR2 */
++      mmdc_p0->mdscr = (u32)0x02008032;
++      mmdc_p0->mdscr = (u32)0x0200803a;
++      /* MR3 */
++      mmdc_p0->mdscr = (u32)0x00008033;
++      mmdc_p0->mdscr = (u32)0x0000803b;
++      /* MR1 */
++      mmdc_p0->mdscr = (u32)0x04008031;
++      mmdc_p0->mdscr = (u32)0x04008039;
++      /* MR0 */
++      mmdc_p0->mdscr = (u32)0x05208030;
++      mmdc_p0->mdscr = (u32)0x05208038;
++      /* ZQ calibration */
++      mmdc_p0->mdscr = (u32)0x04008040;
++      mmdc_p0->mdscr = (u32)0x04008040;
++      /* final DDR setup */
++      mmdc_p0->mdref = (u32)0x00007800;
++      mmdc_p0->mpodtctrl = (u32)0x00000007;
++      mmdc_p1->mpodtctrl = (u32)0x00000007;
++      mmdc_p0->mdpdc = (u32)0x0002556d;
++      mmdc_p1->mapsr = (u32)0x00011006;
++      mmdc_p0->mdscr = (u32)0x00000000;
++}
++
++/* microSOM with Dual processor 1GByte memory */
++static void spl_dram_init_mx6dq_1g(void)
++{
++      volatile struct mmdc_p_regs *mmdc_p0;
++      volatile struct mmdc_p_regs *mmdc_p1;
++      mmdc_p0 = (struct mmdc_p_regs *) MMDC_P0_BASE_ADDR;
++      mmdc_p1 = (struct mmdc_p_regs *) MMDC_P1_BASE_ADDR;
++
++      /* Calibrations */
++      /* ZQ */
++      mmdc_p0->mpzqhwctrl = (u32)0xa1390003;
++      /* write leveling */
++      mmdc_p0->mpwldectrl0 = (u32)0x00000000;
++      mmdc_p0->mpwldectrl1 = (u32)0x00000000;
++      mmdc_p1->mpwldectrl0 = (u32)0x00000000;
++      mmdc_p1->mpwldectrl1 = (u32)0x00000000;
++      /* DQS gating, read delay, write delay calibration values
++       based on calibration compare of 0x00ffff00  */
++      mmdc_p0->mpdgctrl0 = (u32)0x0314031c;
++      mmdc_p0->mpdgctrl1 = (u32)0x023e0304;
++      mmdc_p1->mpdgctrl0 = (u32)0x03240330;
++      mmdc_p1->mpdgctrl1 = (u32)0x03180260;
++      
++      mmdc_p0->mprddlctl = (u32)0x3630323c;
++      mmdc_p1->mprddlctl = (u32)0x3436283a;
++
++      mmdc_p0->mpwrdlctl = (u32)0x36344038;
++      mmdc_p1->mpwrdlctl = (u32)0x422a423c;
++
++      mmdc_p0->mprddqby0dl = (u32)0x33333333;
++      mmdc_p0->mprddqby1dl = (u32)0x33333333;
++      mmdc_p0->mprddqby2dl = (u32)0x33333333;
++      mmdc_p0->mprddqby3dl = (u32)0x33333333;
++      mmdc_p1->mprddqby0dl = (u32)0x33333333;
++      mmdc_p1->mprddqby1dl = (u32)0x33333333;
++      mmdc_p1->mprddqby2dl = (u32)0x33333333;
++      mmdc_p1->mprddqby3dl = (u32)0x33333333;
++
++      mmdc_p0->mpmur0 = (u32)0x00000800;
++      mmdc_p1->mpmur0 = (u32)0x00000800;
++      /* MMDC init:
++        in DDR3, 64-bit mode, only MMDC0 is initiated: */
++      mmdc_p0->mdpdc = (u32)0x00025576;
++      mmdc_p0->mdotc = (u32)0x09444040;
++      mmdc_p0->mdcfg0 = (u32)0x54597955;
++      mmdc_p0->mdcfg1 = (u32)0xFF328F64;
++      mmdc_p0->mdcfg2 = (u32)0x01ff00db;
++      mmdc_p0->mdmisc = (u32)0x00011740;
++
++      mmdc_p0->mdscr = (u32)0x00008000;
++      mmdc_p0->mdrwd = (u32)0x000026d2;
++      mmdc_p0->mdor = (u32)0x005B0E21;
++      
++      /* 1G */
++      mmdc_p0->mdasp = (u32)0x00000027;
++      mmdc_p0->mdctl = (u32)0x831a0000;
++
++      mmdc_p0->mdscr = (u32)0x02088032;
++      mmdc_p0->mdscr = (u32)0x00008033;
++      mmdc_p0->mdscr = (u32)0x00408031;
++      mmdc_p0->mdscr = (u32)0x09408030;
++      mmdc_p0->mdscr = (u32)0x04008040;
++
++      mmdc_p0->mdref = (u32)0x00005800;
++      
++      mmdc_p0->mpodtctrl = (u32)0x00000007;
++      mmdc_p1->mpodtctrl = (u32)0x00000007;
++
++      mmdc_p0->mdpdc = (u32)0x00025576;
++      mmdc_p0->mapsr = (u32)0x00011006;
++      mmdc_p0->mdscr = (u32)0x00000000;
++}
++
++/* microSOM with Quad processor 2GByte memory */
++static void spl_dram_init_mx6dq_2g(void)
++{
++      volatile struct mmdc_p_regs *mmdc_p0;
++      volatile struct mmdc_p_regs *mmdc_p1;
++      mmdc_p0 = (struct mmdc_p_regs *) MMDC_P0_BASE_ADDR;
++      mmdc_p1 = (struct mmdc_p_regs *) MMDC_P1_BASE_ADDR;
++
++      /* Calibrations */
++      /* ZQ */
++      mmdc_p0->mpzqhwctrl = (u32)0xa1390003;
++      /* write leveling */
++      mmdc_p0->mpwldectrl0 = (u32)0x00000000;
++      mmdc_p0->mpwldectrl1 = (u32)0x00000000;
++      mmdc_p1->mpwldectrl0 = (u32)0x00000000;
++      mmdc_p1->mpwldectrl1 = (u32)0x00000000;
++      /* DQS gating, read delay, write delay calibration values
++       based on calibration compare of 0x00ffff00  */
++      mmdc_p0->mpdgctrl0 = (u32)0x0314031c;
++      mmdc_p0->mpdgctrl1 = (u32)0x023e0304;
++      mmdc_p1->mpdgctrl0 = (u32)0x03240330;
++      mmdc_p1->mpdgctrl1 = (u32)0x03180260;
++      
++      mmdc_p0->mprddlctl = (u32)0x3630323c;
++      mmdc_p1->mprddlctl = (u32)0x3436283a;
++
++      mmdc_p0->mpwrdlctl = (u32)0x36344038;
++      mmdc_p1->mpwrdlctl = (u32)0x422a423c;
++
++      mmdc_p0->mprddqby0dl = (u32)0x33333333;
++      mmdc_p0->mprddqby1dl = (u32)0x33333333;
++      mmdc_p0->mprddqby2dl = (u32)0x33333333;
++      mmdc_p0->mprddqby3dl = (u32)0x33333333;
++      mmdc_p1->mprddqby0dl = (u32)0x33333333;
++      mmdc_p1->mprddqby1dl = (u32)0x33333333;
++      mmdc_p1->mprddqby2dl = (u32)0x33333333;
++      mmdc_p1->mprddqby3dl = (u32)0x33333333;
++
++      mmdc_p0->mpmur0 = (u32)0x00000800;
++      mmdc_p1->mpmur0 = (u32)0x00000800;
++      /* MMDC init:
++        in DDR3, 64-bit mode, only MMDC0 is initiated: */
++      mmdc_p0->mdpdc = (u32)0x00025576;
++      mmdc_p0->mdotc = (u32)0x09444040;
++      mmdc_p0->mdcfg0 = (u32)0x898E7975;
++      mmdc_p0->mdcfg1 = (u32)0xFF328F64;
++      mmdc_p0->mdcfg2 = (u32)0x01ff00db;
++      mmdc_p0->mdmisc = (u32)0x00011740;
++
++      mmdc_p0->mdscr = (u32)0x00008000;
++      mmdc_p0->mdrwd = (u32)0x000026d2;
++      mmdc_p0->mdor = (u32)0x005B0E21;
++      
++      /* 2G */ 
++      mmdc_p0->mdasp = (u32)0x00000047;
++      mmdc_p0->mdctl = (u32)0x841a0000;
++      
++      mmdc_p0->mdscr = (u32)0x02088032;
++      mmdc_p0->mdscr = (u32)0x00008033;
++      mmdc_p0->mdscr = (u32)0x00408031;
++      mmdc_p0->mdscr = (u32)0x09408030;
++      mmdc_p0->mdscr = (u32)0x04008040;
++
++      mmdc_p0->mdref = (u32)0x00005800;
++      
++      mmdc_p0->mpodtctrl = (u32)0x00000007;
++      mmdc_p1->mpodtctrl = (u32)0x00000007;
++
++      mmdc_p0->mdpdc = (u32)0x00025576;
++      mmdc_p0->mapsr = (u32)0x00011006;
++      mmdc_p0->mdscr = (u32)0x00000000;
++}
++
++static void spl_dram_init(void)
++{     
++      u32 cpurev, imxtype;
++      
++      cpurev = get_cpu_rev();
++      imxtype = (cpurev & 0xFF000) >> 12;
++
++      get_imx_type(imxtype);  
++
++      switch (imxtype){
++      case MXC_CPU_MX6SOLO:
++              spl_mx6dl_dram_setup_iomux();
++              spl_dram_init_mx6solo_512mb();
++              break;
++      case MXC_CPU_MX6Q:
++      case MXC_CPU_MX6D:
++      {
++              /* Read first the snoop control unit config register */
++              u32 scu_config = *(u32 *)(SCU_BASE_ADDR + 0x4);
++              spl_mx6q_dram_setup_iomux();
++              if ((scu_config & 0x3) == 0x3) /* Quad core */
++                      spl_dram_init_mx6dq_2g();
++              else /* Dual core */
++                      spl_dram_init_mx6dq_1g();
++              break;
++      }
++      case MXC_CPU_MX6DL:
++      default:
++              spl_mx6dl_dram_setup_iomux();
++              spl_dram_init_mx6dl_1g();
++              break;  
++      }
++}
++
++void board_init_f(ulong dummy)
++{     
++      /* Set the stack pointer. */
++      asm volatile("mov sp, %0\n" : : "r"(CONFIG_SPL_STACK));
++
++      spl_dram_init();        
++      
++      arch_cpu_init();
++
++      /* Clear the BSS. */
++      memset(__bss_start, 0, __bss_end - __bss_start);
++
++      /* Set global data pointer. */
++      gd = &gdata;
++
++      board_early_init_f();   
++
++      timer_init();
++      preloader_console_init();
++
++      board_init_r(NULL, 0);
++}
++
++void spl_board_init(void)
++{
++      get_clocks();
++}
++
++void reset_cpu(ulong addr)
++{
++      __REG16(WDOG1_BASE_ADDR) = 4;
++}
++#endif
++
+diff --git a/configs/mx6_c1d_defconfig b/configs/mx6_c1d_defconfig
+new file mode 100644
+index 0000000..86d172a
+--- /dev/null
++++ b/configs/mx6_c1d_defconfig
+@@ -0,0 +1,3 @@
++CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/solidrun/mx6_c1/mx6_c1d.cfg,MX6Q,DDR_MB=1024"
+++S:CONFIG_ARM=y
+++S:CONFIG_TARGET_MX6_C1=y
+diff --git a/configs/mx6_c1dl_defconfig b/configs/mx6_c1dl_defconfig
+new file mode 100644
+index 0000000..4574534
+--- /dev/null
++++ b/configs/mx6_c1dl_defconfig
+@@ -0,0 +1,3 @@
++CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/solidrun/mx6_c1/mx6_c1dl.cfg,MX6DL,DDR_MB=1024"
+++S:CONFIG_ARM=y
+++S:CONFIG_TARGET_MX6_C1=y
+diff --git a/configs/mx6_c1q_defconfig b/configs/mx6_c1q_defconfig
+new file mode 100644
+index 0000000..7e52f33
+--- /dev/null
++++ b/configs/mx6_c1q_defconfig
+@@ -0,0 +1,3 @@
++CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/solidrun/mx6_c1/mx6_c1q.cfg,MX6Q,DDR_MB=2048"
+++S:CONFIG_ARM=y
+++S:CONFIG_TARGET_MX6_C1=y
+diff --git a/configs/mx6_c1solo_defconfig b/configs/mx6_c1solo_defconfig
+new file mode 100644
+index 0000000..99376aa
+--- /dev/null
++++ b/configs/mx6_c1solo_defconfig
+@@ -0,0 +1,3 @@
++CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/solidrun/mx6_c1/mx6_c1solo.cfg,MX6S,DDR_MB=512"
+++S:CONFIG_ARM=y
+++S:CONFIG_TARGET_MX6_C1=y
+diff --git a/configs/mx6_cubox-i1_defconfig b/configs/mx6_cubox-i1_defconfig
+new file mode 100644
+index 0000000..c3d3c9c
+--- /dev/null
++++ b/configs/mx6_cubox-i1_defconfig
+@@ -0,0 +1,3 @@
++CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/solidrun/mx6_c1/mx6_c1solo.cfg,MX6S,DDR_MB=512"
+++S:CONFIG_ARM=y
+++S:CONFIG_TARGET_MX6_CUBOX_I=y
+diff --git a/configs/mx6_cubox-i2_defconfig b/configs/mx6_cubox-i2_defconfig
+new file mode 100644
+index 0000000..10700c7
+--- /dev/null
++++ b/configs/mx6_cubox-i2_defconfig
+@@ -0,0 +1,3 @@
++CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/solidrun/mx6_c1/mx6_c1dl.cfg,MX6DL,DDR_MB=1024"
+++S:CONFIG_ARM=y
+++S:CONFIG_TARGET_MX6_CUBOX_I=y
+diff --git a/configs/mx6_cubox-i2ultra_defconfig b/configs/mx6_cubox-i2ultra_defconfig
+new file mode 100644
+index 0000000..a51320e
+--- /dev/null
++++ b/configs/mx6_cubox-i2ultra_defconfig
+@@ -0,0 +1,3 @@
++CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/solidrun/mx6_c1/mx6_c1d.cfg,MX6Q,DDR_MB=1024"
+++S:CONFIG_ARM=y
+++S:CONFIG_TARGET_MX6_CUBOX_I=y
+diff --git a/configs/mx6_cubox-i4pro_defconfig b/configs/mx6_cubox-i4pro_defconfig
+new file mode 100644
+index 0000000..8f95084
+--- /dev/null
++++ b/configs/mx6_cubox-i4pro_defconfig
+@@ -0,0 +1,3 @@
++CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/solidrun/mx6_c1/mx6_c1q.cfg,MX6Q,DDR_MB=2048"
+++S:CONFIG_ARM=y
+++S:CONFIG_TARGET_MX6_CUBOX_I=y
+diff --git a/configs/mx6_cubox-i_defconfig b/configs/mx6_cubox-i_defconfig
+new file mode 100644
+index 0000000..8116ec1
+--- /dev/null
++++ b/configs/mx6_cubox-i_defconfig
+@@ -0,0 +1,4 @@
++CONFIG_SPL=y
++CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/solidrun/mx6_cubox-i/imx6image.cfg,MX6QDL,FSL_ENV_IN_MMC"
+++S:CONFIG_ARM=y
+++S:CONFIG_TARGET_MX6_CUBOX_I=y
+diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c
+index 549d648..c49d69f 100644
+--- a/drivers/net/fec_mxc.c
++++ b/drivers/net/fec_mxc.c
+@@ -125,8 +125,10 @@ static int fec_mdio_read(struct ethernet_regs *eth, uint8_t phyAddr,
+        * it's now safe to read the PHY's register
+        */
+       val = (unsigned short)readl(&eth->mii_data);
++#ifdef VERBOSE_DEBUG
+       debug("%s: phy: %02x reg:%02x val:%#x\n", __func__, phyAddr,
+                       regAddr, val);
++#endif
+       return val;
+ }
+@@ -173,8 +175,10 @@ static int fec_mdio_write(struct ethernet_regs *eth, uint8_t phyAddr,
+        * clear MII interrupt bit
+        */
+       writel(FEC_IEVENT_MII, &eth->ievent);
++#ifdef VERBOSE_DEBUG
+       debug("%s: phy: %02x reg:%02x val:%#x\n", __func__, phyAddr,
+                       regAddr, data);
++#endif
+       return 0;
+ }
+@@ -750,9 +754,11 @@ static int fec_send(struct eth_device *dev, void *packet, int length)
+               ret = -EINVAL;
+ out:
++#ifdef VERBOSE_DEBUG
+       debug("fec_send: status 0x%x index %d ret %i\n",
+                       readw(&fec->tbd_base[fec->tbd_index].status),
+                       fec->tbd_index, ret);
++#endif
+       /* for next transmission use the other buffer */
+       if (fec->tbd_index)
+               fec->tbd_index = 0;
+@@ -784,7 +790,9 @@ static int fec_recv(struct eth_device *dev)
+        */
+       ievent = readl(&fec->eth->ievent);
+       writel(ievent, &fec->eth->ievent);
++#ifdef VERBOSE_DEBUG
+       debug("fec_recv: ievent 0x%lx\n", ievent);
++#endif
+       if (ievent & FEC_IEVENT_BABR) {
+               fec_halt(dev);
+               fec_init(dev, fec->bd);
+@@ -825,7 +833,9 @@ static int fec_recv(struct eth_device *dev)
+       invalidate_dcache_range(addr, addr + size);
+       bd_status = readw(&rbd->status);
++#ifdef VERBOSE_DEBUG
+       debug("fec_recv: status 0x%x\n", bd_status);
++#endif
+       if (!(bd_status & FEC_RBD_EMPTY)) {
+               if ((bd_status & FEC_RBD_LAST) && !(bd_status & FEC_RBD_ERR) &&
+@@ -880,7 +890,9 @@ static int fec_recv(struct eth_device *dev)
+               fec_rx_task_enable(fec);
+               fec->rbd_index = (fec->rbd_index + 1) % FEC_RBD_NUM;
+       }
++#ifdef VERBOSE_DEBUG
+       debug("fec_recv: stop\n");
++#endif
+       return len;
+ }
+diff --git a/include/configs/mx6_c1.h b/include/configs/mx6_c1.h
+new file mode 100644
+index 0000000..3a3635f
+--- /dev/null
++++ b/include/configs/mx6_c1.h
+@@ -0,0 +1,349 @@
++/*
++ * Copyright (C) 2013 Freescale Semiconductor, Inc.
++ * Copyright (C) 2013 SolidRun ltd.
++ * Copyright (C) 2013 Jon Nettleton <jon.nettleton@gmail.com>
++ *
++ * Configuration settings for the SolidRun carrier-1 (c1) board.
++ *
++ * SPDX-License-Identifier:   GPL-2.0+
++ */
++
++#ifndef __CONFIG_H
++#define __CONFIG_H
++
++#include "mx6_common.h"
++#include <asm/arch/imx-regs.h>
++#include <asm/imx-common/gpio.h>
++#include <linux/sizes.h>
++
++#undef DEBUG
++
++#define CONFIG_MX6
++#define CONFIG_DISPLAY_CPUINFO
++#define CONFIG_DISPLAY_BOARDINFO
++
++#define CONFIG_MACH_TYPE              4773
++
++#define CONFIG_CMDLINE_TAG
++#define CONFIG_SETUP_MEMORY_TAGS
++#define CONFIG_INITRD_TAG
++#define CONFIG_REVISION_TAG
++
++/* Size of malloc() pool */
++#define CONFIG_SYS_MALLOC_LEN         (8 * SZ_1M)
++
++#define CONFIG_BOARD_EARLY_INIT_F
++#define CONFIG_BOARD_LATE_INIT
++#define CONFIG_MXC_GPIO
++
++#define CONFIG_CMD_FUSE
++#ifdef CONFIG_CMD_FUSE
++#define CONFIG_MXC_OCOTP
++#endif
++
++#define CONFIG_MXC_UART
++#define CONFIG_MXC_UART_BASE          UART1_BASE
++
++/* allow to overwrite serial and ethaddr */
++#define CONFIG_ENV_OVERWRITE
++#define CONFIG_CONS_INDEX             1
++#define CONFIG_BAUDRATE                       115200
++
++/* Command definition */
++#include <config_cmd_default.h>
++
++#undef CONFIG_CMD_IMLS
++#undef CONFIG_CMD_I2C
++
++#define CONFIG_CMD_BMODE
++#define CONFIG_CMD_SETEXPR
++#define CONFIG_CMD_MEMTEST
++#define CONFIG_BOOTDELAY              3
++
++#define CONFIG_SYS_MEMTEST_START      0x10000000
++#define CONFIG_SYS_MEMTEST_END                (CONFIG_SYS_MEMTEST_START + 500 * SZ_1M)
++
++#define CONFIG_LOADADDR                       0x10800000
++#define CONFIG_SYS_TEXT_BASE          0x27800000
++
++/* MMC Configuration */
++#define CONFIG_FSL_ESDHC
++#define CONFIG_FSL_USDHC
++#define CONFIG_SYS_FSL_USDHC_NUM      1
++#define CONFIG_SYS_FSL_ESDHC_ADDR     0
++
++#define CONFIG_MMC
++#define CONFIG_CMD_MMC
++#define CONFIG_GENERIC_MMC
++#define CONFIG_BOUNCE_BUFFER
++#define CONFIG_CMD_EXT2
++#define CONFIG_CMD_FAT
++#define CONFIG_DOS_PARTITION
++
++/* Ethernet Configuration */
++#define CONFIG_FEC_MXC
++#ifdef CONFIG_FEC_MXC
++#define CONFIG_CMD_PING
++#define CONFIG_CMD_DHCP
++#define CONFIG_CMD_MII
++#define CONFIG_CMD_NET
++#define CONFIG_FEC_MXC
++#define CONFIG_MII
++#define IMX_FEC_BASE                  ENET_BASE_ADDR
++#define CONFIG_FEC_XCV_TYPE           RGMII
++#define CONFIG_ETHPRIME                       "FEC"
++#define CONFIG_FEC_MXC_PHYADDR                0       
++#define CONFIG_PHYLIB
++#define CONFIG_PHY_ATHEROS
++#endif
++
++/* Framebuffer */
++#define CONFIG_VIDEO
++#ifdef CONFIG_VIDEO
++#define CONFIG_VIDEO_IPUV3
++#define CONFIG_IPUV3_CLK 260000000
++#define CONFIG_CFB_CONSOLE
++#define CONFIG_CFB_CONSOLE_ANSI
++#define CONFIG_VGA_AS_SINGLE_DEVICE
++#define CONFIG_VIDEO_BMP_RLE8
++#define CONFIG_IMX_HDMI
++
++#undef CONFIG_SPLASH_SCREEN
++#undef CONFIG_SPLASH_SCREEN_ALIGN
++#define CONFIG_BMP_16BPP
++#undef CONFIG_CMD_BMP
++#define CONFIG_VIDEO_LOGO
++#define CONFIG_VIDEO_BMP_LOGO
++#define CONFIG_CONSOLE_MUX
++#endif
++
++/* USB Configs */
++#define CONFIG_CMD_USB
++#ifdef CONFIG_CMD_USB
++#define CONFIG_CMD_FAT
++#define CONFIG_USB_EHCI
++#define CONFIG_USB_EHCI_MX6
++#define CONFIG_EHCI_IS_TDI
++#define CONFIG_USB_STORAGE
++#define CONFIG_USB_HOST_ETHER
++#define CONFIG_USB_ETHER_ASIX
++#define CONFIG_USB_ETHER_SMSC95XX
++#define CONFIG_MXC_USB_PORT     1
++#define CONFIG_MXC_USB_PORTSC   (PORT_PTS_UTMI | PORT_PTS_PTW)
++#define CONFIG_MXC_USB_FLAGS    0
++#define CONFIG_USB_KEYBOARD
++#define CONFIG_SYS_USB_EVENT_POLL
++#define CONFIG_PREBOOT "usb start"
++#endif
++
++#define CONFIG_SYS_CONSOLE_IS_IN_ENV
++
++#define CONFIG_EXTRA_ENV_SETTINGS \
++      "script=boot.scr\0" \
++      "bootfile=uImage\0" \
++      "bootenv=uEnv.txt\0" \
++      "console=ttymxc0\0" \
++      "stdin=serial,usbkbd\0" \
++      "stdout=serial,vga\0" \
++      "stderr=serial,vga\0" \
++      "splashpos=m,m\0" \
++      "fdt_high=0xffffffff\0" \
++      "initrd_high=0xffffffff\0" \
++      "fdt_addr=0x11000000\0" \
++      "boot_fdt=no\0" \
++        "ip_dyn=yes\0" \
++        "mmcdev=" __stringify(CONFIG_SYS_MMC_ENV_DEV) "\0" \
++        "mmcpart=1\0" \
++        "mmcroot=/dev/mmcblk0p2 rootwait rw\0" \
++        "update_sd_firmware_filename=u-boot.imx\0" \
++        "update_sd_firmware=" \
++                "if test ${ip_dyn} = yes; then " \
++                        "setenv get_cmd dhcp; " \
++                "else " \
++                        "setenv get_cmd tftp; " \
++                "fi; " \
++                "if mmc dev ${mmcdev}; then "   \
++                        "if ${get_cmd} ${update_sd_firmware_filename}; then " \
++                                "setexpr fw_sz ${filesize} / 0x200; " \
++                                "setexpr fw_sz ${fw_sz} + 1; "  \
++                                "mmc write ${loadaddr} 0x2 ${fw_sz}; " \
++                        "fi; "  \
++                "fi\0" \
++        "mmcargs=setenv bootargs console=${console},${baudrate} " \
++                "root=${mmcroot}\0" \
++        "fatloadbootscript=" \
++                "fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \
++        "ext2loadbootscript=" \
++                "ext2load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \
++        "bootscript=echo Running bootscript from mmc ...; " \
++                "source\0" \
++        "fatloadbootenv=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${bootenv}\0" \
++        "fatloadbootfile=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${bootfile}\0" \
++        "fatloadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \
++        "ext2loadbootenv=ext2load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${bootenv}\0" \
++        "ext2loadbootfile=ext2load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${bootfile}\0" \
++        "ext2loadfdt=ext2load mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \
++        "importbootenv=echo Importing environment from mmc${mmcdev} ...; " \
++                "env import -t ${loadaddr} ${filesize}\0" \
++        "fatmmcboot=echo Booting from mmc ...; " \
++                "run mmcargs; " \
++                "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
++                        "if run fatloadfdt; then " \
++                                "if test ${bootfile} = zImage; then " \
++                                      "bootz ${loadaddr} - ${fdt_addr}; " \
++                                "else " \
++                                      "bootm ${loadaddr} - ${fdt_addr}; " \
++                                "fi; " \
++                        "else " \
++                                "if test ${boot_fdt} = try; then " \
++                                      "if test ${bootfile} = zImage; then " \
++                                              "bootz; " \
++                                      "else " \
++                                              "bootm; " \
++                                      "fi; " \
++                                "else " \
++                                        "echo WARN: Cannot load the DT; " \
++                                "fi; " \
++                        "fi; " \
++                "else " \
++                        "if test ${bootfile} = zImage; then " \
++                              "bootz; " \
++                        "else " \
++                              "bootm; " \
++                        "fi; " \
++                "fi;\0" \
++        "ext2mmcboot=echo Booting from mmc ...; " \
++                "run mmcargs; " \
++                "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
++                        "if run ext2loadfdt; then " \
++                                "if test ${bootfile} = zImage; then " \
++                                      "bootz ${loadaddr} - ${fdt_addr}; " \
++                                "else " \
++                                      "bootm ${loadaddr} - ${fdt_addr}; " \
++                                "fi; " \
++                        "else " \
++                                "if test ${boot_fdt} = try; then " \
++                                      "if test ${bootfile} = zImage; then " \
++                                              "bootz; " \
++                                      "else " \
++                                              "bootm; " \
++                                      "fi; " \
++                                "else " \
++                                        "echo WARN: Cannot load the DT; " \
++                                "fi; " \
++                        "fi; " \
++                "else " \
++                        "if test ${bootfile} = zImage; then " \
++                              "bootz; " \
++                        "else " \
++                              "bootm; " \
++                        "fi; " \
++                "fi;\0" \
++        "netargs=setenv bootargs console=${console},${baudrate} " \
++                "root=/dev/nfs " \
++        "ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \
++        "netboot=echo Booting from net ...; " \
++                "if test ${bootfile} = zImage; then " \
++                        "setenv realfile zImage; " \
++                "else " \
++                        "setenv realfile uImage; " \
++                "fi; " \
++                "run netargs; " \
++                "if test ${ip_dyn} = yes; then " \
++                        "setenv get_cmd dhcp; " \
++                "else " \
++                        "setenv get_cmd tftp; " \
++                "fi; " \
++                "${get_cmd} ${bootfile}; " \
++                "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
++                        "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \
++                                "if test ${realfile} = zImage; then " \
++                                      "bootz ${loadaddr} - ${fdt_addr}; " \
++                                "else " \
++                                      "bootm ${loadaddr} - ${fdt_addr}; " \
++                                "fi; " \
++                        "else " \
++                                "if test ${boot_fdt} = try; then " \
++                                      "if test ${bootfile} = zImage; then " \
++                                              "bootz; " \
++                                      "else " \
++                                              "bootm; " \
++                                      "fi; " \
++                                "else " \
++                                        "echo WARN: Cannot load the DT; " \
++                                "fi; " \
++                        "fi; " \
++                "else " \
++                        "if test ${bootfile} = zImage; then " \
++                              "bootz; " \
++                        "else " \
++                              "bootm; " \
++                        "fi; " \
++                "fi;\0"
++
++#define CONFIG_BOOTCOMMAND \
++         "mmc dev ${mmcdev}; if mmc rescan; then " \
++                 "if run ext2loadbootscript; then " \
++                         "run bootscript; " \
++                 "elif run fatloadbootscript; then " \
++                         "run bootscript; " \
++                 "else " \
++                         "if run ext2loadbootenv || run fatloadbootenv; then " \
++                                 "run importbootenv; " \
++                         "fi; " \
++                         "if run ext2loadbootfile; then " \
++                                 "run ext2mmcboot; " \
++                         "elif run fatloadbootfile; then " \
++                                 "run fatmmcboot; " \
++                         "else run netboot; " \
++                         "fi; " \
++                 "fi; " \
++         "else run netboot; fi"
++
++/* Miscellaneous configurable options */
++#define CONFIG_SYS_LONGHELP
++#define CONFIG_SYS_HUSH_PARSER
++#define CONFIG_SYS_PROMPT            "C1 U-Boot > "
++#define CONFIG_AUTO_COMPLETE
++#define CONFIG_SYS_CBSIZE             1024
++
++/* Print Buffer Size */
++#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16)
++#define CONFIG_SYS_MAXARGS           16
++#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE
++
++#define CONFIG_SYS_LOAD_ADDR          CONFIG_LOADADDR
++#define CONFIG_SYS_HZ                 1000
++
++#define CONFIG_CMDLINE_EDITING
++
++/* Physical Memory Map */
++#define CONFIG_NR_DRAM_BANKS          1
++#define PHYS_SDRAM                    MMDC0_ARB_BASE_ADDR
++
++#define CONFIG_SYS_SDRAM_BASE         PHYS_SDRAM
++#define CONFIG_SYS_INIT_RAM_ADDR      IRAM_BASE_ADDR
++#define CONFIG_SYS_INIT_RAM_SIZE      IRAM_SIZE
++
++#define CONFIG_SYS_INIT_SP_OFFSET \
++      (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
++#define CONFIG_SYS_INIT_SP_ADDR \
++      (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)
++
++/* FLASH and environment organization */
++#define CONFIG_SYS_NO_FLASH
++
++#define CONFIG_ENV_SIZE                       (8 * 1024)
++
++#define CONFIG_ENV_IS_IN_MMC
++#define CONFIG_ENV_OFFSET             (6 * 64 * 1024)
++#define CONFIG_SYS_MMC_ENV_DEV                0
++
++#define CONFIG_OF_LIBFDT
++#define CONFIG_CMD_BOOTZ
++
++#ifndef CONFIG_SYS_DCACHE_OFF
++#define CONFIG_CMD_CACHE
++#endif
++
++#endif                               /* __CONFIG_H * */
+diff --git a/include/configs/mx6_common.h b/include/configs/mx6_common.h
+index 135a3f5..e3ee5ce 100644
+--- a/include/configs/mx6_common.h
++++ b/include/configs/mx6_common.h
+@@ -30,4 +30,6 @@
+ #define CONFIG_MP
++#define CONFIG_USB_MAX_CONTROLLER_COUNT 2
++
+ #endif
+diff --git a/include/configs/mx6_cubox-i.h b/include/configs/mx6_cubox-i.h
+new file mode 100644
+index 0000000..aefba7a
+--- /dev/null
++++ b/include/configs/mx6_cubox-i.h
+@@ -0,0 +1,370 @@
++/*
++ * Copyright (C) 2013 Freescale Semiconductor, Inc.
++ * Copyright (C) 2013 SolidRun ltd.
++ * Copyright (C) 2013 Jon Nettleton <jon.nettleton@gmail.com>
++ *
++ * Configuration settings for the SolidRun carrier-1 (c1) board.
++ *
++ * SPDX-License-Identifier:   GPL-2.0+
++ */
++
++#ifndef __CONFIG_H
++#define __CONFIG_H
++
++#include "mx6_common.h"
++#include <asm/arch/imx-regs.h>
++#include <asm/imx-common/gpio.h>
++#include <linux/sizes.h>
++
++#define CONFIG_SPL_FAT_SUPPORT
++#define CONFIG_SPL_MMC_SUPPORT
++#define CONFIG_SPL_BOARD_INIT
++
++#include "imx6_spl.h"
++
++#undef DEBUG
++
++#define CONFIG_MX6
++#define CONFIG_DISPLAY_CPUINFO
++#define CONFIG_DISPLAY_BOARDINFO
++
++#define CONFIG_CMDLINE_TAG
++#define CONFIG_SETUP_MEMORY_TAGS
++#define CONFIG_INITRD_TAG
++#define CONFIG_REVISION_TAG
++
++/* Size of malloc() pool */
++#define CONFIG_SYS_MALLOC_LEN         (8 * SZ_1M)
++
++#define CONFIG_BOARD_EARLY_INIT_F
++#define CONFIG_BOARD_LATE_INIT
++#define CONFIG_MXC_GPIO
++
++#define CONFIG_CMD_FUSE
++#ifdef CONFIG_CMD_FUSE
++#define CONFIG_MXC_OCOTP
++#endif
++
++#define CONFIG_MXC_UART
++#define CONFIG_MXC_UART_BASE          UART1_BASE
++
++/* allow to overwrite serial and ethaddr */
++#define CONFIG_ENV_OVERWRITE
++#define CONFIG_CONS_INDEX             1
++#define CONFIG_BAUDRATE                       115200
++
++/* Command definition */
++#include <config_cmd_default.h>
++
++#undef CONFIG_CMD_IMLS
++#undef CONFIG_CMD_I2C
++
++#define CONFIG_CMD_BMODE
++#define CONFIG_CMD_SETEXPR
++#define CONFIG_CMD_MEMTEST
++#define CONFIG_BOOTDELAY              3
++
++#define CONFIG_SYS_MEMTEST_START      0x10000000
++#define CONFIG_SYS_MEMTEST_END                (CONFIG_SYS_MEMTEST_START + 500 * SZ_1M)
++
++#define CONFIG_LOADADDR                       0x10800000
++/*#define CONFIG_SYS_TEXT_BASE                0x17800000*/
++
++/* SATA Configuration */
++#ifdef CONFIG_CMD_SATA
++#define CONFIG_DWC_AHSATA
++#define CONFIG_SYS_SATA_MAX_DEVICE      1
++#define CONFIG_DWC_AHSATA_PORT_ID       0
++#define CONFIG_DWC_AHSATA_BASE_ADDR     SATA_ARB_BASE_ADDR
++#define CONFIG_LBA48
++#define CONFIG_LIBATA
++#endif
++
++/* MMC Configuration */
++#define CONFIG_FSL_ESDHC
++#define CONFIG_FSL_USDHC
++#define CONFIG_SYS_FSL_USDHC_NUM      1
++#define CONFIG_SYS_FSL_ESDHC_ADDR     0
++
++#define CONFIG_MMC
++#define CONFIG_CMD_MMC
++#define CONFIG_GENERIC_MMC
++#define CONFIG_BOUNCE_BUFFER
++#define CONFIG_CMD_EXT4
++#define CONFIG_CMD_FAT
++#define CONFIG_DOS_PARTITION
++#define CONFIG_FS_EXT4
++#define CONFIG_FS_FAT
++#define CONFIG_CMD_FS_GENERIC
++
++/* Ethernet Configuration */
++#define CONFIG_FEC_MXC
++#ifdef CONFIG_FEC_MXC
++#define CONFIG_CMD_PING
++#define CONFIG_CMD_DHCP
++#define CONFIG_CMD_MII
++#define CONFIG_CMD_NET
++#define CONFIG_FEC_MXC
++#define CONFIG_MII
++#define IMX_FEC_BASE                  ENET_BASE_ADDR
++#define CONFIG_FEC_XCV_TYPE           RGMII
++#define CONFIG_ETHPRIME                       "FEC"
++#define CONFIG_PHYLIB
++#define CONFIG_PHY_ATHEROS
++#endif
++
++/* Framebuffer */
++#define CONFIG_VIDEO
++#ifdef CONFIG_VIDEO
++#define CONFIG_VIDEO_IPUV3
++#define CONFIG_IPUV3_CLK 260000000
++#define CONFIG_CFB_CONSOLE
++#define CONFIG_CFB_CONSOLE_ANSI
++#define CONFIG_VGA_AS_SINGLE_DEVICE
++#define CONFIG_VIDEO_BMP_RLE8
++#define CONFIG_IMX_HDMI
++
++#undef CONFIG_SPLASH_SCREEN
++#undef CONFIG_SPLASH_SCREEN_ALIGN
++#define CONFIG_BMP_16BPP
++#undef CONFIG_CMD_BMP
++#define CONFIG_VIDEO_LOGO
++#define CONFIG_VIDEO_BMP_LOGO
++#define CONFIG_CONSOLE_MUX
++#endif
++
++/* USB Configs */
++#define CONFIG_CMD_USB
++#ifdef CONFIG_CMD_USB
++#define CONFIG_USB_EHCI
++#define CONFIG_USB_EHCI_MX6
++#define CONFIG_EHCI_IS_TDI
++#define CONFIG_USB_STORAGE
++#define CONFIG_USB_HOST_ETHER
++#define CONFIG_USB_ETHER_ASIX
++#define CONFIG_USB_ETHER_SMSC95XX
++#define CONFIG_MXC_USB_PORT     1
++#define CONFIG_MXC_USB_PORTSC   (PORT_PTS_UTMI | PORT_PTS_PTW)
++#define CONFIG_MXC_USB_FLAGS    0
++#define CONFIG_USB_KEYBOARD
++#define CONFIG_SYS_STDIO_DEREGISTER
++#define CONFIG_SYS_USB_EVENT_POLL
++#define CONFIG_PREBOOT "usb start"
++#endif
++
++#define CONFIG_SYS_CONSOLE_IS_IN_ENV
++
++#define CONFIG_EXTRA_ENV_SETTINGS \
++        "script=boot.scr\0" \
++        "bootfile=auto\0" \
++        "bootenv=uEnv.txt\0" \
++        "boot_prefixes=/ /boot/\0" \
++        "console=ttymxc0\0" \
++        "stdin=serial,usbkbd\0" \
++        "stdout=serial,vga\0" \
++        "stderr=serial,vga\0" \
++        "splashpos=m,m\0" \
++        "fdt_high=0xffffffff\0" \
++        "initrd_high=0xffffffff\0" \
++        "fdt_addr=0x18000000\0" \
++        "ramdiskaddr=0x11800000\0" \
++        "ramdisk=uInitrd\0" \
++        "boot_fdt=try\0" \
++        "ip_dyn=yes\0" \
++        "mmcdev=" __stringify(CONFIG_SYS_MMC_ENV_DEV) "\0" \
++        "mmcpart=1\0" \
++        "mmcroot=/dev/mmcblk0p2 rootwait rw\0" \
++        "update_sd_firmware_filename=u-boot.imx\0" \
++        "update_sd_firmware=" \
++                "if test ${ip_dyn} = yes; then " \
++                        "setenv get_cmd dhcp; " \
++                "else " \
++                        "setenv get_cmd tftp; " \
++                "fi; " \
++                "if mmc dev ${mmcdev}; then "   \
++                        "if ${get_cmd} ${update_sd_firmware_filename}; then " \
++                                "setexpr fw_sz ${filesize} / 0x200; " \
++                                "setexpr fw_sz ${fw_sz} + 1; "  \
++                                "mmc write ${loadaddr} 0x2 ${fw_sz}; " \
++                        "fi; "  \
++                "fi;\0" \
++        "mmcargs=setenv bootargs console=${console},${baudrate} " \
++                "root=${mmcroot};\0" \
++        "loadbootscript=" \
++                "load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${file_prefix}${script};\0" \
++        "bootscript=echo Running bootscript from mmc ...; " \
++                "source;\0" \
++        "autodetectfdt=if test ${cpu} = 6SOLO || test ${cpu} = 6DL; then " \
++                        "setenv fdt_prefix imx6dl; " \
++                "else " \
++                        "setenv fdt_prefix imx6q; " \
++                "fi; " \
++                "if test ${board} = mx6-cubox-i; then " \
++                        "setenv fdt_file ${fdt_prefix}-cubox-i.dtb; " \
++                "else " \
++                        "setenv fdt_file ${fdt_prefix}-hummingboard.dtb; " \
++                "fi;\0" \
++        "loadbootenv=load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${bootenv};\0" \
++        "loadfdt=if test ${boottype} = mmc; then " \
++                     "load mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${file_prefix}${fdt_file}; " \
++              "else " \
++                     "${get_cmd} ${fdt_addr} ${fdt_file}; " \
++              "fi;\0 " \
++        "loadbootfile=load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${file_prefix}${bootfile};\0" \
++        "loadramdisk=if test -n ${ramdisk}; then " \
++                         "if load mmc ${mmcdev}:${mmcpart} ${ramdiskaddr} ${file_prefix}${ramdisk}; then; else " \
++                             "setenv ramdiskaddr -; " \
++                         "fi; " \
++                     "else " \
++                     "   setenv ramdiskaddr -; " \
++                     "fi;\0" \
++        "importbootenv=echo Importing environment from mmc${mmcdev} ...; " \
++                "env import -t ${loadaddr} ${filesize};\0" \
++        "autobootfdt=echo Booting ${boot_file}; " \
++                "if test ${boot_file} = zImage; then " \
++                  "bootz ${loadaddr} ${ramdiskaddr} ${fdt_addr}; " \
++              "else " \
++                  "bootm ${loadaddr} ${ramdiskaddr} ${fdt_addr}; " \
++              "fi;\0 " \
++        "autoboot=echo Booting ${boot_file}; " \
++              "if test ${boot_file} = zImage; then " \
++                  "bootz ${loadaddr} ${ramdiskaddr}; " \
++              "else " \
++                  "bootm ${loadaddr} ${ramdiskaddr}; " \
++              "fi;\0 " \
++      "bootit=setenv boot_file ${bootfile}; " \
++                "if test ${boot_file} = zImage; then " \
++                    "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
++                        "if run loadfdt; then " \
++                            "run autobootfdt; " \
++                        "else " \
++                            "if test ${boot_fdt} = try; then " \
++                                  "echo WARN: Cannot load the DTB and boot file is type zImage;" \
++                                  "echo if you have not appended a dtb to the file it may;" \
++                                  "echo hang after displaying Starting kernel...;" \
++                                  "echo ;" \
++                                 "run autoboot; " \
++                            "else " \
++                                  "echo WARN: Cannot load the DT; " \
++                            "fi; " \
++                        "fi; " \
++                    "else " \
++                        "run autoboot; " \
++                    "fi; " \
++                "else " \
++                        "run autoboot; " \
++                "fi;\0" \
++        "mmcboot=echo Booting from mmc ...; " \
++                "run mmcargs; " \
++                "setenv boottype mmc; " \
++                "run bootit;\0 " \
++        "netargs=setenv bootargs console=${console},${baudrate} " \
++                "root=/dev/nfs ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp;\0" \
++        "netboot=echo Booting from net ...; " \
++                "run netargs; " \
++                "setenv boottype net; " \
++                "if test ${ip_dyn} = yes; then " \
++                    "setenv get_cmd dhcp; " \
++                "else " \
++                    "setenv get_cmd tftp; " \
++                "fi; " \
++                "if test ${bootfile} = auto; then " \
++                     "setenv bootfile zImage; " \
++                     "if ${get_cmd} ${bootfile}; then " \
++                         "run bootit; " \
++                     "else " \
++                         "setenv bootfile uImage; " \
++                     "fi; " \
++                " fi; " \
++                "${get_cmd} ${bootfile}; " \
++                "run bootit;\0 "
++
++#define CONFIG_BOOTCOMMAND \
++         "mmc dev ${mmcdev}; if mmc rescan; then " \
++               "for prefix in ${boot_prefixes}; do " \
++                 "setenv file_prefix ${prefix}; " \
++                 "run autodetectfdt; " \
++                 "if run loadbootenv; then " \
++                         "run importbootenv; " \
++                 "fi; " \
++                 "if run loadbootscript; then " \
++                         "run bootscript; " \
++                 "else " \
++                           "if test ${bootfile} = auto; then " \
++                                   "setenv origbootfile auto; " \
++                                   "setenv bootfile zImage; " \
++                                   "if run loadbootfile; then " \
++                                        "run loadramdisk; " \
++                                        "run mmcboot; " \
++                                   "else " \
++                                        "setenv bootfile uImage; " \
++                                   "fi; " \
++                           "fi; " \
++                         "if run loadbootfile; then " \
++                                 "run loadramdisk; " \
++                                 "run mmcboot; " \
++                         "else " \
++                                 "setenv bootfile ${origbootfile}; " \
++                         "fi; " \
++                 "fi; " \
++             "done; " \
++         "fi; " \
++         "run netboot;\0 "
++
++/* Miscellaneous configurable options */
++#define CONFIG_SYS_LONGHELP
++#define CONFIG_SYS_HUSH_PARSER
++
++#if defined(CONFIG_SPL_MMC_SUPPORT)
++#undef CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR
++#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR 84
++#endif
++
++#ifndef __ASSEMBLY__
++extern char *config_sys_prompt;
++#endif
++#define CONFIG_SYS_PROMPT_MAX_CHARS   32
++#define CONFIG_SYS_PROMPT             config_sys_prompt
++#define CONFIG_AUTO_COMPLETE
++#define CONFIG_SYS_CBSIZE             1024
++
++/* Print Buffer Size */
++#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + CONFIG_SYS_PROMPT_MAX_CHARS + 16)
++#define CONFIG_SYS_MAXARGS           16
++#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE
++
++#define CONFIG_SYS_LOAD_ADDR          CONFIG_LOADADDR
++#define CONFIG_SYS_HZ                 1000
++
++#define CONFIG_CMDLINE_EDITING
++
++/* Physical Memory Map */
++#define CONFIG_NR_DRAM_BANKS          1
++#define PHYS_SDRAM                    MMDC0_ARB_BASE_ADDR
++
++#define CONFIG_SYS_SDRAM_BASE         PHYS_SDRAM
++#define CONFIG_SYS_INIT_RAM_ADDR      IRAM_BASE_ADDR
++#define CONFIG_SYS_INIT_RAM_SIZE      IRAM_SIZE
++
++#define CONFIG_SYS_INIT_SP_OFFSET \
++      (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
++#define CONFIG_SYS_INIT_SP_ADDR \
++      (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)
++
++/* FLASH and environment organization */
++#define CONFIG_SYS_NO_FLASH
++
++#define CONFIG_ENV_SIZE                       (8 * 1024)
++
++#define CONFIG_ENV_IS_IN_MMC
++#define CONFIG_ENV_OFFSET             (6 * 64 * 1024)
++#define CONFIG_SYS_MMC_ENV_DEV                0
++
++#define CONFIG_OF_LIBFDT
++#define CONFIG_CMD_BOOTZ
++
++#ifndef CONFIG_SYS_DCACHE_OFF
++#define CONFIG_CMD_CACHE
++#endif
++
++#endif                               /* __CONFIG_H * */
+diff --git a/lib/hashtable.c b/lib/hashtable.c
+index 18ed590..8de0d58 100644
+--- a/lib/hashtable.c
++++ b/lib/hashtable.c
+@@ -922,7 +922,7 @@ int himport_r(struct hsearch_data *htab,
+                       printf("himport_r: can't insert \"%s=%s\" into hash table\n",
+                               name, value);
+-              debug("INSERT: table %p, filled %d/%d rv %p ==> name=\"%s\" value=\"%s\"\n",
++              debug("INSERT: table %p, filled %d/%d rv %p ==> name=\"%s\" value=\"%.128s\"\n",
+                       htab, htab->filled, htab->size,
+                       rv, name, value);
+       } while ((dp < data + size) && *dp);    /* size check needed for text */
diff --git a/debian/patches/cubox-i/emulate-config_distro_bootcmd-standardization.diff b/debian/patches/cubox-i/emulate-config_distro_bootcmd-standardization.diff
new file mode 100644 (file)
index 0000000..65e4a92
--- /dev/null
@@ -0,0 +1,19 @@
+Set additional variables (boot_targets, devtype, devnum, bootpart) to
+emulate config_distro_bootcmd.h so that the debian-installer
+bootscript will work.
+
+Index: u-boot/include/configs/mx6_cubox-i.h
+===================================================================
+--- u-boot.orig/include/configs/mx6_cubox-i.h
++++ u-boot/include/configs/mx6_cubox-i.h
+@@ -286,6 +286,10 @@
+ #define CONFIG_BOOTCOMMAND \
+          "mmc dev ${mmcdev}; if mmc rescan; then " \
++               "setenv boot_targets mmc ; " \
++               "setenv devtype mmc ; " \
++               "setenv devnum ${mmcdev} ; " \
++               "setenv bootpart ${mmcpart} ; " \
+                "for prefix in ${boot_prefixes}; do " \
+                  "setenv file_prefix ${prefix}; " \
+                  "run autodetectfdt; " \
diff --git a/debian/patches/cubox-i/generic-board.diff b/debian/patches/cubox-i/generic-board.diff
new file mode 100644 (file)
index 0000000..cd6aebf
--- /dev/null
@@ -0,0 +1,18 @@
+Update mx6_cubox-i to use CONFIG_SYS_GENERIC_BOARD, as
+arch/<arch>/lib/board.c is deprecated.
+
+See doc/README.generic-board for more details.
+
+Index: u-boot/include/configs/mx6_cubox-i.h
+===================================================================
+--- u-boot.orig/include/configs/mx6_cubox-i.h
++++ u-boot/include/configs/mx6_cubox-i.h
+@@ -33,6 +33,8 @@
+ #define CONFIG_INITRD_TAG
+ #define CONFIG_REVISION_TAG
++#define CONFIG_SYS_GENERIC_BOARD
++
+ /* Size of malloc() pool */
+ #define CONFIG_SYS_MALLOC_LEN         (8 * SZ_1M)
diff --git a/debian/patches/cubox-i/imx6-spl-support.diff b/debian/patches/cubox-i/imx6-spl-support.diff
new file mode 100644 (file)
index 0000000..e810557
--- /dev/null
@@ -0,0 +1,251 @@
+Author: Rabeeh Khoury <rabeeh@solid-run.com>
+Description: add i.MX6 SPL support
+ Taken from https://github.com/rabeeh/u-boot-imx6.git
+
+diff --git a/arch/arm/cpu/armv7/mx6/u-boot-spl.lds b/arch/arm/cpu/armv7/mx6/u-boot-spl.lds
+new file mode 100644
+index 0000000..5e93b34
+--- /dev/null
++++ b/arch/arm/cpu/armv7/mx6/u-boot-spl.lds
+@@ -0,0 +1,47 @@
++/*
++ * (C) Copyright 2002
++ * Gary Jennejohn, DENX Software Engineering, <garyj@denx.de>
++ *
++ * (C) Copyright 2010
++ * Texas Instruments, <www.ti.com>
++ *    Aneesh V <aneesh@ti.com>
++ *
++ * SPDX-License-Identifier:   GPL-2.0+
++ */
++
++MEMORY { .sram : ORIGIN = CONFIG_SPL_TEXT_BASE,\
++              LENGTH = CONFIG_SPL_MAX_SIZE }
++MEMORY { .sdram : ORIGIN = CONFIG_SPL_BSS_START_ADDR, \
++              LENGTH = CONFIG_SPL_BSS_MAX_SIZE }
++
++OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
++OUTPUT_ARCH(arm)
++ENTRY(_start)
++SECTIONS
++{
++      .text      :
++      {
++              __start = .;
++              arch/arm/cpu/armv7/start.o      (.text*)
++              *(.text*)
++      } >.sram
++
++      . = ALIGN(4);
++      .rodata : { *(SORT_BY_ALIGNMENT(.rodata*)) } >.sram
++
++      . = ALIGN(4);
++      .data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
++
++      . = ALIGN(4);
++      __image_copy_end = .;
++      _end = .;
++
++      .bss :
++      {
++              . = ALIGN(4);
++              __bss_start = .;
++              *(.bss*)
++              . = ALIGN(4);
++              __bss_end = .;
++      } >.sdram
++}
+diff --git a/arch/arm/imx-common/spl.c b/arch/arm/imx-common/spl.c
+index 9a02a64..30ca9fa 100644
+--- a/arch/arm/imx-common/spl.c
++++ b/arch/arm/imx-common/spl.c
+@@ -46,7 +46,10 @@ u32 spl_boot_device(void)
+       /* SD/eSD: 8.5.3, Table 8-15  */
+       case 0x4:
+       case 0x5:
+-              return BOOT_DEVICE_MMC1;
++              if ((reg & 0x00001000) >> 12)
++                      return BOOT_DEVICE_MMC1;
++              else
++                      return BOOT_DEVICE_MMC2;
+       /* MMC/eMMC: 8.5.3 */
+       case 0x6:
+       case 0x7:
+@@ -67,11 +70,10 @@ u32 spl_boot_mode(void)
+       /* for MMC return either RAW or FAT mode */
+       case BOOT_DEVICE_MMC1:
+       case BOOT_DEVICE_MMC2:
+-#ifdef CONFIG_SPL_FAT_SUPPORT
+-              return MMCSD_MODE_FAT;
+-#else
+-              return MMCSD_MODE_RAW;
+-#endif
++              return MMCSD_MODE_ANY;
++              break;
++      case BOOT_DEVICE_SATA:
++              return MMCSD_MODE_UNDEFINED;
+               break;
+       default:
+               puts("spl: ERROR:  unsupported device\n");
+diff --git a/common/spl/spl_mmc.c b/common/spl/spl_mmc.c
+index fa6f891..847d840 100644
+--- a/common/spl/spl_mmc.c
++++ b/common/spl/spl_mmc.c
+@@ -93,26 +93,26 @@ void spl_mmc_load_image(void)
+       }
+       boot_mode = spl_boot_mode();
+-      if (boot_mode == MMCSD_MODE_RAW) {
+-              debug("boot mode - RAW\n");
+-#ifdef CONFIG_SPL_OS_BOOT
+-              if (spl_start_uboot() || mmc_load_image_raw_os(mmc))
++      switch (boot_mode) {
++              case MMCSD_MODE_RAW:
++              case MMCSD_MODE_ANY:
++#ifdef CONFIG_SUPPORT_EMMC_BOOT
++              case MMCSD_MODE_EMMCBOOT:
+ #endif
+-              err = mmc_load_image_raw(mmc,
+-                      CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR);
+ #ifdef CONFIG_SPL_FAT_SUPPORT
+-      } else if (boot_mode == MMCSD_MODE_FAT) {
+-              debug("boot mode - FAT\n");
+-#ifdef CONFIG_SPL_OS_BOOT
+-              if (spl_start_uboot() || spl_load_image_fat_os(&mmc->block_dev,
+-                                                              CONFIG_SYS_MMC_SD_FAT_BOOT_PARTITION))
++              case MMCSD_MODE_FAT:
+ #endif
+-              err = spl_load_image_fat(&mmc->block_dev,
+-                                      CONFIG_SYS_MMC_SD_FAT_BOOT_PARTITION,
+-                                      CONFIG_SPL_FAT_LOAD_PAYLOAD_NAME);
++                      break;
++              default:
++#ifdef CONFIG_SPL_LIBCOMMON_SUPPORT
++                      puts("spl: wrong MMC boot mode\n");
+ #endif
++                      hang();
++                      break;
++      }
++
+ #ifdef CONFIG_SUPPORT_EMMC_BOOT
+-      } else if (boot_mode == MMCSD_MODE_EMMCBOOT) {
++      if (boot_mode == MMCSD_MODE_EMMCBOOT) {
+               /*
+                * We need to check what the partition is configured to.
+                * 1 and 2 match up to boot0 / boot1 and 7 is user data
+@@ -129,18 +129,31 @@ void spl_mmc_load_image(void)
+ #endif
+                       hang();
+               }
++      }
++#endif
++      if (boot_mode == MMCSD_MODE_RAW || boot_mode == MMCSD_MODE_ANY
++          || boot_mode == MMCSD_MODE_EMMCBOOT)
++      {
++              debug("boot mode - RAW\n");
+ #ifdef CONFIG_SPL_OS_BOOT
+               if (spl_start_uboot() || mmc_load_image_raw_os(mmc))
+ #endif
+               err = mmc_load_image_raw(mmc,
+                       CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR);
++      }
++#ifdef CONFIG_SPL_FAT_SUPPORT
++      if (boot_mode == MMCSD_MODE_FAT || (boot_mode == MMCSD_MODE_ANY && err))
++      {
++              debug("boot mode - FAT\n");
++#ifdef CONFIG_SPL_OS_BOOT
++              if (spl_start_uboot() || spl_load_image_fat_os(&mmc->block_dev,
++                                                              CONFIG_SYS_MMC_SD_FAT_BOOT_PARTITION))
+ #endif
+-      } else {
+-#ifdef CONFIG_SPL_LIBCOMMON_SUPPORT
+-              puts("spl: wrong MMC boot mode\n");
+-#endif
+-              hang();
++              err = spl_load_image_fat(&mmc->block_dev,
++                                      CONFIG_SYS_MMC_SD_FAT_BOOT_PARTITION,
++                                      CONFIG_SPL_FAT_LOAD_PAYLOAD_NAME);
+       }
++#endif
+       if (err)
+               hang();
+diff --git a/drivers/mtd/nand/mxs_nand.c b/drivers/mtd/nand/mxs_nand.c
+index 036c113..36cfc18 100644
+--- a/drivers/mtd/nand/mxs_nand.c
++++ b/drivers/mtd/nand/mxs_nand.c
+@@ -1014,9 +1014,12 @@ static int mxs_nand_scan_bbt(struct mtd_info *mtd)
+               nand_info->hooked_block_markbad = mtd->_block_markbad;
+               mtd->_block_markbad = mxs_nand_hook_block_markbad;
+       }
+-
++      #ifdef CONFIG_SPL_BUILD
++      return 0;
++      #else
+       /* We use the reference implementation for bad block management. */
+       return nand_default_bbt(mtd);
++      #endif
+ }
+ /*
+diff --git a/drivers/mtd/nand/mxs_nand_spl.c b/drivers/mtd/nand/mxs_nand_spl.c
+index 0e7c364..8bc7147 100644
+--- a/drivers/mtd/nand/mxs_nand_spl.c
++++ b/drivers/mtd/nand/mxs_nand_spl.c
+@@ -223,9 +223,30 @@ int nand_default_bbt(struct mtd_info *mtd)
+ void nand_init(void)
+ {
++      /*
++       * Init board specific nand support
++       */
++      mtd.priv = &nand_chip;
++
++      board_nand_init(&nand_chip);
++      mtd.priv = &nand_chip;  
++
++      if (nand_chip.select_chip)
++              nand_chip.select_chip(&mtd, 0);
++      
++      mtd.writesize = CONFIG_SYS_NAND_PAGE_SIZE;
++      mtd.oobsize = CONFIG_SYS_NAND_OOBSIZE;
++
++      //Actually, not scan and create bbt, just for setting flash memory geometry to BCH
++      nand_chip.scan_bbt(&mtd); 
++
++      nand_chip.buffers = memalign(ARCH_DMA_MINALIGN, sizeof(*nand_chip.buffers));
++      nand_chip.oob_poi = nand_chip.buffers->databuf + mtd.writesize; 
+ }
++/* Unselect after operation */
+ void nand_deselect(void)
+ {
++      if (nand_chip.select_chip)
++              nand_chip.select_chip(&mtd, -1);
+ }
+-
+diff --git a/include/configs/imx6_spl.h b/include/configs/imx6_spl.h
+index 970460d..d824705 100644
+--- a/include/configs/imx6_spl.h
++++ b/include/configs/imx6_spl.h
+@@ -25,7 +25,7 @@
+  *    or 64KB
+  */
+ #define CONFIG_SYS_THUMB_BUILD
+-#define CONFIG_SPL_LDSCRIPT   "arch/arm/cpu/armv7/omap-common/u-boot-spl.lds"
++#define CONFIG_SPL_LDSCRIPT   "arch/arm/cpu/armv7/mx6/u-boot-spl.lds"
+ #define CONFIG_SPL_TEXT_BASE          0x00908000
+ #define CONFIG_SPL_MAX_SIZE           (64 * 1024)
+ #define CONFIG_SPL_START_S_PATH               "arch/arm/cpu/armv7"
+diff --git a/include/spl.h b/include/spl.h
+index a7e41da..dd80a81 100644
+--- a/include/spl.h
++++ b/include/spl.h
+@@ -17,6 +17,7 @@
+ #define MMCSD_MODE_RAW                1
+ #define MMCSD_MODE_FAT                2
+ #define MMCSD_MODE_EMMCBOOT   3
++#define MMCSD_MODE_ANY                4
+ struct spl_image_info {
+       const char *name;
diff --git a/debian/patches/cubox-i/spl-sata-support.diff b/debian/patches/cubox-i/spl-sata-support.diff
new file mode 100644 (file)
index 0000000..2bb58b0
--- /dev/null
@@ -0,0 +1,219 @@
+Author: Rabeeh Khoury <rabeeh@solid-run.com>
+Description: SPL SATA support
+ Taken from https://github.com/rabeeh/u-boot-imx6.git
+
+diff --git a/common/Makefile b/common/Makefile
+index b19d379..7bdd8b3 100644
+--- a/common/Makefile
++++ b/common/Makefile
+@@ -60,6 +60,8 @@ obj-$(CONFIG_ENV_IS_IN_FAT) += env_fat.o
+ obj-$(CONFIG_ENV_IS_IN_NAND) += env_nand.o
+ obj-$(CONFIG_ENV_IS_IN_NVRAM) += env_nvram.o
+ obj-$(CONFIG_ENV_IS_IN_ONENAND) += env_onenand.o
++obj-$(CONFIG_ENV_IS_IN_SATA) += env_sata.o
++obj-$(CONFIG_ENV_IS_IN_BOOT_DEVICE) += env_bootdevice.o
+ obj-$(CONFIG_ENV_IS_IN_SPI_FLASH) += env_sf.o
+ obj-$(CONFIG_ENV_IS_IN_REMOTE) += env_remote.o
+ obj-$(CONFIG_ENV_IS_IN_UBI) += env_ubi.o
+diff --git a/common/cmd_nvedit.c b/common/cmd_nvedit.c
+index 855808c..5f56acb 100644
+--- a/common/cmd_nvedit.c
++++ b/common/cmd_nvedit.c
+@@ -49,6 +49,8 @@ DECLARE_GLOBAL_DATA_PTR;
+       !defined(CONFIG_ENV_IS_IN_SPI_FLASH)    && \
+       !defined(CONFIG_ENV_IS_IN_REMOTE)       && \
+       !defined(CONFIG_ENV_IS_IN_UBI)          && \
++      !defined(CONFIG_ENV_IS_IN_SATA)         && \
++      !defined(CONFIG_ENV_IS_IN_BOOT_DEVICE)  && \
+       !defined(CONFIG_ENV_IS_NOWHERE)
+ # error Define one of CONFIG_ENV_IS_IN_{EEPROM|FLASH|DATAFLASH|ONENAND|\
+ SPI_FLASH|NVRAM|MMC|FAT|REMOTE|UBI} or CONFIG_ENV_IS_NOWHERE
+diff --git a/common/cmd_sata.c b/common/cmd_sata.c
+index fc92131..b729b88 100644
+--- a/common/cmd_sata.c
++++ b/common/cmd_sata.c
+@@ -15,7 +15,7 @@
+ #include <part.h>
+ #include <sata.h>
+-static int sata_curr_device = -1;
++int sata_curr_device = -1;
+ block_dev_desc_t sata_dev_desc[CONFIG_SYS_SATA_MAX_DEVICE];
+ int __sata_initialize(void)
+diff --git a/common/env_sata.c b/common/env_sata.c
+new file mode 100644
+index 0000000..31c479d
+--- /dev/null
++++ b/common/env_sata.c
+@@ -0,0 +1,170 @@
++/*
++ * (C) Copyright 2010-2011 Freescale Semiconductor, Inc.
++ *
++ * 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
++ */
++
++/* #define DEBUG */
++
++#include <common.h>
++
++#include <command.h>
++#include <environment.h>
++#include <linux/stddef.h>
++#include <sata.h>
++#include <search.h>
++#include <errno.h>
++
++#if defined(CONFIG_ENV_SIZE_REDUND) &&  \
++      (CONFIG_ENV_SIZE_REDUND != CONFIG_ENV_SIZE)
++#error CONFIG_ENV_SIZE_REDUND should be the same as CONFIG_ENV_SIZE
++#endif
++
++char *env_name_spec = "SATA";
++
++#ifdef ENV_IS_EMBEDDED
++env_t *env_ptr = &environment;
++#else /* ! ENV_IS_EMBEDDED */
++env_t *env_ptr;
++#endif /* ENV_IS_EMBEDDED */
++
++extern int sata_curr_device;
++
++#if !defined(CONFIG_ENV_OFFSET)
++#define CONFIG_ENV_OFFSET 0
++#endif
++
++DECLARE_GLOBAL_DATA_PTR;
++
++int env_init(void)
++{
++      /* use default */
++      gd->env_addr = (ulong)&default_environment[0];
++      gd->env_valid = 1;
++
++      return 0;
++}
++
++
++inline int write_env(block_dev_desc_t *sata, unsigned long size,
++                      unsigned long offset, const void *buffer)
++{
++      uint blk_start, blk_cnt, n;
++
++      blk_start = ALIGN(offset, sata->blksz) / sata->blksz;
++      blk_cnt   = ALIGN(size, sata->blksz) / sata->blksz;
++
++      n = sata->block_write(sata_curr_device, blk_start,
++                                      blk_cnt, (u_char *)buffer);
++
++      return (n == blk_cnt) ? 0 : -1;
++}
++
++int saveenv(void)
++{
++      ALLOC_CACHE_ALIGN_BUFFER(env_t, env_new, 1);
++      ssize_t len;
++      char    *res;
++      struct block_dev_desc_t *sata = NULL;
++
++      if (sata_curr_device == -1) {
++              if (sata_initialize())
++                      return 1;
++              sata_curr_device = CONFIG_SATA_ENV_DEV;
++      }
++
++      if (sata_curr_device >= CONFIG_SYS_SATA_MAX_DEVICE) {
++              printf("Unknown SATA(%d) device for environment!\n",
++                      sata_curr_device);
++              return 1;
++      }
++      res = (char *)&env_new->data;
++      len = hexport_r(&env_htab, '\0', 0, &res, ENV_SIZE, 0, NULL);
++      if (len < 0) {
++              error("Cannot export environment: errno = %d\n", errno);
++              return 1;
++      }
++
++      env_new->crc = crc32(0, &env_new->data[0], ENV_SIZE);   
++
++      sata = sata_get_dev(sata_curr_device);
++
++      printf("Writing to SATA(%d)... ", sata_curr_device);
++      if (write_env(sata, CONFIG_ENV_SIZE, CONFIG_ENV_OFFSET, (u_char *)env_new)) {
++              puts("failed\n");
++              return 1;
++      }
++
++      puts("done\n");
++
++      return 0;
++}
++
++
++inline int read_env(block_dev_desc_t *sata, unsigned long size,
++                      unsigned long offset, const void *buffer)
++{
++      uint blk_start, blk_cnt, n;
++
++      blk_start = ALIGN(offset, sata->blksz) / sata->blksz;
++      blk_cnt   = ALIGN(size, sata->blksz) / sata->blksz;
++
++      n = sata->block_read(sata_curr_device, blk_start,
++                                      blk_cnt, (uchar *)buffer);
++
++      return (n == blk_cnt) ? 0 : -1;
++}
++
++void env_relocate_spec(void)
++{
++#if !defined(ENV_IS_EMBEDDED)
++      ALLOC_CACHE_ALIGN_BUFFER(char, buf, CONFIG_ENV_SIZE);
++      struct block_dev_desc_t *sata = NULL;
++      int ret = 0;
++
++      if (sata_curr_device == -1) {
++              if (sata_initialize())
++                      return 1;
++              sata_curr_device = CONFIG_SATA_ENV_DEV;
++      }
++
++      if (sata_curr_device >= CONFIG_SYS_SATA_MAX_DEVICE) {
++              printf("Unknown SATA(%d) device for environment!\n",
++                      sata_curr_device);
++              return 1;
++      }
++      sata = sata_get_dev(sata_curr_device);
++
++      if (read_env(sata, CONFIG_ENV_SIZE, CONFIG_ENV_OFFSET, buf)){
++              printf( "\r\n--->Read environment failed \r\n");
++              ret = 1;
++              goto err;
++      }
++
++      gd->env_valid = 1;
++      env_import(buf, 1);
++      ret = 0;
++err:
++      if (ret)
++              set_default_env(NULL);
++#endif
++}
++
++
++
diff --git a/debian/patches/cubox-i/steal-board-eth-init-from-hummingboard.diff b/debian/patches/cubox-i/steal-board-eth-init-from-hummingboard.diff
new file mode 100644 (file)
index 0000000..507825d
--- /dev/null
@@ -0,0 +1,47 @@
+Use board_eth_init from hummingboard.c, which not only compiles, but
+actually enables ethernet support.
+
+Index: u-boot/board/solidrun/mx6_cubox-i/mx6_cubox-i.c
+===================================================================
+--- u-boot.orig/board/solidrun/mx6_cubox-i/mx6_cubox-i.c
++++ u-boot/board/solidrun/mx6_cubox-i/mx6_cubox-i.c
+@@ -275,30 +275,18 @@ int board_phy_config(struct phy_device *
+ int board_eth_init(bd_t *bis)
+ {
+-      int ret;
+-        struct iomuxc *const iomuxc_regs
+-                = (struct iomuxc *) IOMUXC_BASE_ADDR;
+-      struct anatop_regs __iomem *anatop =
+-                (struct anatop_regs __iomem *)ANATOP_BASE_ADDR;
+-      u32 reg = 0;
+-      s32 timeout = 100000;
+-
+-      enable_fec_anatop_clock(ENET_25MHz);
+-      /* set gpr1[21] */
+-        clrsetbits_le32(&iomuxc_regs->gpr[1], 0, (1 << 21));
+-
+-      while (timeout--) {
+-              if (readl(&anatop->pll_enet) & BM_ANADIG_PLL_ENET_LOCK)
+-                      break;
+-      }
++      struct iomuxc *const iomuxc_regs = (struct iomuxc *)IOMUXC_BASE_ADDR;
+-      setup_iomux_enet();
+-
+-      ret = cpu_eth_init(bis);
++      int ret = enable_fec_anatop_clock(ENET_25MHz);
+       if (ret)
+-              printf("FEC MXC: %s:failed\n", __func__);
++              return ret;
++
++      /* set gpr1[ENET_CLK_SEL] */
++      setbits_le32(&iomuxc_regs->gpr[1], IOMUXC_GPR1_ENET_CLK_SEL_MASK);
++
++      setup_iomux_enet();
+-      return 0;
++      return cpu_eth_init(bis);
+ }
+ #endif
diff --git a/debian/patches/guruplug_mvfs_and_mmc.diff b/debian/patches/guruplug_mvfs_and_mmc.diff
new file mode 100644 (file)
index 0000000..2b96a69
--- /dev/null
@@ -0,0 +1,28 @@
+--- 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 <config_cmd_default.h>
+ #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 */
diff --git a/debian/patches/hurd.diff b/debian/patches/hurd.diff
new file mode 100644 (file)
index 0000000..546e5fb
--- /dev/null
@@ -0,0 +1,20 @@
+--- a/include/compiler.h
++++ b/include/compiler.h
+@@ -15,7 +15,7 @@
+     defined(__sun__)   || \
+     defined(__APPLE__)
+ # include <inttypes.h>
+-#elif defined(__linux__) || defined(__WIN32__) || defined(__MINGW32__)
++#elif defined(__linux__) || defined(__WIN32__) || defined(__MINGW32__) || defined(__GLIBC__)
+ # include <stdint.h>
+ #endif
+@@ -41,7 +41,7 @@
+ #define O_BINARY      0
+ #endif
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+ # include <endian.h>
+ # include <byteswap.h>
+ #elif defined(__MACH__) || defined(__FreeBSD__)
diff --git a/debian/patches/mipsel-native-endianness.diff b/debian/patches/mipsel-native-endianness.diff
new file mode 100644 (file)
index 0000000..556b1b0
--- /dev/null
@@ -0,0 +1,69 @@
+[MIPS] Fix little-endian build with non-ELDK toolchains
+
+We've been in trouble for a long time when cross compiling with non-ELDK
+toolchains.  This is caused by -EB passed to CPPFLAGS incorrectly, by the
+lack of an endian specifier to LDFLAGS, and by wrong OUTPUT_FORMATs.
+
+We're going to implement two workarounds.  One is the endianness specifier
+bugfix not to pass -EB / -EL to CPPFLAGS unless ELDK toolchain is used.
+Note that ELDK and non-ELDK toolchains know their default endianness, so
+the endianness specifier may not be necessary in principle.
+
+The other is removal of OUTPUT_FORMAT in *.lds files.  If we have this,
+it doesn't work unless an endianness specifier is added to LDFLAGS.  As
+we haven't added that to LDFLAGS so far, it must have not worked properly,
+except ELDK; I don't know why and how ELDK works, though.
+
+With these two changes, all objects will be generated and linked in the
+toolchain's default endianness.  Then MAKEALL mips_el will work even with
+non-ELDK toolchain.
+
+Note that Linux/MIPS kernel has CONFIG_CPU_BIG_ENDIAN and
+CONFIG_CPU_LITTLE_ENDIAN alternatives to allow users to compile kernels
+with a toolchain for the other endianness. But U-Boot does not have such
+feature for now, and it's another story.
+
+Signed-off-by: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
+---
+ board/dbau1x00/u-boot.lds  |    4 ----
+ board/gth2/u-boot.lds      |    4 ----
+ board/incaip/u-boot.lds    |    4 ----
+ board/pb1x00/u-boot.lds    |    4 ----
+ board/purple/u-boot.lds    |    4 ----
+ board/qemu-mips/u-boot.lds |    4 ----
+ board/tb0229/u-boot.lds    |    2 --
+ cpu/mips/config.mk         |    8 --------
+ examples/mips.lds          |    4 ----
+ mips_config.mk             |   26 ++++++++++++++++++++++++++
+ 10 files changed, 26 insertions(+), 38 deletions(-)
+
+Index: u-boot/examples/standalone/mips.lds
+===================================================================
+--- u-boot.orig/examples/standalone/mips.lds   2014-04-17 10:56:49.706810490 -0700
++++ u-boot/examples/standalone/mips.lds        2014-04-17 10:56:49.706810490 -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    2014-04-17 10:56:49.706810490 -0700
++++ u-boot/arch/mips/config.mk 2014-04-17 10:57:03.190556791 -0700
+@@ -5,10 +5,6 @@
+ # SPDX-License-Identifier:    GPL-2.0+
+ #
+-ifeq ($(CROSS_COMPILE),)
+-CROSS_COMPILE := mips_4KC-
+-endif
+-
+ # Handle special prefix in ELDK 4.0 toolchain
+ ifneq (,$(findstring 4KCle,$(CROSS_COMPILE)))
+ ENDIANNESS := -EL
diff --git a/debian/patches/mx53loco b/debian/patches/mx53loco
new file mode 100644 (file)
index 0000000..194f672
--- /dev/null
@@ -0,0 +1,23 @@
+Enables support for ext4, the "load" command, and using bootz with raw initrds.
+
+Index: u-boot/include/configs/mx53loco.h
+===================================================================
+--- u-boot.orig/include/configs/mx53loco.h
++++ u-boot/include/configs/mx53loco.h
+@@ -43,6 +43,8 @@
+ #define CONFIG_GENERIC_MMC
+ #define CONFIG_CMD_FAT
+ #define CONFIG_CMD_EXT2
++#define CONFIG_CMD_EXT4
++#define CONFIG_CMD_FS_GENERIC
+ #define CONFIG_DOS_PARTITION
+ /* Eth Configs */
+@@ -92,6 +94,7 @@
+ /* Command definition */
+ #include <config_cmd_default.h>
+ #define CONFIG_CMD_BOOTZ
++#define CONFIG_SUPPORT_RAW_INITRD
+ #undef CONFIG_CMD_IMLS
diff --git a/debian/patches/n900-bootz-raw-initrd.diff b/debian/patches/n900-bootz-raw-initrd.diff
new file mode 100644 (file)
index 0000000..eb7dda5
--- /dev/null
@@ -0,0 +1,17 @@
+Enable booting of zImage/vmlinuz and initrd without requiring the use of
+mkimage to create uImage/uInitrd.
+
+Index: u-boot/include/configs/nokia_rx51.h
+===================================================================
+--- u-boot.orig/include/configs/nokia_rx51.h   2014-05-13 15:05:59.000000000 -0700
++++ u-boot/include/configs/nokia_rx51.h        2014-05-13 15:07:43.213088875 -0700
+@@ -136,6 +136,9 @@
+ #define CONFIG_CMD_BOOTMENU           /* ANSI terminal Boot Menu */
+ #define CONFIG_CMD_CLEAR              /* ANSI terminal clear screen command */
++#define CONFIG_CMD_BOOTZ       /* boot zImage                  */
++#define CONFIG_SUPPORT_RAW_INITRD
++
+ #ifdef ONENAND_SUPPORT
+ #define CONFIG_CMD_ONENAND            /* ONENAND support */
diff --git a/debian/patches/no-error-on-set-but-unused-variables.diff b/debian/patches/no-error-on-set-but-unused-variables.diff
new file mode 100644 (file)
index 0000000..f07d1e4
--- /dev/null
@@ -0,0 +1,13 @@
+Index: u-boot/arch/x86/cpu/config.mk
+===================================================================
+--- u-boot.orig/arch/x86/cpu/config.mk
++++ u-boot/arch/x86/cpu/config.mk
+@@ -7,7 +7,7 @@
+ CROSS_COMPILE ?= i386-linux-
+-PLATFORM_CPPFLAGS += -D__I386__ -Werror
++PLATFORM_CPPFLAGS += -D__I386__ -Werror -Wno-error=unused-but-set-variable
+ # DO NOT MODIFY THE FOLLOWING UNLESS YOU REALLY KNOW WHAT YOU ARE DOING!
+ LDPPFLAGS += -DRESET_SEG_START=0xffff0000
diff --git a/debian/patches/no-force-CROSS_COMPILE-powerpc.diff b/debian/patches/no-force-CROSS_COMPILE-powerpc.diff
new file mode 100644 (file)
index 0000000..f4ec66e
--- /dev/null
@@ -0,0 +1,15 @@
+Index: u-boot/arch/powerpc/config.mk
+===================================================================
+--- u-boot.orig/arch/powerpc/config.mk
++++ u-boot/arch/powerpc/config.mk
+@@ -5,10 +5,6 @@
+ # SPDX-License-Identifier:    GPL-2.0+
+ #
+-ifeq ($(CROSS_COMPILE),)
+-CROSS_COMPILE := ppc_8xx-
+-endif
+-
+ CONFIG_STANDALONE_LOAD_ADDR ?= 0x40000
+ LDFLAGS_FINAL += --gc-sections
+ LDFLAGS_FINAL += --bss-plt
diff --git a/debian/patches/openrd-mmc.diff b/debian/patches/openrd-mmc.diff
new file mode 100644 (file)
index 0000000..318cdc8
--- /dev/null
@@ -0,0 +1,31 @@
+This partially depends on the kerma-sheevaplug-mvsdio patch.
+
+Updated version provided by drEagle <drEagle@DOUKKI.NET>:
+https://lists.debian.org/debian-arm/2014/07/msg00041.html
+
+Index: u-boot/board/Marvell/openrd/openrd.c
+===================================================================
+--- u-boot.orig/board/Marvell/openrd/openrd.c
++++ u-boot/board/Marvell/openrd/openrd.c
+@@ -17,6 +17,9 @@
+ #include <asm/arch/kirkwood.h>
+ #include <asm/arch/mpp.h>
+ #include "openrd.h"
++#ifdef CONFIG_MRVL_MMC
++#include <mrvl_mmc.h>
++#endif /* CONFIG_MRVL_MMC */
+ DECLARE_GLOBAL_DATA_PTR;
+@@ -159,3 +162,11 @@ void reset_phy(void)
+ #endif
+ }
+ #endif /* CONFIG_RESET_PHY_R */
++
++#ifdef CONFIG_MRVL_MMC
++int board_mmc_init(bd_t *bis)
++{
++       mrvl_mmc_init(bis);
++       return 0;
++}
++#endif /* CONFIG_MRVL_MMC */
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644 (file)
index 0000000..7b35266
--- /dev/null
@@ -0,0 +1,46 @@
+add-debian-revision-to-u-boot-version
+mipsel-native-endianness.diff
+openrd-mmc.diff
+no-error-on-set-but-unused-variables.diff
+hurd.diff
+guruplug_mvfs_and_mmc.diff
+
+wandboard/wandboard-uEnv.txt-bootz-n-fixes.patch
+wandboard/wandboard-standardized-variables
+wandboard/emulate-config_distro_bootcmd-standardization.diff
+
+ti_armv7_common-support_raw_initrd.diff
+am335x-uenv.txt.diff
+cubox-i/spl-sata-support.diff
+cubox-i/imx6-spl-support.diff
+cubox-i/cubox-i-support.diff
+cubox-i/cubox-i-raw-initrd.diff
+cubox-i/steal-board-eth-init-from-hummingboard.diff
+cubox-i/generic-board.diff
+cubox-i/cubox-i-standardize-variables.diff
+cubox-i/emulate-config_distro_bootcmd-standardization.diff
+
+n900-bootz-raw-initrd.diff
+no-force-CROSS_COMPILE-powerpc.diff
+am335x-bootscript.diff
+am335x-try-boot-from-first-partition.diff
+udoo_quad-support.patch
+mx53loco
+workaround-env-ftbfs
+
+tools-generic-builds.patch
+tools-only-in-no-dot-config-targets.diff
+
+Makefile-add-kwb-target-to-all.patch
+
+0001-Set-DCDC1-DDR3-to-1.35V-for-Beaglebone-Black.patch
+
+arndale/board-spl-rule.diff
+arndale/exynos-Enable-config_distro_defaults.h.patch
+arndale/exynos5-Use-config_distro_bootcmd.h.patch
+
+sh4-fix-linker-name-prefix.patch
+
+A20-OLinuXino-LIME2/sun7i-Add-support-for-Olimex-A20-OLinuXino-LIME2.patch
+
+BananaPro/Add-support-for-the-LeMaker-Banana-Pro.patch
diff --git a/debian/patches/sh4-fix-linker-name-prefix.patch b/debian/patches/sh4-fix-linker-name-prefix.patch
new file mode 100644 (file)
index 0000000..943db24
--- /dev/null
@@ -0,0 +1,30 @@
+Description: sh4-fix-linker-name-prefix.patch
+ u-boot currently fails to build from source on sh4 since the
+ linker name prefix defined in arch/sh/config.mk is outdated.
+ On current Debian installations, the binaries of the GNU
+ toolchain are named using the triplett scheme
+ $arch-$kernel-$toolchain. Thus, on sh4, the proper name
+ is "sh4-linux-gnu-ld" instead of "sh4-linux-ld". This
+ patch updates build configuration on sh4 to reflect that.
+
+---
+
+Origin: Debian
+Bug: (none yet)
+Bug-Debian: https://bugs.debian.org/771747
+Bug-Ubuntu: (none)
+Forwarded: (not yet)
+Reviewed-By: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
+Last-Update: 2014-12-10
+
+--- u-boot-2014.10+dfsg1.orig/arch/sh/config.mk
++++ u-boot-2014.10+dfsg1/arch/sh/config.mk
+@@ -6,7 +6,7 @@
+ #
+ ifeq ($(CROSS_COMPILE),)
+-CROSS_COMPILE := sh4-linux-
++CROSS_COMPILE := sh4-linux-gnu-
+ endif
+ CONFIG_STANDALONE_LOAD_ADDR ?= 0x8C000000
diff --git a/debian/patches/ti_armv7_common-support_raw_initrd.diff b/debian/patches/ti_armv7_common-support_raw_initrd.diff
new file mode 100644 (file)
index 0000000..785b649
--- /dev/null
@@ -0,0 +1,12 @@
+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
diff --git a/debian/patches/tools-generic-builds.patch b/debian/patches/tools-generic-builds.patch
new file mode 100644 (file)
index 0000000..e7f9bf9
--- /dev/null
@@ -0,0 +1,14 @@
+Description: Enable generic tools build
+Author: Hector Oron <zumbi@debian.org>
+
+--- u-boot-2014.10~rc2+dfsg1.orig/tools/Makefile
++++ u-boot-2014.10~rc2+dfsg1/tools/Makefile
+@@ -52,7 +52,7 @@ HOSTCFLAGS_xway-swap-bytes.o := -pedanti
+ hostprogs-y += mkenvimage
+ mkenvimage-objs := mkenvimage.o os_support.o lib/crc32.o
+-hostprogs-y += dumpimage mkimage
++hostprogs-y += dumpimage mkimage mksunxiboot kwboot
+ hostprogs-$(CONFIG_FIT_SIGNATURE) += fit_info fit_check_sign
+ FIT_SIG_OBJS-$(CONFIG_FIT_SIGNATURE) := common/image-sig.o
diff --git a/debian/patches/tools-only-in-no-dot-config-targets.diff b/debian/patches/tools-only-in-no-dot-config-targets.diff
new file mode 100644 (file)
index 0000000..044fafb
--- /dev/null
@@ -0,0 +1,21 @@
+Revert upstream commit c7ad5cbb1ef2c33883f0fa7d0455095004fd306d:
+
+    Makefile: drop "tools-only" from no-dot-config-targets
+
+This indirectly pulls in a build-dependency on libssl-dev used for FIT
+image support, and possibly GPL/OpenSSL licensing incompatibility
+issues.
+
+Index: u-boot/Makefile
+===================================================================
+--- u-boot.orig/Makefile
++++ u-boot/Makefile
+@@ -411,7 +411,7 @@ timestamp_h := include/generated/timesta
+ no-dot-config-targets := clean clobber mrproper distclean \
+                        help %docs check% coccicheck \
+-                       ubootversion backup
++                       ubootversion backup tools-only
+ config-targets := 0
+ mixed-targets  := 0
diff --git a/debian/patches/udoo_quad-support.patch b/debian/patches/udoo_quad-support.patch
new file mode 100644 (file)
index 0000000..4a1c2ab
--- /dev/null
@@ -0,0 +1,95 @@
+Description: Features and sane scripts for UDOO board
+ Enable the following features:
+  * Ext4
+  * Generic FS (load)
+  * Raw initramfs
+ Tweak scripts to:
+  * use generic "load" command to load files from FS.
+  * provide "loadzimage" macro.
+  * account for different locations of boot script file.
+Author: Michael Fladischer <FladischerMichael@fladi.at>
+Last-Update: 2014-07-01
+Forwarded: no
+
+--- a/include/configs/udoo.h
++++ b/include/configs/udoo.h
+@@ -93,6 +93,8 @@
+ #define CONFIG_GENERIC_MMC
+ #define CONFIG_BOUNCE_BUFFER
+ #define CONFIG_CMD_EXT2
++#define CONFIG_CMD_EXT4
++#define CONFIG_CMD_FS_GENERIC
+ #define CONFIG_CMD_FAT
+ #define CONFIG_DOS_PARTITION
+@@ -128,12 +130,16 @@
+               "fi\0" \
+       "mmcargs=setenv bootargs console=${console},${baudrate} " \
+               "root=${mmcroot}\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" \
++              "load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \
+       "bootscript=echo Running bootscript from mmc ...; " \
+               "source\0" \
+-      "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \
+-      "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \
++      "loadimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \
++      "loadzimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} zImage\0" \
++      "loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \
+       "mmcboot=echo Booting from mmc ...; " \
+               "run mmcargs; " \
+               "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
+@@ -175,16 +181,32 @@
+               "fi;\0"
+ #define CONFIG_BOOTCOMMAND \
+-         "mmc dev ${mmcdev}; if mmc rescan; then " \
+-                 "if run loadbootscript; then " \
+-                         "run bootscript; " \
+-                 "else " \
+-                         "if run loadimage; 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;" \
++              "if run loadbootscript; then " \
++                      "echo Running boot script ${script} ...;" \
++                      "run bootscript; " \
++              "fi;" \
++              "setenv script /boot/${script};" \
++              "if run loadbootscript; then " \
++                      "echo Running boot script ${script} ...;" \
++                      "run bootscript; " \
++              "fi;" \
++              "echo Running default loadzimage ...;" \
++              "if run loadzimage; then " \
++                      "run loadfdt;" \
++                      "run mmcboot;" \
++              "fi;" \
++      "fi;"
+ /* Miscellaneous configurable options */
+ #define CONFIG_SYS_LONGHELP
+@@ -226,6 +248,7 @@
+ #define CONFIG_OF_LIBFDT
+ #define CONFIG_CMD_BOOTZ
++#define CONFIG_SUPPORT_RAW_INITRD
+ #ifndef CONFIG_SYS_DCACHE_OFF
+ #define CONFIG_CMD_CACHE
diff --git a/debian/patches/wandboard/emulate-config_distro_bootcmd-standardization.diff b/debian/patches/wandboard/emulate-config_distro_bootcmd-standardization.diff
new file mode 100644 (file)
index 0000000..7bd581a
--- /dev/null
@@ -0,0 +1,19 @@
+Set additional variables (boot_targets, devtype, devnum, bootpart) to
+emulate config_distro_bootcmd.h so that the debian-installer
+bootscript will work.
+
+Index: u-boot/include/configs/wandboard.h
+===================================================================
+--- u-boot.orig/include/configs/wandboard.h
++++ u-boot/include/configs/wandboard.h
+@@ -236,6 +236,10 @@
+ #define CONFIG_BOOTCOMMAND \
+       "mmc dev ${mmcdev};" \
++      "setenv boot_targets mmc ; " \
++      "setenv devtype mmc ; " \
++      "setenv devnum ${mmcdev} ; " \
++      "setenv bootpart ${mmcpart} ; " \
+       "if mmc rescan; then " \
+               "echo SD/MMC found on device ${mmcdev};" \
+               "if run loadbootenv; then " \
diff --git a/debian/patches/wandboard/wandboard-standardized-variables b/debian/patches/wandboard/wandboard-standardized-variables
new file mode 100644 (file)
index 0000000..120dbad
--- /dev/null
@@ -0,0 +1,20 @@
+Adds standardized variables, fdtfile, fdt_addr_r, ramdisk_addr_r and
+kernel_addr_r.
+
+Index: u-boot/include/configs/wandboard.h
+===================================================================
+--- u-boot.orig/include/configs/wandboard.h
++++ u-boot/include/configs/wandboard.h
+@@ -131,7 +131,12 @@
+       "fdt_high=0xffffffff\0" \
+       "initrd_high=0xffffffff\0" \
+       "fdt_file=" CONFIG_DEFAULT_FDT_FILE "\0" \
++      "fdtfile=" CONFIG_DEFAULT_FDT_FILE "\0" \
+       "fdt_addr=0x18000000\0" \
++      "fdt_addr_r=0x18000000\0" \
++      "ramdiskaddr=0x13000000\0" \
++      "ramdisk_addr_r=0x13000000\0" \
++      "kernel_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \
+       "boot_fdt=try\0" \
+       "ip_dyn=yes\0" \
+       "mmcdev=" __stringify(CONFIG_SYS_MMC_ENV_DEV) "\0" \
diff --git a/debian/patches/wandboard/wandboard-uEnv.txt-bootz-n-fixes.patch b/debian/patches/wandboard/wandboard-uEnv.txt-bootz-n-fixes.patch
new file mode 100644 (file)
index 0000000..d7c1d76
--- /dev/null
@@ -0,0 +1,103 @@
+Downloaded from:
+
+  https://raw.github.com/eewiki/u-boot-patches/master/v2014.01/0001-wandboard-uEnv.txt-bootz-n-fixes.patch
+
+Modified to reduce diff with upstream:
+- keep the default bootdelay.
+- keep support for bootscripts. 
+- consistantly use "load" vs. "fatload".
+
+From d0bf1e44422e4102859d9420a8abf42c3600f500 Mon Sep 17 00:00:00 2001
+From: Robert Nelson <robertcnelson@gmail.com>
+Date: Thu, 23 Jan 2014 16:24:13 -0600
+Subject: [PATCH] wandboard: uEnv.txt, bootz, n fixes
+
+Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
+---
+ include/configs/wandboard.h | 56 +++++++++++++++++++++++++++++++--------------
+ 1 file changed, 39 insertions(+), 17 deletions(-)
+
+Index: u-boot/include/configs/wandboard.h
+===================================================================
+--- u-boot.orig/include/configs/wandboard.h
++++ u-boot/include/configs/wandboard.h
+@@ -76,6 +76,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 */
+@@ -172,12 +174,16 @@
+                       "echo '- no FWBADAPT-7WVGA-LCD-F07A-0102 display';" \
+               "fi; " \
+               "setenv bootargs ${bootargs} ${fbmem}\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" \
++              "load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \
+       "bootscript=echo Running bootscript from mmc ...; " \
+               "source\0" \
+-      "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \
+-      "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \
++      "loadimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \
++      "loadzimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} zImage\0" \
++      "loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \
+       "mmcboot=echo Booting from mmc ...; " \
+               "run mmcargs; " \
+               "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
+@@ -219,16 +225,32 @@
+               "fi;\0"
+ #define CONFIG_BOOTCOMMAND \
+-         "mmc dev ${mmcdev}; if mmc rescan; then " \
+-                 "if run loadbootscript; then " \
+-                         "run bootscript; " \
+-                 "else " \
+-                         "if run loadimage; 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;" \
++              "if run loadbootscript; then " \
++                      "echo Running boot script ${script} ...;" \
++                      "run bootscript; " \
++              "fi;" \
++              "setenv script /boot/${script};" \
++              "if run loadbootscript; then " \
++                      "echo Running boot script ${script} ...;" \
++                      "run bootscript; " \
++              "fi;" \
++              "echo Running default loadzimage ...;" \
++              "if run loadzimage; then " \
++                      "run loadfdt;" \
++                      "run mmcboot;" \
++              "fi;" \
++      "fi;"
+ /* Miscellaneous configurable options */
+ #define CONFIG_SYS_LONGHELP
+@@ -269,6 +291,7 @@
+ #define CONFIG_OF_LIBFDT
+ #define CONFIG_CMD_BOOTZ
++#define CONFIG_SUPPORT_RAW_INITRD
+ #ifndef CONFIG_SYS_DCACHE_OFF
+ #define CONFIG_CMD_CACHE
diff --git a/debian/patches/workaround-env-ftbfs b/debian/patches/workaround-env-ftbfs
new file mode 100644 (file)
index 0000000..5380758
--- /dev/null
@@ -0,0 +1,12 @@
+Index: u-boot/tools/env/fw_env.c
+===================================================================
+--- u-boot.orig/tools/env/fw_env.c
++++ u-boot/tools/env/fw_env.c
+@@ -20,6 +20,7 @@
+ #include <sys/ioctl.h>
+ #include <sys/stat.h>
+ #include <unistd.h>
++#include <linux/kconfig.h>
+ #ifdef MTD_OLD
+ # include <stdint.h>
diff --git a/debian/rules b/debian/rules
new file mode 100755 (executable)
index 0000000..86a475a
--- /dev/null
@@ -0,0 +1,85 @@
+#!/usr/bin/make -f
+
+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)
+export DEBIAN_REVISION ?= $(shell dpkg-parsechangelog --show-field Version | sed -e 's,.*+dfsg,+dfsg,')
+
+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)))
+  DEB_UBOOT_FLAGS += -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))
+
+%:
+       dh $@ --parallel
+
+override_dh_auto_build: TOOLSDIR := debian/build/tools
+override_dh_auto_build:
+       set -e; sed -n 's/^$(DEB_HOST_ARCH)[[:space:]]\+//p' debian/targets \
+           | while read subarch platform targets; do \
+               builddir=debian/build/$$platform; \
+               targets="$$targets uboot.elf" ;\
+               mkdir -p $$builddir; \
+               $(MAKE) O=$$builddir $${platform}_defconfig; \
+               $(MAKE) $(DEB_UBOOT_FLAGS) O=$$builddir all; \
+               install -m 644 $$builddir/u-boot $$builddir/uboot.elf; \
+               $(CROSS_COMPILE)strip --remove-section=.comment \
+                   $$builddir/uboot.elf; \
+               for target in $$targets; do \
+                       chmod -x $$builddir/$$target; \
+                       echo $$builddir/$$target /usr/lib/u-boot/$$platform/ \
+                               >> debian/build/targets.$$subarch; \
+               done ; \
+               case $${subarch} in \
+               sunxi) builddir=$${builddir}_FEL ;\
+                       targets="u-boot.bin spl/u-boot-spl.bin" ;\
+                       mkdir -p $$builddir ;\
+                       $(MAKE) O=$$builddir $${platform}_defconfig; \
+                       sed -i -e 's/^CONFIG_SYS_EXTRA_OPTIONS="[^"]*/&,SPL_FEL/g' $$builddir/.config ;\
+                       platform="$${platform}_FEL" ;\
+                       $(MAKE) $(DEB_UBOOT_FLAGS) O=$$builddir $$targets ; \
+                       for target in $$targets ; do \
+                               chmod -x $$builddir/$$target; \
+                               echo $$builddir/$$target /usr/lib/u-boot/$$platform/ \
+                                       >> debian/build/targets.$$subarch; \
+                       done ;; \
+               esac; \
+       done
+
+       # Avoid requirement for .config
+       mkdir -p $(TOOLSDIR)/include/config
+       touch $(TOOLSDIR)/include/config/auto.conf
+       # Load dummy config
+       make O=$(TOOLSDIR) sandbox_defconfig
+       # board-independent tools
+       $(MAKE) O=$(TOOLSDIR) $(DEB_UBOOT_FLAGS) \
+               HOSTCC=$(CROSS_COMPILE)gcc \
+               HOSTSTRIP=$(CROSS_COMPILE)strip \
+               NO_SDL=1 \
+           tools-only
+       $(MAKE) O=$(TOOLSDIR) $(DEB_UBOOT_FLAGS) \
+               HOSTCC=$(CROSS_COMPILE)gcc \
+               HOSTSTRIP=$(CROSS_COMPILE)strip \
+               NO_SDL=1 \
+           env
+       $(CROSS_COMPILE)strip --remove-section=.comment $(TOOLSDIR)/tools/env/fw_printenv
+       $(CROSS_COMPILE)strip --remove-section=.comment $(TOOLSDIR)/tools/mkimage
+       $(CROSS_COMPILE)strip --remove-section=.comment $(TOOLSDIR)/tools/kwboot
+       $(CROSS_COMPILE)strip --remove-section=.comment $(TOOLSDIR)/tools/mksunxiboot
+
+override_dh_auto_test:
+       # skip tests.
+
+override_dh_clean:
+       rm -rf debian/build/
+       dh_clean
diff --git a/debian/source/format b/debian/source/format
new file mode 100644 (file)
index 0000000..163aaf8
--- /dev/null
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/debian/source/include-binaries b/debian/source/include-binaries
new file mode 100644 (file)
index 0000000..7f449d5
--- /dev/null
@@ -0,0 +1 @@
+tools/logos/solidrun.bmp
diff --git a/debian/targets b/debian/targets
new file mode 100644 (file)
index 0000000..30a0842
--- /dev/null
@@ -0,0 +1,102 @@
+# ARCH subarch         platform        target
+# --------------------------------------------
+armel  -               dockstar        u-boot.kwb
+
+# Ian Campbell <ijc@hellion.org.uk>
+armel  -               dreamplug       u-boot.kwb
+
+# drEagle <drEagle@doukki.net>
+armel  -               guruplug        u-boot.kwb
+
+armel  -               openrd_ultimate u-boot.kwb
+
+# Vagrant Cascadian <vagrant@debian.org>, rpi B 256M
+armel  -               rpi_b           u-boot.bin
+
+# drEagle <drEagle@doukki.net>
+armel  -               sheevaplug      u-boot.kwb
+
+# Joey Hess <joeyh@debian.org>
+# Christian Kastner <debian@kvr.at>
+armhf  sunxi           A10-OLinuXino-Lime      u-boot-sunxi-with-spl.bin
+
+# Christian Kastner <debian@kvr.at>
+armhf  sunxi           A20-OLinuXino-Lime      u-boot-sunxi-with-spl.bin
+
+# Karsten Merker <merker@debian.org>
+armhf  sunxi           A20-OLinuXino-Lime2     u-boot-sunxi-with-spl.bin
+
+# Arne Ploese <aploese@gmx.de>
+armhf  sunxi           A20-OLinuXino_MICRO     u-boot-sunxi-with-spl.bin
+
+# Ian Campbell <ijc@hellion.org.uk>
+# Vagrant Cascadian <vagrant@debian.org>
+armhf  sunxi           Bananapi        u-boot-sunxi-with-spl.bin
+
+# Karsten Merker <merker@debian.org>
+armhf  sunxi           Bananapro       u-boot-sunxi-with-spl.bin
+
+# Vagrant Cascadian <vagrant@debian.org>
+armhf  sunxi           Cubieboard      u-boot-sunxi-with-spl.bin
+
+# Philip Rinn <rinni@inventati.org>
+# Ian Campbell <ijc@hellion.org.uk>
+# Karsten Merker <merker@debian.org>
+armhf  sunxi           Cubieboard2     u-boot-sunxi-with-spl.bin
+
+# Ian Campbell <ijc@hellion.org.uk>
+# Robert Nelson <robertcnelson@gmail.com>
+# Karsten Merker <merker@debian.org>
+armhf  sunxi           Cubietruck      u-boot-sunxi-with-spl.bin
+
+# Patrice Go <patgsiosisr@gmail.com>
+armhf  sunxi           Linksprite_pcDuino3     u-boot-sunxi-with-spl.bin
+
+# Vagrant Cascadian <vagrant@debian.org>
+# Andrew M.A. Cater <amacater@galactic.demon.co.uk>
+armhf  omap            am335x_boneblack u-boot.img spl/u-boot-spl.bin MLO
+
+# Robert Nelson <robertcnelson@gmail.com>
+armhf  omap            igep0020        u-boot.bin spl/u-boot-spl.bin MLO
+
+# Robert Nelson <robertcnelson@gmail.com>
+armhf  imx             mx53loco        u-boot.imx
+
+# Steve Langasek <vorlon@debian.org>, CuBox-i4
+# Vagrant Cascadian <vagrant@debian.org>, CuBox-i4
+# Rainer Dorsch <ml@bokomoko.de>, CuBox-i2u (i2u-300-d)
+armhf  imx             mx6_cubox-i     u-boot.img spl/u-boot-spl.bin SPL
+
+armhf  omap            nokia_rx51      u-boot.bin
+
+# Robert Nelson <robertcnelson@gmail.com>
+armhf  omap            omap3_beagle    u-boot.bin spl/u-boot-spl.bin MLO
+
+# Robert Nelson <robertcnelson@gmail.com>
+armhf  omap            omap4_panda     u-boot.bin spl/u-boot-spl.bin MLO
+
+# Michael Fladischer <michael@fladi.at>
+armhf  imx             udoo_quad       u-boot.imx
+
+# Robert Nelson <robertcnelson@gmail.com>
+armhf  imx             wandboard_dl    u-boot.imx
+
+# Vagrant Cascadian <vagrant@debian.org>
+armhf  imx             wandboard_quad  u-boot.imx
+
+# Robert Nelson <robertcnelson@gmail.com>
+armhf  imx             wandboard_solo  u-boot.imx
+
+# Hector Oron <zumbi@debian.org>
+armhf  imx             nitrogen6q      u-boot.imx
+
+# Ian Campbell <ijc@hellion.org.uk>
+armhf  exynos          arndale         u-boot-dtb.bin spl/arndale-spl.bin
+
+avr32  -               hammerhead      u-boot.img
+
+mips   -               qemu_mips       u-boot.bin
+
+sh4    -               r2dplus         u-boot.bin
+
+sh4    -               sh7785lcr_32bit u-boot.bin
diff --git a/debian/u-boot-exynos.install b/debian/u-boot-exynos.install
new file mode 100755 (executable)
index 0000000..e4408cf
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+debian/bin/u-boot-install-targets exynos
diff --git a/debian/u-boot-exynos.lintian-overrides b/debian/u-boot-exynos.lintian-overrides
new file mode 100644 (file)
index 0000000..7ada93f
--- /dev/null
@@ -0,0 +1,11 @@
+
+# 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-exynos [armhf]: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/arndale/uboot.elf
+
+# These bootloaders need to be statically linked.
+u-boot-exynos [armhf]: statically-linked-binary usr/lib/u-boot/arndale/uboot.elf
+
+u-boot-exynos: description-synopsis-starts-with-article
diff --git a/debian/u-boot-imx.README.Debian b/debian/u-boot-imx.README.Debian
new file mode 100644 (file)
index 0000000..6116b9c
--- /dev/null
@@ -0,0 +1,20 @@
+== Installation ==
+
+At this point, you must install U-Boot to flash yourself.
+
+MX53LOCO:
+
+ dd bs=1024 if=u-boot.imx of=/dev/sdX seek=1
+
+wandboard_quad:
+
+ dd if=/usr/lib/u-boot/wandboard_quad/u-boot.imx of=/dev/mmcblkX bs=512 seek=2
+
+mx6_cubox-i:
+
+ dd if=/usr/lib/u-boot/mx6_cubox-i/SPL of=/dev/mmcblk0 bs=1k seek=1
+ dd if=/usr/lib/u-boot/mx6_cubox-i/u-boot.img of=/dev/mmcblk0 bs=1k seek=42
+
+== U-Boot environment tools ==
+
+fw_printenv / fw_setenv read /etc/fw_env.config for configuration.
diff --git a/debian/u-boot-imx.install b/debian/u-boot-imx.install
new file mode 100755 (executable)
index 0000000..cc4eb34
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+debian/bin/u-boot-install-targets imx
diff --git a/debian/u-boot-imx.lintian-overrides b/debian/u-boot-imx.lintian-overrides
new file mode 100644 (file)
index 0000000..47b7da4
--- /dev/null
@@ -0,0 +1,23 @@
+
+# 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-imx [armhf]: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/mx53loco/uboot.elf
+u-boot-imx [armhf]: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/mx6_cubox-i/uboot.elf
+u-boot-imx [armhf]: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/udoo_quad/uboot.elf
+u-boot-imx [armhf]: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/wandboard_dl/uboot.elf
+u-boot-imx [armhf]: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/wandboard_quad/uboot.elf
+u-boot-imx [armhf]: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/wandboard_solo/uboot.elf
+u-boot-imx [armhf]: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/nitrogen6q/uboot.elf
+
+# These bootloaders need to be statically linked.
+u-boot-imx [armhf]: statically-linked-binary usr/lib/u-boot/mx53loco/uboot.elf
+u-boot-imx [armhf]: statically-linked-binary usr/lib/u-boot/mx6_cubox-i/uboot.elf
+u-boot-imx [armhf]: statically-linked-binary usr/lib/u-boot/udoo_quad/uboot.elf
+u-boot-imx [armhf]: statically-linked-binary usr/lib/u-boot/wandboard_dl/uboot.elf
+u-boot-imx [armhf]: statically-linked-binary usr/lib/u-boot/wandboard_quad/uboot.elf
+u-boot-imx [armhf]: statically-linked-binary usr/lib/u-boot/wandboard_solo/uboot.elf
+u-boot-imx [armhf]: statically-linked-binary usr/lib/u-boot/nitrogen6q/uboot.elf
+
+u-boot-imx: description-synopsis-starts-with-article
diff --git a/debian/u-boot-omap.README.Debian b/debian/u-boot-omap.README.Debian
new file mode 100644 (file)
index 0000000..0127664
--- /dev/null
@@ -0,0 +1,13 @@
+== Installation ==
+
+At this point, you must install U-Boot to flash yourself.
+
+The BeagleBone Black (am335x_boneblack) can be flashed to microSD or eMMC directly:
+
+ dd if=/usr/lib/u-boot/am335x_boneblack/MLO of=/dev/mmcblkX count=1 seek=1 conv=notrunc bs=128k
+ dd if=/usr/lib/u-boot/am335x_boneblack/u-boot.img of=/dev/mmcblkX count=2 seek=1 conv=notrunc bs=384k
+
+== U-Boot environment tools ==
+
+fw_printenv / fw_setenv read /etc/fw_env.config for configuration.
+
diff --git a/debian/u-boot-omap.install b/debian/u-boot-omap.install
new file mode 100755 (executable)
index 0000000..8a9873e
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+debian/bin/u-boot-install-targets omap
diff --git a/debian/u-boot-omap.lintian-overrides b/debian/u-boot-omap.lintian-overrides
new file mode 100644 (file)
index 0000000..0c5f416
--- /dev/null
@@ -0,0 +1,19 @@
+
+# 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-omap [armhf]: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/am335x_boneblack/uboot.elf
+u-boot-omap [armhf]: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/igep0020/uboot.elf
+u-boot-omap [armhf]: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/nokia_rx51/uboot.elf
+u-boot-omap [armhf]: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/omap3_beagle/uboot.elf
+u-boot-omap [armhf]: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/omap4_panda/uboot.elf
+
+# These bootloaders need to be statically linked.
+u-boot-omap [armhf]: statically-linked-binary usr/lib/u-boot/am335x_boneblack/uboot.elf
+u-boot-omap [armhf]: statically-linked-binary usr/lib/u-boot/igep0020/uboot.elf
+u-boot-omap [armhf]: statically-linked-binary usr/lib/u-boot/nokia_rx51/uboot.elf
+u-boot-omap [armhf]: statically-linked-binary usr/lib/u-boot/omap3_beagle/uboot.elf
+u-boot-omap [armhf]: statically-linked-binary usr/lib/u-boot/omap4_panda/uboot.elf
+
+u-boot-omap: description-synopsis-starts-with-article
diff --git a/debian/u-boot-sunxi.README.Debian b/debian/u-boot-sunxi.README.Debian
new file mode 100644 (file)
index 0000000..42c8b8b
--- /dev/null
@@ -0,0 +1,11 @@
+== Installation ==
+
+At this point, you must install U-Boot to flash yourself.
+
+Many sunxi boards (Bananapi, Cubieboard) can be written to SD directly:
+
+ dd if=/usr/lib/u-boot/BOARD/u-boot-sunxi-with-spl.bin of=/dev/mmcblkX bs=1024 seek=8
+
+== U-Boot environment tools ==
+
+fw_printenv / fw_setenv read /etc/fw_env.config for configuration.
diff --git a/debian/u-boot-sunxi.install b/debian/u-boot-sunxi.install
new file mode 100755 (executable)
index 0000000..014df87
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+debian/bin/u-boot-install-targets sunxi
diff --git a/debian/u-boot-sunxi.lintian-overrides b/debian/u-boot-sunxi.lintian-overrides
new file mode 100644 (file)
index 0000000..3591e93
--- /dev/null
@@ -0,0 +1,29 @@
+
+# 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-sunxi [armhf]: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/A10-OLinuXino-Lime/uboot.elf
+u-boot-sunxi [armhf]: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/A20-OLinuXino-Lime/uboot.elf
+u-boot-sunxi [armhf]: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/A20-OLinuXino-Lime2/uboot.elf
+u-boot-sunxi [armhf]: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/A20-OLinuXino_MICRO/uboot.elf
+u-boot-sunxi [armhf]: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/Bananapi/uboot.elf
+u-boot-sunxi [armhf]: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/Bananapro/uboot.elf
+u-boot-sunxi [armhf]: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/Cubieboard/uboot.elf
+u-boot-sunxi [armhf]: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/Cubieboard2/uboot.elf
+u-boot-sunxi [armhf]: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/Cubietruck/uboot.elf
+u-boot-sunxi [armhf]: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/Linksprite_pcDuino3/uboot.elf
+
+# These bootloaders need to be statically linked.
+u-boot-sunxi [armhf]: statically-linked-binary usr/lib/u-boot/A10-OLinuXino-Lime/uboot.elf
+u-boot-sunxi [armhf]: statically-linked-binary usr/lib/u-boot/A20-OLinuXino-Lime/uboot.elf
+u-boot-sunxi [armhf]: statically-linked-binary usr/lib/u-boot/A20-OLinuXino-Lime2/uboot.elf
+u-boot-sunxi [armhf]: statically-linked-binary usr/lib/u-boot/A20-OLinuXino_MICRO/uboot.elf
+u-boot-sunxi [armhf]: statically-linked-binary usr/lib/u-boot/Bananapi/uboot.elf
+u-boot-sunxi [armhf]: statically-linked-binary usr/lib/u-boot/Bananapro/uboot.elf
+u-boot-sunxi [armhf]: statically-linked-binary usr/lib/u-boot/Cubieboard/uboot.elf
+u-boot-sunxi [armhf]: statically-linked-binary usr/lib/u-boot/Cubieboard2/uboot.elf
+u-boot-sunxi [armhf]: statically-linked-binary usr/lib/u-boot/Cubietruck/uboot.elf
+u-boot-sunxi [armhf]: statically-linked-binary usr/lib/u-boot/Linksprite_pcDuino3/uboot.elf
+
+u-boot-sunxi: description-synopsis-starts-with-article
diff --git a/debian/u-boot-tools.install b/debian/u-boot-tools.install
new file mode 100755 (executable)
index 0000000..42c06a8
--- /dev/null
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+builddir=debian/build/tools
+for tool in mkimage mksunxiboot kwboot env/fw_printenv ; do
+    echo ${builddir}/tools/${tool} /usr/bin/
+done
+
+echo doc/mkimage.1 /usr/share/man/man1/
+
+# manpages
+echo debian/manpages/fw_printenv.8 /usr/share/man/man8/
+echo debian/manpages/fw_setenv.8 /usr/share/man/man8/
+
+# example env configs
+for env_config in debian/env-configs/*.config ; do
+       echo ${env_config} /usr/share/doc/u-boot-tools/examples/
+done
diff --git a/debian/u-boot-tools.links b/debian/u-boot-tools.links
new file mode 100644 (file)
index 0000000..92f5a6c
--- /dev/null
@@ -0,0 +1 @@
+/usr/bin/fw_printenv /usr/bin/fw_setenv
diff --git a/debian/u-boot.README.Debian b/debian/u-boot.README.Debian
new file mode 100644 (file)
index 0000000..943b53d
--- /dev/null
@@ -0,0 +1,25 @@
+== 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
+
+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.
+
diff --git a/debian/u-boot.install b/debian/u-boot.install
new file mode 100755 (executable)
index 0000000..aff6d5d
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+debian/bin/u-boot-install-targets -
diff --git a/debian/u-boot.lintian-overrides b/debian/u-boot.lintian-overrides
new file mode 100644 (file)
index 0000000..8b25987
--- /dev/null
@@ -0,0 +1,29 @@
+
+# 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 [armel]: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/dockstar/uboot.elf
+u-boot [armel]: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/dreamplug/uboot.elf
+u-boot [armel]: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/guruplug/uboot.elf
+u-boot [armel]: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/openrd_ultimate/uboot.elf
+u-boot [armel]: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/rpi_b/uboot.elf
+u-boot [armel]: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/sheevaplug/uboot.elf
+u-boot [avr32]: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/hammerhead/uboot.elf
+u-boot [mips]: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/qemu_mips/uboot.elf
+u-boot [sh4]: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/r2dplus/uboot.elf
+u-boot [sh4]: arch-dependent-file-not-in-arch-specific-directory usr/lib/u-boot/sh7785lcr_32bit/uboot.elf
+
+# These bootloaders need to be statically linked.
+u-boot [armel]: statically-linked-binary usr/lib/u-boot/dockstar/uboot.elf
+u-boot [armel]: statically-linked-binary usr/lib/u-boot/dreamplug/uboot.elf
+u-boot [armel]: statically-linked-binary usr/lib/u-boot/guruplug/uboot.elf
+u-boot [armel]: statically-linked-binary usr/lib/u-boot/openrd_ultimate/uboot.elf
+u-boot [armel]: statically-linked-binary usr/lib/u-boot/rpi_b/uboot.elf
+u-boot [armel]: statically-linked-binary usr/lib/u-boot/sheevaplug/uboot.elf
+u-boot [avr32]: statically-linked-binary usr/lib/u-boot/hammerhead/uboot.elf
+u-boot [mips]: statically-linked-binary usr/lib/u-boot/qemu_mips/uboot.elf
+u-boot [sh4]: statically-linked-binary usr/lib/u-boot/r2dplus/uboot.elf
+u-boot [sh4]: statically-linked-binary usr/lib/u-boot/sh7785lcr_32bit/uboot.elf
+
+u-boot: description-synopsis-starts-with-article
diff --git a/debian/watch b/debian/watch
new file mode 100644 (file)
index 0000000..888a2bc
--- /dev/null
@@ -0,0 +1,4 @@
+version=3
+
+opts=uversionmangle=s/-rc/~rc/g,dversionmangle=s/\+dfsg.*//g \
+http://ftp.denx.de/pub/u-boot/ u-boot-([\d\.].*)\.tar\.bz2
diff --git a/tools/logos/solidrun.bmp b/tools/logos/solidrun.bmp
new file mode 100644 (file)
index 0000000..93db1f8
Binary files /dev/null and b/tools/logos/solidrun.bmp differ