From: Vagrant Cascadian Date: Tue, 7 Apr 2015 20:42:30 +0000 (+0000) Subject: Import u-boot_2014.10+dfsg1-5.debian.tar.xz X-Git-Tag: archive/raspbian/2016.11+dfsg1-3+rpi1~1^2^2~37^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=f4dac5f773fcd45eef5dfe116e65f8e380182fc5;p=u-boot.git Import u-boot_2014.10+dfsg1-5.debian.tar.xz [dgit import tarball u-boot 2014.10+dfsg1-5 u-boot_2014.10+dfsg1-5.debian.tar.xz] --- f4dac5f773fcd45eef5dfe116e65f8e380182fc5 diff --git a/debian/bin/u-boot-install-targets b/debian/bin/u-boot-install-targets new file mode 100755 index 000000000..6f55fccc6 --- /dev/null +++ b/debian/bin/u-boot-install-targets @@ -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 index 000000000..b6c17c184 --- /dev/null +++ b/debian/bin/update-lintian-overrides @@ -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}<> ${overrides} + + cat >>${overrides}<> ${overrides} + + cat >>${overrides}< 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Sun, 17 Nov 2013 00:09:32 -0800 + +u-boot (2013.10-2) unstable; urgency=low + + * debian/rules: + - Switch back to explicitly building the specified target. + - Allow building multiple targets per platform. + * debian/targets: + - Build the spl/u-boot-spl.bin target on several armhf platforms, which + generates the MLO file. + + -- Vagrant Cascadian Mon, 21 Oct 2013 11:33:01 -0700 + +u-boot (2013.10-1) unstable; urgency=low + + * New upstream version (Closes: #667680, #726699). + - Update mipsel-native-endianness.diff + * debian/rules: + - Remove various tools/* files on clean target. + - Build each platform target and install MLO file if present. + (Closes: #687562). + - Support parallel builds using DEB_BUILD_OPTIONS=parallel=N. + * Enable BeagleBone Black and Wandboard platforms. + * Add patch to support uEnv.txt and directly loading zimage for Wandboard. + * Include env configs u-boot-tools examples (Closes: #631659, #636214). + * Only build u-boot on architectures which generate images (Closes: #635050). + * Drop i386 builds of u-boot, as the only target (eNET) was removed upstream. + * debian/control: Add myself to uploaders. + + -- Vagrant Cascadian Sun, 20 Oct 2013 10:23:55 -0700 + +u-boot (2013.01.01-4) unstable; urgency=low + + * Upload to unstable. + * Drop transitional packages uboot-envtools and uboot-mkimage. + + -- Clint Adams Thu, 09 May 2013 21:41:25 -0400 + +u-boot (2013.01.01-3) experimental; urgency=low + + * Disable unnecessary JFFS2 on GuruPlug + * Disable MMC on GuruPlug, devices are not detected, + they show up as USB devices instead + + -- Micah Anderson Mon, 25 Mar 2013 22:56:32 -0400 + +u-boot (2013.01.01-2) experimental; urgency=low + + * More properly enable MMC on GuruPlug. + * Use new Efika target names. + * Bump to Standards-Version 3.9.4. + + -- Clint Adams Sun, 24 Mar 2013 21:59:03 -0400 + +u-boot (2013.01.01-1) experimental; urgency=low + + * New upstream version. closes: #699232. + - Drop strip-env-tools.diff (merged). + - Update kerma-sheevaplug-mvsdio.diff. + - Update mipsel-native-endianness.diff + * Enable CONFIG_SYS_MVFS and CONFIG_CMD_MMC for GuruPlug. + + -- Clint Adams Thu, 21 Mar 2013 14:21:33 -0400 + +u-boot (2012.04.01-2) unstable; urgency=low + + * Remove code duplication in kerma-sheevaplug-mvsdio.diff. + closes: #674230. + + -- Clint Adams Thu, 31 May 2012 21:04:49 -0400 + +u-boot (2012.04.01-1) unstable; urgency=low + + * New upstream version. + - Update mipsel-native-endianness.diff. + - Update no-error-on-set-but-unused-variables.diff (partially merged). + - Drop kirkwood_spi-irq_mask.diff (merged). + - Drop kirkwood-disable-l2c.diff (merged). + + -- Clint Adams Tue, 01 May 2012 18:07:19 -0400 + +u-boot (2011.12-3) unstable; urgency=low + + [ Jonathan Nieder ] + * kirkwood: disable L2 cache before Linux boot; thanks to Ian Campbell. + closes: #658904 + + [ Loïc Minier ] + * Add patch to strip env tools; sent to upstream mailing-list. + + -- Loïc Minier Sun, 11 Mar 2012 16:12:50 +0100 + +u-boot (2011.12-2) unstable; urgency=low + + [ Loïc Minier ] + * Build u-boot.imx for efikasb on armhf + + [ Clint Adams ] + * Patch from Ian Campbell to fix Dreamplug breakage. closes: #655102. + + -- Clint Adams Sun, 08 Jan 2012 15:11:03 -0500 + +u-boot (2011.12-1) unstable; urgency=low + + * New upstream version. + - Drop build-timestamp_autogenerated.h-without-config.patch (merged). + - Drop ublimage-NAND-block-size-isn-t-set-at-build-time.patch (merged). + - Update kerma-sheevaplug-mvsdio.diff + - Update mipsel-native-endianness.diff + - Drop dreamplug-v8.patch (merged). + + -- Clint Adams Mon, 02 Jan 2012 17:49:39 -0500 + +u-boot (2011.09-2) unstable; urgency=low + + * Patch from Pino Toscano to build on the Hurd. + closes: #648295. + * Drop gr_xc3s_1500 target. + * Add build-arch and build-indep targets to debian/rules. + + -- Clint Adams Tue, 15 Nov 2011 23:53:01 -0500 + +u-boot (2011.09-1) unstable; urgency=low + + [ Hector Oron ] + * Enable MX53LOCO platform. + * Update lintian overrides. + + [ Loïc Minier ] + * Fix FTBFS on amd64 and allow `make tools` to succeed without + config. + + [ Clint Adams ] + * New upstream version. + - Update kerma-sheevaplug-mvsdio.diff. + - Drop panda-default-console.diff (refactored). + - Replace dreamplug patches with Jason's v8. + * Add Buffalo Linkstation Mini env config from Benjamin Cama. + + -- Clint Adams Fri, 30 Sep 2011 21:22:23 -0400 + +u-boot (2011.06-4) unstable; urgency=low + + * Increase the USB non-bulk timeout by an order of magnitude. + May fix #635774. + + -- Clint Adams Sat, 06 Aug 2011 13:42:52 -0400 + +u-boot (2011.06-3) unstable; urgency=low + + * Add DreamPlug support. + + -- Clint Adams Sun, 24 Jul 2011 09:35:32 -0400 + +u-boot (2011.06-2) unstable; urgency=low + + * Use -Wno-error=unused-but-set-variable on i386. + + -- Clint Adams Sat, 02 Jul 2011 22:14:44 -0400 + +u-boot (2011.06-1) unstable; urgency=low + + * New upstream version. + * Fix i386 and mipsel builds. + + -- Clint Adams Sat, 02 Jul 2011 19:25:28 -0400 + +u-boot (2011.06~rc3-1) unstable; urgency=low + + * New upstream version. + + -- Clint Adams Sat, 02 Jul 2011 15:50:46 -0400 + +u-boot (2011.06~rc2-2) unstable; urgency=low + + * Fix mipsel endianness problem again. + * Try building gr_xc3s_1500 on sparc. + + -- Clint Adams Sat, 18 Jun 2011 10:13:53 -0400 + +u-boot (2011.06~rc2-1) unstable; urgency=low + + * New upstream version. + * Fix tools config selection. + + -- Clint Adams Tue, 14 Jun 2011 20:53:07 -0400 + +u-boot (2011.06~rc1-1) unstable; urgency=low + + * New upstream version. + - Update mipsel-native-endianness.diff + - Drop Drop-config.h-include-in-tools-imximage.h.diff (merged). + - Drop openrd-client-and-ultimate.diff (merged). + - Update openrd-mmc.diff (formerly openrd-mmc-mtd-fat.diff). + - Drop eNET-monitor_flash_len.diff (merged). + - Update snapshot.commit to 2011.06-rc1. + - Use the first target for each arch to build the tools, or + fake it on the other architectures. + * Only build efikamx image on armhf. + + -- Clint Adams Sat, 21 May 2011 11:04:30 -0400 + +u-boot (2011.03-6) unstable; urgency=low + + * Bump to Standards-Version 3.9.2. + * Tweak the u-boot-tools description. + * Drop igep0020, omap3_beagle, and omap4_panda targets from + armel; they are available on armhf. + + -- Clint Adams Tue, 26 Apr 2011 16:11:24 -0400 + +u-boot (2011.03-5) unstable; urgency=low + + [ Sebastian Reichel ] + * Add Pandaboard target. closes: #624123 + * New patch to change default console on Pandaboard. + + -- Clint Adams Mon, 25 Apr 2011 15:36:16 -0400 + +u-boot (2011.03-4) unstable; urgency=low + + * Enable FAT, SD/MMC, MTD, JFFS, UBIFS support on OpenRD boards. + + -- Clint Adams Wed, 13 Apr 2011 18:05:36 -0400 + +u-boot (2011.03-3) unstable; urgency=low + + * Actually pass the right arch_number for OpenRD-Ultimate. + + -- Clint Adams Tue, 12 Apr 2011 14:28:20 -0400 + +u-boot (2011.03-2) unstable; urgency=low + + * Fix i386 FTBFS with eNET-monitor_flash_len.diff + * Add patch for OpenRD-Client and OpenRD-Ultimate. + * Drop openrd_base target and add openrd_ultimate target. + + -- Clint Adams Tue, 05 Apr 2011 15:56:43 -0400 + +u-boot (2011.03-1) unstable; urgency=low + + [ Loïc Minier ] + * Only try to build env tools when Linux MTD headers are present. + closes: #619673. + + [ Clint Adams ] + * New upstream version. + - Drop fix-definition-of-global_data-struct.diff (now upstream). + - Drop EfikaMX-switch-to-MACH_TYPE_MX51_EFIKAMX.diff (upstream now). + - Drop sh-sh7785lcr-Fix-out-of-tree-building.diff (upstream now). + - Drop MIPS-dbau1x00-Remove-unused-flash-driver-stub.diff (upstream now). + - Drop x86-Align-config.mk-and-linker-scripts-with-other-ar.diff + (upstream now). + - Update snapshot.commit to 2011.03 + + -- Clint Adams Fri, 01 Apr 2011 10:30:46 -0400 + +u-boot (2011.03~rc1-4) experimental; urgency=low + + * Add patch x86-Align-config.mk-and-linker-scripts-with-other-ar. + From upstream mailing-list; fixes x86 build (eNET). + + -- Loïc Minier Wed, 09 Feb 2011 14:51:01 +0100 + +u-boot (2011.03~rc1-3) experimental; urgency=low + + * Add debian/source/local-options + - unapply-patches: avoids committing patched tree after a build + - abort-on-upstream-changes: avoids creating a debian-changes-* patch + when building from a dirty tree + * Add patch MIPS-dbau1x00-Remove-unused-flash-driver-stub, + from u-boot-mipsel.git 17a990b55008fd79636e4880d9d10b7172ca87ce and also + sent to the upstream mailing-list; fixes build of dbau1x00 board by + removing board/dbau1x00/flash.c entirely, and hence fixes the build of + u-boot on mipsel. + + -- Loïc Minier Tue, 08 Feb 2011 16:49:05 +0100 + +u-boot (2011.03~rc1-2) experimental; urgency=low + + * New patch sh-sh7785lcr-Fix-out-of-tree-building; from upstream + e72f46787f44c1104a8df18511ab230b6072a1f0; fixes Debian sh4 build; thanks + Nobuhiro Iwamatsu; closes: #611873. + + -- Loïc Minier Mon, 07 Feb 2011 17:20:16 +0100 + +u-boot (2011.03~rc1-1) experimental; urgency=low + + * dpkg-shlibdeps usr/bin/* rather than just mkimage. + * uboot-mkimage's Section is utils. + * Allow overriding CROSS_COMPILE. + * New upstream release candidate. + - Merge commit v2011.03-rc1 + - Update snapshot.commit to 2011.03-rc1 + * Add EfikaMX support. + - Add patch EfikaMX-switch-to-MACH_TYPE_MX51_EFIKAMX from the upstream + mailing-list; fixes build on EfikaMX (EfikaMX: switch to + MACH_TYPE_MX51_EFIKAMX) + - Add patch Drop-config.h-include-in-tools-imximage.h from the upstream + mailing-list; fixes tools-all build of imximage.c. + - Build u-boot.imx for efikamx on armel. + * Refresh patch kerma-sheevaplug-mvsdio to fix fuzz. + + -- Loïc Minier Thu, 03 Feb 2011 13:13:14 +0100 + +u-boot (2010.12-2) unstable; urgency=low + + * Avoid calling dpkg-architecture if DEB_HOST_ARCH is set. + * Misc refactoring of debian/rules. + - Split per architecture list of platform and targets into + debian/targets. + - Actually use INSTALL_FILE/INSTALL_DIR/INSTALL_PROGRAM. + - Add support for cross-builds; these will currently lack tools. + - Build board-specific u-boot files in a separate build dir from the + generic tools + * Fix handling of -Wl,foo LDFLAGS; the upstream build passes LDFLAGS + directly to ld instead of calling gcc for linking; so instead of passing + -Wl,foo in LDFLAGS as in automake builds, one should set LDFLAGS to foo + directly; add a snippet to strip -Wl, from LDFLAGS; alternatively, we + could do as in other special packages like the kernel and simply unset + LDFLAGS entirely; closes: #607613. + * Install and compress upstream mkimage manpage; based on a patch by + Marcin Juszkiewicz. + * Add a dummy uboot-mkimage package for upgrades from squeeze; based on a + patch by Marcin Juszkiewicz; closes: #607618. + * Add new patch, fix-definition-of-global_data-struct, from the upstream + x86 maintainer; fixes build of eNET board which breaks u-boot's build on + i386; closes: #608801. + * Workaround an upstream bug in distclean by removing include/asm/proc and + /arch explicitly for now; patch was sent upstream. + * Don't repeat Section: in binary package. + * Add myself to Uploaders. + * Split tools in u-boot-tools package. + * Drop board-specific tools; these are too dangerous; only ship mkimage for + now. + * Add igep0020 and omap3_beagle builds on armel + * Update snapshot.commit to the 2010.12 release contents; this avoids a + pointless diff with the tarball. + + -- Loïc Minier Mon, 17 Jan 2011 22:43:41 +0100 + +u-boot (2010.12-1) unstable; urgency=low + + * New upstream version. + * Install more tools in preparation for splitting off a + u-boot-tools binary package. + + -- Clint Adams Tue, 28 Dec 2010 17:03:44 -0500 + +u-boot (2010.12~rc3-1) unstable; urgency=low + + * New upstream release candidate. + * Add dockstar target. + + -- Clint Adams Sun, 19 Dec 2010 09:45:42 -0500 + +u-boot (2010.12~rc2-1) unstable; urgency=low + + * New upstream release candidate. + * Add openrd_base target. + + -- Clint Adams Sat, 04 Dec 2010 15:32:38 -0500 + +u-boot (2010.09-2) unstable; urgency=low + + * Enable ext2 commands on GuruPlug. + * Ship ELF files (for loading into RAM with OpenOCD). + + -- Clint Adams Sat, 20 Nov 2010 18:20:40 -0500 + +u-boot (2010.09-1) unstable; urgency=low + + * New upstream release. + + -- Clint Adams Wed, 29 Sep 2010 00:06:25 -0400 + +u-boot (2010.09~rc2-1) unstable; urgency=low + + * New upstrem release candidate. + + -- Clint Adams Sun, 19 Sep 2010 14:20:52 -0400 + +u-boot (2010.09~rc1-2) unstable; urgency=low + + * Add patch from Gérald Kerma to add Sheevaplug mvsata support. + * Add patch from Gérald Kerma to add Sheevaplug mvsdio support. + + -- Clint Adams Sun, 12 Sep 2010 11:48:22 -0400 + +u-boot (2010.09~rc1-1) unstable; urgency=low + + * New upstream release candidate. + - Drop guruplug-miiphy_reset.diff. + - Update mipsel-native-endianness.diff. + - Drop sh4-native-compile.diff. + * Bump to Standards-Version 3.9.1. + + -- Clint Adams Sat, 11 Sep 2010 00:43:04 -0400 + +u-boot (2010.06-1) unstable; urgency=low + + * New upstream version. + + -- Clint Adams Sat, 03 Jul 2010 13:49:46 -0400 + +u-boot (2010.06~rc3-1) unstable; urgency=low + + * New upstream version. + * Fix sh4-native-compile.diff to not break sh64, thanks to Paul + Mundt. + * Ship mkimage, conflict/replace uboot-mkimage, build on all + architectures. + + -- Clint Adams Fri, 25 Jun 2010 14:49:06 -0400 + +u-boot (2010.06~rc2-1) unstable; urgency=medium + + * Add sh4-native-compile.diff from Aurelien Jarno. closes: #586026. + * New upstream version. + - Drop marvell-machtypes.diff. + + -- Clint Adams Tue, 15 Jun 2010 21:37:26 -0400 + +u-boot (2010.06~rc1-6) unstable; urgency=medium + + * Add guruplug-miiphy_reset.diff. + * Clean between targets. closes: #585570. + + -- Clint Adams Fri, 11 Jun 2010 21:57:31 -0400 + +u-boot (2010.06~rc1-5) unstable; urgency=low + + * Replace mipsel-native-endianness.diff with patch adapted + from a 2008 mailing list posting by Shinya Kuribayashi. + + -- Clint Adams Fri, 04 Jun 2010 20:08:27 -0400 + +u-boot (2010.06~rc1-4) unstable; urgency=low + + * Add r2dplus target for sh4. + * mipsel-native-endianness.diff: don't force endianness on mips/mipsel + + -- Clint Adams Thu, 03 Jun 2010 19:32:50 -0400 + +u-boot (2010.06~rc1-3) unstable; urgency=low + + * Fix mipsel typo. + * Apply patch from Nobuhiro Iwamatsu to change sh4 target board + from espt to sh7785lcr_32bit. closes: #584192. + + -- Clint Adams Wed, 02 Jun 2010 08:25:04 -0400 + +u-boot (2010.06~rc1-2) unstable; urgency=low + + * Produce u-boot.bin on i386. + * Switch mipsel target to AMD DBAu1100. + * Add marvell-machtypes.diff. + + -- Clint Adams Mon, 31 May 2010 22:09:29 -0400 + +u-boot (2010.06~rc1-1) unstable; urgency=low + + * Add Vcs-Git and Vcs-Browser headers. + * Add GuruPlug target (armel). + * Switch mipsel target to TB0229. + * Add watch file. + * Update README.Debian for SheevaPlug and GuruPlug. + + -- Clint Adams Mon, 31 May 2010 19:29:40 -0400 + +u-boot (2010.03-1) unstable; urgency=low + + * Initial packaging. closes: #583605. + + -- Clint Adams Fri, 28 May 2010 16:20:39 -0400 diff --git a/debian/compat b/debian/compat new file mode 100644 index 000000000..f11c82a4c --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +9 \ No newline at end of file diff --git a/debian/control b/debian/control new file mode 100644 index 000000000..143322737 --- /dev/null +++ b/debian/control @@ -0,0 +1,97 @@ +Source: u-boot +Section: admin +Priority: optional +Maintainer: Vagrant Cascadian +Uploaders: Loïc Minier , Clint Adams +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 index 000000000..6188376ed --- /dev/null +++ b/debian/copyright @@ -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 + 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 + 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. / 2006-2007 Nokia Corporation + 2005, Seagate Technology LLC / 2008 Stefan Roese , 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. + 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 / 2008 Sascha Hauer, Pengutronix / 2009 Ilya Yanok, + 2006 Thomas Gleixner + 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. / 2010, by Texas Instruments + 2008,2009 STMicroelectronics / 2010 Joakim Axelsson / 2009 Alessandro Rubini + 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 + 2008 Atmel Corporation / 2013 Jagannadha Sutradharudu Teki, Xilinx Inc + 2008 by Texas Instruments / 2008 Mentor Graphics Corporation + 2008 Dave S.r.l. + 2008 Extreme Engineering Solutions, Inc + 2008 Freescale Semiconductor, Inc + 2008 Jean-Christophe PLAGNIOL-VILLARD / 2004-2007 ARM Limited + 2008 Kim B. Heino / 2009 + 2008 Qstreams Networks, Inc + 2008 Samsung Electronics / 2008-2009 Stefan Roese , DENX Software Engineering + 2008 STMicroelectronics / 2010 Joakim Axelsson / 2009 Alessandro Rubini + 2008 Yoshihiro Shimoda + 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 + 2009 MontaVista Software, Inc. / 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 + 2010, Thomas Chou + 2010 Thomas Chou / 2008-2009 Avionic Design GmbH / 2007-2008 Avionic Design Development GmbH + 2010 Thomas Chou / 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 + 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 + 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 + 2006 David Gibson, IBM Corporation + 2012 Kim Phillips, Freescale Semiconductor + 2010-2013 Freescale Semiconductor, Inc + 2013 Marek Vasut + 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 + 2009, Texas Instruments, Incorporated +License: GPL-2+ + +Files: debian/* +Copyright: Clint Adams + Joey Hess + Marc Singer + Per Andersson + Vagrant Cascadian + Loïc Minier +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 + 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. +License: GPL-2 + +Files: net/dns.c + include/slre.h + lib/slre.c +Copyright: 2008 Pieter Voorthuijsen + 2004-2005 Sergey Lyubka + 2009 Robin Getz ] +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 + * . 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 index 000000000..1aedc9615 --- /dev/null +++ b/debian/env-configs/efikamx.config @@ -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 index 000000000..8b30cbe33 --- /dev/null +++ b/debian/env-configs/guruplug.config @@ -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 index 000000000..83b6c6ac5 --- /dev/null +++ b/debian/env-configs/kurobox_pro.config @@ -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 index 000000000..92ce9de2d --- /dev/null +++ b/debian/env-configs/linkstation-mini.config @@ -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 index 000000000..83b6c6ac5 --- /dev/null +++ b/debian/env-configs/linkstation_pro_live.config @@ -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 index 000000000..abd8bcb50 --- /dev/null +++ b/debian/env-configs/lsmipsel.config @@ -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 index 000000000..4ccc5769c --- /dev/null +++ b/debian/env-configs/lsppchg.config @@ -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 index 000000000..7fd45e398 --- /dev/null +++ b/debian/env-configs/openmoko_gta01.config @@ -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 index 000000000..1faa2f1f8 --- /dev/null +++ b/debian/env-configs/openmoko_gta02.config @@ -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 index 000000000..181c54b8c --- /dev/null +++ b/debian/env-configs/qnap_ts101.config @@ -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 index 000000000..4024e080c --- /dev/null +++ b/debian/env-configs/qnap_ts109-209.config @@ -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 index 000000000..98505a933 --- /dev/null +++ b/debian/env-configs/qnap_ts119-219.config @@ -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 index 000000000..5bbd38d7f --- /dev/null +++ b/debian/env-configs/sheevaplug.config @@ -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 index 000000000..9ffdf9f28 --- /dev/null +++ b/debian/env-configs/udoo_quad.config @@ -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 index 000000000..a288852bc --- /dev/null +++ b/debian/manpages/fw_printenv.8 @@ -0,0 +1,31 @@ +.\" Copyright © 2008 Per Andersson +.\" This man page is covered by the GNU General Public License (GPLv2 or higher). +.TH fw_printenv 8 "August 2008" "Debian Project" "" + +.SH NAME +fw_printenv \- Tool for printing environment for the bootloader U-Boot + +.SH SYNOPSIS +fw_printenv [ \fB\-n\fP \fIname\fP ] [ \fIname\fP \fI...\fP ] + +.SH DESCRIPTION +\fIfw_printenv\fP is a simple tool for printing the environment for the +bootloader U-Boot. All environment variables matching the names given as +arguments are shown. If \fIfw_printenv\fP is called without any arguments the +entire environment is printed. + +.SH OPTIONS +.IP \fB\-n\fP +If the \fBn\fP flag is set \fIfw_printenv\fP only prints the value of the supplied variable \fIname\fP. + +.SH FILES +.IP \fB/etc/fw_env.config\fP +Configuration file for fw_printenv. + +.SH SEE ALSO +fw_setenv(8) + +.SH AUTHOR +Wolfgang Denk +.PP +This manual page was written by Per Andersson diff --git a/debian/manpages/fw_setenv.8 b/debian/manpages/fw_setenv.8 new file mode 100644 index 000000000..5a5114ab1 --- /dev/null +++ b/debian/manpages/fw_setenv.8 @@ -0,0 +1,27 @@ +.\" Copyright © 2008 Per Andersson +.\" This man page is covered by the GNU General Public License (GPLv2 or higher). +.TH fw_setenv 8 "August 2008" "Debian Project" "" + +.SH NAME +fw_setenv \- Tool for modifying the environment for the bootloader U\-Boot + +.SH SYNOPSIS +fw_setenv \fIname\fP [ \fIvalue\fP ] + +.SH DESCRIPTION +\fIfw_setenv\fP is a simple tool for modifying either the environment for the +bootloader U-Boot. If the variable already is set in the environment it is +updated, otherwise it is created and set. If only one argument is given, +variable name, the corresponding variable is deleted. + +.SH FILES +.IP \fB/etc/fw_env.config\fP +Configuration file for fw_setenv. + +.SH SEE ALSO +fw_printenv(8) + +.SH AUTHOR +Wolfgang Denk +.PP +This manual page was written by Per Andersson 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 index 000000000..dbc9ccc61 --- /dev/null +++ b/debian/patches/0001-Set-DCDC1-DDR3-to-1.35V-for-Beaglebone-Black.patch @@ -0,0 +1,48 @@ +From f7a841a0c8eab661fa06657ff6bf732041e4f07f Mon Sep 17 00:00:00 2001 +From: Vagrant Cascadian +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 : + + 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 index 000000000..1b188158f --- /dev/null +++ b/debian/patches/A20-OLinuXino-LIME2/sun7i-Add-support-for-Olimex-A20-OLinuXino-LIME2.patch @@ -0,0 +1,99 @@ +From d71910fc509933fab881f85ae244ea95525a41d6 Mon Sep 17 00:00:00 2001 +From: Iain Paton +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 +Signed-off-by: Hans de Goede +--- + 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 + S: Maintained + F: board/sunxi/dram_a20_olinuxino_l.c + F: configs/A20-OLinuXino-Lime_defconfig ++ ++A20-OLINUXINO-LIME2 BOARD ++M: Iain Paton ++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 ++#include ++ ++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 index 000000000..6cd7624db --- /dev/null +++ b/debian/patches/ARM-OMAP3-Revamp-IGEP-default-configuration.diff @@ -0,0 +1,89 @@ +From ebdb222b0d65bcc050e3f0fd6e97faf17fb3eae4 Mon Sep 17 00:00:00 2001 +Sender: Loïc Minier +From: Enric Balletbo i Serra +Date: Wed, 23 Feb 2011 14:35:41 +0100 +Subject: [PATCH] ARM: OMAP3: Revamp IGEP default configuration +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The default IGEP configuration doesn't do anything useful; using some +boot.scr search logic like BeagleBoard is much more useful. + +Signed-off-by: Loïc Minier +--- + include/configs/igep0020.h | 55 ++++++++++++++++++++++++++++++++++++++++--- + 1 files changed, 51 insertions(+), 4 deletions(-) + +diff --git a/include/configs/igep0020.h b/include/configs/igep0020.h +index c19ecc0..2466562 100644 +--- a/include/configs/igep0020.h ++++ b/include/configs/igep0020.h +@@ -130,13 +130,60 @@ + #define CONFIG_TWL4030_POWER 1 + + /* Environment information */ +-#define CONFIG_BOOTCOMMAND \ +- "mmc init 0 ; fatload mmc 0 0x80000000 setup.ini ; source \0" +- + #define CONFIG_BOOTDELAY 3 + + #define CONFIG_EXTRA_ENV_SETTINGS \ +- "usbtty=cdc_acm\0" ++ "loadaddr=0x82000000\0" \ ++ "usbtty=cdc_acm\0" \ ++ "console=ttyS2,115200n8\0" \ ++ "mpurate=500\0" \ ++ "vram=12M\0" \ ++ "dvimode=1024x768MR-16@60\0" \ ++ "defaultdisplay=dvi\0" \ ++ "mmcdev=0\0" \ ++ "mmcroot=/dev/mmcblk0p2 rw\0" \ ++ "mmcrootfstype=ext3 rootwait\0" \ ++ "nandroot=/dev/mtdblock4 rw\0" \ ++ "nandrootfstype=jffs2\0" \ ++ "mmcargs=setenv bootargs console=${console} " \ ++ "mpurate=${mpurate} " \ ++ "vram=${vram} " \ ++ "omapfb.mode=dvi:${dvimode} " \ ++ "omapfb.debug=y " \ ++ "omapdss.def_disp=${defaultdisplay} " \ ++ "root=${mmcroot} " \ ++ "rootfstype=${mmcrootfstype}\0" \ ++ "nandargs=setenv bootargs console=${console} " \ ++ "mpurate=${mpurate} " \ ++ "vram=${vram} " \ ++ "omapfb.mode=dvi:${dvimode} " \ ++ "omapfb.debug=y " \ ++ "omapdss.def_disp=${defaultdisplay} " \ ++ "root=${nandroot} " \ ++ "rootfstype=${nandrootfstype}\0" \ ++ "loadbootscript=fatload mmc ${mmcdev} ${loadaddr} boot.scr\0" \ ++ "bootscript=echo Running bootscript from mmc ...; " \ ++ "source ${loadaddr}\0" \ ++ "loaduimage=fatload mmc ${mmcdev} ${loadaddr} uImage\0" \ ++ "mmcboot=echo Booting from mmc ...; " \ ++ "run mmcargs; " \ ++ "bootm ${loadaddr}\0" \ ++ "nandboot=echo Booting from nand ...; " \ ++ "run nandargs; " \ ++ "nand read ${loadaddr} 280000 400000; " \ ++ "bootm ${loadaddr}\0" \ ++ ++#define CONFIG_BOOTCOMMAND \ ++ "if mmc rescan ${mmcdev}; then " \ ++ "if run loadbootscript; then " \ ++ "run bootscript; " \ ++ "else " \ ++ "if run loaduimage; then " \ ++ "run mmcboot; " \ ++ "else run nandboot; " \ ++ "fi; " \ ++ "fi; " \ ++ "else run nandboot; fi" + + #define CONFIG_AUTO_COMPLETE 1 + +-- +1.7.2.3 + 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 index 000000000..dfbd1fac9 --- /dev/null +++ b/debian/patches/BananaPro/Add-support-for-the-LeMaker-Banana-Pro.patch @@ -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 index 000000000..66676495a --- /dev/null +++ b/debian/patches/Makefile-add-kwb-target-to-all.patch @@ -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 index 000000000..8e6bccdb0 --- /dev/null +++ b/debian/patches/add-debian-revision-to-u-boot-version @@ -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 index 000000000..d91f145bf --- /dev/null +++ b/debian/patches/am335x-bootscript.diff @@ -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 index 000000000..db74bf9e5 --- /dev/null +++ b/debian/patches/am335x-try-boot-from-first-partition.diff @@ -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 index 000000000..55636f2fb --- /dev/null +++ b/debian/patches/am335x-uenv.txt.diff @@ -0,0 +1,17 @@ +Specify mmc partition to check for uEnv.txt rather than raw device. + +Based on patch by Robert Nelson + +Index: u-boot/include/configs/am335x_evm.h +=================================================================== +--- u-boot.orig/include/configs/am335x_evm.h ++++ 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 index 000000000..e2cf8953f --- /dev/null +++ b/debian/patches/arndale/board-spl-rule.diff @@ -0,0 +1,17 @@ +Description: Enable generic spl/$(BOARD)-spl.bin rule +Author: Ian Campbell + +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 index 000000000..44d857ee3 --- /dev/null +++ b/debian/patches/arndale/exynos-Enable-config_distro_defaults.h.patch @@ -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 +X-Patchwork-Id: 400300 +Message-Id: <1413467042-32028-1-git-send-email-ijc@hellion.org.uk> +To: u-boot@lists.denx.de, + Minkyu Kang +Cc: Ian Campbell +Date: Thu, 16 Oct 2014 14:44:01 +0100 + +From: Ian Campbell + +...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 +--- +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 + + #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 ++ + #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 index 000000000..b667a1998 --- /dev/null +++ b/debian/patches/arndale/exynos5-Use-config_distro_bootcmd.h.patch @@ -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 +X-Patchwork-Id: 400301 +Message-Id: <1413467042-32028-2-git-send-email-ijc@hellion.org.uk> +To: u-boot@lists.denx.de, + Minkyu Kang +Cc: Ian Campbell +Date: Thu, 16 Oct 2014 14:44:02 +0100 + +From: Ian Campbell + +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 +--- +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 ++ ++#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 index 000000000..67716e46f --- /dev/null +++ b/debian/patches/cubox-i/cubox-i-raw-initrd.diff @@ -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 index 000000000..39509d227 --- /dev/null +++ b/debian/patches/cubox-i/cubox-i-standardize-variables.diff @@ -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 index 000000000..894e7f531 --- /dev/null +++ b/debian/patches/cubox-i/cubox-i-support.diff @@ -0,0 +1,3292 @@ +Author: Rabeeh Khoury , + Jon Nettleton +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 ++ * ++ * 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 ++ * ++ * 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 ++ * ++ * 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 + * + * 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 ++ * ++ * 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 ++ * ++ * 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 ++# (C) Copyright 2012-2013 Freescale Semiconductor, Inc. ++# Copyright (C) 2013, Boundary Devices ++# Copyright (C) 2013, Jon Nettleton ++# ++# 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 . ++ * ++ * Author: Fabio Estevam ++ * ++ * 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 ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#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 ++ * ++ * 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 ++#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 ++ * ++ * 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 ++#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 ++ * ++ * 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 ++#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 ++ * ++ * 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 ++#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 ++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 ++# (C) Copyright 2012-2013 Freescale Semiconductor, Inc. ++# Copyright (C) 2013, Boundary Devices ++# Copyright (C) 2013, Jon Nettleton ++# ++# 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 ++ * ++ * 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 ++#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 . ++ * ++ * Author: Fabio Estevam ++ * ++ * 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 ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#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 ++ * ++ * Derived from EDM_CF_IMX6 code by TechNexion,Inc ++ * Ported to SolidRun microSOM by Rabeeh Khoury ++ * ++ * SPDX-License-Identifier: GPL-2.0+ ++ */ ++#include ++#include ++#include ++#ifdef CONFIG_SPL ++#include ++#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(ð->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, ð->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 ++ * ++ * 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 ++#include ++#include ++ ++#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 ++ ++#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 ++ * ++ * 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 ++#include ++#include ++ ++#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 ++ ++#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 index 000000000..65e4a9294 --- /dev/null +++ b/debian/patches/cubox-i/emulate-config_distro_bootcmd-standardization.diff @@ -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 index 000000000..cd6aebf40 --- /dev/null +++ b/debian/patches/cubox-i/generic-board.diff @@ -0,0 +1,18 @@ +Update mx6_cubox-i to use CONFIG_SYS_GENERIC_BOARD, as +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 index 000000000..e81055731 --- /dev/null +++ b/debian/patches/cubox-i/imx6-spl-support.diff @@ -0,0 +1,251 @@ +Author: Rabeeh Khoury +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, ++ * ++ * (C) Copyright 2010 ++ * Texas Instruments, ++ * Aneesh V ++ * ++ * 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 index 000000000..2bb58b04c --- /dev/null +++ b/debian/patches/cubox-i/spl-sata-support.diff @@ -0,0 +1,219 @@ +Author: Rabeeh Khoury +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 + #include + +-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 ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#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 index 000000000..507825d38 --- /dev/null +++ b/debian/patches/cubox-i/steal-board-eth-init-from-hummingboard.diff @@ -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 index 000000000..2b96a69ef --- /dev/null +++ b/debian/patches/guruplug_mvfs_and_mmc.diff @@ -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 + #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 index 000000000..546e5fbb2 --- /dev/null +++ b/debian/patches/hurd.diff @@ -0,0 +1,20 @@ +--- a/include/compiler.h ++++ b/include/compiler.h +@@ -15,7 +15,7 @@ + defined(__sun__) || \ + defined(__APPLE__) + # include +-#elif defined(__linux__) || defined(__WIN32__) || defined(__MINGW32__) ++#elif defined(__linux__) || defined(__WIN32__) || defined(__MINGW32__) || defined(__GLIBC__) + # include + #endif + +@@ -41,7 +41,7 @@ + #define O_BINARY 0 + #endif + +-#ifdef __linux__ ++#if defined(__linux__) || defined(__GLIBC__) + # include + # include + #elif defined(__MACH__) || defined(__FreeBSD__) diff --git a/debian/patches/mipsel-native-endianness.diff b/debian/patches/mipsel-native-endianness.diff new file mode 100644 index 000000000..556b1b0ab --- /dev/null +++ b/debian/patches/mipsel-native-endianness.diff @@ -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 +--- + 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 index 000000000..194f672e9 --- /dev/null +++ b/debian/patches/mx53loco @@ -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 + #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 index 000000000..eb7dda5ed --- /dev/null +++ b/debian/patches/n900-bootz-raw-initrd.diff @@ -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 index 000000000..f07d1e45a --- /dev/null +++ b/debian/patches/no-error-on-set-but-unused-variables.diff @@ -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 index 000000000..f4ec66e82 --- /dev/null +++ b/debian/patches/no-force-CROSS_COMPILE-powerpc.diff @@ -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 index 000000000..318cdc837 --- /dev/null +++ b/debian/patches/openrd-mmc.diff @@ -0,0 +1,31 @@ +This partially depends on the kerma-sheevaplug-mvsdio patch. + +Updated version provided by drEagle : +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 + #include + #include "openrd.h" ++#ifdef CONFIG_MRVL_MMC ++#include ++#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 index 000000000..7b3526618 --- /dev/null +++ b/debian/patches/series @@ -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 index 000000000..943db2466 --- /dev/null +++ b/debian/patches/sh4-fix-linker-name-prefix.patch @@ -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 +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 index 000000000..785b6496c --- /dev/null +++ b/debian/patches/ti_armv7_common-support_raw_initrd.diff @@ -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 index 000000000..e7f9bf9f3 --- /dev/null +++ b/debian/patches/tools-generic-builds.patch @@ -0,0 +1,14 @@ +Description: Enable generic tools build +Author: Hector Oron + +--- 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 index 000000000..044fafb75 --- /dev/null +++ b/debian/patches/tools-only-in-no-dot-config-targets.diff @@ -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 index 000000000..4a1c2ab2d --- /dev/null +++ b/debian/patches/udoo_quad-support.patch @@ -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 +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 index 000000000..7bd581ae6 --- /dev/null +++ b/debian/patches/wandboard/emulate-config_distro_bootcmd-standardization.diff @@ -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 index 000000000..120dbadbf --- /dev/null +++ b/debian/patches/wandboard/wandboard-standardized-variables @@ -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 index 000000000..d7c1d7634 --- /dev/null +++ b/debian/patches/wandboard/wandboard-uEnv.txt-bootz-n-fixes.patch @@ -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 +Date: Thu, 23 Jan 2014 16:24:13 -0600 +Subject: [PATCH] wandboard: uEnv.txt, bootz, n fixes + +Signed-off-by: Robert Nelson +--- + 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 index 000000000..538075879 --- /dev/null +++ b/debian/patches/workaround-env-ftbfs @@ -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 + #include + #include ++#include + + #ifdef MTD_OLD + # include diff --git a/debian/rules b/debian/rules new file mode 100755 index 000000000..86a475acf --- /dev/null +++ b/debian/rules @@ -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 index 000000000..163aaf8d8 --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/debian/source/include-binaries b/debian/source/include-binaries new file mode 100644 index 000000000..7f449d558 --- /dev/null +++ b/debian/source/include-binaries @@ -0,0 +1 @@ +tools/logos/solidrun.bmp diff --git a/debian/targets b/debian/targets new file mode 100644 index 000000000..30a0842f8 --- /dev/null +++ b/debian/targets @@ -0,0 +1,102 @@ +# ARCH subarch platform target +# -------------------------------------------- +armel - dockstar u-boot.kwb + +# Ian Campbell +armel - dreamplug u-boot.kwb + +# drEagle +armel - guruplug u-boot.kwb + +armel - openrd_ultimate u-boot.kwb + +# Vagrant Cascadian , rpi B 256M +armel - rpi_b u-boot.bin + +# drEagle +armel - sheevaplug u-boot.kwb + +# Joey Hess +# Christian Kastner +armhf sunxi A10-OLinuXino-Lime u-boot-sunxi-with-spl.bin + +# Christian Kastner +armhf sunxi A20-OLinuXino-Lime u-boot-sunxi-with-spl.bin + +# Karsten Merker +armhf sunxi A20-OLinuXino-Lime2 u-boot-sunxi-with-spl.bin + +# Arne Ploese +armhf sunxi A20-OLinuXino_MICRO u-boot-sunxi-with-spl.bin + +# Ian Campbell +# Vagrant Cascadian +armhf sunxi Bananapi u-boot-sunxi-with-spl.bin + +# Karsten Merker +armhf sunxi Bananapro u-boot-sunxi-with-spl.bin + +# Vagrant Cascadian +armhf sunxi Cubieboard u-boot-sunxi-with-spl.bin + +# Philip Rinn +# Ian Campbell +# Karsten Merker +armhf sunxi Cubieboard2 u-boot-sunxi-with-spl.bin + +# Ian Campbell +# Robert Nelson +# Karsten Merker +armhf sunxi Cubietruck u-boot-sunxi-with-spl.bin + +# Patrice Go +armhf sunxi Linksprite_pcDuino3 u-boot-sunxi-with-spl.bin + +# Vagrant Cascadian +# Andrew M.A. Cater +armhf omap am335x_boneblack u-boot.img spl/u-boot-spl.bin MLO + +# Robert Nelson +armhf omap igep0020 u-boot.bin spl/u-boot-spl.bin MLO + +# Robert Nelson +armhf imx mx53loco u-boot.imx + +# Steve Langasek , CuBox-i4 +# Vagrant Cascadian , CuBox-i4 +# Rainer Dorsch , 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 +armhf omap omap3_beagle u-boot.bin spl/u-boot-spl.bin MLO + +# Robert Nelson +armhf omap omap4_panda u-boot.bin spl/u-boot-spl.bin MLO + +# Michael Fladischer +armhf imx udoo_quad u-boot.imx + +# Robert Nelson +armhf imx wandboard_dl u-boot.imx + +# Vagrant Cascadian +armhf imx wandboard_quad u-boot.imx + +# Robert Nelson +armhf imx wandboard_solo u-boot.imx + +# Hector Oron +armhf imx nitrogen6q u-boot.imx + +# Ian Campbell +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 index 000000000..e4408cf00 --- /dev/null +++ b/debian/u-boot-exynos.install @@ -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 index 000000000..7ada93fc2 --- /dev/null +++ b/debian/u-boot-exynos.lintian-overrides @@ -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 index 000000000..6116b9c79 --- /dev/null +++ b/debian/u-boot-imx.README.Debian @@ -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 index 000000000..cc4eb34ec --- /dev/null +++ b/debian/u-boot-imx.install @@ -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 index 000000000..47b7da426 --- /dev/null +++ b/debian/u-boot-imx.lintian-overrides @@ -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 index 000000000..0127664c0 --- /dev/null +++ b/debian/u-boot-omap.README.Debian @@ -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 index 000000000..8a9873e04 --- /dev/null +++ b/debian/u-boot-omap.install @@ -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 index 000000000..0c5f41617 --- /dev/null +++ b/debian/u-boot-omap.lintian-overrides @@ -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 index 000000000..42c8b8b7b --- /dev/null +++ b/debian/u-boot-sunxi.README.Debian @@ -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 index 000000000..014df8741 --- /dev/null +++ b/debian/u-boot-sunxi.install @@ -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 index 000000000..3591e9366 --- /dev/null +++ b/debian/u-boot-sunxi.lintian-overrides @@ -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 index 000000000..42c06a86b --- /dev/null +++ b/debian/u-boot-tools.install @@ -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 index 000000000..92f5a6cbc --- /dev/null +++ b/debian/u-boot-tools.links @@ -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 index 000000000..943b53df8 --- /dev/null +++ b/debian/u-boot.README.Debian @@ -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 index 000000000..aff6d5de5 --- /dev/null +++ b/debian/u-boot.install @@ -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 index 000000000..8b259877a --- /dev/null +++ b/debian/u-boot.lintian-overrides @@ -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 index 000000000..888a2bc9c --- /dev/null +++ b/debian/watch @@ -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 index 000000000..93db1f8f1 Binary files /dev/null and b/tools/logos/solidrun.bmp differ