diff mbox

[1/2] Updated the Beaglebone configuration:

Message ID 1451854885-12011-1-git-send-email-clarocq@gmail.com
State Superseded
Headers show

Commit Message

Chris LaRocque Jan. 3, 2016, 9:01 p.m. UTC
From: Chris LaRocque <clarocq@L-Desktop.blhome.net>

Changed to Kernel from Beagleboard.org 4.1.13-ti-r36.
added uboot 2015.10 patches from https://github.com/eewiki/u-boot-patches/blob/master/v2015.10/0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch
Changed to the beagloeboard.org patched DTC from https://github.com/RobertCNelson/dtc.git bb.org-4.1-dt-overlays5

Signed-off-by: Chris LaRocque <clarocq@gmail.com>
---
 board/beaglebone/linux-3.12.config                 | 251 -------
 ...cache-flush-management-symbols-when-MULTI.patch |  34 -
 .../0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch   | 754 +++++++++++++++++++++
 board/beaglebone/uEnv.txt                          |  14 +-
 configs/beaglebone_defconfig                       |  43 +-
 package/dtc/Config.in                              |   2 +-
 package/dtc/Config.in.host                         |   2 +-
 package/dtc/dtc.hash                               |   2 -
 package/dtc/dtc.mk                                 |   6 +-
 9 files changed, 804 insertions(+), 304 deletions(-)
 delete mode 100644 board/beaglebone/linux-3.12.config
 delete mode 100644 board/beaglebone/patches/linux/linux-0001-arm-Export-cache-flush-management-symbols-when-MULTI.patch
 create mode 100644 board/beaglebone/patches/uboot/0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch
 delete mode 100644 package/dtc/dtc.hash

Comments

Arnout Vandecappelle Jan. 4, 2016, 11:39 p.m. UTC | #1
Hi Chris,

 The subject line of your patch should be something like:

configs: beaglebone: update kernel and uboot

On 03-01-16 22:01, Chris LaRocque wrote:
> From: Chris LaRocque <clarocq@L-Desktop.blhome.net>
> 
> Changed to Kernel from Beagleboard.org 4.1.13-ti-r36.
> added uboot 2015.10 patches from https://github.com/eewiki/u-boot-patches/blob/master/v2015.10/0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch
> Changed to the beagloeboard.org patched DTC from https://github.com/RobertCNelson/dtc.git bb.org-4.1-dt-overlays5

 The commit message should be wrapped at 72 columns.

 Also no need to quote the full URLs here, they're mentioned in the files below.
So the commit message could be something like:

configs: beaglebone: update kernel and uboot

Changed to linux 4.1.13-ti-r36 from beagleboard.org. Remove the no longer
applicable linux patch.

Changed to uboot 2015.10 and added a patch from eewiki.

Patch dtc to the beagleboard.org version.

Update kernel config to use in-tree bb.org_defconfig with config fragments.


[See below for an explanation of the last two sentences.]

> 
> Signed-off-by: Chris LaRocque <clarocq@gmail.com>
> ---
>  board/beaglebone/linux-3.12.config                 | 251 -------
>  ...cache-flush-management-symbols-when-MULTI.patch |  34 -
>  .../0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch   | 754 +++++++++++++++++++++

 Instead of including the full patch here, it's probably better to set

BR2_TARGET_UBOOT_PATCH="https://github.com/eewiki/u-boot-patches/raw/master/v2015.10/0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch"


>  board/beaglebone/uEnv.txt                          |  14 +-
>  configs/beaglebone_defconfig                       |  43 +-
>  package/dtc/Config.in                              |   2 +-
>  package/dtc/Config.in.host                         |   2 +-
>  package/dtc/dtc.hash                               |   2 -
>  package/dtc/dtc.mk                                 |   6 +-

 This is not acceptable. This would change the DTC version for _all_ boards, not
just the beagleboard. We're not going to want this. Instead, a
beaglebone-specific patch should be added. What you should do is:

1. Set

BR2_GLOBAL_PATCH_DIR=board/beaglebone/patches


2. Download the four final commits from
https://github.com/pantoniou/dtc/commits/dt-overlays5
as four separate patch files in board/beaglebone/patches/dtc. Make sure they are
numbered 0001-... like the output of git-format-patch.


 Now when you build the dtc for beaglebone, the overlays patches will be applied
to it. Note: I haven't tested if there is a conflict between these patches and
the one we have in package/dtc/. If that is the case, you'll have to rework the
overlay patches to solve the conflict.


 BTW, if it would have been OK to modify the dtc package itself, then that
should have been a separate patch.

>  9 files changed, 804 insertions(+), 304 deletions(-)
>  delete mode 100644 board/beaglebone/linux-3.12.config
>  delete mode 100644 board/beaglebone/patches/linux/linux-0001-arm-Export-cache-flush-management-symbols-when-MULTI.patch
>  create mode 100644 board/beaglebone/patches/uboot/0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch
>  delete mode 100644 package/dtc/dtc.hash

[snip]

> diff --git a/board/beaglebone/uEnv.txt b/board/beaglebone/uEnv.txt
> index e09fff5..b6de9ff 100644
> --- a/board/beaglebone/uEnv.txt
> +++ b/board/beaglebone/uEnv.txt
> @@ -1,3 +1,13 @@
> -bootpart=0:1
>  bootdir=
> -uenvcmd=run loadimage;run loadramdisk;run findfdt;run loadfdt;run ramboot
> +bootfile=zImage
> +fdtfile=am335x-boneblack.dtb
> +loadaddr=0x80007fc0
> +fdtaddr=0x80F80000

 Aren't the defaults for these two OK?

> +loadfdt=fatload mmc 0:1 ${fdtaddr} ${fdtfile}
> +loaduimage=fatload mmc 0:1 ${loadaddr} ${bootfile}

 Minor nit: you're loading a zImage, not a uImage, so calling it loaduimage is
weird. Just call it loadimage like in the default environment.

> +console=ttyO0,115200n8
> +mmcroot=/dev/mmcblk0p2
> +mmcrootfstype=ext2
> +uenvcmd=mmc rescan; run loaduimage; run loadfdt; run fdtboot
> +fdtboot=run mmc_args; run mmcargs; bootz ${loadaddr} - ${fdtaddr}

 I don't think there's an mmcargs environment variable.

> +mmc_args=setenv bootargs console=${console} ${optargs} root=${mmcroot} rw rootfstype=${mmcrootfstype} rootwait
> diff --git a/configs/beaglebone_defconfig b/configs/beaglebone_defconfig
> index ddb583c..dea34d9 100644
> --- a/configs/beaglebone_defconfig
> +++ b/configs/beaglebone_defconfig
> @@ -1,14 +1,33 @@
>  # architecture

 There are a bunch of things here that you copied from the .config file but that
actually aren't necessary (they're not even user-visible options so they'll be
completely ignored). You only need to explicitly set some options that are
removed by 'make defconfig' because they are default, not the hidden options.

> +BR2_ARCH_HAS_MMU_OPTIONAL=y

 This one.

>  BR2_arm=y
> +BR2_ARCH="arm"
> +BR2_ENDIAN="LITTLE"
> +BR2_GCC_TARGET_ABI="aapcs-linux"
> +BR2_GCC_TARGET_CPU="cortex-a8"
> +BR2_GCC_TARGET_FPU="neon"
> +BR2_GCC_TARGET_FLOAT_ABI="hard"
> +BR2_GCC_TARGET_MODE="arm"
> +BR2_ARCH_HAS_ATOMICS=y
> +BR2_BINFMT_SUPPORTS_SHARED=y
> +BR2_BINFMT_ELF=y
> +BR2_ARM_CPU_HAS_NEON=y
> +BR2_ARM_CPU_HAS_VFPV2=y
> +BR2_ARM_CPU_HAS_VFPV3=y
> +BR2_ARM_CPU_HAS_ARM=y
> +BR2_ARM_CPU_HAS_THUMB2=y
> +BR2_ARM_CPU_ARMV7A=y

 Everything above except BR2_arm=y

>  BR2_cortex_a8=y
>  BR2_ARM_EABIHF=y
> +BR2_ARM_FPU_NEON=y

 This is bad, because it might break some packages (at runtime) because of
non-IEEE-754 arithmetic).

> +BR2_ARM_INSTRUCTIONS_ARM=y

 This one can also be removed.

>  
>  # system
>  BR2_TARGET_GENERIC_HOSTNAME="beaglebone"
>  BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS=y
> -BR2_TARGET_GENERIC_GETTY_PORT="ttyO0"
> +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0"
>  # BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW is not set
> -BR2_ROOTFS_POST_IMAGE_SCRIPT="board/beaglebone/post-image.sh"
> +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/measbone/post-image.sh"

 The measbone directory doesn't exist. Did you actually test this with a clean
repository?

>  
>  # filesystem
>  BR2_PACKAGE_AM33X_CM3=y
> @@ -17,14 +36,17 @@ BR2_TARGET_ROOTFS_EXT2=y
>  
>  # lock down headers to avoid breaking with new defaults
>  BR2_KERNEL_HEADERS_VERSION=y
> -BR2_DEFAULT_KERNEL_VERSION="3.12.10"
> -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_12=y
> +BR2_DEFAULT_KERNEL_VERSION="4.1.13"
> +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_1=y
> +BR2_DEFAULT_KERNEL_HEADERS="4.1.13"

 This one should be removed too.

>  
>  # bootloader
>  BR2_TARGET_UBOOT=y
>  BR2_TARGET_UBOOT_BOARDNAME="am335x_evm"
> -BR2_TARGET_UBOOT_CUSTOM_VERSION=y
> -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2013.10"
> +BR2_TARGET_UBOOT_LATEST_VERSION=y

 No, it should remain a custom version, not the latest version.

> +BR2_TARGET_UBOOT_VERSION="2015.10"
> +BR2_TARGET_UBOOT_PATCH="$(TOPDIR)/board/beaglebone/patches/uboot/"

 The $(TOPDIR) part should be removed. And if you set BR2_GLOBAL_PATCH_DIR it's
not even needed. And of course you can point directly to the patch to be
downloaded instead of including it in buildroot.

> +BR2_TARGET_UBOOT_NEEDS_DTC=y
>  BR2_TARGET_UBOOT_FORMAT_IMG=y
>  BR2_TARGET_UBOOT_SPL=y
>  BR2_TARGET_UBOOT_SPL_NAME="MLO"
> @@ -32,11 +54,12 @@ BR2_TARGET_UBOOT_SPL_NAME="MLO"
>  # kernel
>  BR2_LINUX_KERNEL=y
>  BR2_LINUX_KERNEL_CUSTOM_GIT=y
> -BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git"
> -BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="7f280334068b7c875ade51f8f3921ab311f0c824"
> -BR2_LINUX_KERNEL_PATCH="board/beaglebone/patches/linux/"
> +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/beagleboard/linux.git"
> +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="4.1.13-ti-r36"
> +BR2_LINUX_KERNEL_PATCH="board/measbone/patches/linux/"

 measbone still doesn't exist, and anyway no linux patch should be needed
anymore, so leave this out completely.


>  BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
> -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/beaglebone/linux-3.12.config"
> +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(TOPDIR)/output/build/linux-4.1.13-ti-r36/arch/arm/configs/bb.org_defconfig"

 You should instead set BR2_LINUX_KERNEL_USE_DEFCONFIG=y and
BR2_LINUX_KERNEL_DEFCONFIG="bb.org"

 Also, you should set

BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/beaglebone/linux-4.1.config-fragment"

and of course create that file (see my comments in the next patch).

>  BR2_LINUX_KERNEL_ZIMAGE=y
>  BR2_LINUX_KERNEL_DTS_SUPPORT=y
> +BR2_LINUX_KERNEL_USE_INTREE_DTS=y
>  BR2_LINUX_KERNEL_INTREE_DTS_NAME="am335x-bone am335x-boneblack"

[snip]


 Regards,
 Arnout
Chris LaRocque Jan. 5, 2016, 1:12 a.m. UTC | #2
On Jan 4, 2016 18:39, "Arnout Vandecappelle" <arnout@mind.be> wrote:
>
>  Hi Chris,
>
>  The subject line of your patch should be something like:
>
> configs: beaglebone: update kernel and uboot
>
> On 03-01-16 22:01, Chris LaRocque wrote:
> > From: Chris LaRocque <clarocq@L-Desktop.blhome.net>
> >
> > Changed to Kernel from Beagleboard.org 4.1.13-ti-r36.
> > added uboot 2015.10 patches from
https://github.com/eewiki/u-boot-patches/blob/master/v2015.10/0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch
> > Changed to the beagloeboard.org patched DTC from
https://github.com/RobertCNelson/dtc.git bb.org-4.1-dt-overlays5
>
>  The commit message should be wrapped at 72 columns.
>
>  Also no need to quote the full URLs here, they're mentioned in the files
below.
> So the commit message could be something like:
>
> configs: beaglebone: update kernel and uboot
>
> Changed to linux 4.1.13-ti-r36 from beagleboard.org. Remove the no longer
> applicable linux patch.
>
> Changed to uboot 2015.10 and added a patch from eewiki.
>
> Patch dtc to the beagleboard.org version.
>
> Update kernel config to use in-tree bb.org_defconfig with config
fragments.
>
>
> [See below for an explanation of the last two sentences.]
>
> >
> > Signed-off-by: Chris LaRocque <clarocq@gmail.com>
> > ---
> >  board/beaglebone/linux-3.12.config                 | 251 -------
> >  ...cache-flush-management-symbols-when-MULTI.patch |  34 -
> >  .../0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch   | 754
+++++++++++++++++++++
>
>  Instead of including the full patch here, it's probably better to set
>
> BR2_TARGET_UBOOT_PATCH="
https://github.com/eewiki/u-boot-patches/raw/master/v2015.10/0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch
"
>
>
> >  board/beaglebone/uEnv.txt                          |  14 +-
> >  configs/beaglebone_defconfig                       |  43 +-
> >  package/dtc/Config.in                              |   2 +-
> >  package/dtc/Config.in.host                         |   2 +-
> >  package/dtc/dtc.hash                               |   2 -
> >  package/dtc/dtc.mk                                 |   6 +-
>
>  This is not acceptable. This would change the DTC version for _all_
boards, not
> just the beagleboard. We're not going to want this. Instead, a
> beaglebone-specific patch should be added. What you should do is:
>
> 1. Set
>
> BR2_GLOBAL_PATCH_DIR=board/beaglebone/patches
>
>
> 2. Download the four final commits from
> https://github.com/pantoniou/dtc/commits/dt-overlays5
> as four separate patch files in board/beaglebone/patches/dtc. Make sure
they are
> numbered 0001-... like the output of git-format-patch.
>
>
>  Now when you build the dtc for beaglebone, the overlays patches will be
applied
> to it. Note: I haven't tested if there is a conflict between these
patches and
> the one we have in package/dtc/. If that is the case, you'll have to
rework the
> overlay patches to solve the conflict.
>
>
>  BTW, if it would have been OK to modify the dtc package itself, then that
> should have been a separate patch.
>
> >  9 files changed, 804 insertions(+), 304 deletions(-)
> >  delete mode 100644 board/beaglebone/linux-3.12.config
> >  delete mode 100644
board/beaglebone/patches/linux/linux-0001-arm-Export-cache-flush-management-symbols-when-MULTI.patch
> >  create mode 100644
board/beaglebone/patches/uboot/0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch
> >  delete mode 100644 package/dtc/dtc.hash
>
> [snip]
>
> > diff --git a/board/beaglebone/uEnv.txt b/board/beaglebone/uEnv.txt
> > index e09fff5..b6de9ff 100644
> > --- a/board/beaglebone/uEnv.txt
> > +++ b/board/beaglebone/uEnv.txt
> > @@ -1,3 +1,13 @@
> > -bootpart=0:1
> >  bootdir=
> > -uenvcmd=run loadimage;run loadramdisk;run findfdt;run loadfdt;run
ramboot
> > +bootfile=zImage
> > +fdtfile=am335x-boneblack.dtb
> > +loadaddr=0x80007fc0
> > +fdtaddr=0x80F80000
>
>  Aren't the defaults for these two OK?
>
> > +loadfdt=fatload mmc 0:1 ${fdtaddr} ${fdtfile}
> > +loaduimage=fatload mmc 0:1 ${loadaddr} ${bootfile}
>
>  Minor nit: you're loading a zImage, not a uImage, so calling it
loaduimage is
> weird. Just call it loadimage like in the default environment.
>
> > +console=ttyO0,115200n8
> > +mmcroot=/dev/mmcblk0p2
> > +mmcrootfstype=ext2
> > +uenvcmd=mmc rescan; run loaduimage; run loadfdt; run fdtboot
> > +fdtboot=run mmc_args; run mmcargs; bootz ${loadaddr} - ${fdtaddr}
>
>  I don't think there's an mmcargs environment variable.
>
> > +mmc_args=setenv bootargs console=${console} ${optargs} root=${mmcroot}
rw rootfstype=${mmcrootfstype} rootwait
> > diff --git a/configs/beaglebone_defconfig b/configs/beaglebone_defconfig
> > index ddb583c..dea34d9 100644
> > --- a/configs/beaglebone_defconfig
> > +++ b/configs/beaglebone_defconfig
> > @@ -1,14 +1,33 @@
> >  # architecture
>
>  There are a bunch of things here that you copied from the .config file
but that
> actually aren't necessary (they're not even user-visible options so
they'll be
> completely ignored). You only need to explicitly set some options that are
> removed by 'make defconfig' because they are default, not the hidden
options.
>
> > +BR2_ARCH_HAS_MMU_OPTIONAL=y
>
>  This one.
>
> >  BR2_arm=y
> > +BR2_ARCH="arm"
> > +BR2_ENDIAN="LITTLE"
> > +BR2_GCC_TARGET_ABI="aapcs-linux"
> > +BR2_GCC_TARGET_CPU="cortex-a8"
> > +BR2_GCC_TARGET_FPU="neon"
> > +BR2_GCC_TARGET_FLOAT_ABI="hard"
> > +BR2_GCC_TARGET_MODE="arm"
> > +BR2_ARCH_HAS_ATOMICS=y
> > +BR2_BINFMT_SUPPORTS_SHARED=y
> > +BR2_BINFMT_ELF=y
> > +BR2_ARM_CPU_HAS_NEON=y
> > +BR2_ARM_CPU_HAS_VFPV2=y
> > +BR2_ARM_CPU_HAS_VFPV3=y
> > +BR2_ARM_CPU_HAS_ARM=y
> > +BR2_ARM_CPU_HAS_THUMB2=y
> > +BR2_ARM_CPU_ARMV7A=y
>
>  Everything above except BR2_arm=y
>
> >  BR2_cortex_a8=y
> >  BR2_ARM_EABIHF=y
> > +BR2_ARM_FPU_NEON=y
>
>  This is bad, because it might break some packages (at runtime) because of
> non-IEEE-754 arithmetic).
>
> > +BR2_ARM_INSTRUCTIONS_ARM=y
>
>  This one can also be removed.
>
> >
> >  # system
> >  BR2_TARGET_GENERIC_HOSTNAME="beaglebone"
> >  BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS=y
> > -BR2_TARGET_GENERIC_GETTY_PORT="ttyO0"
> > +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0"
> >  # BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW is not set
> > -BR2_ROOTFS_POST_IMAGE_SCRIPT="board/beaglebone/post-image.sh"
> > +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/measbone/post-image.sh"
>
>  The measbone directory doesn't exist. Did you actually test this with a
clean
> repository?
>
> >
> >  # filesystem
> >  BR2_PACKAGE_AM33X_CM3=y
> > @@ -17,14 +36,17 @@ BR2_TARGET_ROOTFS_EXT2=y
> >
> >  # lock down headers to avoid breaking with new defaults
> >  BR2_KERNEL_HEADERS_VERSION=y
> > -BR2_DEFAULT_KERNEL_VERSION="3.12.10"
> > -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_12=y
> > +BR2_DEFAULT_KERNEL_VERSION="4.1.13"
> > +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_1=y
> > +BR2_DEFAULT_KERNEL_HEADERS="4.1.13"
>
>  This one should be removed too.
>
> >
> >  # bootloader
> >  BR2_TARGET_UBOOT=y
> >  BR2_TARGET_UBOOT_BOARDNAME="am335x_evm"
> > -BR2_TARGET_UBOOT_CUSTOM_VERSION=y
> > -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2013.10"
> > +BR2_TARGET_UBOOT_LATEST_VERSION=y
>
>  No, it should remain a custom version, not the latest version.
>
> > +BR2_TARGET_UBOOT_VERSION="2015.10"
> > +BR2_TARGET_UBOOT_PATCH="$(TOPDIR)/board/beaglebone/patches/uboot/"
>
>  The $(TOPDIR) part should be removed. And if you set
BR2_GLOBAL_PATCH_DIR it's
> not even needed. And of course you can point directly to the patch to be
> downloaded instead of including it in buildroot.
>
> > +BR2_TARGET_UBOOT_NEEDS_DTC=y
> >  BR2_TARGET_UBOOT_FORMAT_IMG=y
> >  BR2_TARGET_UBOOT_SPL=y
> >  BR2_TARGET_UBOOT_SPL_NAME="MLO"
> > @@ -32,11 +54,12 @@ BR2_TARGET_UBOOT_SPL_NAME="MLO"
> >  # kernel
> >  BR2_LINUX_KERNEL=y
> >  BR2_LINUX_KERNEL_CUSTOM_GIT=y
> > -BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://
git.ti.com/ti-linux-kernel/ti-linux-kernel.git"
> >
-BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="7f280334068b7c875ade51f8f3921ab311f0c824"
> > -BR2_LINUX_KERNEL_PATCH="board/beaglebone/patches/linux/"
> > +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="
https://github.com/beagleboard/linux.git"
> > +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="4.1.13-ti-r36"
> > +BR2_LINUX_KERNEL_PATCH="board/measbone/patches/linux/"
>
>  measbone still doesn't exist, and anyway no linux patch should be needed
> anymore, so leave this out completely.
>
>
> >  BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
> >
-BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/beaglebone/linux-3.12.config"
> >
+BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(TOPDIR)/output/build/linux-4.1.13-ti-r36/arch/arm/configs/bb.org_defconfig"
>
>  You should instead set BR2_LINUX_KERNEL_USE_DEFCONFIG=y and
> BR2_LINUX_KERNEL_DEFCONFIG="bb.org"
>
>  Also, you should set
>
>
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/beaglebone/linux-4.1.config-fragment"
>
> and of course create that file (see my comments in the next patch).
>
> >  BR2_LINUX_KERNEL_ZIMAGE=y
> >  BR2_LINUX_KERNEL_DTS_SUPPORT=y
> > +BR2_LINUX_KERNEL_USE_INTREE_DTS=y
> >  BR2_LINUX_KERNEL_INTREE_DTS_NAME="am335x-bone am335x-boneblack"
>
> [snip]
>
>
>  Regards,
>  Arnout
>
>
> --
> Arnout Vandecappelle                          arnout at mind be
> Senior Embedded Software Architect            +32-16-286500
> Essensium/Mind                                http://www.mind.be
> G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
> LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
> GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF

Thanks Arnout

I'll review, revise, and resubmit.

Regards

Chris

Pushing back the boundaries of ignorance
diff mbox

Patch

diff --git a/board/beaglebone/linux-3.12.config b/board/beaglebone/linux-3.12.config
deleted file mode 100644
index 0be5722..0000000
--- a/board/beaglebone/linux-3.12.config
+++ /dev/null
@@ -1,251 +0,0 @@ 
-CONFIG_SYSVIPC=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_BSD_PROCESS_ACCT=y
-CONFIG_IKCONFIG=y
-CONFIG_IKCONFIG_PROC=y
-CONFIG_LOG_BUF_SHIFT=16
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_EXPERT=y
-CONFIG_SLAB=y
-CONFIG_PROFILING=y
-CONFIG_KPROBES=y
-CONFIG_MODULES=y
-CONFIG_MODULE_FORCE_LOAD=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_MODULE_FORCE_UNLOAD=y
-CONFIG_MODVERSIONS=y
-CONFIG_MODULE_SRCVERSION_ALL=y
-# CONFIG_BLK_DEV_BSG is not set
-CONFIG_ARCH_OMAP2PLUS=y
-CONFIG_OMAP_RESET_CLOCKS=y
-CONFIG_OMAP_MUX_DEBUG=y
-CONFIG_ARCH_OMAP3=y
-CONFIG_ARCH_OMAP4=y
-CONFIG_SOC_AM43XX=y
-# CONFIG_ARCH_OMAP2PLUS_TYPICAL is not set
-# CONFIG_SOC_TI81XX is not set
-# CONFIG_MACH_OMAP3_BEAGLE is not set
-# CONFIG_MACH_DEVKIT8000 is not set
-# CONFIG_MACH_OMAP_LDP is not set
-# CONFIG_MACH_OMAP3530_LV_SOM is not set
-# CONFIG_MACH_OMAP3_TORPEDO is not set
-# CONFIG_MACH_OVERO is not set
-# CONFIG_MACH_OMAP3EVM is not set
-# CONFIG_MACH_OMAP3_PANDORA is not set
-# CONFIG_MACH_TOUCHBOOK is not set
-# CONFIG_MACH_OMAP_3430SDP is not set
-# CONFIG_MACH_NOKIA_RM680 is not set
-# CONFIG_MACH_NOKIA_RX51 is not set
-# CONFIG_MACH_OMAP_ZOOM2 is not set
-# CONFIG_MACH_OMAP_ZOOM3 is not set
-# CONFIG_MACH_CM_T35 is not set
-# CONFIG_MACH_CM_T3517 is not set
-# CONFIG_MACH_IGEP0020 is not set
-# CONFIG_MACH_IGEP0030 is not set
-# CONFIG_MACH_SBC3530 is not set
-# CONFIG_MACH_OMAP_3630SDP is not set
-CONFIG_ARM_THUMBEE=y
-CONFIG_HAVE_ARM_ARCH_TIMER=y
-CONFIG_PREEMPT=y
-CONFIG_AEABI=y
-CONFIG_HIGHMEM=y
-CONFIG_ZBOOT_ROM_TEXT=0x0
-CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_CMDLINE="root=/dev/mmcblk0p2 rootwait console=ttyO2,115200"
-CONFIG_KEXEC=y
-CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_STAT_DETAILS=y
-CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
-CONFIG_CPU_FREQ_GOV_POWERSAVE=y
-CONFIG_CPU_FREQ_GOV_USERSPACE=y
-CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
-CONFIG_GENERIC_CPUFREQ_CPU0=y
-# CONFIG_ARM_OMAP2PLUS_CPUFREQ is not set
-CONFIG_FPE_NWFPE=y
-CONFIG_VFP=y
-CONFIG_NEON=y
-CONFIG_BINFMT_MISC=y
-CONFIG_PM_RUNTIME=y
-CONFIG_PM_DEBUG=y
-CONFIG_NET=y
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_XFRM_USER=y
-CONFIG_NET_KEY=y
-CONFIG_NET_KEY_MIGRATE=y
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-CONFIG_IP_PNP_BOOTP=y
-CONFIG_IP_PNP_RARP=y
-# CONFIG_INET_LRO is not set
-# CONFIG_IPV6 is not set
-# CONFIG_WIRELESS is not set
-CONFIG_DEVTMPFS=y
-CONFIG_DEVTMPFS_MOUNT=y
-CONFIG_OMAP_OCP2SCP=y
-CONFIG_CONNECTOR=y
-CONFIG_BLK_DEV_LOOP=y
-CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_SIZE=16384
-CONFIG_CROSSBAR=y
-CONFIG_EEPROM_93CX6=y
-CONFIG_SCSI=y
-CONFIG_BLK_DEV_SD=y
-CONFIG_SCSI_MULTI_LUN=y
-CONFIG_SCSI_SCAN_ASYNC=y
-CONFIG_MD=y
-CONFIG_NETDEVICES=y
-# CONFIG_NET_VENDOR_ARC is not set
-# CONFIG_NET_CADENCE is not set
-# CONFIG_NET_VENDOR_BROADCOM is not set
-# CONFIG_NET_VENDOR_CIRRUS is not set
-# CONFIG_NET_VENDOR_FARADAY is not set
-# CONFIG_NET_VENDOR_INTEL is not set
-# CONFIG_NET_VENDOR_MARVELL is not set
-# CONFIG_NET_VENDOR_MICREL is not set
-# CONFIG_NET_VENDOR_NATSEMI is not set
-# CONFIG_NET_VENDOR_SEEQ is not set
-# CONFIG_NET_VENDOR_SMSC is not set
-# CONFIG_NET_VENDOR_STMICRO is not set
-CONFIG_TI_CPSW=y
-CONFIG_TI_CPTS=y
-# CONFIG_NET_VENDOR_VIA is not set
-# CONFIG_NET_VENDOR_WIZNET is not set
-CONFIG_AT803X_PHY=y
-CONFIG_SMSC_PHY=y
-# CONFIG_WLAN is not set
-# CONFIG_INPUT_MOUSEDEV is not set
-# CONFIG_INPUT_KEYBOARD is not set
-# CONFIG_INPUT_MOUSE is not set
-CONFIG_SERIO_LIBPS2=y
-# CONFIG_LEGACY_PTYS is not set
-CONFIG_SERIAL_8250=y
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_SERIAL_8250_NR_UARTS=32
-CONFIG_SERIAL_8250_EXTENDED=y
-CONFIG_SERIAL_8250_MANY_PORTS=y
-CONFIG_SERIAL_8250_SHARE_IRQ=y
-CONFIG_SERIAL_8250_DETECT_IRQ=y
-CONFIG_SERIAL_8250_RSA=y
-CONFIG_SERIAL_OMAP=y
-CONFIG_SERIAL_OMAP_CONSOLE=y
-CONFIG_HW_RANDOM=y
-CONFIG_I2C=y
-CONFIG_I2C_CHARDEV=y
-CONFIG_I2C_OMAP=y
-CONFIG_SPI=y
-CONFIG_SPI_OMAP24XX=y
-CONFIG_SPI_TI_QSPI=y
-CONFIG_PINCTRL_SINGLE=y
-CONFIG_DEBUG_GPIO=y
-CONFIG_GPIO_SYSFS=y
-CONFIG_W1=y
-CONFIG_POWER_SUPPLY=y
-CONFIG_THERMAL=y
-CONFIG_THERMAL_GOV_FAIR_SHARE=y
-CONFIG_THERMAL_GOV_USER_SPACE=y
-CONFIG_CPU_THERMAL=y
-CONFIG_TI_SOC_THERMAL=y
-CONFIG_TI_THERMAL=y
-CONFIG_WATCHDOG=y
-CONFIG_OMAP_WATCHDOG=y
-CONFIG_MFD_SYSCON=y
-CONFIG_MFD_TPS65217=y
-CONFIG_REGULATOR=y
-CONFIG_REGULATOR_FIXED_VOLTAGE=y
-CONFIG_REGULATOR_PBIAS=y
-CONFIG_REGULATOR_TPS65023=y
-CONFIG_REGULATOR_TPS6507X=y
-CONFIG_REGULATOR_TPS65217=y
-CONFIG_REGULATOR_TIAVSCLASS0=y
-CONFIG_FB=y
-CONFIG_FIRMWARE_EDID=y
-CONFIG_FB_DA8XX=y
-CONFIG_FB_DA8XX_TDA998X=y
-CONFIG_OMAP2_DSS=y
-CONFIG_OMAP2_DSS_SDI=y
-CONFIG_OMAP2_DSS_DSI=y
-CONFIG_FB_OMAP2=y
-CONFIG_DISPLAY_CONNECTOR_HDMI=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
-CONFIG_USB=y
-CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
-CONFIG_USB_MON=y
-CONFIG_USB_EHCI_HCD=y
-CONFIG_USB_MUSB_HDRC=m
-CONFIG_USB_MUSB_OMAP2PLUS=m
-CONFIG_USB_MUSB_DSPS=m
-CONFIG_USB_TI_CPPI41_DMA=y
-CONFIG_USB_STORAGE=y
-CONFIG_AM335X_PHY_USB=y
-CONFIG_USB_GADGET=y
-CONFIG_USB_GADGET_DEBUG=y
-CONFIG_USB_GADGET_DEBUG_FS=y
-CONFIG_USB_ZERO=m
-CONFIG_USB_ETH=m
-CONFIG_USB_ETH_EEM=y
-CONFIG_USB_MASS_STORAGE=m
-CONFIG_USB_G_MULTI=m
-CONFIG_USB_G_MULTI_CDC=y
-CONFIG_MMC=y
-CONFIG_MMC_UNSAFE_RESUME=y
-CONFIG_SDIO_UART=y
-CONFIG_MMC_OMAP=y
-CONFIG_MMC_OMAP_HS=y
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-CONFIG_LEDS_GPIO=y
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=y
-CONFIG_LEDS_TRIGGER_ONESHOT=y
-CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-CONFIG_LEDS_TRIGGER_BACKLIGHT=y
-CONFIG_LEDS_TRIGGER_CPU=y
-CONFIG_LEDS_TRIGGER_GPIO=y
-CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_DRV_OMAP=y
-CONFIG_DMADEVICES=y
-CONFIG_TI_EDMA=y
-CONFIG_DMA_OMAP=y
-CONFIG_TI_CPPI41=y
-CONFIG_COMMON_CLK_DEBUG=y
-CONFIG_OMAP_USB2=y
-CONFIG_OMAP_PIPE3=y
-CONFIG_EXT2_FS=y
-CONFIG_EXT3_FS=y
-# CONFIG_EXT3_FS_XATTR is not set
-CONFIG_EXT4_FS=y
-CONFIG_QUOTA=y
-CONFIG_QFMT_V2=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
-CONFIG_TMPFS=y
-CONFIG_NFS_FS=y
-CONFIG_NFS_V4=y
-CONFIG_ROOT_NFS=y
-CONFIG_NLS_CODEPAGE_437=y
-CONFIG_NLS_ISO8859_1=y
-CONFIG_PRINTK_TIME=y
-CONFIG_DEBUG_INFO=y
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_SCHEDSTATS=y
-CONFIG_TIMER_STATS=y
-CONFIG_PROVE_LOCKING=y
-# CONFIG_DEBUG_BUGVERBOSE is not set
-CONFIG_CRYPTO_MANAGER=m
-CONFIG_CRYPTO_SHA256=m
-CONFIG_CRYPTO_DEFLATE=y
-CONFIG_CRYPTO_LZO=y
-# CONFIG_CRYPTO_ANSI_CPRNG is not set
-# CONFIG_CRYPTO_HW is not set
-CONFIG_CRC_CCITT=y
-CONFIG_CRC_T10DIF=y
-CONFIG_CRC_ITU_T=y
-CONFIG_CRC7=y
-CONFIG_LIBCRC32C=y
-CONFIG_AVERAGE=y
diff --git a/board/beaglebone/patches/linux/linux-0001-arm-Export-cache-flush-management-symbols-when-MULTI.patch b/board/beaglebone/patches/linux/linux-0001-arm-Export-cache-flush-management-symbols-when-MULTI.patch
deleted file mode 100644
index 1ca1e70..0000000
--- a/board/beaglebone/patches/linux/linux-0001-arm-Export-cache-flush-management-symbols-when-MULTI.patch
+++ /dev/null
@@ -1,34 +0,0 @@ 
-From 29885f2f3d700341d322274db6ad085e601c0994 Mon Sep 17 00:00:00 2001
-From: Pantelis Antoniou <panto@antoniou-consulting.com>
-Date: Fri, 4 Jan 2013 00:32:33 +0200
-Subject: [PATCH 3/3] arm: Export cache flush management symbols when
- !MULTI_CACHE
-
-When compiling a kernel without CONFIG_MULTI_CACHE enabled the
-dma access functions end up not being exported. Fix it.
-
-Signed-off-by: Pantelis Antoniou <panto@antoniou-consulting.com>
----
- arch/arm/kernel/setup.c |    9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
-index da1d1aa..dcb678c 100644
---- a/arch/arm/kernel/setup.c
-+++ b/arch/arm/kernel/setup.c
-@@ -923,3 +923,12 @@ const struct seq_operations cpuinfo_op = {
- 	.stop	= c_stop,
- 	.show	= c_show
- };
-+
-+/* export the cache management functions */
-+#ifndef MULTI_CACHE
-+
-+EXPORT_SYMBOL(__glue(_CACHE,_dma_map_area));
-+EXPORT_SYMBOL(__glue(_CACHE,_dma_unmap_area));
-+EXPORT_SYMBOL(__glue(_CACHE,_dma_flush_range));
-+
-+#endif
--- 
-1.7.10.4
-
diff --git a/board/beaglebone/patches/uboot/0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch b/board/beaglebone/patches/uboot/0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch
new file mode 100644
index 0000000..eb2400d
--- /dev/null
+++ b/board/beaglebone/patches/uboot/0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch
@@ -0,0 +1,754 @@ 
+From ef73464d93f58a2e6cb36059e7901741ea7828ef Mon Sep 17 00:00:00 2001
+From: Robert Nelson <robertcnelson@gmail.com>
+Date: Fri, 6 Nov 2015 14:04:43 -0600
+Subject: [PATCH] am335x_evm: uEnv.txt, bootz, n fixes
+
+Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
+---
+ arch/arm/cpu/armv7/am33xx/board.c |  36 ++++--
+ arch/arm/include/asm/omap_gpio.h  |   7 +-
+ board/ti/am335x/board.c           |  29 ++++-
+ board/ti/am335x/mux.c             |   2 -
+ common/image.c                    |   9 --
+ configs/am335x_evm_defconfig      |   1 -
+ drivers/gpio/omap_gpio.c          | 107 ++++++++--------
+ include/configs/am335x_evm.h      |  58 ++++++---
+ include/configs/ti_armv7_common.h | 249 +++++++++++++++++++++++++++++++++++++-
+ 9 files changed, 395 insertions(+), 103 deletions(-)
+
+diff --git a/arch/arm/cpu/armv7/am33xx/board.c b/arch/arm/cpu/armv7/am33xx/board.c
+index bd14326..5b1eb18 100644
+--- a/arch/arm/cpu/armv7/am33xx/board.c
++++ b/arch/arm/cpu/armv7/am33xx/board.c
+@@ -70,16 +70,38 @@ U_BOOT_DEVICES(am33xx_uarts) = {
+ };
+ #endif
+ 
++#ifdef CONFIG_DM_GPIO
++static const struct omap_gpio_platdata am33xx_gpio[] = {
++	{ 0, AM33XX_GPIO0_BASE, METHOD_GPIO_24XX },
++	{ 1, AM33XX_GPIO1_BASE, METHOD_GPIO_24XX },
++	{ 2, AM33XX_GPIO2_BASE, METHOD_GPIO_24XX },
++	{ 3, AM33XX_GPIO3_BASE, METHOD_GPIO_24XX },
++#ifdef CONFIG_AM43XX
++	{ 4, AM33XX_GPIO4_BASE, METHOD_GPIO_24XX },
++	{ 5, AM33XX_GPIO5_BASE, METHOD_GPIO_24XX },
++#endif
++};
++
++U_BOOT_DEVICES(am33xx_gpios) = {
++	{ "gpio_omap", &am33xx_gpio[0] },
++	{ "gpio_omap", &am33xx_gpio[1] },
++	{ "gpio_omap", &am33xx_gpio[2] },
++	{ "gpio_omap", &am33xx_gpio[3] },
++#ifdef CONFIG_AM43XX
++	{ "gpio_omap", &am33xx_gpio[4] },
++	{ "gpio_omap", &am33xx_gpio[5] },
++#endif
++};
+ 
+-#ifndef CONFIG_DM_GPIO
++#else
+ static const struct gpio_bank gpio_bank_am33xx[] = {
+-	{ (void *)AM33XX_GPIO0_BASE },
+-	{ (void *)AM33XX_GPIO1_BASE },
+-	{ (void *)AM33XX_GPIO2_BASE },
+-	{ (void *)AM33XX_GPIO3_BASE },
++	{ (void *)AM33XX_GPIO0_BASE, METHOD_GPIO_24XX },
++	{ (void *)AM33XX_GPIO1_BASE, METHOD_GPIO_24XX },
++	{ (void *)AM33XX_GPIO2_BASE, METHOD_GPIO_24XX },
++	{ (void *)AM33XX_GPIO3_BASE, METHOD_GPIO_24XX },
+ #ifdef CONFIG_AM43XX
+-	{ (void *)AM33XX_GPIO4_BASE },
+-	{ (void *)AM33XX_GPIO5_BASE },
++	{ (void *)AM33XX_GPIO4_BASE, METHOD_GPIO_24XX },
++	{ (void *)AM33XX_GPIO5_BASE, METHOD_GPIO_24XX },
+ #endif
+ };
+ 
+diff --git a/arch/arm/include/asm/omap_gpio.h b/arch/arm/include/asm/omap_gpio.h
+index ef38b63..839af54 100644
+--- a/arch/arm/include/asm/omap_gpio.h
++++ b/arch/arm/include/asm/omap_gpio.h
+@@ -23,19 +23,24 @@
+ 
+ #include <asm/arch/cpu.h>
+ 
++enum gpio_method {
++	METHOD_GPIO_24XX	= 4,
++};
++
+ #ifdef CONFIG_DM_GPIO
+ 
+ /* Information about a GPIO bank */
+ struct omap_gpio_platdata {
+ 	int bank_index;
+ 	ulong base;	/* address of registers in physical memory */
+-	const char *port_name;
++	enum gpio_method method;
+ };
+ 
+ #else
+ 
+ struct gpio_bank {
+ 	void *base;
++	int method;
+ };
+ 
+ extern const struct gpio_bank *const omap_gpio_bank;
+diff --git a/board/ti/am335x/board.c b/board/ti/am335x/board.c
+index 1dc2ed0..e6c5ed6 100644
+--- a/board/ti/am335x/board.c
++++ b/board/ti/am335x/board.c
+@@ -478,6 +478,24 @@ void sdram_init(void)
+  */
+ int board_init(void)
+ {
++	u32 sys_reboot;
++
++	sys_reboot = readl(PRM_RSTST);
++	if (sys_reboot & (1 << 9))
++		puts("Reset Source: IcePick reset has occurred.\n");
++
++	if (sys_reboot & (1 << 5))
++		puts("Reset Source: Global external warm reset has occurred.\n");
++
++	if (sys_reboot & (1 << 4))
++		puts("Reset Source: watchdog reset has occurred.\n");
++
++	if (sys_reboot & (1 << 1))
++		puts("Reset Source: Global warm SW reset has occurred.\n");
++
++	if (sys_reboot & (1 << 0))
++		puts("Reset Source: Power-on reset has occurred.\n");
++
+ #if defined(CONFIG_HW_WATCHDOG)
+ 	hw_watchdog_init();
+ #endif
+@@ -504,9 +522,14 @@ int board_late_init(void)
+ 	safe_string[sizeof(header.name)] = 0;
+ 	setenv("board_name", safe_string);
+ 
+-	strncpy(safe_string, (char *)header.version, sizeof(header.version));
+-	safe_string[sizeof(header.version)] = 0;
+-	setenv("board_rev", safe_string);
++	/* BeagleBone Green has 0x1a at [0], they are free to increment 'a' */
++	if ( (header.version[0] != 0x30) && (header.version[0] & (1 << 4)) ) {
++		setenv("board_rev", "BBG1");
++	} else {
++		strncpy(safe_string, (char *)header.version, sizeof(header.version));
++		safe_string[sizeof(header.version)] = 0;
++		setenv("board_rev", safe_string);
++	}
+ #endif
+ 
+ 	return 0;
+diff --git a/board/ti/am335x/mux.c b/board/ti/am335x/mux.c
+index 680f656..fd3da58 100644
+--- a/board/ti/am335x/mux.c
++++ b/board/ti/am335x/mux.c
+@@ -317,7 +317,6 @@ void enable_board_pin_mux(struct am335x_baseboard_id *header)
+ 	/* Do board-specific muxes. */
+ 	if (board_is_bone(header)) {
+ 		/* Beaglebone pinmux */
+-		configure_module_pin_mux(i2c1_pin_mux);
+ 		configure_module_pin_mux(mii1_pin_mux);
+ 		configure_module_pin_mux(mmc0_pin_mux);
+ #if defined(CONFIG_NAND)
+@@ -356,7 +355,6 @@ void enable_board_pin_mux(struct am335x_baseboard_id *header)
+ 		configure_module_pin_mux(mmc0_pin_mux_sk_evm);
+ 	} else if (board_is_bone_lt(header)) {
+ 		/* Beaglebone LT pinmux */
+-		configure_module_pin_mux(i2c1_pin_mux);
+ 		configure_module_pin_mux(mii1_pin_mux);
+ 		configure_module_pin_mux(mmc0_pin_mux);
+ #if defined(CONFIG_NAND) && defined(CONFIG_EMMC_BOOT)
+diff --git a/common/image.c b/common/image.c
+index e607109..c33749d 100644
+--- a/common/image.c
++++ b/common/image.c
+@@ -908,15 +908,6 @@ int boot_get_ramdisk(int argc, char * const argv[], bootm_headers_t *images,
+ 	*rd_start = 0;
+ 	*rd_end = 0;
+ 
+-#ifdef CONFIG_ANDROID_BOOT_IMAGE
+-	/*
+-	 * Look for an Android boot image.
+-	 */
+-	buf = map_sysmem(images->os.start, 0);
+-	if (genimg_get_format(buf) == IMAGE_FORMAT_ANDROID)
+-		select = argv[0];
+-#endif
+-
+ 	if (argc >= 2)
+ 		select = argv[1];
+ 
+diff --git a/configs/am335x_evm_defconfig b/configs/am335x_evm_defconfig
+index 96599c6..9e8c010 100644
+--- a/configs/am335x_evm_defconfig
++++ b/configs/am335x_evm_defconfig
+@@ -3,7 +3,6 @@ CONFIG_TARGET_AM335X_EVM=y
+ CONFIG_SPL=y
+ CONFIG_SPL_STACK_R=y
+ CONFIG_SPL_STACK_R_ADDR=0x82000000
+-CONFIG_SYS_EXTRA_OPTIONS="NAND"
+ # CONFIG_CMD_IMLS is not set
+ # CONFIG_CMD_FLASH is not set
+ # CONFIG_CMD_SETEXPR is not set
+diff --git a/drivers/gpio/omap_gpio.c b/drivers/gpio/omap_gpio.c
+index cd960dc..0a1e124 100644
+--- a/drivers/gpio/omap_gpio.c
++++ b/drivers/gpio/omap_gpio.c
+@@ -20,13 +20,9 @@
+  */
+ #include <common.h>
+ #include <dm.h>
+-#include <fdtdec.h>
+ #include <asm/gpio.h>
+ #include <asm/io.h>
+ #include <asm/errno.h>
+-#include <malloc.h>
+-
+-DECLARE_GLOBAL_DATA_PTR;
+ 
+ #define OMAP_GPIO_DIR_OUT	0
+ #define OMAP_GPIO_DIR_IN	1
+@@ -38,6 +34,7 @@ DECLARE_GLOBAL_DATA_PTR;
+ struct gpio_bank {
+ 	/* TODO(sjg@chromium.org): Can we use a struct here? */
+ 	void *base;	/* address of registers in physical memory */
++	enum gpio_method method;
+ };
+ 
+ #endif
+@@ -58,8 +55,13 @@ static void _set_gpio_direction(const struct gpio_bank *bank, int gpio,
+ 	void *reg = bank->base;
+ 	u32 l;
+ 
+-	reg += OMAP_GPIO_OE;
+-
++	switch (bank->method) {
++	case METHOD_GPIO_24XX:
++		reg += OMAP_GPIO_OE;
++		break;
++	default:
++		return;
++	}
+ 	l = __raw_readl(reg);
+ 	if (is_input)
+ 		l |= 1 << gpio;
+@@ -77,7 +79,13 @@ static int _get_gpio_direction(const struct gpio_bank *bank, int gpio)
+ 	void *reg = bank->base;
+ 	u32 v;
+ 
+-	reg += OMAP_GPIO_OE;
++	switch (bank->method) {
++	case METHOD_GPIO_24XX:
++		reg += OMAP_GPIO_OE;
++		break;
++	default:
++		return -1;
++	}
+ 
+ 	v = __raw_readl(reg);
+ 
+@@ -93,12 +101,19 @@ static void _set_gpio_dataout(const struct gpio_bank *bank, int gpio,
+ 	void *reg = bank->base;
+ 	u32 l = 0;
+ 
+-	if (enable)
+-		reg += OMAP_GPIO_SETDATAOUT;
+-	else
+-		reg += OMAP_GPIO_CLEARDATAOUT;
+-
+-	l = 1 << gpio;
++	switch (bank->method) {
++	case METHOD_GPIO_24XX:
++		if (enable)
++			reg += OMAP_GPIO_SETDATAOUT;
++		else
++			reg += OMAP_GPIO_CLEARDATAOUT;
++		l = 1 << gpio;
++		break;
++	default:
++		printf("omap3-gpio unknown bank method %s %d\n",
++		       __FILE__, __LINE__);
++		return;
++	}
+ 	__raw_writel(l, reg);
+ }
+ 
+@@ -107,13 +122,19 @@ static int _get_gpio_value(const struct gpio_bank *bank, int gpio)
+ 	void *reg = bank->base;
+ 	int input;
+ 
+-	input = _get_gpio_direction(bank, gpio);
+-	switch (input) {
+-	case OMAP_GPIO_DIR_IN:
+-		reg += OMAP_GPIO_DATAIN;
+-		break;
+-	case OMAP_GPIO_DIR_OUT:
+-		reg += OMAP_GPIO_DATAOUT;
++	switch (bank->method) {
++	case METHOD_GPIO_24XX:
++		input = _get_gpio_direction(bank, gpio);
++		switch (input) {
++		case OMAP_GPIO_DIR_IN:
++			reg += OMAP_GPIO_DATAIN;
++			break;
++		case OMAP_GPIO_DIR_OUT:
++			reg += OMAP_GPIO_DATAOUT;
++			break;
++		default:
++			return -1;
++		}
+ 		break;
+ 	default:
+ 		return -1;
+@@ -289,56 +310,24 @@ static int omap_gpio_probe(struct udevice *dev)
+ 	struct gpio_bank *bank = dev_get_priv(dev);
+ 	struct omap_gpio_platdata *plat = dev_get_platdata(dev);
+ 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
++	char name[18], *str;
+ 
+-	uc_priv->bank_name = plat->port_name;
++	sprintf(name, "GPIO%d_", plat->bank_index);
++	str = strdup(name);
++	if (!str)
++		return -ENOMEM;
++	uc_priv->bank_name = str;
+ 	uc_priv->gpio_count = GPIO_PER_BANK;
+ 	bank->base = (void *)plat->base;
++	bank->method = plat->method;
+ 
+ 	return 0;
+ }
+ 
+-static int omap_gpio_bind(struct udevice *dev)
+-{
+-	struct omap_gpio_platdata *plat = dev->platdata;
+-	fdt_addr_t base_addr;
+-
+-	if (plat)
+-		return 0;
+-
+-	base_addr = dev_get_addr(dev);
+-	if (base_addr == FDT_ADDR_T_NONE)
+-		return -ENODEV;
+-
+-	/*
+-	* TODO:
+-	* When every board is converted to driver model and DT is
+-	* supported, this can be done by auto-alloc feature, but
+-	* not using calloc to alloc memory for platdata.
+-	*/
+-	plat = calloc(1, sizeof(*plat));
+-	if (!plat)
+-		return -ENOMEM;
+-
+-	plat->base = base_addr;
+-	plat->port_name = fdt_get_name(gd->fdt_blob, dev->of_offset, NULL);
+-	dev->platdata = plat;
+-
+-	return 0;
+-}
+-
+-static const struct udevice_id omap_gpio_ids[] = {
+-	{ .compatible = "ti,omap3-gpio" },
+-	{ .compatible = "ti,omap4-gpio" },
+-	{ .compatible = "ti,am4372-gpio" },
+-	{ }
+-};
+-
+ U_BOOT_DRIVER(gpio_omap) = {
+ 	.name	= "gpio_omap",
+ 	.id	= UCLASS_GPIO,
+ 	.ops	= &gpio_omap_ops,
+-	.of_match = omap_gpio_ids,
+-	.bind	= omap_gpio_bind,
+ 	.probe	= omap_gpio_probe,
+ 	.priv_auto_alloc_size = sizeof(struct gpio_bank),
+ };
+diff --git a/include/configs/am335x_evm.h b/include/configs/am335x_evm.h
+index 3cf768e..d3f8a23 100644
+--- a/include/configs/am335x_evm.h
++++ b/include/configs/am335x_evm.h
+@@ -17,6 +17,7 @@
+ #define __CONFIG_AM335X_EVM_H
+ 
+ #include <configs/ti_am335x_common.h>
++#define CONFIG_ENV_IS_NOWHERE
+ 
+ #ifndef CONFIG_SPL_BUILD
+ #ifndef CONFIG_FIT
+@@ -93,19 +94,24 @@
+ 		"root=${spiroot} " \
+ 		"rootfstype=${spirootfstype}\0" \
+ 	"bootenv=uEnv.txt\0" \
+-	"loadbootscript=load mmc ${mmcdev} ${loadaddr} boot.scr\0" \
+-	"bootscript=echo Running bootscript from mmc${mmcdev} ...; " \
++	"script=boot.scr\0" \
++	"scriptfile=${script}\0" \
++	"loadbootscript=load ${interface} ${bootpart} ${loadaddr} ${scriptfile};\0" \
++	"bootscript=echo Running bootscript from mmc${bootpart} ...; " \
+ 		"source ${loadaddr}\0" \
+-	"loadbootenv=load mmc ${mmcdev} ${loadaddr} ${bootenv}\0" \
+-	"importbootenv=echo Importing environment from mmc ...; " \
++	"loadbootenv=load ${interface} ${bootpart} ${loadaddr} ${bootenv}\0" \
++	"importbootenv=echo Importing environment from ${interface} ...; " \
+ 		"env import -t -r $loadaddr $filesize\0" \
+ 	"ramargs=setenv bootargs console=${console} " \
+ 		"${optargs} " \
+ 		"root=${ramroot} " \
+ 		"rootfstype=${ramrootfstype}\0" \
+-	"loadramdisk=load mmc ${mmcdev} ${rdaddr} ramdisk.gz\0" \
+-	"loadimage=load mmc ${bootpart} ${loadaddr} ${bootdir}/${bootfile}\0" \
+-	"loadfdt=load mmc ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}\0" \
++	"loadramdisk=load ${interface} ${mmcdev} ${rdaddr} ramdisk.gz\0" \
++	"loadimage=load ${interface} ${bootpart} ${loadaddr} ${bootdir}/${bootfile}\0" \
++	"loadrd=load ${interface} ${bootpart} ${rdaddr} ${bootdir}/${rdfile}; setenv rdsize ${filesize}\0" \
++	"loadfdt=echo loading ${fdtdir}/${fdtfile} ...; load ${interface} ${bootpart} ${fdtaddr} ${fdtdir}/${fdtfile}\0" \
++	"failumsboot=echo; echo FAILSAFE: U-Boot UMS (USB Mass Storage) enabled, media now available over the usb slave port ...; " \
++		"ums 0 ${interface} 1;\0" \
+ 	"mmcloados=run args_mmc; " \
+ 		"if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
+ 			"if run loadfdt; then " \
+@@ -120,8 +126,8 @@
+ 		"else " \
+ 			"bootz; " \
+ 		"fi;\0" \
+-	"mmcboot=mmc dev ${mmcdev}; " \
+-		"if mmc rescan; then " \
++	"mmcboot=${interface} dev ${mmcdev}; " \
++		"if ${interface} rescan; then " \
+ 			"echo SD/MMC found on device ${mmcdev};" \
+ 			"if run loadbootscript; then " \
+ 				"run bootscript;" \
+@@ -149,27 +155,44 @@
+ 		"bootz ${loadaddr} ${rdaddr} ${fdtaddr}\0" \
+ 	"findfdt="\
+ 		"if test $board_name = A335BONE; then " \
+-			"setenv fdtfile am335x-bone.dtb; fi; " \
++			"setenv fdtfile am335x-bone.dtb; setenv fdtbase am335x-bone; fi; " \
+ 		"if test $board_name = A335BNLT; then " \
+-			"setenv fdtfile am335x-boneblack.dtb; fi; " \
++			"if test $board_rev = BBG1; then " \
++				"setenv fdtfile am335x-bonegreen.dtb; setenv fdtbase am335x-bonegreen; " \
++			"elif test $board_rev = AIA0; then " \
++				"setenv fdtfile am335x-abbbi.dtb; setenv fdtbase am335x-abbbi; " \
++			"else " \
++				"setenv fdtfile am335x-boneblack.dtb; setenv fdtbase am335x-boneblack; " \
++			"fi; " \
++		"fi; " \
+ 		"if test $board_name = A33515BB; then " \
+ 			"setenv fdtfile am335x-evm.dtb; fi; " \
+ 		"if test $board_name = A335X_SK; then " \
+ 			"setenv fdtfile am335x-evmsk.dtb; fi; " \
+ 		"if test $fdtfile = undefined; then " \
+ 			"echo WARNING: Could not determine device tree to use; fi; \0" \
++	EEWIKI_NFS \
++	EEWIKI_BOOT \
++	EEWIKI_UNAME_BOOT \
+ 	NANDARGS \
+ 	NETARGS \
+ 	DFUARGS
+ #endif
+ 
+ #define CONFIG_BOOTCOMMAND \
++	"gpio set 53; " \
+ 	"run findfdt; " \
+-	"run mmcboot;" \
++	"setenv interface mmc; " \
++	"setenv mmcdev 0; " \
++	"setenv bootpart 0:1; " \
++	"run boot;" \
++	"gpio clear 56; " \
++	"gpio clear 55; " \
++	"gpio clear 54; " \
+ 	"setenv mmcdev 1; " \
+-	"setenv bootpart 1:2; " \
+-	"run mmcboot;" \
+-	"run nandboot;"
++	"setenv bootpart 1:1; " \
++	"run boot;" \
++	"run failumsboot;"
+ 
+ /* NS16550 Configuration */
+ #define CONFIG_SYS_NS16550_COM1		0x44e09000	/* Base EVM has UART0 */
+@@ -309,9 +332,8 @@
+ #endif
+ 
+ #ifdef CONFIG_USB_MUSB_GADGET
+-#define CONFIG_USB_ETHER
+-#define CONFIG_USB_ETH_RNDIS
+-#define CONFIG_USBNET_HOST_ADDR	"de:ad:be:af:00:00"
++#define CONFIG_CMD_USB_MASS_STORAGE
++#define CONFIG_USB_FUNCTION_MASS_STORAGE
+ 
+ /* USB TI's IDs */
+ #define CONFIG_G_DNL_VENDOR_NUM 0x0451
+diff --git a/include/configs/ti_armv7_common.h b/include/configs/ti_armv7_common.h
+index 6dc6515..8bf975b 100644
+--- a/include/configs/ti_armv7_common.h
++++ b/include/configs/ti_armv7_common.h
+@@ -61,11 +61,254 @@
+ #define DEFAULT_MMC_TI_ARGS \
+ 	"mmcdev=0\0" \
+ 	"mmcrootfstype=ext4 rootwait\0" \
+-	"finduuid=part uuid mmc 0:2 uuid\0" \
++	"finduuid=part uuid ${interface} ${bootpart} uuid\0" \
+ 	"args_mmc=run finduuid;setenv bootargs console=${console} " \
+ 		"${optargs} " \
+-		"root=PARTUUID=${uuid} rw " \
+-		"rootfstype=${mmcrootfstype}\0"
++		"${cape_disable} " \
++		"${cape_enable} " \
++		"root=PARTUUID=${uuid} ro " \
++		"rootfstype=${mmcrootfstype} " \
++		"${cmdline}\0" \
++	"args_mmc_old=setenv bootargs console=${console} " \
++		"${optargs} " \
++		"${cape_disable} " \
++		"${cape_enable} " \
++		"root=${oldroot} ro " \
++		"rootfstype=${mmcrootfstype} " \
++		"${cmdline}\0" \
++	"args_mmc_uuid=setenv bootargs console=${console} " \
++		"${optargs} " \
++		"${cape_disable} " \
++		"${cape_enable} " \
++		"root=UUID=${uuid} ro " \
++		"rootfstype=${mmcrootfstype} " \
++		"${cmdline}\0" \
++	"args_uenv_root=setenv bootargs console=${console} " \
++		"${optargs} " \
++		"${cape_disable} " \
++		"${cape_enable} " \
++		"root=${uenv_root} ro " \
++		"rootfstype=${mmcrootfstype} " \
++		"${cmdline}\0" \
++	"args_netinstall=setenv bootargs ${netinstall_bootargs} " \
++		"${optargs} " \
++		"${cape_disable} " \
++		"${cape_enable} " \
++		"root=/dev/ram rw " \
++		"${cmdline}\0"
++
++#define EEWIKI_NFS \
++	"server_ip=192.168.1.100\0" \
++	"gw_ip=192.168.1.1\0" \
++	"netmask=255.255.255.0\0" \
++	"hostname=\0" \
++	"device=eth0\0" \
++	"autoconf=off\0" \
++	"root_dir=/home/userid/targetNFS\0" \
++	"tftp_dir=\0" \
++	"nfs_options=,vers=3\0" \
++	"nfsrootfstype=ext4 rootwait fixrtc\0" \
++	"nfsargs=setenv bootargs console=${console} " \
++		"${optargs} " \
++		"${cape_disable} " \
++		"${cape_enable} " \
++		"root=/dev/nfs rw " \
++		"rootfstype=${nfsrootfstype} " \
++		"nfsroot=${nfsroot} " \
++		"ip=${ip} " \
++		"${cmdline}\0" \
++	"nfsboot=echo Booting from ${server_ip} ...; " \
++		"setenv nfsroot ${server_ip}:${root_dir}${nfs_options}; " \
++		"setenv ip ${client_ip}:${server_ip}:${gw_ip}:${netmask}:${hostname}:${device}:${autoconf}; " \
++		"setenv autoload no; " \
++		"setenv serverip ${server_ip}; " \
++		"setenv ipaddr ${client_ip}; " \
++		"tftp ${loadaddr} ${tftp_dir}${bootfile}; " \
++		"tftp ${fdtaddr} ${tftp_dir}dtbs/${fdtfile}; " \
++		"run nfsargs; " \
++		"bootz ${loadaddr} - ${fdtaddr}\0" \
++	"nfsboot_uname_r=echo Booting from ${server_ip} ...; " \
++		"setenv nfsroot ${server_ip}:${root_dir}${nfs_options}; " \
++		"setenv ip ${client_ip}:${server_ip}:${gw_ip}:${netmask}:${hostname}:${device}:${autoconf}; " \
++		"setenv autoload no; " \
++		"setenv serverip ${server_ip}; " \
++		"setenv ipaddr ${client_ip}; " \
++		"tftp ${loadaddr} ${tftp_dir}vmlinuz-${uname_r}; " \
++		"tftp ${fdtaddr} ${tftp_dir}dtbs/${uname_r}/${fdtfile}; " \
++		"run nfsargs; " \
++		"bootz ${loadaddr} - ${fdtaddr}\0" \
++
++#define EEWIKI_BOOT \
++	"boot=${interface} dev ${mmcdev}; " \
++		"if ${interface} rescan; then " \
++			"gpio set 54;" \
++			"setenv bootpart ${mmcdev}:1; " \
++			"if test -e ${interface} ${bootpart} /etc/fstab; then " \
++				"setenv mmcpart 1;" \
++			"fi; " \
++			"echo Checking for: /uEnv.txt ...;" \
++			"if test -e ${interface} ${bootpart} /uEnv.txt; then " \
++				"if run loadbootenv; then " \
++					"gpio set 55;" \
++					"echo Loaded environment from ${bootenv};" \
++					"run importbootenv;" \
++				"fi;" \
++				"if test -n ${cape}; then " \
++					"if test -e ${interface} ${bootpart} ${fdtdir}/${fdtbase}-${cape}.dtb; then " \
++						"setenv fdtfile ${fdtbase}-${cape}.dtb; " \
++					"fi; " \
++					"echo using: $fdtfile...; " \
++				"fi; " \
++				"echo Checking if uenvcmd is set ...;" \
++				"if test -n ${uenvcmd}; then " \
++					"gpio set 56; " \
++					"echo Running uenvcmd ...;" \
++					"run uenvcmd;" \
++				"fi;" \
++				"echo Checking if client_ip is set ...;" \
++				"if test -n ${client_ip}; then " \
++					"if test -n ${dtb}; then " \
++						"setenv fdtfile ${dtb};" \
++						"echo using ${fdtfile} ...;" \
++					"fi;" \
++					"gpio set 56; " \
++					"if test -n ${uname_r}; then " \
++						"echo Running nfsboot_uname_r ...;" \
++						"run nfsboot_uname_r;" \
++					"fi;" \
++					"echo Running nfsboot ...;" \
++					"run nfsboot;" \
++				"fi;" \
++			"fi; " \
++			"echo Checking for: /${script} ...;" \
++			"if test -e ${interface} ${bootpart} /${script}; then " \
++				"gpio set 55;" \
++				"setenv scriptfile ${script};" \
++				"run loadbootscript;" \
++				"echo Loaded script from ${scriptfile};" \
++				"gpio set 56; " \
++				"run bootscript;" \
++			"fi; " \
++			"echo Checking for: /boot/${script} ...;" \
++			"if test -e ${interface} ${bootpart} /boot/${script}; then " \
++				"gpio set 55;" \
++				"setenv scriptfile /boot/${script};" \
++				"run loadbootscript;" \
++				"echo Loaded script from ${scriptfile};" \
++				"gpio set 56; " \
++				"run bootscript;" \
++			"fi; " \
++			"echo Checking for: /boot/uEnv.txt ...;" \
++			"for i in 1 2 3 4 5 6 7 ; do " \
++				"setenv mmcpart ${i};" \
++				"setenv bootpart ${mmcdev}:${mmcpart};" \
++				"if test -e ${interface} ${bootpart} /boot/uEnv.txt; then " \
++					"gpio set 55;" \
++					"load ${interface} ${bootpart} ${loadaddr} /boot/uEnv.txt;" \
++					"env import -t ${loadaddr} ${filesize};" \
++					"echo Loaded environment from /boot/uEnv.txt;" \
++					"if test -n ${dtb}; then " \
++						"setenv fdtfile ${dtb};" \
++						"echo Using: dtb=${fdtfile} ...;" \
++					"fi;" \
++					"echo Checking if uname_r is set in /boot/uEnv.txt...;" \
++					"if test -n ${uname_r}; then " \
++						"gpio set 56; " \
++						"setenv oldroot /dev/mmcblk${mmcdev}p${mmcpart};" \
++						"echo Running uname_boot ...;" \
++						"run uname_boot;" \
++					"fi;" \
++				"fi;" \
++			"done;" \
++		"fi;\0" \
++
++#define EEWIKI_UNAME_BOOT \
++	"uname_boot="\
++		"setenv bootdir /boot; " \
++		"setenv bootfile vmlinuz-${uname_r}; " \
++		"if test -e ${interface} ${bootpart} ${bootdir}/${bootfile}; then " \
++			"echo loading ${bootdir}/${bootfile} ...; "\
++			"run loadimage;" \
++			"setenv fdtdir /boot/dtbs/${uname_r}; " \
++			"if test -e ${interface} ${bootpart} ${fdtdir}/${fdtfile}; then " \
++				"run loadfdt;" \
++			"else " \
++				"setenv fdtdir /usr/lib/linux-image-${uname_r}; " \
++				"if test -e ${interface} ${bootpart} ${fdtdir}/${fdtfile}; then " \
++					"run loadfdt;" \
++				"else " \
++					"setenv fdtdir /lib/firmware/${uname_r}/device-tree; " \
++					"if test -e ${interface} ${bootpart} ${fdtdir}/${fdtfile}; then " \
++						"run loadfdt;" \
++					"else " \
++						"setenv fdtdir /boot/dtb-${uname_r}; " \
++						"if test -e ${interface} ${bootpart} ${fdtdir}/${fdtfile}; then " \
++							"run loadfdt;" \
++						"else " \
++							"setenv fdtdir /boot/dtbs; " \
++							"if test -e ${interface} ${bootpart} ${fdtdir}/${fdtfile}; then " \
++								"run loadfdt;" \
++							"else " \
++								"setenv fdtdir /boot/dtb; " \
++								"if test -e ${interface} ${bootpart} ${fdtdir}/${fdtfile}; then " \
++									"run loadfdt;" \
++								"else " \
++									"setenv fdtdir /boot; " \
++									"if test -e ${interface} ${bootpart} ${fdtdir}/${fdtfile}; then " \
++										"run loadfdt;" \
++									"else " \
++										"if test -e ${interface} ${bootpart} ${fdtfile}; then " \
++											"run loadfdt;" \
++										"else " \
++											"echo; echo unable to find [dtb=${fdtfile}] did you name it correctly? ...; " \
++											"run failumsboot;" \
++										"fi;" \
++									"fi;" \
++								"fi;" \
++							"fi;" \
++						"fi;" \
++					"fi;" \
++				"fi;" \
++			"fi; " \
++			"setenv rdfile initrd.img-${uname_r}; " \
++			"if test -e ${interface} ${bootpart} ${bootdir}/${rdfile}; then " \
++				"echo loading ${bootdir}/${rdfile} ...; "\
++				"run loadrd;" \
++				"if test -n ${netinstall_enable}; then " \
++					"run args_netinstall; run message;" \
++					"echo debug: [${bootargs}] ... ;" \
++					"echo debug: [bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}] ... ;" \
++					"bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}; " \
++				"fi;" \
++				"if test -n ${uenv_root}; then " \
++					"run args_uenv_root;" \
++					"echo debug: [${bootargs}] ... ;" \
++					"echo debug: [bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}] ... ;" \
++					"bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}; " \
++				"fi;" \
++				"if test -n ${uuid}; then " \
++					"run args_mmc_uuid;" \
++					"echo debug: [${bootargs}] ... ;" \
++					"echo debug: [bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}] ... ;" \
++					"bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}; " \
++				"fi;" \
++				"run args_mmc_old;" \
++				"echo debug: [${bootargs}] ... ;" \
++				"echo debug: [bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}] ... ;" \
++				"bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}; " \
++			"else " \
++				"if test -n ${uenv_root}; then " \
++					"run args_uenv_root;" \
++					"echo debug: [${bootargs}] ... ;" \
++					"echo debug: [bootz ${loadaddr} - ${fdtaddr}] ... ;" \
++					"bootz ${loadaddr} - ${fdtaddr}; " \
++				"fi;" \
++				"run args_mmc_old;" \
++				"echo debug: [${bootargs}] ... ;" \
++				"echo debug: [bootz ${loadaddr} - ${fdtaddr}] ... ;" \
++				"bootz ${loadaddr} - ${fdtaddr}; " \
++			"fi;" \
++		"fi;\0" \
+ 
+ /*
+  * Default to a quick boot delay.
+-- 
+2.6.2
+
diff --git a/board/beaglebone/uEnv.txt b/board/beaglebone/uEnv.txt
index e09fff5..b6de9ff 100644
--- a/board/beaglebone/uEnv.txt
+++ b/board/beaglebone/uEnv.txt
@@ -1,3 +1,13 @@ 
-bootpart=0:1
 bootdir=
-uenvcmd=run loadimage;run loadramdisk;run findfdt;run loadfdt;run ramboot
+bootfile=zImage
+fdtfile=am335x-boneblack.dtb
+loadaddr=0x80007fc0
+fdtaddr=0x80F80000
+loadfdt=fatload mmc 0:1 ${fdtaddr} ${fdtfile}
+loaduimage=fatload mmc 0:1 ${loadaddr} ${bootfile}
+console=ttyO0,115200n8
+mmcroot=/dev/mmcblk0p2
+mmcrootfstype=ext2
+uenvcmd=mmc rescan; run loaduimage; run loadfdt; run fdtboot
+fdtboot=run mmc_args; run mmcargs; bootz ${loadaddr} - ${fdtaddr}
+mmc_args=setenv bootargs console=${console} ${optargs} root=${mmcroot} rw rootfstype=${mmcrootfstype} rootwait
diff --git a/configs/beaglebone_defconfig b/configs/beaglebone_defconfig
index ddb583c..dea34d9 100644
--- a/configs/beaglebone_defconfig
+++ b/configs/beaglebone_defconfig
@@ -1,14 +1,33 @@ 
 # architecture
+BR2_ARCH_HAS_MMU_OPTIONAL=y
 BR2_arm=y
+BR2_ARCH="arm"
+BR2_ENDIAN="LITTLE"
+BR2_GCC_TARGET_ABI="aapcs-linux"
+BR2_GCC_TARGET_CPU="cortex-a8"
+BR2_GCC_TARGET_FPU="neon"
+BR2_GCC_TARGET_FLOAT_ABI="hard"
+BR2_GCC_TARGET_MODE="arm"
+BR2_ARCH_HAS_ATOMICS=y
+BR2_BINFMT_SUPPORTS_SHARED=y
+BR2_BINFMT_ELF=y
+BR2_ARM_CPU_HAS_NEON=y
+BR2_ARM_CPU_HAS_VFPV2=y
+BR2_ARM_CPU_HAS_VFPV3=y
+BR2_ARM_CPU_HAS_ARM=y
+BR2_ARM_CPU_HAS_THUMB2=y
+BR2_ARM_CPU_ARMV7A=y
 BR2_cortex_a8=y
 BR2_ARM_EABIHF=y
+BR2_ARM_FPU_NEON=y
+BR2_ARM_INSTRUCTIONS_ARM=y
 
 # system
 BR2_TARGET_GENERIC_HOSTNAME="beaglebone"
 BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS=y
-BR2_TARGET_GENERIC_GETTY_PORT="ttyO0"
+BR2_TARGET_GENERIC_GETTY_PORT="ttyS0"
 # BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW is not set
-BR2_ROOTFS_POST_IMAGE_SCRIPT="board/beaglebone/post-image.sh"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/measbone/post-image.sh"
 
 # filesystem
 BR2_PACKAGE_AM33X_CM3=y
@@ -17,14 +36,17 @@  BR2_TARGET_ROOTFS_EXT2=y
 
 # lock down headers to avoid breaking with new defaults
 BR2_KERNEL_HEADERS_VERSION=y
-BR2_DEFAULT_KERNEL_VERSION="3.12.10"
-BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_12=y
+BR2_DEFAULT_KERNEL_VERSION="4.1.13"
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_1=y
+BR2_DEFAULT_KERNEL_HEADERS="4.1.13"
 
 # bootloader
 BR2_TARGET_UBOOT=y
 BR2_TARGET_UBOOT_BOARDNAME="am335x_evm"
-BR2_TARGET_UBOOT_CUSTOM_VERSION=y
-BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2013.10"
+BR2_TARGET_UBOOT_LATEST_VERSION=y
+BR2_TARGET_UBOOT_VERSION="2015.10"
+BR2_TARGET_UBOOT_PATCH="$(TOPDIR)/board/beaglebone/patches/uboot/"
+BR2_TARGET_UBOOT_NEEDS_DTC=y
 BR2_TARGET_UBOOT_FORMAT_IMG=y
 BR2_TARGET_UBOOT_SPL=y
 BR2_TARGET_UBOOT_SPL_NAME="MLO"
@@ -32,11 +54,12 @@  BR2_TARGET_UBOOT_SPL_NAME="MLO"
 # kernel
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_GIT=y
-BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git"
-BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="7f280334068b7c875ade51f8f3921ab311f0c824"
-BR2_LINUX_KERNEL_PATCH="board/beaglebone/patches/linux/"
+BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/beagleboard/linux.git"
+BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="4.1.13-ti-r36"
+BR2_LINUX_KERNEL_PATCH="board/measbone/patches/linux/"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
-BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/beaglebone/linux-3.12.config"
+BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(TOPDIR)/output/build/linux-4.1.13-ti-r36/arch/arm/configs/bb.org_defconfig"
 BR2_LINUX_KERNEL_ZIMAGE=y
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
+BR2_LINUX_KERNEL_USE_INTREE_DTS=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="am335x-bone am335x-boneblack"
diff --git a/package/dtc/Config.in b/package/dtc/Config.in
index 39223f7..ec44cfc 100644
--- a/package/dtc/Config.in
+++ b/package/dtc/Config.in
@@ -8,7 +8,7 @@  config BR2_PACKAGE_DTC
 	  Note that only the library is installed.
 	  If you want the programs, say 'y' here, and to "dtc programs", below.
 
-	  https://git.kernel.org/cgit/utils/dtc/dtc.git
+	  https://github.com/RobertCNelson/dtc
 
 if BR2_PACKAGE_DTC
 
diff --git a/package/dtc/Config.in.host b/package/dtc/Config.in.host
index cbabf0a..196b702 100644
--- a/package/dtc/Config.in.host
+++ b/package/dtc/Config.in.host
@@ -6,4 +6,4 @@  config BR2_PACKAGE_HOST_DTC
 
 	  Install host tools: dtc, convert-dtsv0, fdtdump, fdtget and fdtput.
 
-	  https://git.kernel.org/cgit/utils/dtc/dtc.git
+	  https://github.com/RobertCNelson/dtc
diff --git a/package/dtc/dtc.hash b/package/dtc/dtc.hash
deleted file mode 100644
index 8b3af33..0000000
--- a/package/dtc/dtc.hash
+++ /dev/null
@@ -1,2 +0,0 @@ 
-# from https://www.kernel.org/pub/software/utils/dtc/sha256sums.asc
-sha256 77992ad8eac7b68f553d0ba58e5b51604ac803d126196c99e3ae38aaae28bb94  dtc-1.4.1.tar.xz
diff --git a/package/dtc/dtc.mk b/package/dtc/dtc.mk
index f3b6f3b..dede664 100644
--- a/package/dtc/dtc.mk
+++ b/package/dtc/dtc.mk
@@ -4,9 +4,9 @@ 
 #
 ################################################################################
 
-DTC_VERSION = 1.4.1
-DTC_SOURCE = dtc-$(DTC_VERSION).tar.xz
-DTC_SITE = https://www.kernel.org/pub/software/utils/dtc
+DTC_VERSION = bb.org-4.1-dt-overlays5
+DTC_SITE = https://github.com/RobertCNelson/dtc
+DTC_SITE_METHOD = git
 DTC_LICENSE = GPLv2+/BSD-2c
 DTC_LICENSE_FILES = README.license GPL
 DTC_INSTALL_STAGING = YES