diff mbox

[1/1] configs: beaglebone: update kernel to 4.1.13 and u-boot to 2015.10

Message ID 1452653542-5562-1-git-send-email-mr.zoltan.gyarmati@gmail.com
State Changes Requested
Headers show

Commit Message

Zoltan Gyarmati Jan. 13, 2016, 2:52 a.m. UTC
Signed-off-by: Zoltan Gyarmati <mr.zoltan.gyarmati@gmail.com>
---

This patch is basically the cleaned-up version of Chris LaRocque's patch
from his mail
"[PATCH 1/2] Updated the Beaglebone configuration, 01/03/2016 10:01 PM"
and the cleanup followed Arnout's corresponding answers.
Changes to Chris' patches:
* dtc patches fetched from GH and placed in 'board/beaglebone/patches/dtc'
* BR2_GLOBAL_PATCH_DIR set accordingly
* added seperated kernel defconfig instead of patching the upstream defconfig
* cleanups in uEnv.txt
* fix u-boot version to 2015.10

The heavy-lifting was done by Chris here, the rest is mostly cosmetics. If
anything els seems to be tweaked, please let us know.


 board/beaglebone/linux-3.12.config                 |  251 ---
 board/beaglebone/linux_4.1.13_bb.org_defconfig     | 2043 ++++++++++++++++++++
 ...comment-block-of-fdt_get_property_namelen.patch |   32 +
 .../0002-fdt-Add-a-function-to-count-strings.patch |  246 +++
 ...d-a-function-to-get-the-index-of-a-string.patch |  159 ++
 ...004-fdt-Add-functions-to-retrieve-strings.patch |  173 ++
 ...cache-flush-management-symbols-when-MULTI.patch |   34 -
 .../0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch   |  754 ++++++++
 board/beaglebone/uEnv.txt                          |   13 +-
 configs/beaglebone_defconfig                       |   46 +-
 10 files changed, 3434 insertions(+), 317 deletions(-)
 delete mode 100644 board/beaglebone/linux-3.12.config
 create mode 100644 board/beaglebone/linux_4.1.13_bb.org_defconfig
 create mode 100644 board/beaglebone/patches/dtc/0001-libfdt-fix-comment-block-of-fdt_get_property_namelen.patch
 create mode 100644 board/beaglebone/patches/dtc/0002-fdt-Add-a-function-to-count-strings.patch
 create mode 100644 board/beaglebone/patches/dtc/0003-fdt-Add-a-function-to-get-the-index-of-a-string.patch
 create mode 100644 board/beaglebone/patches/dtc/0004-fdt-Add-functions-to-retrieve-strings.patch
 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

Comments

Thomas Petazzoni Jan. 13, 2016, 8:51 a.m. UTC | #1
Zoltan,

On Wed, 13 Jan 2016 03:52:22 +0100, Zoltan Gyarmati wrote:

> This patch is basically the cleaned-up version of Chris LaRocque's patch
> from his mail

Thanks for respining this patch.

> "[PATCH 1/2] Updated the Beaglebone configuration, 01/03/2016 10:01 PM"
> and the cleanup followed Arnout's corresponding answers.
> Changes to Chris' patches:
> * dtc patches fetched from GH and placed in 'board/beaglebone/patches/dtc'
> * BR2_GLOBAL_PATCH_DIR set accordingly
> * added seperated kernel defconfig instead of patching the upstream defconfig
> * cleanups in uEnv.txt
> * fix u-boot version to 2015.10
> 
> The heavy-lifting was done by Chris here, the rest is mostly cosmetics. If
> anything els seems to be tweaked, please let us know.
> 
> 
>  board/beaglebone/linux-3.12.config                 |  251 ---
>  board/beaglebone/linux_4.1.13_bb.org_defconfig     | 2043 ++++++++++++++++++++

Looking at its size, this file looks like a full config file and not a
defconfig. Please use a defconfig.

Or better: please use the defconfig that is inside the kernel tree, and
if you need additional tweaks, use config fragments.

>  ...comment-block-of-fdt_get_property_namelen.patch |   32 +
>  .../0002-fdt-Add-a-function-to-count-strings.patch |  246 +++
>  ...d-a-function-to-get-the-index-of-a-string.patch |  159 ++
>  ...004-fdt-Add-functions-to-retrieve-strings.patch |  173 ++

I am not supper happy with the solution of having those DTC patches
specifically for the BeagleBone platform. If I understand correctly,
those patches are needed to get the DT overlay to work, right ?

We had the same problem for the C.H.I.P platform, so it would also be
useful for us to have a overlay-capable DTC. You can see what my
colleague Antoine Ténart did:

  https://github.com/NextThingCo/CHIP-buildroot/commit/1a73b514d204d0c6e9100d53011a11d99fd8b778
  https://github.com/NextThingCo/CHIP-buildroot/commit/f3334df58611ff3cae5fd62906423fdce3d80d24
  https://github.com/NextThingCo/CHIP-buildroot/commit/c4457eba3099f5ca514c06bb35b42772178a151a

It is not ideal because it relies on a separate dtc-overlay package,
which packages a different version of dtc, which Antoine has cooked on
his own github repository.

We really need to find a solution that is acceptable in the upstream
Buildroot, and applies to multiple platforms.

>  ...cache-flush-management-symbols-when-MULTI.patch |   34 -
>  .../0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch   |  754 ++++++++

This huge U-Boot patch is really ugly and mixes lots of stuff. Why do
you need it?


> -# 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_CUSTOM_VERSION_VALUE="2015.10"
> +BR2_TARGET_UBOOT_NEEDS_DTC=y

So this is going to use the host-dtc package for U-Boot, but isn't the
kernel still going to use its internal copy of dtc ? If so, how are
your dtc patches useful for the kernel ?

Thanks!

Thomas
Arnout Vandecappelle Jan. 14, 2016, 9:41 p.m. UTC | #2
On 13-01-16 09:51, Thomas Petazzoni wrote:
> Zoltan,
> 
> On Wed, 13 Jan 2016 03:52:22 +0100, Zoltan Gyarmati wrote:
> 
[snip]
>>  ...comment-block-of-fdt_get_property_namelen.patch |   32 +
>>  .../0002-fdt-Add-a-function-to-count-strings.patch |  246 +++
>>  ...d-a-function-to-get-the-index-of-a-string.patch |  159 ++
>>  ...004-fdt-Add-functions-to-retrieve-strings.patch |  173 ++
> 
> I am not supper happy with the solution of having those DTC patches
> specifically for the BeagleBone platform. If I understand correctly,
> those patches are needed to get the DT overlay to work, right ?

 I was the one suggesting that approach...


> We had the same problem for the C.H.I.P platform, so it would also be
> useful for us to have a overlay-capable DTC. You can see what my
> colleague Antoine Ténart did:
> 
>   https://github.com/NextThingCo/CHIP-buildroot/commit/1a73b514d204d0c6e9100d53011a11d99fd8b778
>   https://github.com/NextThingCo/CHIP-buildroot/commit/f3334df58611ff3cae5fd62906423fdce3d80d24
>   https://github.com/NextThingCo/CHIP-buildroot/commit/c4457eba3099f5ca514c06bb35b42772178a151a
> 
> It is not ideal because it relies on a separate dtc-overlay package,
> which packages a different version of dtc, which Antoine has cooked on
> his own github repository.
> 
> We really need to find a solution that is acceptable in the upstream
> Buildroot, and applies to multiple platforms.

 Just thinking out loud: we could add an option to the dtc package that selects
the overlay version.

 The canonical approach, however, would be to convert dtc to a virtual package
with a dtc-kernel-org and a dtc-overlay implementation.

 Regards,
 Arnout

[snip]
Zoltan Gyarmati Jan. 15, 2016, 1:53 a.m. UTC | #3
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Deat Thomas & All,

thanks for looking into this, please see the answers inline...

On 01/13/2016 09:51 AM, Thomas Petazzoni wrote:
> Zoltan,
> 
> On Wed, 13 Jan 2016 03:52:22 +0100, Zoltan Gyarmati wrote:
> 
>> This patch is basically the cleaned-up version of Chris
>> LaRocque's patch from his mail
> 
> Thanks for respining this patch.
> 
>> "[PATCH 1/2] Updated the Beaglebone configuration, 01/03/2016
>> 10:01 PM" and the cleanup followed Arnout's corresponding
>> answers. Changes to Chris' patches: * dtc patches fetched from GH
>> and placed in 'board/beaglebone/patches/dtc' *
>> BR2_GLOBAL_PATCH_DIR set accordingly * added seperated kernel
>> defconfig instead of patching the upstream defconfig * cleanups
>> in uEnv.txt * fix u-boot version to 2015.10
>> 
>> The heavy-lifting was done by Chris here, the rest is mostly
>> cosmetics. If anything els seems to be tweaked, please let us
>> know.
>> 
>> 
>> board/beaglebone/linux-3.12.config                 |  251 --- 
>> board/beaglebone/linux_4.1.13_bb.org_defconfig     | 2043
>> ++++++++++++++++++++
> 
> Looking at its size, this file looks like a full config file and
> not a defconfig. Please use a defconfig.

It's indeed a defconfig (generated with `make linux-savedefconfig`),
but it enables tons of modules (it's just a slightly modified version
of the upstream one, see at
https://github.com/beagleboard/linux/blob/4.1/arch/arm/configs/bb.org_de
fconfig)
 I'm going to cook a shrinker defconfig version of this for Buildroot,
with just a basic set of modules enabled, especially as this version
also takes a lot of time to build...

> 
> Or better: please use the defconfig that is inside the kernel tree,
> and if you need additional tweaks, use config fragments.
> 
>> ...comment-block-of-fdt_get_property_namelen.patch |   32 + 
>> .../0002-fdt-Add-a-function-to-count-strings.patch |  246 +++ 
>> ...d-a-function-to-get-the-index-of-a-string.patch |  159 ++ 
>> ...004-fdt-Add-functions-to-retrieve-strings.patch |  173 ++
> 
> I am not supper happy with the solution of having those DTC
> patches specifically for the BeagleBone platform. If I understand
> correctly, those patches are needed to get the DT overlay to work,
> right ?
> 
> We had the same problem for the C.H.I.P platform, so it would also
> be useful for us to have a overlay-capable DTC. You can see what
> my colleague Antoine Ténart did:
> 
> https://github.com/NextThingCo/CHIP-buildroot/commit/1a73b514d204d0c6e
9100d53011a11d99fd8b778
>
> 
https://github.com/NextThingCo/CHIP-buildroot/commit/f3334df58611ff3cae5
fd62906423fdce3d80d24
> https://github.com/NextThingCo/CHIP-buildroot/commit/c4457eba3099f5ca5
14c06bb35b42772178a151a
>
>  It is not ideal because it relies on a separate dtc-overlay
> package, which packages a different version of dtc, which Antoine
> has cooked on his own github repository.
> 
> We really need to find a solution that is acceptable in the
> upstream Buildroot, and applies to multiple platforms.
> 
>> ...cache-flush-management-symbols-when-MULTI.patch |   34 - 
>> .../0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch   |  754
>> ++++++++
> 
> This huge U-Boot patch is really ugly and mixes lots of stuff. Why
> do you need it?

Agreed, it's an ugly patch, coming from
https://github.com/eewiki/u-boot-patches/blob/master/v2015.10/0001-am335
x_evm-uEnv.txt-bootz-n-fixes.patch
, and i couldn't find a nicer patchset. Looking ahead to 2016.01,
there is a smaller patch for it
(https://github.com/eewiki/u-boot-patches/blob/master/v2016.01/0001-am33
5x_evm-uEnv.txt-bootz-n-fixes.patch),
where most of the changes are config-related and just a small actual
code is patched, i'm going to test it and and report. (maybe we can go
with a small patch extracted from the linked one, and a custom
defconfig file?)

> 
> 
>> -# 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_CUSTOM_VERSION_VALUE="2015.10" 
>> +BR2_TARGET_UBOOT_NEEDS_DTC=y
> 
> So this is going to use the host-dtc package for U-Boot, but isn't
> the kernel still going to use its internal copy of dtc ? If so, how
> are your dtc patches useful for the kernel ?
> 
> Thanks!
> 
> Thomas
> 

Thanks, regards
zgyarmati
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)

iQEcBAEBAgAGBQJWmFEGAAoJEAGmEeeR8iVhCVgIAKQpqvofRUQXyy10wKcAGCvg
8SPtWt09Cl69Y7sNx32kSkrfAWDHI0O3ez+Arz3lodIORAyV0Dq//BwYkof4l/ed
uHkI5v+bH9g1JnkxbJ4dssVO2hTFE95rtxmsIwXSTmmoXG9hsHMaXkY34Ka615AJ
ZoLQTnY5KL16MINA1N0vfi9KypRHQ69UUJugO9NoNhOpiwwXoTQMCCWmCIdnkcH5
Xn8ahqymgMuXPlA/KqIg54hsEj3/qHx2zvSsNIOSz+efRgCBtkVcH51wqHv04vYi
8/ME1pneG7OA1v5Ki/A9PG1xszlpXxaSA2B/Pxxm0plj30eB5SziYLFVrXzLc6s=
=WJ8j
-----END PGP SIGNATURE-----
Zoltan Gyarmati Jan. 15, 2016, 5:13 a.m. UTC | #4
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Dear Arnout, Thomas & All,


On 01/14/2016 10:41 PM, Arnout Vandecappelle wrote:
> On 13-01-16 09:51, Thomas Petazzoni wrote:
>> Zoltan,
>> 
>> On Wed, 13 Jan 2016 03:52:22 +0100, Zoltan Gyarmati wrote:
>> 
> [snip]
>>> ...comment-block-of-fdt_get_property_namelen.patch |   32 + 
>>> .../0002-fdt-Add-a-function-to-count-strings.patch |  246 +++ 
>>> ...d-a-function-to-get-the-index-of-a-string.patch |  159 ++ 
>>> ...004-fdt-Add-functions-to-retrieve-strings.patch |  173 ++
>> 
>> I am not supper happy with the solution of having those DTC
>> patches specifically for the BeagleBone platform. If I understand
>> correctly, those patches are needed to get the DT overlay to
>> work, right ?
> 
> I was the one suggesting that approach...

Yes, i added them by following Arnout's advice.

> 
> 
>> We had the same problem for the C.H.I.P platform, so it would
>> also be useful for us to have a overlay-capable DTC. You can see
>> what my colleague Antoine Ténart did:
>> 
>> https://github.com/NextThingCo/CHIP-buildroot/commit/1a73b514d204d0c6
e9100d53011a11d99fd8b778
>>
>> 
https://github.com/NextThingCo/CHIP-buildroot/commit/f3334df58611ff3cae5
fd62906423fdce3d80d24
>> https://github.com/NextThingCo/CHIP-buildroot/commit/c4457eba3099f5ca
514c06bb35b42772178a151a
>>
>>
>> 
It is not ideal because it relies on a separate dtc-overlay package,
>> which packages a different version of dtc, which Antoine has
>> cooked on his own github repository.
>> 
>> We really need to find a solution that is acceptable in the
>> upstream Buildroot, and applies to multiple platforms.
> 
> Just thinking out loud: we could add an option to the dtc package
> that selects the overlay version.
> 
> The canonical approach, however, would be to convert dtc to a
> virtual package with a dtc-kernel-org and a dtc-overlay
> implementation.


I looked into this a bit more:
* The u-boot doesn't need the host DTC (even though the
BR2_TARGET_UBOOT_NEEDS_DTC is set in the patch i sent, something i'll
need to fix in the next iteration)

* As the shipped .dtb files are built with the dtc version included in
the linux tree from https://github.com/beagleboard/linux.git, which
has the support for the overlays, so for merely getting a booting
system, no need to hack the dtc package

* As the kernel build also installs this dtc version as
'output/host/usr/bin/linux-dtc', if one needs to compile overlays on
the build host, s/he can use that one (although this need to be
documented at least in the board's README)

* if the user want's to use dtc on the target s/he needs to enable
BR2_PACKAGE_DTC_PROGRAMS, which will fail unless it has been patched

 I'm also not sure what would be the best. I couldn't find any solid
reference now, but i would suspect/hope that this feature will hit the
mainline dtc, so maybe we don't need a long-term solution for this,
but i'm also just thinking out loud...

So as far i can see the options are (and none of them is ideal):

1. Implementing a similar solution as Antoine with an additional
dtc-overlay package with a custom upstream repo.

2. Stick to the current package and upstream, but introduce a config
variable like "BR2_PACKAGE_DTC_SUPPORT_OVERLAY", and if it's set, the
needed patchset is applied (or just using an other upstream)

3. Create a virtual package and 2 implementations as dtc-kernel-org
and a dtc-overlay

4. Only add the needed patches on the boards where needed and patch
dtc by setting BR2_GLOBAL_PATCH_DIR

5. Introducing custom repository/custom patch dir config options for
the dtc package like for u-boot and linux (maybe also with an option
to use the dtc source coming with the kernel tree?)

 And these are just covering the cases when the dtc version in the
kernel tree supports the overlay feature (like in the current case
with beagleboard), so only the host tool dtc and the target dtc need
to be specially treated.




Regards
zgyarmati
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)

iQEcBAEBAgAGBQJWmH/dAAoJEAGmEeeR8iVhNsoIAIRA/cIXoHSmkv76CdX2HHGV
jYnwgEWsIimTH7KuXdvnhDc5pXSYisq83U9Clq+vN2e1jsQp8asB5LC0E8xCIwsq
YHhPYO+g4wboFYTLz4ZlGpJ9FJdZ0qNjfCI4MavUuSXEifbIHVV2Vllkm90ttQB8
T/8QoP0y5a/COLt3DnpMwKzeEAmrIzDQIMKpON3bAwjyJ9/XixwmA665CFHMy7DJ
y9aj6y1uB2ohJdMl8oTX7mJcmLn0J/nd264XepF3p5sJ16JWK4J+ofe22daONnNk
mvrLumrzNh09UvDLxGDU0YJQ8STO8O0DZbwMEKi+widDJnd4NxGDH3nSZW331t0=
=hw93
-----END PGP SIGNATURE-----
Thomas Petazzoni Jan. 15, 2016, 8:21 a.m. UTC | #5
Zoltan,

On Fri, 15 Jan 2016 06:13:01 +0100, Zoltan Gyarmati wrote:

> I looked into this a bit more:
> * The u-boot doesn't need the host DTC (even though the
> BR2_TARGET_UBOOT_NEEDS_DTC is set in the patch i sent, something i'll
> need to fix in the next iteration)
> 
> * As the shipped .dtb files are built with the dtc version included in
> the linux tree from https://github.com/beagleboard/linux.git, which
> has the support for the overlays, so for merely getting a booting
> system, no need to hack the dtc package
> 
> * As the kernel build also installs this dtc version as
> 'output/host/usr/bin/linux-dtc', if one needs to compile overlays on
> the build host, s/he can use that one (although this need to be
> documented at least in the board's README)

So in fact, for the purpose of the beaglebone defconfig itself, we
don't need to package an overlay-capable DTC, right?

If that's the case, then I would suggest that we separate the problem
in two parts: first get an updated beaglebone defconfig merged, then
work on packaging an overlay-capable DTC.

> So as far i can see the options are (and none of them is ideal):
> 
> 1. Implementing a similar solution as Antoine with an additional
> dtc-overlay package with a custom upstream repo.
> 
> 2. Stick to the current package and upstream, but introduce a config
> variable like "BR2_PACKAGE_DTC_SUPPORT_OVERLAY", and if it's set, the
> needed patchset is applied (or just using an other upstream)
> 
> 3. Create a virtual package and 2 implementations as dtc-kernel-org
> and a dtc-overlay
> 
> 4. Only add the needed patches on the boards where needed and patch
> dtc by setting BR2_GLOBAL_PATCH_DIR
> 
> 5. Introducing custom repository/custom patch dir config options for
> the dtc package like for u-boot and linux (maybe also with an option
> to use the dtc source coming with the kernel tree?)

Do we really need to package the two variants of DTC ? The
overlay-capable version is perfectly backward compatible with the
mainline DTC. So why don't we simply include in package/dtc/ the
patches needed to make DTC overlay-capable ?

Yes, this is moving away from our general rule of not including patches
that add new features. But general rules are meant to have exceptions,
and in this specific case, the upstream DTC project is so slow at
integrating major changes such as overlays, and this feature is now
being used so often (BeagleBone, Raspberry Pi, CHIP, etc.) that it
makes sense to support it.

Arnout ? Antoine ?

Best regards,

Thomas
Zoltan Gyarmati Jan. 16, 2016, 1:36 p.m. UTC | #6
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Dear Thomas & All,

On 01/15/2016 09:21 AM, Thomas Petazzoni wrote:
> Zoltan,
> 
> On Fri, 15 Jan 2016 06:13:01 +0100, Zoltan Gyarmati wrote:
> 
>> I looked into this a bit more: * The u-boot doesn't need the host
>> DTC (even though the BR2_TARGET_UBOOT_NEEDS_DTC is set in the
>> patch i sent, something i'll need to fix in the next iteration)
>> 
>> * As the shipped .dtb files are built with the dtc version
>> included in the linux tree from
>> https://github.com/beagleboard/linux.git, which has the support
>> for the overlays, so for merely getting a booting system, no need
>> to hack the dtc package
>> 
>> * As the kernel build also installs this dtc version as 
>> 'output/host/usr/bin/linux-dtc', if one needs to compile overlays
>> on the build host, s/he can use that one (although this need to
>> be documented at least in the board's README)
> 
> So in fact, for the purpose of the beaglebone defconfig itself, we 
> don't need to package an overlay-capable DTC, right?
> 
> If that's the case, then I would suggest that we separate the
> problem in two parts: first get an updated beaglebone defconfig
> merged, then work on packaging an overlay-capable DTC.
> 
>> So as far i can see the options are (and none of them is ideal):
>> 
>> 1. Implementing a similar solution as Antoine with an additional 
>> dtc-overlay package with a custom upstream repo.
>> 
>> 2. Stick to the current package and upstream, but introduce a
>> config variable like "BR2_PACKAGE_DTC_SUPPORT_OVERLAY", and if
>> it's set, the needed patchset is applied (or just using an other
>> upstream)
>> 
>> 3. Create a virtual package and 2 implementations as
>> dtc-kernel-org and a dtc-overlay
>> 
>> 4. Only add the needed patches on the boards where needed and
>> patch dtc by setting BR2_GLOBAL_PATCH_DIR
>> 
>> 5. Introducing custom repository/custom patch dir config options
>> for the dtc package like for u-boot and linux (maybe also with an
>> option to use the dtc source coming with the kernel tree?)
> 
> Do we really need to package the two variants of DTC ? The 
> overlay-capable version is perfectly backward compatible with the 
> mainline DTC. So why don't we simply include in package/dtc/ the 
> patches needed to make DTC overlay-capable ?
> 
> Yes, this is moving away from our general rule of not including
> patches that add new features. But general rules are meant to have
> exceptions, and in this specific case, the upstream DTC project is
> so slow at integrating major changes such as overlays, and this
> feature is now being used so often (BeagleBone, Raspberry Pi, CHIP,
> etc.) that it makes sense to support it.
> 
> Arnout ? Antoine ?
> 

Sounds as Columbus' egg solution to me :)
 In the meantime i tested u-boot 2016.01 with the eewiki patch [1],
and with kernel tag  4.1.15-ti-rt-r41 from [2], and so far it seems to
be working well (i still need to look into the overlay loading though).
If the community also think it makes sense, in the next iteration i'm
happy to post a patchset which contains:

* adding the [3] patches for the current dtc package unconditionally
* beaglebone board config with patched u-boot 2016.01 and kernel
4.1.15-ti-rt-r41 with a saner defconfig



[1]
https://github.com/eewiki/u-boot-patches/blob/master/v2016.01/0001-am335
x_evm-uEnv.txt-bootz-n-fixes.patch
[2] https://github.com/beagleboard/linux
[3] https://github.com/pantoniou/dtc/commits/dt-overlays5


Regards
zgyarmati
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)

iQEcBAEBAgAGBQJWmkdJAAoJEAGmEeeR8iVhEbMH/jG4onr2/MOVNAvTNZGFC86A
lX1GQO52BHzXirBTL5uY9cwrJwvnmHx/ZVbUOm5MK/dkqMXQcNplyH3CHwcG+aa7
sBhG7jSvRsG+JzTVG01YZVizbBODFzmSyRzRgR+Wy8gtgi5lfVvdo0zXlOJbPZiI
0dNeTQx/2Bf+ulmqXpqplLnnzrW60w5k0xeHGoea8ZCWNDLgIxUqtUdxdOf7eBAr
+grYBuAjJg6y9OpCtWTRf8OEDrj1hY1aFzx/BwYvJKc3ITLt+KMNwrf1oxZSprIG
BMMKXkek8TaRRnpyRHEfEhuO3LI1baG5VcsmNgYxq/2ZonJwdBxv5CbjFWaoBXA=
=df8M
-----END PGP SIGNATURE-----
Chris LaRocque Jan. 16, 2016, 2:45 p.m. UTC | #7
BTW, thank you all.

I had intended to work on this when I got back to the states. Watching the
process has been educational.

Regards

Chris

Pushing back the boundaries of ignorance.
On Jan 16, 2016 13:36, "Zoltan Gyarmati" <mr.zoltan.gyarmati@gmail.com>
wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Dear Thomas & All,
>
> On 01/15/2016 09:21 AM, Thomas Petazzoni wrote:
> > Zoltan,
> >
> > On Fri, 15 Jan 2016 06:13:01 +0100, Zoltan Gyarmati wrote:
> >
> >> I looked into this a bit more: * The u-boot doesn't need the host
> >> DTC (even though the BR2_TARGET_UBOOT_NEEDS_DTC is set in the
> >> patch i sent, something i'll need to fix in the next iteration)
> >>
> >> * As the shipped .dtb files are built with the dtc version
> >> included in the linux tree from
> >> https://github.com/beagleboard/linux.git, which has the support
> >> for the overlays, so for merely getting a booting system, no need
> >> to hack the dtc package
> >>
> >> * As the kernel build also installs this dtc version as
> >> 'output/host/usr/bin/linux-dtc', if one needs to compile overlays
> >> on the build host, s/he can use that one (although this need to
> >> be documented at least in the board's README)
> >
> > So in fact, for the purpose of the beaglebone defconfig itself, we
> > don't need to package an overlay-capable DTC, right?
> >
> > If that's the case, then I would suggest that we separate the
> > problem in two parts: first get an updated beaglebone defconfig
> > merged, then work on packaging an overlay-capable DTC.
> >
> >> So as far i can see the options are (and none of them is ideal):
> >>
> >> 1. Implementing a similar solution as Antoine with an additional
> >> dtc-overlay package with a custom upstream repo.
> >>
> >> 2. Stick to the current package and upstream, but introduce a
> >> config variable like "BR2_PACKAGE_DTC_SUPPORT_OVERLAY", and if
> >> it's set, the needed patchset is applied (or just using an other
> >> upstream)
> >>
> >> 3. Create a virtual package and 2 implementations as
> >> dtc-kernel-org and a dtc-overlay
> >>
> >> 4. Only add the needed patches on the boards where needed and
> >> patch dtc by setting BR2_GLOBAL_PATCH_DIR
> >>
> >> 5. Introducing custom repository/custom patch dir config options
> >> for the dtc package like for u-boot and linux (maybe also with an
> >> option to use the dtc source coming with the kernel tree?)
> >
> > Do we really need to package the two variants of DTC ? The
> > overlay-capable version is perfectly backward compatible with the
> > mainline DTC. So why don't we simply include in package/dtc/ the
> > patches needed to make DTC overlay-capable ?
> >
> > Yes, this is moving away from our general rule of not including
> > patches that add new features. But general rules are meant to have
> > exceptions, and in this specific case, the upstream DTC project is
> > so slow at integrating major changes such as overlays, and this
> > feature is now being used so often (BeagleBone, Raspberry Pi, CHIP,
> > etc.) that it makes sense to support it.
> >
> > Arnout ? Antoine ?
> >
>
> Sounds as Columbus' egg solution to me :)
>  In the meantime i tested u-boot 2016.01 with the eewiki patch [1],
> and with kernel tag  4.1.15-ti-rt-r41 from [2], and so far it seems to
> be working well (i still need to look into the overlay loading though).
> If the community also think it makes sense, in the next iteration i'm
> happy to post a patchset which contains:
>
> * adding the [3] patches for the current dtc package unconditionally
> * beaglebone board config with patched u-boot 2016.01 and kernel
> 4.1.15-ti-rt-r41 with a saner defconfig
>
>
>
> [1]
> https://github.com/eewiki/u-boot-patches/blob/master/v2016.01/0001-am335
> x_evm-uEnv.txt-bootz-n-fixes.patch
> [2] https://github.com/beagleboard/linux
> [3] https://github.com/pantoniou/dtc/commits/dt-overlays5
>
>
> Regards
> zgyarmati
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v2.0.22 (GNU/Linux)
>
> iQEcBAEBAgAGBQJWmkdJAAoJEAGmEeeR8iVhEbMH/jG4onr2/MOVNAvTNZGFC86A
> lX1GQO52BHzXirBTL5uY9cwrJwvnmHx/ZVbUOm5MK/dkqMXQcNplyH3CHwcG+aa7
> sBhG7jSvRsG+JzTVG01YZVizbBODFzmSyRzRgR+Wy8gtgi5lfVvdo0zXlOJbPZiI
> 0dNeTQx/2Bf+ulmqXpqplLnnzrW60w5k0xeHGoea8ZCWNDLgIxUqtUdxdOf7eBAr
> +grYBuAjJg6y9OpCtWTRf8OEDrj1hY1aFzx/BwYvJKc3ITLt+KMNwrf1oxZSprIG
> BMMKXkek8TaRRnpyRHEfEhuO3LI1baG5VcsmNgYxq/2ZonJwdBxv5CbjFWaoBXA=
> =df8M
> -----END PGP SIGNATURE-----
>
Thomas Petazzoni March 8, 2016, 4:36 p.m. UTC | #8
Zoltan, Chris,

On Wed, 13 Jan 2016 03:52:22 +0100, Zoltan Gyarmati wrote:
> Signed-off-by: Zoltan Gyarmati <mr.zoltan.gyarmati@gmail.com>
> ---
> 
> This patch is basically the cleaned-up version of Chris LaRocque's patch
> from his mail
> "[PATCH 1/2] Updated the Beaglebone configuration, 01/03/2016 10:01 PM"
> and the cleanup followed Arnout's corresponding answers.
> Changes to Chris' patches:
> * dtc patches fetched from GH and placed in 'board/beaglebone/patches/dtc'
> * BR2_GLOBAL_PATCH_DIR set accordingly
> * added seperated kernel defconfig instead of patching the upstream defconfig
> * cleanups in uEnv.txt
> * fix u-boot version to 2015.10
> 
> The heavy-lifting was done by Chris here, the rest is mostly cosmetics. If
> anything els seems to be tweaked, please let us know.

Any news about this submission? Lots of comments and suggestions have
been made, but no newer version was sent, unless I missed it.

Do you plan to work on this topic soon? IIRC, the biggest issue was
having an overlay-capable DTC.

Thanks!

Thomas
Thomas Petazzoni May 25, 2016, 12:35 p.m. UTC | #9
Hello,

On Wed, 13 Jan 2016 03:52:22 +0100, Zoltan Gyarmati wrote:
> Signed-off-by: Zoltan Gyarmati <mr.zoltan.gyarmati@gmail.com>
> ---
> 
> This patch is basically the cleaned-up version of Chris LaRocque's patch
> from his mail
> "[PATCH 1/2] Updated the Beaglebone configuration, 01/03/2016 10:01 PM"
> and the cleanup followed Arnout's corresponding answers.
> Changes to Chris' patches:
> * dtc patches fetched from GH and placed in 'board/beaglebone/patches/dtc'
> * BR2_GLOBAL_PATCH_DIR set accordingly
> * added seperated kernel defconfig instead of patching the upstream defconfig
> * cleanups in uEnv.txt
> * fix u-boot version to 2015.10
> 
> The heavy-lifting was done by Chris here, the rest is mostly cosmetics. If
> anything els seems to be tweaked, please let us know.

This patch has received many comments, but as far as I know, no new
version has been sent. I still believe that an updated
beaglebone_defconfig would be very nice to have, so if someone could
revive this effort, it would be good.

In the mean time, I'm marking this patch as "Changes Requested" in our
patch tracking system.

Thanks!

Thomas
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/linux_4.1.13_bb.org_defconfig b/board/beaglebone/linux_4.1.13_bb.org_defconfig
new file mode 100644
index 0000000..7ba30a8
--- /dev/null
+++ b/board/beaglebone/linux_4.1.13_bb.org_defconfig
@@ -0,0 +1,2043 @@ 
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_FHANDLE=y
+CONFIG_NO_HZ_IDLE=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_RCU_FAST_NO_HZ=y
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=18
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CPUSETS=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_MEMCG=y
+CONFIG_MEMCG_SWAP=y
+CONFIG_MEMCG_KMEM=y
+CONFIG_CGROUP_PERF=y
+CONFIG_CFS_BANDWIDTH=y
+CONFIG_RT_GROUP_SCHED=y
+CONFIG_BLK_CGROUP=y
+CONFIG_CHECKPOINT_RESTORE=y
+CONFIG_NAMESPACES=y
+CONFIG_USER_NS=y
+CONFIG_SCHED_AUTOGROUP=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS_ALL=y
+CONFIG_BPF_SYSCALL=y
+CONFIG_EMBEDDED=y
+# CONFIG_COMPAT_BRK is not set
+CONFIG_SLAB=y
+CONFIG_PROFILING=y
+CONFIG_OPROFILE=y
+CONFIG_KPROBES=y
+CONFIG_JUMP_LABEL=y
+CONFIG_CC_STACKPROTECTOR_REGULAR=y
+CONFIG_MODULES=y
+CONFIG_MODULE_FORCE_LOAD=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+CONFIG_BLK_DEV_THROTTLING=y
+CONFIG_PARTITION_ADVANCED=y
+CONFIG_KARMA_PARTITION=y
+CONFIG_CFQ_GROUP_IOSCHED=y
+CONFIG_OMAP_RESET_CLOCKS=y
+CONFIG_OMAP_MUX_DEBUG=y
+CONFIG_SOC_OMAP5=y
+CONFIG_SOC_AM33XX=y
+CONFIG_SOC_AM43XX=y
+CONFIG_SOC_DRA7XX=y
+CONFIG_SOC_HAS_OMAP2_SDRC=y
+CONFIG_OMAP5_ERRATA_801819=y
+CONFIG_ARM_THUMBEE=y
+CONFIG_PL310_ERRATA_588369=y
+CONFIG_PL310_ERRATA_727915=y
+# CONFIG_ARM_ERRATA_643719 is not set
+CONFIG_ARM_ERRATA_720789=y
+CONFIG_ARM_ERRATA_754322=y
+CONFIG_ARM_ERRATA_775420=y
+CONFIG_PCI=y
+CONFIG_PCI_DRA7XX=y
+CONFIG_SMP=y
+CONFIG_NR_CPUS=2
+CONFIG_ARM_PSCI=y
+CONFIG_PREEMPT=y
+CONFIG_KSM=y
+CONFIG_FRONTSWAP=y
+CONFIG_CMA=y
+CONFIG_ZSWAP=y
+CONFIG_ZBUD=y
+CONFIG_ZSMALLOC=m
+CONFIG_SECCOMP=y
+# CONFIG_ATAGS is not set
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_KEXEC=y
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_STAT_DETAILS=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+CONFIG_CPUFREQ_DT=y
+CONFIG_CPUFREQ_VOLTDM=y
+# CONFIG_ARM_OMAP2PLUS_CPUFREQ is not set
+CONFIG_CPU_IDLE=y
+CONFIG_ARM_CPUIDLE=y
+CONFIG_KERNEL_MODE_NEON=y
+CONFIG_BINFMT_MISC=m
+CONFIG_HIBERNATION=y
+CONFIG_PM_AUTOSLEEP=y
+CONFIG_PM_WAKELOCKS=y
+CONFIG_PM_DEBUG=y
+CONFIG_PM_ADVANCED_DEBUG=y
+CONFIG_APM_EMULATION=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_PACKET_DIAG=m
+CONFIG_UNIX=y
+CONFIG_UNIX_DIAG=m
+CONFIG_XFRM_USER=m
+CONFIG_XFRM_SUB_POLICY=y
+CONFIG_NET_KEY=m
+CONFIG_NET_KEY_MIGRATE=y
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_FIB_TRIE_STATS=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+CONFIG_IP_PNP_RARP=y
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE_DEMUX=m
+CONFIG_NET_IPGRE=m
+CONFIG_NET_IPGRE_BROADCAST=y
+CONFIG_IP_MROUTE=y
+CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+CONFIG_NET_IPVTI=m
+CONFIG_NET_FOU_IP_TUNNELS=y
+CONFIG_GENEVE=m
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_XFRM_MODE_TRANSPORT=m
+CONFIG_INET_XFRM_MODE_TUNNEL=m
+CONFIG_INET_XFRM_MODE_BEET=m
+CONFIG_INET_LRO=m
+CONFIG_INET_DIAG=m
+CONFIG_INET_UDP_DIAG=m
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_HSTCP=m
+CONFIG_TCP_CONG_HYBLA=m
+CONFIG_TCP_CONG_SCALABLE=m
+CONFIG_TCP_CONG_LP=m
+CONFIG_TCP_CONG_VENO=m
+CONFIG_TCP_CONG_YEAH=m
+CONFIG_TCP_CONG_ILLINOIS=m
+CONFIG_TCP_CONG_DCTCP=m
+CONFIG_TCP_MD5SIG=y
+CONFIG_IPV6=y
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+CONFIG_IPV6_OPTIMISTIC_DAD=y
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_IPV6_MIP6=y
+CONFIG_INET6_XFRM_MODE_TRANSPORT=m
+CONFIG_INET6_XFRM_MODE_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_BEET=m
+CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
+CONFIG_IPV6_VTI=m
+CONFIG_IPV6_SIT=m
+CONFIG_IPV6_SIT_6RD=y
+CONFIG_IPV6_GRE=m
+CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_IPV6_SUBTREES=y
+CONFIG_IPV6_MROUTE=y
+CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
+CONFIG_IPV6_PIMSM_V2=y
+CONFIG_NETLABEL=y
+CONFIG_NETFILTER=y
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CONNTRACK_SECMARK=y
+CONFIG_NF_CONNTRACK_ZONES=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_TIMEOUT=y
+CONFIG_NF_CONNTRACK_TIMESTAMP=y
+CONFIG_NF_CT_PROTO_UDPLITE=m
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_SNMP=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NF_CT_NETLINK_TIMEOUT=m
+CONFIG_NF_CT_NETLINK_HELPER=m
+CONFIG_NETFILTER_NETLINK_QUEUE_CT=y
+CONFIG_NF_TABLES=m
+CONFIG_NF_TABLES_INET=m
+CONFIG_NFT_EXTHDR=m
+CONFIG_NFT_META=m
+CONFIG_NFT_CT=m
+CONFIG_NFT_RBTREE=m
+CONFIG_NFT_HASH=m
+CONFIG_NFT_COUNTER=m
+CONFIG_NFT_LOG=m
+CONFIG_NFT_LIMIT=m
+CONFIG_NFT_MASQ=m
+CONFIG_NFT_REDIR=m
+CONFIG_NFT_NAT=m
+CONFIG_NFT_QUEUE=m
+CONFIG_NFT_REJECT=m
+CONFIG_NFT_COMPAT=m
+CONFIG_NETFILTER_XT_SET=m
+CONFIG_NETFILTER_XT_TARGET_AUDIT=m
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
+CONFIG_NETFILTER_XT_TARGET_CT=m
+CONFIG_NETFILTER_XT_TARGET_DSCP=m
+CONFIG_NETFILTER_XT_TARGET_HMARK=m
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
+CONFIG_NETFILTER_XT_TARGET_LED=m
+CONFIG_NETFILTER_XT_TARGET_LOG=m
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+CONFIG_NETFILTER_XT_TARGET_TEE=m
+CONFIG_NETFILTER_XT_TARGET_TPROXY=m
+CONFIG_NETFILTER_XT_TARGET_TRACE=m
+CONFIG_NETFILTER_XT_TARGET_SECMARK=m
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
+CONFIG_NETFILTER_XT_MATCH_BPF=m
+CONFIG_NETFILTER_XT_MATCH_CGROUP=m
+CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_CPU=m
+CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_IPCOMP=m
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+CONFIG_NETFILTER_XT_MATCH_IPVS=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_NFACCT=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
+CONFIG_NETFILTER_XT_MATCH_OWNER=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_RATEEST=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_RECENT=m
+CONFIG_NETFILTER_XT_MATCH_SOCKET=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_TIME=m
+CONFIG_NETFILTER_XT_MATCH_U32=m
+CONFIG_IP_SET=m
+CONFIG_IP_SET_BITMAP_IP=m
+CONFIG_IP_SET_BITMAP_IPMAC=m
+CONFIG_IP_SET_BITMAP_PORT=m
+CONFIG_IP_SET_HASH_IP=m
+CONFIG_IP_SET_HASH_IPMARK=m
+CONFIG_IP_SET_HASH_IPPORT=m
+CONFIG_IP_SET_HASH_IPPORTIP=m
+CONFIG_IP_SET_HASH_IPPORTNET=m
+CONFIG_IP_SET_HASH_MAC=m
+CONFIG_IP_SET_HASH_NETPORTNET=m
+CONFIG_IP_SET_HASH_NET=m
+CONFIG_IP_SET_HASH_NETNET=m
+CONFIG_IP_SET_HASH_NETPORT=m
+CONFIG_IP_SET_HASH_NETIFACE=m
+CONFIG_IP_SET_LIST_SET=m
+CONFIG_IP_VS=m
+CONFIG_IP_VS_IPV6=y
+CONFIG_IP_VS_PROTO_TCP=y
+CONFIG_IP_VS_PROTO_UDP=y
+CONFIG_IP_VS_PROTO_ESP=y
+CONFIG_IP_VS_PROTO_AH=y
+CONFIG_IP_VS_PROTO_SCTP=y
+CONFIG_IP_VS_RR=m
+CONFIG_IP_VS_WRR=m
+CONFIG_IP_VS_LC=m
+CONFIG_IP_VS_WLC=m
+CONFIG_IP_VS_FO=m
+CONFIG_IP_VS_LBLC=m
+CONFIG_IP_VS_LBLCR=m
+CONFIG_IP_VS_DH=m
+CONFIG_IP_VS_SH=m
+CONFIG_IP_VS_SED=m
+CONFIG_IP_VS_NQ=m
+CONFIG_IP_VS_FTP=m
+CONFIG_IP_VS_PE_SIP=m
+CONFIG_NF_CONNTRACK_IPV4=m
+CONFIG_NFT_CHAIN_ROUTE_IPV4=m
+CONFIG_NF_TABLES_ARP=m
+CONFIG_NF_LOG_ARP=m
+CONFIG_NFT_CHAIN_NAT_IPV4=m
+CONFIG_NFT_MASQ_IPV4=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_RPFILTER=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_SYNPROXY=m
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_SECURITY=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+CONFIG_NF_CONNTRACK_IPV6=m
+CONFIG_NFT_CHAIN_ROUTE_IPV6=m
+CONFIG_NFT_CHAIN_NAT_IPV6=m
+CONFIG_NFT_MASQ_IPV6=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_RPFILTER=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_TARGET_SYNPROXY=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_RAW=m
+CONFIG_IP6_NF_SECURITY=m
+CONFIG_IP6_NF_NAT=m
+CONFIG_IP6_NF_TARGET_MASQUERADE=m
+CONFIG_IP6_NF_TARGET_NPT=m
+CONFIG_NF_TABLES_BRIDGE=m
+CONFIG_NFT_BRIDGE_META=m
+CONFIG_NFT_BRIDGE_REJECT=m
+CONFIG_NF_LOG_BRIDGE=m
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_IP6=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_NFLOG=m
+CONFIG_IP_DCCP=m
+CONFIG_NET_DCCPPROBE=m
+CONFIG_NET_SCTPPROBE=m
+CONFIG_SCTP_COOKIE_HMAC_SHA1=y
+CONFIG_RDS=m
+CONFIG_RDS_TCP=m
+CONFIG_TIPC=m
+CONFIG_ATM=m
+CONFIG_ATM_CLIP=m
+CONFIG_ATM_LANE=m
+CONFIG_ATM_MPOA=m
+CONFIG_ATM_BR2684=m
+CONFIG_L2TP=m
+CONFIG_L2TP_DEBUGFS=m
+CONFIG_L2TP_V3=y
+CONFIG_L2TP_IP=m
+CONFIG_L2TP_ETH=m
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_VLAN_FILTERING=y
+CONFIG_VLAN_8021Q=m
+CONFIG_VLAN_8021Q_GVRP=y
+CONFIG_VLAN_8021Q_MVRP=y
+CONFIG_LLC2=m
+CONFIG_ATALK=m
+CONFIG_DEV_APPLETALK=m
+CONFIG_IPDDP=m
+CONFIG_IPDDP_ENCAP=y
+CONFIG_PHONET=m
+CONFIG_6LOWPAN=m
+CONFIG_IEEE802154=m
+CONFIG_IEEE802154_6LOWPAN=m
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_ATM=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_MULTIQ=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFB=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_MQPRIO=m
+CONFIG_NET_SCH_CHOKE=m
+CONFIG_NET_SCH_QFQ=m
+CONFIG_NET_SCH_CODEL=m
+CONFIG_NET_SCH_FQ_CODEL=m
+CONFIG_NET_SCH_FQ=m
+CONFIG_NET_SCH_HHF=m
+CONFIG_NET_SCH_PIE=m
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_SCH_PLUG=m
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_CLS_U32_PERF=y
+CONFIG_CLS_U32_MARK=y
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_FLOW=m
+CONFIG_NET_CLS_CGROUP=m
+CONFIG_NET_CLS_BPF=m
+CONFIG_NET_EMATCH=y
+CONFIG_NET_EMATCH_CMP=m
+CONFIG_NET_EMATCH_NBYTE=m
+CONFIG_NET_EMATCH_U32=m
+CONFIG_NET_EMATCH_META=m
+CONFIG_NET_EMATCH_TEXT=m
+CONFIG_NET_EMATCH_CANID=m
+CONFIG_NET_EMATCH_IPSET=m
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_GACT_PROB=y
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_NAT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_SIMP=m
+CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_ACT_CSUM=m
+CONFIG_NET_ACT_VLAN=m
+CONFIG_NET_ACT_BPF=m
+CONFIG_NET_ACT_CONNMARK=m
+CONFIG_NET_CLS_IND=y
+CONFIG_DCB=y
+CONFIG_BATMAN_ADV=m
+CONFIG_BATMAN_ADV_DAT=y
+CONFIG_BATMAN_ADV_NC=y
+CONFIG_BATMAN_ADV_MCAST=y
+CONFIG_OPENVSWITCH=m
+CONFIG_NETLINK_MMAP=y
+CONFIG_NETLINK_DIAG=m
+CONFIG_NET_MPLS_GSO=y
+CONFIG_MPLS_ROUTING=m
+CONFIG_CGROUP_NET_PRIO=y
+CONFIG_BPF_JIT=y
+CONFIG_NET_PKTGEN=m
+CONFIG_NET_DROP_MONITOR=m
+CONFIG_CAN=m
+CONFIG_CAN_VCAN=m
+CONFIG_CAN_SLCAN=m
+CONFIG_CAN_SJA1000=m
+CONFIG_CAN_SJA1000_ISA=m
+CONFIG_CAN_C_CAN=m
+CONFIG_CAN_C_CAN_PLATFORM=m
+CONFIG_CAN_MCP251X=m
+CONFIG_CAN_EMS_USB=m
+CONFIG_CAN_ESD_USB2=m
+CONFIG_CAN_GS_USB=m
+CONFIG_CAN_KVASER_USB=m
+CONFIG_CAN_PEAK_USB=m
+CONFIG_CAN_8DEV_USB=m
+CONFIG_CAN_SOFTING=m
+CONFIG_BT=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_HIDP=m
+CONFIG_BT_6LOWPAN=m
+CONFIG_BT_HCIBTUSB=m
+CONFIG_BT_HCIBTSDIO=m
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_ATH3K=y
+CONFIG_BT_HCIUART_LL=y
+CONFIG_BT_HCIUART_3WIRE=y
+CONFIG_BT_HCIUART_BCM=y
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_MRVL=m
+CONFIG_BT_MRVL_SDIO=m
+CONFIG_BT_ATH3K=m
+CONFIG_BT_WILINK=m
+CONFIG_RXKAD=m
+CONFIG_CFG80211=m
+CONFIG_CFG80211_WEXT=y
+CONFIG_MAC80211=m
+CONFIG_MAC80211_MESH=y
+CONFIG_WIMAX=m
+CONFIG_RFKILL=m
+CONFIG_RFKILL_INPUT=y
+CONFIG_NET_9P=m
+CONFIG_NET_9P_VIRTIO=m
+CONFIG_NFC=m
+CONFIG_NFC_DIGITAL=m
+CONFIG_NFC_PN533=m
+CONFIG_NFC_SIM=m
+CONFIG_NFC_PORT100=m
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_EXTRA_FIRMWARE="am335x-pm-firmware.elf am335x-bone-scale-data.bin am335x-evm-scale-data.bin am43x-evm-scale-data.bin"
+CONFIG_DMA_CMA=y
+CONFIG_CMA_SIZE_MBYTES=24
+CONFIG_OMAP_OCP2SCP=y
+CONFIG_VEXPRESS_CONFIG=y
+CONFIG_CONNECTOR=y
+CONFIG_MTD=y
+CONFIG_MTD_OF_PARTS=m
+CONFIG_MTD_AR7_PARTS=m
+CONFIG_MTD_BLOCK=m
+CONFIG_MTD_BLOCK_RO=m
+CONFIG_RFD_FTL=m
+CONFIG_SSFDC=m
+CONFIG_MTD_OOPS=m
+CONFIG_MTD_SWAP=m
+CONFIG_MTD_PHYSMAP=m
+CONFIG_MTD_PLATRAM=m
+CONFIG_MTD_DATAFLASH=m
+CONFIG_MTD_M25P80=m
+CONFIG_MTD_SST25L=m
+CONFIG_MTD_NAND=y
+CONFIG_MTD_NAND_ECC_BCH=y
+CONFIG_MTD_NAND_OMAP2=m
+CONFIG_MTD_NAND_NANDSIM=m
+CONFIG_MTD_ONENAND=y
+CONFIG_MTD_ONENAND_VERIFY_WRITE=y
+CONFIG_MTD_ONENAND_2X_PROGRAM=y
+CONFIG_MTD_LPDDR=m
+CONFIG_MTD_SPI_NOR=m
+CONFIG_MTD_UBI=m
+CONFIG_MTD_UBI_BLOCK=y
+CONFIG_OF_CONFIGFS=y
+CONFIG_PARPORT=m
+CONFIG_PARPORT_1284=y
+CONFIG_BLK_DEV_NULL_BLK=m
+CONFIG_ZRAM=m
+CONFIG_ZRAM_LZ4_COMPRESS=y
+CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_DRBD=m
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_OSD=m
+CONFIG_BLK_DEV_RAM=m
+CONFIG_BLK_DEV_RAM_SIZE=16384
+CONFIG_ATA_OVER_ETH=m
+CONFIG_VIRTIO_BLK=m
+CONFIG_BLK_DEV_RBD=m
+CONFIG_AD525X_DPOT=m
+CONFIG_AD525X_DPOT_I2C=m
+CONFIG_AD525X_DPOT_SPI=m
+CONFIG_ICS932S401=m
+CONFIG_ENCLOSURE_SERVICES=m
+CONFIG_APDS9802ALS=m
+CONFIG_ISL29003=m
+CONFIG_ISL29020=m
+CONFIG_SENSORS_TSL2550=m
+CONFIG_SENSORS_BH1780=m
+CONFIG_SENSORS_BH1770=m
+CONFIG_SENSORS_APDS990X=m
+CONFIG_HMC6352=m
+CONFIG_DS1682=m
+CONFIG_TI_DAC7512=m
+CONFIG_SRAM=y
+CONFIG_BONE_CAPEMGR=y
+CONFIG_DEV_OVERLAYMGR=y
+CONFIG_TIEQEP=m
+CONFIG_C2PORT=m
+CONFIG_EEPROM_AT24=y
+CONFIG_EEPROM_AT25=m
+CONFIG_EEPROM_LEGACY=m
+CONFIG_EEPROM_MAX6875=m
+CONFIG_TI_ST=m
+CONFIG_SENSORS_LIS3_I2C=m
+CONFIG_ALTERA_STAPL=m
+CONFIG_BEAGLEBONE_PINMUX_HELPER=y
+CONFIG_RAID_ATTRS=m
+CONFIG_BLK_DEV_SD=y
+CONFIG_CHR_DEV_ST=m
+CONFIG_CHR_DEV_OSST=m
+CONFIG_BLK_DEV_SR=m
+CONFIG_BLK_DEV_SR_VENDOR=y
+CONFIG_CHR_DEV_SG=m
+CONFIG_CHR_DEV_SCH=m
+CONFIG_SCSI_ENCLOSURE=m
+CONFIG_SCSI_CONSTANTS=y
+CONFIG_SCSI_LOGGING=y
+CONFIG_SCSI_SCAN_ASYNC=y
+CONFIG_SCSI_SPI_ATTRS=m
+CONFIG_SCSI_FC_ATTRS=m
+CONFIG_SCSI_SAS_LIBSAS=m
+CONFIG_SCSI_SAS_ATA=y
+CONFIG_SCSI_SRP_ATTRS=m
+CONFIG_ISCSI_TCP=m
+CONFIG_ISCSI_BOOT_SYSFS=m
+CONFIG_SCSI_UFSHCD=m
+CONFIG_LIBFC=m
+CONFIG_LIBFCOE=m
+CONFIG_SCSI_VIRTIO=m
+CONFIG_SCSI_DH=m
+CONFIG_SCSI_DH_RDAC=m
+CONFIG_SCSI_DH_HP_SW=m
+CONFIG_SCSI_DH_EMC=m
+CONFIG_SCSI_DH_ALUA=m
+CONFIG_SCSI_OSD_INITIATOR=m
+CONFIG_SCSI_OSD_ULD=m
+CONFIG_ATA=y
+CONFIG_SATA_AHCI_PLATFORM=y
+CONFIG_MD=y
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_MULTIPATH=m
+CONFIG_MD_FAULTY=m
+CONFIG_BCACHE=m
+CONFIG_BLK_DEV_DM=m
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_THIN_PROVISIONING=m
+CONFIG_DM_CACHE=m
+CONFIG_DM_ERA=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_LOG_USERSPACE=m
+CONFIG_DM_RAID=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_MULTIPATH=m
+CONFIG_DM_MULTIPATH_QL=m
+CONFIG_DM_MULTIPATH_ST=m
+CONFIG_DM_DELAY=m
+CONFIG_DM_UEVENT=y
+CONFIG_DM_FLAKEY=m
+CONFIG_DM_VERITY=m
+CONFIG_DM_SWITCH=m
+CONFIG_DM_LOG_WRITES=m
+CONFIG_TARGET_CORE=m
+CONFIG_TCM_IBLOCK=m
+CONFIG_TCM_FILEIO=m
+CONFIG_TCM_PSCSI=m
+CONFIG_LOOPBACK_TARGET=m
+CONFIG_TCM_FC=m
+CONFIG_ISCSI_TARGET=m
+CONFIG_NETDEVICES=y
+CONFIG_BONDING=m
+CONFIG_DUMMY=m
+CONFIG_EQUALIZER=m
+CONFIG_IFB=m
+CONFIG_NET_TEAM=m
+CONFIG_NET_TEAM_MODE_BROADCAST=m
+CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
+CONFIG_NET_TEAM_MODE_RANDOM=m
+CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
+CONFIG_NET_TEAM_MODE_LOADBALANCE=m
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+CONFIG_IPVLAN=m
+CONFIG_VXLAN=m
+CONFIG_NETCONSOLE=m
+CONFIG_NETCONSOLE_DYNAMIC=y
+CONFIG_TUN=m
+CONFIG_VETH=m
+CONFIG_VIRTIO_NET=m
+CONFIG_NLMON=m
+CONFIG_ATM_DUMMY=m
+# 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_HISILICON is not set
+# CONFIG_NET_VENDOR_INTEL is not set
+# CONFIG_NET_VENDOR_MARVELL is not set
+CONFIG_ENC28J60=m
+# CONFIG_NET_VENDOR_8390 is not set
+# CONFIG_NET_VENDOR_QUALCOMM is not set
+# CONFIG_NET_VENDOR_ROCKER is not set
+# CONFIG_NET_VENDOR_SAMSUNG is not set
+# CONFIG_NET_VENDOR_SEEQ is not set
+CONFIG_SMC91X=y
+CONFIG_SMC911X=y
+CONFIG_SMSC911X=y
+# CONFIG_NET_VENDOR_STMICRO is not set
+CONFIG_TI_CPSW=y
+CONFIG_TI_CPTS=y
+# CONFIG_NET_VENDOR_VIA is not set
+CONFIG_AT803X_PHY=y
+CONFIG_AMD_PHY=y
+CONFIG_MARVELL_PHY=y
+CONFIG_DAVICOM_PHY=y
+CONFIG_QSEMI_PHY=y
+CONFIG_LXT_PHY=y
+CONFIG_CICADA_PHY=y
+CONFIG_VITESSE_PHY=y
+CONFIG_SMSC_PHY=y
+CONFIG_BROADCOM_PHY=y
+CONFIG_BCM7XXX_PHY=y
+CONFIG_BCM87XX_PHY=y
+CONFIG_ICPLUS_PHY=y
+CONFIG_REALTEK_PHY=y
+CONFIG_NATIONAL_PHY=y
+CONFIG_STE10XP=y
+CONFIG_LSI_ET1011C_PHY=y
+CONFIG_MICREL_PHY=y
+CONFIG_PPP=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPPOATM=m
+CONFIG_PPPOE=m
+CONFIG_PPTP=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_SLIP=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_SMART=y
+CONFIG_SLIP_MODE_SLIP6=y
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=y
+CONFIG_USB_RTL8150=y
+CONFIG_USB_RTL8152=y
+CONFIG_USB_USBNET=y
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_AX88179_178A=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDC_NCM=m
+CONFIG_USB_NET_HUAWEI_CDC_NCM=m
+CONFIG_USB_NET_CDC_MBIM=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SR9700=m
+CONFIG_USB_NET_SR9800=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=m
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_KC2190=y
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_NET_CX82310_ETH=m
+CONFIG_USB_NET_KALMIA=m
+CONFIG_USB_NET_QMI_WWAN=m
+CONFIG_USB_HSO=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_CDC_PHONET=m
+CONFIG_USB_IPHETH=m
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_VL600=m
+CONFIG_LIBERTAS_THINFIRM=m
+CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_AT76C50X_USB=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+CONFIG_RTL8187=m
+CONFIG_MAC80211_HWSIM=m
+CONFIG_ATH_CARDS=m
+CONFIG_ATH9K=m
+CONFIG_ATH9K_HTC=m
+CONFIG_CARL9170=m
+CONFIG_ATH6KL=m
+CONFIG_ATH6KL_SDIO=m
+CONFIG_ATH6KL_USB=m
+CONFIG_AR5523=m
+CONFIG_ATH10K=m
+CONFIG_B43=m
+CONFIG_B43_SDIO=y
+CONFIG_B43LEGACY=m
+CONFIG_BRCMSMAC=m
+CONFIG_BRCMFMAC=m
+CONFIG_BRCMFMAC_USB=y
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_FIRMWARE=y
+CONFIG_IWLWIFI=m
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_USB=m
+CONFIG_LIBERTAS_SDIO=m
+CONFIG_LIBERTAS_MESH=y
+CONFIG_P54_COMMON=m
+CONFIG_P54_USB=m
+CONFIG_RT2X00=m
+CONFIG_RT2500USB=m
+CONFIG_RT73USB=m
+CONFIG_RT2800USB=m
+CONFIG_RT2800USB_RT3573=y
+CONFIG_RT2800USB_RT53XX=y
+CONFIG_RT2800USB_RT55XX=y
+CONFIG_WL_MEDIATEK=y
+CONFIG_MT7601U=m
+CONFIG_RTL8192CU=m
+# CONFIG_RTLWIFI_DEBUG is not set
+CONFIG_WL_TI=y
+CONFIG_WL1251=m
+CONFIG_WL1251_SPI=m
+CONFIG_WL1251_SDIO=m
+CONFIG_WL12XX=m
+CONFIG_WL18XX=m
+CONFIG_WLCORE_SPI=m
+CONFIG_WLCORE_SDIO=m
+CONFIG_ZD1211RW=m
+CONFIG_RSI_91X=m
+# CONFIG_RSI_SDIO is not set
+CONFIG_WIMAX_I2400M_USB=m
+CONFIG_INPUT_SPARSEKMAP=m
+CONFIG_INPUT_JOYDEV=y
+CONFIG_INPUT_EVDEV=y
+CONFIG_KEYBOARD_ADP5588=m
+CONFIG_KEYBOARD_QT2160=m
+CONFIG_KEYBOARD_GPIO=y
+CONFIG_KEYBOARD_LM8323=m
+CONFIG_KEYBOARD_MAX7359=m
+CONFIG_KEYBOARD_OPENCORES=m
+CONFIG_KEYBOARD_STOWAWAY=m
+CONFIG_KEYBOARD_OMAP4=m
+CONFIG_KEYBOARD_TWL4030=m
+CONFIG_MOUSE_PS2=m
+CONFIG_MOUSE_PS2_ELANTECH=y
+CONFIG_MOUSE_PS2_SENTELIC=y
+CONFIG_MOUSE_APPLETOUCH=m
+CONFIG_MOUSE_SYNAPTICS_I2C=m
+CONFIG_MOUSE_SYNAPTICS_USB=m
+CONFIG_INPUT_TABLET=y
+CONFIG_TABLET_USB_ACECAD=m
+CONFIG_TABLET_USB_AIPTEK=m
+CONFIG_TABLET_USB_GTCO=m
+CONFIG_TABLET_USB_HANWANG=m
+CONFIG_TABLET_USB_KBTAB=m
+CONFIG_TABLET_SERIAL_WACOM4=m
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_ADS7846=m
+CONFIG_TOUCHSCREEN_AD7877=m
+CONFIG_TOUCHSCREEN_AD7879=m
+CONFIG_TOUCHSCREEN_AD7879_I2C=m
+CONFIG_TOUCHSCREEN_ATMEL_MXT=m
+CONFIG_TOUCHSCREEN_DYNAPRO=m
+CONFIG_TOUCHSCREEN_HAMPSHIRE=m
+CONFIG_TOUCHSCREEN_FUJITSU=m
+CONFIG_TOUCHSCREEN_GUNZE=m
+CONFIG_TOUCHSCREEN_ELO=m
+CONFIG_TOUCHSCREEN_WACOM_W8001=m
+CONFIG_TOUCHSCREEN_MCS5000=m
+CONFIG_TOUCHSCREEN_MTOUCH=m
+CONFIG_TOUCHSCREEN_INEXIO=m
+CONFIG_TOUCHSCREEN_MK712=m
+CONFIG_TOUCHSCREEN_PENMOUNT=m
+CONFIG_TOUCHSCREEN_EDT_FT5X06=y
+CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
+CONFIG_TOUCHSCREEN_TOUCHWIN=m
+CONFIG_TOUCHSCREEN_TI_AM335X_TSC=m
+CONFIG_TOUCHSCREEN_WM97XX=m
+CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
+CONFIG_TOUCHSCREEN_MC13783=m
+CONFIG_TOUCHSCREEN_TOUCHIT213=m
+CONFIG_TOUCHSCREEN_TSC2005=m
+CONFIG_TOUCHSCREEN_TSC2007=m
+CONFIG_TOUCHSCREEN_SUR40=m
+CONFIG_TOUCHSCREEN_TPS6507X=m
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_MMA8450=m
+CONFIG_INPUT_ATI_REMOTE2=m
+CONFIG_INPUT_KEYSPAN_REMOTE=m
+CONFIG_INPUT_POWERMATE=m
+CONFIG_INPUT_YEALINK=m
+CONFIG_INPUT_CM109=m
+CONFIG_INPUT_TWL4030_PWRBUTTON=m
+CONFIG_INPUT_TWL4030_VIBRA=m
+CONFIG_INPUT_TWL6040_VIBRA=m
+CONFIG_INPUT_UINPUT=m
+CONFIG_SERIO_ALTERA_PS2=m
+CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_N_GSM=m
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+# CONFIG_SERIAL_8250_DMA is not set
+CONFIG_SERIAL_8250_NR_UARTS=6
+CONFIG_SERIAL_8250_RUNTIME_UARTS=6
+CONFIG_SERIAL_8250_DW=y
+CONFIG_SERIAL_8250_OMAP=y
+CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_SERIAL_OMAP=y
+CONFIG_SERIAL_OMAP_CONSOLE=y
+CONFIG_VIRTIO_CONSOLE=m
+CONFIG_HW_RANDOM_VIRTIO=m
+CONFIG_TCG_TPM=m
+CONFIG_TCG_TIS_I2C_ATMEL=m
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_MUX=y
+CONFIG_I2C_ARB_GPIO_CHALLENGE=m
+CONFIG_I2C_MUX_PCA954x=y
+CONFIG_I2C_GPIO=y
+CONFIG_I2C_OCORES=m
+CONFIG_I2C_PCA_PLATFORM=m
+CONFIG_I2C_SIMTEC=m
+CONFIG_I2C_DIOLAN_U2C=m
+CONFIG_I2C_ROBOTFUZZ_OSIF=m
+CONFIG_I2C_TAOS_EVM=m
+CONFIG_I2C_TINY_USB=m
+CONFIG_I2C_VIPERBOARD=m
+CONFIG_SPI=y
+CONFIG_SPI_BUTTERFLY=m
+CONFIG_SPI_GPIO=y
+CONFIG_SPI_LM70_LLP=m
+CONFIG_SPI_OMAP24XX=m
+CONFIG_SPI_SPIDEV=m
+CONFIG_HSI=m
+CONFIG_PPS_CLIENT_LDISC=m
+CONFIG_PPS_CLIENT_PARPORT=m
+CONFIG_PPS_CLIENT_GPIO=m
+CONFIG_PINCTRL_AS3722=y
+CONFIG_PINCTRL_SINGLE=y
+CONFIG_PINCTRL_TI_IODELAY=y
+CONFIG_PINCTRL_PALMAS=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_OF_HELPER=y
+CONFIG_GPIO_PCA953X=m
+CONFIG_GPIO_PCF857X=y
+CONFIG_GPIO_DA9052=m
+CONFIG_GPIO_PALMAS=y
+CONFIG_GPIO_TWL4030=y
+CONFIG_GPIO_TWL6040=y
+CONFIG_GPIO_VIPERBOARD=m
+CONFIG_W1=m
+CONFIG_W1_MASTER_DS2490=m
+CONFIG_W1_MASTER_DS2482=m
+CONFIG_W1_MASTER_GPIO=m
+CONFIG_W1_SLAVE_THERM=m
+CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_DS2431=m
+CONFIG_W1_SLAVE_DS2433=m
+CONFIG_W1_SLAVE_BQ27000=m
+CONFIG_BATTERY_BQ27x00=m
+CONFIG_CHARGER_ISP1704=m
+CONFIG_CHARGER_BQ2415X=m
+CONFIG_POWER_AVS=y
+CONFIG_VOLTAGE_DOMAIN_OMAP=y
+CONFIG_SENSORS_AD7414=m
+CONFIG_SENSORS_AD7418=m
+CONFIG_SENSORS_ADM1029=m
+CONFIG_SENSORS_ADM9240=m
+CONFIG_SENSORS_ADT7411=m
+CONFIG_SENSORS_ADT7462=m
+CONFIG_SENSORS_ADT7470=m
+CONFIG_SENSORS_ADT7475=m
+CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_ATXP1=m
+CONFIG_SENSORS_DS620=m
+CONFIG_SENSORS_F71882FG=m
+CONFIG_SENSORS_F75375S=m
+CONFIG_SENSORS_MC13783_ADC=m
+CONFIG_SENSORS_G760A=m
+CONFIG_SENSORS_G762=m
+CONFIG_SENSORS_GPIO_FAN=y
+CONFIG_SENSORS_JC42=m
+CONFIG_SENSORS_LINEAGE=m
+CONFIG_SENSORS_LTC4151=m
+CONFIG_SENSORS_LTC4215=m
+CONFIG_SENSORS_LTC4245=m
+CONFIG_SENSORS_LTC4261=m
+CONFIG_SENSORS_MAX1111=m
+CONFIG_SENSORS_MAX16065=m
+CONFIG_SENSORS_MAX1668=m
+CONFIG_SENSORS_MAX6639=m
+CONFIG_SENSORS_MAX6642=m
+CONFIG_SENSORS_MAX6650=m
+CONFIG_SENSORS_ADCXX=m
+CONFIG_SENSORS_LM70=m
+CONFIG_SENSORS_LM73=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_LM93=m
+CONFIG_SENSORS_LM95241=m
+CONFIG_SENSORS_LM95245=m
+CONFIG_SENSORS_PC87427=m
+CONFIG_SENSORS_NTC_THERMISTOR=m
+CONFIG_SENSORS_NCT6683=m
+CONFIG_SENSORS_NCT6775=m
+CONFIG_SENSORS_SHT21=m
+CONFIG_SENSORS_DME1737=m
+CONFIG_SENSORS_EMC1403=m
+CONFIG_SENSORS_EMC2103=m
+CONFIG_SENSORS_EMC6W201=m
+CONFIG_SENSORS_SMSC47M192=m
+CONFIG_SENSORS_SCH5627=m
+CONFIG_SENSORS_SMM665=m
+CONFIG_SENSORS_ADS1015=m
+CONFIG_SENSORS_ADS7828=m
+CONFIG_SENSORS_ADS7871=m
+CONFIG_SENSORS_AMC6821=m
+CONFIG_SENSORS_THMC50=m
+CONFIG_SENSORS_TMP102=y
+CONFIG_SENSORS_TMP401=m
+CONFIG_SENSORS_TMP421=m
+CONFIG_SENSORS_VT1211=m
+CONFIG_SENSORS_W83791D=m
+CONFIG_SENSORS_W83792D=m
+CONFIG_SENSORS_W83793=m
+CONFIG_SENSORS_W83795=m
+CONFIG_SENSORS_W83L786NG=m
+CONFIG_SENSORS_W83627EHF=m
+CONFIG_THERMAL=y
+CONFIG_THERMAL_GOV_FAIR_SHARE=y
+CONFIG_CPU_THERMAL=y
+CONFIG_TI_SOC_THERMAL=y
+CONFIG_TI_THERMAL=y
+CONFIG_OMAP5_THERMAL=y
+CONFIG_DRA752_THERMAL=y
+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_NOWAYOUT=y
+CONFIG_SOFT_WATCHDOG=m
+CONFIG_DA9052_WATCHDOG=m
+CONFIG_OMAP_WATCHDOG=y
+CONFIG_TWL4030_WATCHDOG=m
+CONFIG_MFD_AS3722=y
+CONFIG_MFD_AXP20X=y
+CONFIG_MFD_DA9052_SPI=y
+CONFIG_MFD_DA9052_I2C=y
+CONFIG_MFD_MC13XXX_SPI=m
+CONFIG_MFD_MC13XXX_I2C=m
+CONFIG_MFD_VIPERBOARD=m
+CONFIG_MFD_RTSX_USB=m
+CONFIG_MFD_SEC_CORE=y
+CONFIG_MFD_TI_AM335X_TSCADC=m
+CONFIG_MFD_PALMAS=y
+CONFIG_MFD_TPS65217=y
+CONFIG_MFD_TPS65218=y
+CONFIG_MFD_TPS65910=y
+CONFIG_TWL4030_CORE=y
+CONFIG_TWL4030_POWER=y
+CONFIG_TWL6040_CORE=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_REGULATOR_ANATOP=m
+CONFIG_REGULATOR_AS3722=y
+CONFIG_REGULATOR_AXP20X=m
+CONFIG_REGULATOR_DA9052=m
+CONFIG_REGULATOR_GPIO=y
+CONFIG_REGULATOR_MC13783=m
+CONFIG_REGULATOR_MC13892=m
+CONFIG_REGULATOR_PALMAS=y
+CONFIG_REGULATOR_PBIAS=y
+CONFIG_REGULATOR_PWM=y
+CONFIG_REGULATOR_S2MPA01=m
+CONFIG_REGULATOR_S2MPS11=m
+CONFIG_REGULATOR_S5M8767=m
+CONFIG_REGULATOR_TI_ABB=y
+CONFIG_REGULATOR_TPS65023=y
+CONFIG_REGULATOR_TPS6507X=y
+CONFIG_REGULATOR_TPS65217=y
+CONFIG_REGULATOR_TPS65218=y
+CONFIG_REGULATOR_TPS65910=y
+CONFIG_REGULATOR_TWL4030=y
+CONFIG_REGULATOR_VEXPRESS=m
+CONFIG_MEDIA_SUPPORT=m
+CONFIG_MEDIA_CAMERA_SUPPORT=y
+CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
+CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
+CONFIG_MEDIA_RADIO_SUPPORT=y
+CONFIG_MEDIA_SDR_SUPPORT=y
+CONFIG_MEDIA_RC_SUPPORT=y
+CONFIG_MEDIA_CONTROLLER=y
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
+CONFIG_DVB_DYNAMIC_MINORS=y
+CONFIG_LIRC=m
+CONFIG_RC_DEVICES=y
+CONFIG_RC_ATI_REMOTE=m
+CONFIG_IR_IMON=m
+CONFIG_IR_MCEUSB=m
+CONFIG_IR_REDRAT3=m
+CONFIG_IR_STREAMZAP=m
+CONFIG_IR_IGORPLUGUSB=m
+CONFIG_IR_IGUANA=m
+CONFIG_IR_TTUSBIR=m
+CONFIG_RC_LOOPBACK=m
+CONFIG_IR_GPIO_CIR=m
+CONFIG_MEDIA_USB_SUPPORT=y
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_USB_M5602=m
+CONFIG_USB_STV06XX=m
+CONFIG_USB_GL860=m
+CONFIG_USB_GSPCA_BENQ=m
+CONFIG_USB_GSPCA_CONEX=m
+CONFIG_USB_GSPCA_CPIA1=m
+CONFIG_USB_GSPCA_DTCS033=m
+CONFIG_USB_GSPCA_ETOMS=m
+CONFIG_USB_GSPCA_FINEPIX=m
+CONFIG_USB_GSPCA_JEILINJ=m
+CONFIG_USB_GSPCA_JL2005BCD=m
+CONFIG_USB_GSPCA_KINECT=m
+CONFIG_USB_GSPCA_KONICA=m
+CONFIG_USB_GSPCA_MARS=m
+CONFIG_USB_GSPCA_MR97310A=m
+CONFIG_USB_GSPCA_NW80X=m
+CONFIG_USB_GSPCA_OV519=m
+CONFIG_USB_GSPCA_OV534=m
+CONFIG_USB_GSPCA_OV534_9=m
+CONFIG_USB_GSPCA_PAC207=m
+CONFIG_USB_GSPCA_PAC7302=m
+CONFIG_USB_GSPCA_PAC7311=m
+CONFIG_USB_GSPCA_SE401=m
+CONFIG_USB_GSPCA_SN9C2028=m
+CONFIG_USB_GSPCA_SN9C20X=m
+CONFIG_USB_GSPCA_SONIXB=m
+CONFIG_USB_GSPCA_SONIXJ=m
+CONFIG_USB_GSPCA_SPCA500=m
+CONFIG_USB_GSPCA_SPCA501=m
+CONFIG_USB_GSPCA_SPCA505=m
+CONFIG_USB_GSPCA_SPCA506=m
+CONFIG_USB_GSPCA_SPCA508=m
+CONFIG_USB_GSPCA_SPCA561=m
+CONFIG_USB_GSPCA_SPCA1528=m
+CONFIG_USB_GSPCA_SQ905=m
+CONFIG_USB_GSPCA_SQ905C=m
+CONFIG_USB_GSPCA_SQ930X=m
+CONFIG_USB_GSPCA_STK014=m
+CONFIG_USB_GSPCA_STK1135=m
+CONFIG_USB_GSPCA_STV0680=m
+CONFIG_USB_GSPCA_SUNPLUS=m
+CONFIG_USB_GSPCA_T613=m
+CONFIG_USB_GSPCA_TOPRO=m
+CONFIG_USB_GSPCA_TV8532=m
+CONFIG_USB_GSPCA_VC032X=m
+CONFIG_USB_GSPCA_VICAM=m
+CONFIG_USB_GSPCA_XIRLINK_CIT=m
+CONFIG_USB_GSPCA_ZC3XX=m
+CONFIG_USB_PWC=m
+CONFIG_VIDEO_CPIA2=m
+CONFIG_USB_ZR364XX=m
+CONFIG_USB_STKWEBCAM=m
+CONFIG_USB_S2255=m
+CONFIG_VIDEO_USBTV=m
+CONFIG_VIDEO_PVRUSB2=m
+CONFIG_VIDEO_HDPVR=m
+CONFIG_VIDEO_USBVISION=m
+CONFIG_VIDEO_STK1160_COMMON=m
+CONFIG_VIDEO_STK1160_AC97=y
+CONFIG_VIDEO_AU0828=m
+CONFIG_VIDEO_AU0828_RC=y
+CONFIG_VIDEO_CX231XX=m
+CONFIG_VIDEO_CX231XX_ALSA=m
+CONFIG_VIDEO_CX231XX_DVB=m
+CONFIG_DVB_USB=m
+CONFIG_DVB_USB_A800=m
+CONFIG_DVB_USB_DIBUSB_MB=m
+CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y
+CONFIG_DVB_USB_DIBUSB_MC=m
+CONFIG_DVB_USB_DIB0700=m
+CONFIG_DVB_USB_UMT_010=m
+CONFIG_DVB_USB_CXUSB=m
+CONFIG_DVB_USB_M920X=m
+CONFIG_DVB_USB_DIGITV=m
+CONFIG_DVB_USB_VP7045=m
+CONFIG_DVB_USB_VP702X=m
+CONFIG_DVB_USB_GP8PSK=m
+CONFIG_DVB_USB_NOVA_T_USB2=m
+CONFIG_DVB_USB_TTUSB2=m
+CONFIG_DVB_USB_DTT200U=m
+CONFIG_DVB_USB_OPERA1=m
+CONFIG_DVB_USB_AF9005=m
+CONFIG_DVB_USB_AF9005_REMOTE=m
+CONFIG_DVB_USB_PCTV452E=m
+CONFIG_DVB_USB_DW2102=m
+CONFIG_DVB_USB_CINERGY_T2=m
+CONFIG_DVB_USB_DTV5100=m
+CONFIG_DVB_USB_FRIIO=m
+CONFIG_DVB_USB_AZ6027=m
+CONFIG_DVB_USB_TECHNISAT_USB2=m
+CONFIG_DVB_USB_V2=m
+CONFIG_DVB_USB_AF9015=m
+CONFIG_DVB_USB_AF9035=m
+CONFIG_DVB_USB_ANYSEE=m
+CONFIG_DVB_USB_AU6610=m
+CONFIG_DVB_USB_AZ6007=m
+CONFIG_DVB_USB_CE6230=m
+CONFIG_DVB_USB_EC168=m
+CONFIG_DVB_USB_GL861=m
+CONFIG_DVB_USB_LME2510=m
+CONFIG_DVB_USB_MXL111SF=m
+CONFIG_DVB_USB_RTL28XXU=m
+CONFIG_DVB_USB_DVBSKY=m
+CONFIG_SMS_USB_DRV=m
+CONFIG_DVB_B2C2_FLEXCOP_USB=m
+CONFIG_VIDEO_EM28XX=m
+CONFIG_VIDEO_EM28XX_V4L2=m
+CONFIG_VIDEO_EM28XX_ALSA=m
+CONFIG_VIDEO_EM28XX_DVB=m
+CONFIG_USB_AIRSPY=m
+CONFIG_USB_HACKRF=m
+CONFIG_USB_MSI2500=m
+CONFIG_V4L_PLATFORM_DRIVERS=y
+CONFIG_SOC_CAMERA=m
+CONFIG_SOC_CAMERA_PLATFORM=m
+CONFIG_VIDEO_AM437X_VPFE=m
+CONFIG_VIDEO_TI_CAL=m
+CONFIG_VIDEO_TI_VIP=m
+CONFIG_V4L_MEM2MEM_DRIVERS=y
+CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m
+CONFIG_VIDEO_TI_VPE=m
+CONFIG_V4L_TEST_DRIVERS=y
+CONFIG_VIDEO_VIVID=m
+CONFIG_SMS_SDIO_DRV=m
+CONFIG_RADIO_SI470X=y
+CONFIG_USB_SI470X=m
+CONFIG_RADIO_SI4713=m
+CONFIG_I2C_SI4713=m
+CONFIG_USB_MR800=m
+CONFIG_RADIO_SHARK=m
+CONFIG_RADIO_SHARK2=m
+CONFIG_USB_KEENE=m
+CONFIG_USB_RAREMONO=m
+CONFIG_USB_MA901=m
+CONFIG_RADIO_WL128X=m
+# CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set
+CONFIG_VIDEO_TVAUDIO=m
+CONFIG_VIDEO_TDA7432=m
+CONFIG_VIDEO_TDA9840=m
+CONFIG_VIDEO_TEA6415C=m
+CONFIG_VIDEO_TEA6420=m
+CONFIG_VIDEO_CS5345=m
+CONFIG_VIDEO_WM8739=m
+CONFIG_VIDEO_VP27SMPX=m
+CONFIG_VIDEO_SAA6588=m
+CONFIG_VIDEO_TVP5150=m
+CONFIG_VIDEO_SAA717X=m
+CONFIG_VIDEO_SAA7127=m
+CONFIG_VIDEO_OV2659=m
+CONFIG_VIDEO_OV7670=m
+CONFIG_VIDEO_OV1063X=m
+CONFIG_VIDEO_MT9V011=m
+CONFIG_VIDEO_MT9T11X=m
+CONFIG_VIDEO_UPD64031A=m
+CONFIG_VIDEO_UPD64083=m
+CONFIG_VIDEO_SAA6752HS=m
+CONFIG_VIDEO_M52790=m
+CONFIG_DRM=y
+CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+CONFIG_DRM_UDL=y
+CONFIG_DRM_OMAP=y
+CONFIG_DRM_OMAP_NUM_CRTCS=2
+CONFIG_DRM_OMAP_SGX_PLUGIN=y
+CONFIG_DRM_TILCDC=m
+CONFIG_FIRMWARE_EDID=y
+CONFIG_FB_TILEBLITTING=y
+CONFIG_FB_SMSCUFX=m
+CONFIG_FB_UDL=m
+CONFIG_FB_SIMPLE=y
+CONFIG_OMAP2_DSS=y
+CONFIG_OMAP5_DSS_HDMI=y
+CONFIG_DISPLAY_ENCODER_OPA362=y
+CONFIG_DISPLAY_ENCODER_TPD12S015=y
+CONFIG_DISPLAY_DRA7EVM_ENCODER_TPD12S015=m
+CONFIG_DISPLAY_ENCODER_SII9022=y
+CONFIG_DISPLAY_ENCODER_TC358768=y
+CONFIG_DISPLAY_CONNECTOR_DVI=y
+CONFIG_DISPLAY_CONNECTOR_HDMI=y
+CONFIG_DISPLAY_PANEL_DPI=y
+CONFIG_DISPLAY_PANEL_SONY_ACX565AKM=m
+CONFIG_DISPLAY_PANEL_TLC59108=y
+CONFIG_FB_SSD1307=y
+# CONFIG_LCD_CLASS_DEVICE is not set
+# CONFIG_BACKLIGHT_GENERIC is not set
+CONFIG_BACKLIGHT_PWM=y
+CONFIG_BACKLIGHT_GPIO=y
+CONFIG_BACKLIGHT_LED=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_LOGO=y
+CONFIG_SOUND=y
+# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set
+CONFIG_SND=y
+CONFIG_SND_SEQUENCER=m
+CONFIG_SND_SEQ_DUMMY=m
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_SEQUENCER_OSS=y
+CONFIG_SND_HRTIMER=m
+CONFIG_SND_DYNAMIC_MINORS=y
+CONFIG_SND_DUMMY=m
+CONFIG_SND_ALOOP=m
+CONFIG_SND_MTS64=m
+CONFIG_SND_PORTMAN2X4=m
+CONFIG_SND_AC97_POWER_SAVE=y
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_UA101=m
+CONFIG_SND_USB_CAIAQ=m
+CONFIG_SND_USB_CAIAQ_INPUT=y
+CONFIG_SND_USB_6FIRE=m
+CONFIG_SND_USB_HIFACE=m
+CONFIG_SND_BCD2000=m
+CONFIG_SND_USB_POD=m
+CONFIG_SND_USB_PODHD=m
+CONFIG_SND_USB_TONEPORT=m
+CONFIG_SND_USB_VARIAX=m
+CONFIG_SND_SOC=y
+CONFIG_SND_EDMA_SOC=m
+CONFIG_SND_AM33XX_SOC_EVM=m
+CONFIG_SND_SOC_FSL_SSI=m
+CONFIG_SND_SOC_FSL_SPDIF=m
+CONFIG_SND_SOC_IMX_AUDMUX=m
+CONFIG_SND_OMAP_SOC=y
+CONFIG_SND_OMAP_SOC_HDMI_AUDIO=m
+CONFIG_SND_OMAP_SOC_RX51=m
+CONFIG_SND_OMAP_SOC_OMAP_TWL4030=m
+CONFIG_SND_OMAP_SOC_OMAP_ABE_TWL6040=m
+CONFIG_SND_SOC_HDMI_CODEC=m
+CONFIG_SND_SOC_SGTL5000=m
+CONFIG_SND_SOC_TLV320AIC23_I2C=m
+CONFIG_SND_SOC_TLV320AIC31XX=m
+CONFIG_SND_SIMPLE_CARD=m
+CONFIG_HID_BATTERY_STRENGTH=y
+CONFIG_HIDRAW=y
+CONFIG_UHID=y
+CONFIG_HID_A4TECH=y
+CONFIG_HID_ACRUX=m
+CONFIG_HID_ACRUX_FF=y
+CONFIG_HID_APPLE=y
+CONFIG_HID_APPLEIR=m
+CONFIG_HID_AUREAL=m
+CONFIG_HID_BELKIN=y
+CONFIG_HID_BETOP_FF=m
+CONFIG_HID_CHERRY=y
+CONFIG_HID_CHICONY=y
+CONFIG_HID_PRODIKEYS=m
+CONFIG_HID_CP2112=m
+CONFIG_HID_CYPRESS=y
+CONFIG_HID_DRAGONRISE=m
+CONFIG_DRAGONRISE_FF=y
+CONFIG_HID_EMS_FF=m
+CONFIG_HID_ELECOM=m
+CONFIG_HID_ELO=m
+CONFIG_HID_EZKEY=y
+CONFIG_HID_HOLTEK=m
+CONFIG_HOLTEK_FF=y
+CONFIG_HID_GT683R=m
+CONFIG_HID_KEYTOUCH=m
+CONFIG_HID_KYE=m
+CONFIG_HID_UCLOGIC=m
+CONFIG_HID_WALTOP=m
+CONFIG_HID_GYRATION=m
+CONFIG_HID_ICADE=m
+CONFIG_HID_TWINHAN=m
+CONFIG_HID_KENSINGTON=y
+CONFIG_HID_LCPOWER=m
+CONFIG_HID_LENOVO=m
+CONFIG_HID_LOGITECH=y
+CONFIG_HID_LOGITECH_DJ=y
+CONFIG_LOGITECH_FF=y
+CONFIG_LOGIRUMBLEPAD2_FF=y
+CONFIG_LOGIG940_FF=y
+CONFIG_HID_MAGICMOUSE=m
+CONFIG_HID_MICROSOFT=y
+CONFIG_HID_MONTEREY=y
+CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTRIG=m
+CONFIG_HID_ORTEK=m
+CONFIG_HID_PANTHERLORD=m
+CONFIG_PANTHERLORD_FF=y
+CONFIG_HID_PENMOUNT=m
+CONFIG_HID_PETALYNX=m
+CONFIG_HID_PICOLCD=m
+CONFIG_HID_PICOLCD_FB=y
+CONFIG_HID_PICOLCD_BACKLIGHT=y
+CONFIG_HID_PICOLCD_LEDS=y
+CONFIG_HID_PICOLCD_CIR=y
+CONFIG_HID_PLANTRONICS=m
+CONFIG_HID_PRIMAX=m
+CONFIG_HID_ROCCAT=m
+CONFIG_HID_SAITEK=m
+CONFIG_HID_SAMSUNG=m
+CONFIG_HID_SONY=m
+CONFIG_SONY_FF=y
+CONFIG_HID_SPEEDLINK=m
+CONFIG_HID_STEELSERIES=m
+CONFIG_HID_SUNPLUS=m
+CONFIG_HID_RMI=m
+CONFIG_HID_GREENASIA=m
+CONFIG_GREENASIA_FF=y
+CONFIG_HID_SMARTJOYPLUS=m
+CONFIG_SMARTJOYPLUS_FF=y
+CONFIG_HID_TIVO=m
+CONFIG_HID_TOPSEED=m
+CONFIG_HID_THINGM=m
+CONFIG_HID_THRUSTMASTER=m
+CONFIG_THRUSTMASTER_FF=y
+CONFIG_HID_WACOM=m
+CONFIG_HID_WIIMOTE=m
+CONFIG_HID_XINMO=m
+CONFIG_HID_ZEROPLUS=m
+CONFIG_ZEROPLUS_FF=y
+CONFIG_HID_ZYDACRON=m
+CONFIG_HID_SENSOR_CUSTOM_SENSOR=m
+CONFIG_HID_PID=y
+CONFIG_USB_HIDDEV=y
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+CONFIG_USB_DYNAMIC_MINORS=y
+CONFIG_USB_OTG=y
+CONFIG_USB_MON=y
+CONFIG_USB_WUSB_CBAF=m
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_HCD_PLATFORM=y
+CONFIG_USB_U132_HCD=m
+CONFIG_USB_HWA_HCD=m
+CONFIG_USB_PRINTER=m
+CONFIG_USB_TMC=m
+CONFIG_USB_STORAGE=m
+CONFIG_USB_STORAGE_REALTEK=m
+CONFIG_USB_STORAGE_DATAFAB=m
+CONFIG_USB_STORAGE_FREECOM=m
+CONFIG_USB_STORAGE_ISD200=m
+CONFIG_USB_STORAGE_USBAT=m
+CONFIG_USB_STORAGE_SDDR09=m
+CONFIG_USB_STORAGE_SDDR55=m
+CONFIG_USB_STORAGE_JUMPSHOT=m
+CONFIG_USB_STORAGE_ALAUDA=m
+CONFIG_USB_STORAGE_ONETOUCH=m
+CONFIG_USB_STORAGE_KARMA=m
+CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+CONFIG_USB_STORAGE_ENE_UB6250=m
+CONFIG_USB_UAS=m
+CONFIG_USB_MDC800=m
+CONFIG_USB_MICROTEK=m
+CONFIG_USBIP_CORE=m
+CONFIG_USBIP_VHCI_HCD=m
+CONFIG_USBIP_HOST=m
+CONFIG_USB_MUSB_HDRC=y
+CONFIG_USB_MUSB_DSPS=y
+CONFIG_USB_DWC3=y
+CONFIG_USB_CHIPIDEA=y
+CONFIG_USB_CHIPIDEA_UDC=y
+CONFIG_USB_CHIPIDEA_HOST=y
+CONFIG_USB_SERIAL=m
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_SIMPLE=m
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_F81232=m
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IUU=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_METRO=m
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7715_PARPORT=y
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_MXUPORT=m
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QUALCOMM=m
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_SAFE=m
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_SYMBOL=m
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_XSENS_MT=m
+CONFIG_USB_SERIAL_WISHBONE=m
+CONFIG_USB_SERIAL_SSU100=m
+CONFIG_USB_SERIAL_QT2=m
+CONFIG_USB_SERIAL_DEBUG=m
+CONFIG_USB_EMI62=m
+CONFIG_USB_EMI26=m
+CONFIG_USB_ADUTUX=m
+CONFIG_USB_SEVSEG=m
+CONFIG_USB_RIO500=m
+CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LCD=m
+CONFIG_USB_LED=m
+CONFIG_USB_CYPRESS_CY7C63=m
+CONFIG_USB_CYTHERM=m
+CONFIG_USB_IDMOUSE=m
+CONFIG_USB_FTDI_ELAN=m
+CONFIG_USB_APPLEDISPLAY=m
+CONFIG_USB_SISUSBVGA=m
+CONFIG_USB_SISUSBVGA_CON=y
+CONFIG_USB_LD=m
+CONFIG_USB_TRANCEVIBRATOR=m
+CONFIG_USB_IOWARRIOR=m
+CONFIG_USB_TEST=m
+CONFIG_USB_EHSET_TEST_FIXTURE=m
+CONFIG_USB_ISIGHTFW=m
+CONFIG_USB_YUREX=m
+CONFIG_USB_HSIC_USB3503=m
+CONFIG_USB_CHAOSKEY=m
+CONFIG_AM335X_PHY_USB=y
+CONFIG_USB_GPIO_VBUS=y
+CONFIG_USB_ULPI=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_GADGET_VBUS_DRAW=500
+CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=32
+CONFIG_USB_CONFIGFS=m
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONFIGFS_ACM=y
+CONFIG_USB_CONFIGFS_OBEX=y
+CONFIG_USB_CONFIGFS_NCM=y
+CONFIG_USB_CONFIGFS_ECM=y
+CONFIG_USB_CONFIGFS_ECM_SUBSET=y
+CONFIG_USB_CONFIGFS_RNDIS=y
+CONFIG_USB_ZERO=m
+CONFIG_USB_AUDIO=m
+CONFIG_USB_ETH=m
+CONFIG_USB_G_NCM=m
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_FUNCTIONFS=m
+CONFIG_USB_FUNCTIONFS_ETH=y
+CONFIG_USB_FUNCTIONFS_RNDIS=y
+CONFIG_USB_FUNCTIONFS_GENERIC=y
+CONFIG_USB_MASS_STORAGE=m
+CONFIG_USB_G_SERIAL=m
+CONFIG_USB_MIDI_GADGET=m
+CONFIG_USB_G_PRINTER=m
+CONFIG_USB_CDC_COMPOSITE=m
+CONFIG_USB_G_NOKIA=m
+CONFIG_USB_G_ACM_MS=m
+CONFIG_USB_G_MULTI=m
+CONFIG_USB_G_HID=m
+CONFIG_USB_G_DBGP=m
+CONFIG_USB_LED_TRIG=y
+CONFIG_UWB=m
+CONFIG_UWB_I1480U=m
+CONFIG_MMC=y
+CONFIG_SDIO_UART=m
+CONFIG_MMC_SDHCI=m
+CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_OMAP=y
+CONFIG_MMC_OMAP_HS=y
+CONFIG_MMC_DW=m
+CONFIG_MMC_DW_EXYNOS=m
+CONFIG_MMC_VUB300=m
+CONFIG_MMC_USHC=m
+CONFIG_MMC_REALTEK_USB=m
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_LP3944=m
+CONFIG_LEDS_LP5523=m
+CONFIG_LEDS_PCA955X=m
+CONFIG_LEDS_DA9052=m
+CONFIG_LEDS_DAC124S085=m
+CONFIG_LEDS_PWM=m
+CONFIG_LEDS_REGULATOR=m
+CONFIG_LEDS_BD2802=m
+CONFIG_LEDS_LT3593=m
+CONFIG_LEDS_MC13783=m
+CONFIG_LEDS_TLC591XX=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_LEDS_TRIGGER_TRANSIENT=m
+CONFIG_LEDS_TRIGGER_CAMERA=m
+CONFIG_ACCESSIBILITY=y
+CONFIG_A11Y_BRAILLE_CONSOLE=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_AS3722=y
+CONFIG_RTC_DRV_DS1307=y
+CONFIG_RTC_DRV_DS1374=m
+CONFIG_RTC_DRV_DS1374_WDT=y
+CONFIG_RTC_DRV_DS1672=m
+CONFIG_RTC_DRV_DS3232=m
+CONFIG_RTC_DRV_HYM8563=m
+CONFIG_RTC_DRV_MAX6900=m
+CONFIG_RTC_DRV_RS5C372=m
+CONFIG_RTC_DRV_ISL1208=m
+CONFIG_RTC_DRV_ISL12022=m
+CONFIG_RTC_DRV_ISL12057=y
+CONFIG_RTC_DRV_X1205=m
+CONFIG_RTC_DRV_PALMAS=y
+CONFIG_RTC_DRV_PCF2127=m
+CONFIG_RTC_DRV_PCF8523=y
+CONFIG_RTC_DRV_PCF8563=m
+CONFIG_RTC_DRV_PCF85063=m
+CONFIG_RTC_DRV_PCF8583=m
+CONFIG_RTC_DRV_M41T80=m
+CONFIG_RTC_DRV_M41T80_WDT=y
+CONFIG_RTC_DRV_BQ32K=m
+CONFIG_RTC_DRV_TWL4030=y
+CONFIG_RTC_DRV_TPS65910=m
+CONFIG_RTC_DRV_S35390A=m
+CONFIG_RTC_DRV_FM3130=m
+CONFIG_RTC_DRV_RX8581=m
+CONFIG_RTC_DRV_RX8025=m
+CONFIG_RTC_DRV_EM3027=m
+CONFIG_RTC_DRV_RV3029C2=m
+CONFIG_RTC_DRV_S5M=y
+CONFIG_RTC_DRV_M41T93=m
+CONFIG_RTC_DRV_M41T94=m
+CONFIG_RTC_DRV_DS1305=m
+CONFIG_RTC_DRV_DS1343=m
+CONFIG_RTC_DRV_DS1347=m
+CONFIG_RTC_DRV_DS1390=m
+CONFIG_RTC_DRV_MAX6902=m
+CONFIG_RTC_DRV_R9701=m
+CONFIG_RTC_DRV_RS5C348=m
+CONFIG_RTC_DRV_DS3234=m
+CONFIG_RTC_DRV_PCF2123=m
+CONFIG_RTC_DRV_RX4581=m
+CONFIG_RTC_DRV_MCP795=m
+CONFIG_RTC_DRV_CMOS=m
+CONFIG_RTC_DRV_DS1286=m
+CONFIG_RTC_DRV_DS1511=m
+CONFIG_RTC_DRV_DS1553=m
+CONFIG_RTC_DRV_DS1685_FAMILY=m
+CONFIG_RTC_DRV_DS1742=m
+CONFIG_RTC_DRV_DS2404=m
+CONFIG_RTC_DRV_DA9052=y
+CONFIG_RTC_DRV_STK17TA8=m
+CONFIG_RTC_DRV_M48T86=m
+CONFIG_RTC_DRV_M48T35=m
+CONFIG_RTC_DRV_M48T59=m
+CONFIG_RTC_DRV_MSM6242=m
+CONFIG_RTC_DRV_BQ4802=m
+CONFIG_RTC_DRV_RP5C01=m
+CONFIG_RTC_DRV_V3020=m
+CONFIG_RTC_DRV_OMAP=y
+CONFIG_RTC_DRV_MC13XXX=m
+CONFIG_RTC_DRV_SNVS=y
+CONFIG_RTC_DRV_HID_SENSOR_TIME=m
+CONFIG_DMADEVICES=y
+CONFIG_DW_DMAC=y
+CONFIG_TI_EDMA=y
+CONFIG_DMA_OMAP=y
+CONFIG_TI_CPPI41=y
+CONFIG_ASYNC_TX_DMA=y
+CONFIG_UIO=y
+CONFIG_UIO_PDRV_GENIRQ=m
+CONFIG_UIO_DMEM_GENIRQ=m
+CONFIG_UIO_PRUSS=m
+CONFIG_VIRT_DRIVERS=y
+CONFIG_VIRTIO_BALLOON=m
+CONFIG_VIRTIO_INPUT=m
+CONFIG_VIRTIO_MMIO=m
+CONFIG_STAGING=y
+CONFIG_R8712U=m
+CONFIG_R8188EU=m
+CONFIG_LIS3L02DQ=m
+CONFIG_SPEAKUP=m
+CONFIG_SPEAKUP_SYNTH_ACNTSA=m
+CONFIG_SPEAKUP_SYNTH_APOLLO=m
+CONFIG_SPEAKUP_SYNTH_AUDPTR=m
+CONFIG_SPEAKUP_SYNTH_BNS=m
+CONFIG_SPEAKUP_SYNTH_DECTLK=m
+CONFIG_SPEAKUP_SYNTH_DECEXT=m
+CONFIG_SPEAKUP_SYNTH_LTLK=m
+CONFIG_SPEAKUP_SYNTH_SOFT=m
+CONFIG_SPEAKUP_SYNTH_SPKOUT=m
+CONFIG_SPEAKUP_SYNTH_TXPRT=m
+CONFIG_SPEAKUP_SYNTH_DUMMY=m
+CONFIG_ASHMEM=y
+CONFIG_ANDROID_TIMED_GPIO=m
+CONFIG_SYNC=y
+CONFIG_ION=y
+CONFIG_FB_TFT=m
+CONFIG_FB_TFT_AGM1264K_FL=m
+CONFIG_FB_TFT_BD663474=m
+CONFIG_FB_TFT_HX8340BN=m
+CONFIG_FB_TFT_HX8347D=m
+CONFIG_FB_TFT_HX8353D=m
+CONFIG_FB_TFT_HX8357D=m
+CONFIG_FB_TFT_ILI9163=m
+CONFIG_FB_TFT_ILI9320=m
+CONFIG_FB_TFT_ILI9325=m
+CONFIG_FB_TFT_ILI9340=m
+CONFIG_FB_TFT_ILI9341=m
+CONFIG_FB_TFT_ILI9481=m
+CONFIG_FB_TFT_ILI9486=m
+CONFIG_FB_TFT_PCD8544=m
+CONFIG_FB_TFT_RA8875=m
+CONFIG_FB_TFT_S6D02A1=m
+CONFIG_FB_TFT_S6D1121=m
+CONFIG_FB_TFT_SSD1289=m
+CONFIG_FB_TFT_SSD1306=m
+CONFIG_FB_TFT_SSD1331=m
+CONFIG_FB_TFT_SSD1351=m
+CONFIG_FB_TFT_ST7735R=m
+CONFIG_FB_TFT_ST7789V=m
+CONFIG_FB_TFT_TINYLCD=m
+CONFIG_FB_TFT_TLS8204=m
+CONFIG_FB_TFT_UC1611=m
+CONFIG_FB_TFT_UC1701=m
+CONFIG_FB_TFT_UPD161704=m
+CONFIG_FB_TFT_WATTEROTT=m
+CONFIG_FB_FLEX=m
+CONFIG_FB_TFT_FBTFT_DEVICE=m
+CONFIG_COMMON_CLK_S2MPS11=m
+CONFIG_CLK_TWL6040=m
+CONFIG_COMMON_CLK_PALMAS=y
+CONFIG_HWSPINLOCK_OMAP=y
+CONFIG_OMAP2PLUS_MBOX=y
+CONFIG_OMAP_IOMMU=y
+CONFIG_OMAP_IOMMU_DEBUG=y
+CONFIG_OMAP_REMOTEPROC=m
+CONFIG_OMAP_REMOTEPROC_WATCHDOG=y
+CONFIG_WKUP_M3_RPROC=y
+CONFIG_PRUSS_REMOTEPROC=m
+CONFIG_RPMSG_RPC=m
+CONFIG_RPMSG_PRU=m
+CONFIG_SOC_TI=y
+CONFIG_WKUP_M3_IPC=y
+CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
+CONFIG_DEVFREQ_GOV_PERFORMANCE=y
+CONFIG_DEVFREQ_GOV_POWERSAVE=y
+CONFIG_DEVFREQ_GOV_USERSPACE=y
+CONFIG_EXTCON=y
+CONFIG_EXTCON_GPIO=y
+CONFIG_EXTCON_PALMAS=y
+CONFIG_EXTCON_USB_GPIO=y
+CONFIG_TI_EMIF=y
+CONFIG_TI_EMIF_SRAM=y
+CONFIG_HID_SENSOR_ACCEL_3D=m
+CONFIG_MCP320X=m
+CONFIG_TI_AM335X_ADC=m
+CONFIG_TWL4030_MADC=m
+CONFIG_VIPERBOARD_ADC=m
+CONFIG_HID_SENSOR_GYRO_3D=m
+CONFIG_HID_SENSOR_ALS=m
+CONFIG_HID_SENSOR_PROX=m
+CONFIG_SENSORS_TSL2563=m
+CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
+CONFIG_HID_SENSOR_INCLINOMETER_3D=m
+CONFIG_HID_SENSOR_DEVICE_ROTATION=m
+CONFIG_IIO_INTERRUPT_TRIGGER=m
+CONFIG_IIO_SYSFS_TRIGGER=m
+CONFIG_HID_SENSOR_PRESS=m
+CONFIG_PWM_TIECAP=m
+CONFIG_PWM_TIEHRPWM=m
+CONFIG_PWM_TWL=m
+CONFIG_PWM_TWL_LED=m
+CONFIG_OMAP_USB2=y
+CONFIG_TI_PIPE3=y
+CONFIG_ANDROID=y
+CONFIG_ANDROID_BINDER_IPC=y
+CONFIG_NVMEM=y
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+CONFIG_EXT4_ENCRYPTION=y
+CONFIG_REISERFS_FS=m
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+CONFIG_XFS_FS=y
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_POSIX_ACL=y
+CONFIG_XFS_RT=y
+CONFIG_GFS2_FS=m
+CONFIG_GFS2_FS_LOCKING_DLM=y
+CONFIG_OCFS2_FS=m
+CONFIG_BTRFS_FS=y
+CONFIG_BTRFS_FS_POSIX_ACL=y
+CONFIG_NILFS2_FS=m
+CONFIG_F2FS_FS=y
+CONFIG_F2FS_FS_SECURITY=y
+CONFIG_FANOTIFY=y
+CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
+CONFIG_QUOTA_NETLINK_INTERFACE=y
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_AUTOFS4_FS=y
+CONFIG_FUSE_FS=y
+CONFIG_CUSE=m
+CONFIG_OVERLAY_FS=y
+CONFIG_FSCACHE_STATS=y
+CONFIG_CACHEFILES=m
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_NTFS_FS=m
+CONFIG_NTFS_RW=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_ADFS_FS=m
+CONFIG_AFFS_FS=m
+CONFIG_ECRYPT_FS=m
+CONFIG_ECRYPT_FS_MESSAGING=y
+CONFIG_HFS_FS=m
+CONFIG_HFSPLUS_FS=m
+CONFIG_BEFS_FS=m
+CONFIG_BFS_FS=m
+CONFIG_EFS_FS=m
+CONFIG_JFFS2_FS=m
+CONFIG_JFFS2_SUMMARY=y
+CONFIG_JFFS2_FS_XATTR=y
+CONFIG_JFFS2_COMPRESSION_OPTIONS=y
+CONFIG_JFFS2_LZO=y
+CONFIG_UBIFS_FS=m
+CONFIG_UBIFS_FS_ADVANCED_COMPR=y
+CONFIG_LOGFS=m
+CONFIG_SQUASHFS=m
+CONFIG_SQUASHFS_XATTR=y
+CONFIG_SQUASHFS_LZ4=y
+CONFIG_SQUASHFS_LZO=y
+CONFIG_SQUASHFS_XZ=y
+CONFIG_VXFS_FS=m
+CONFIG_MINIX_FS=m
+CONFIG_OMFS_FS=m
+CONFIG_QNX4FS_FS=m
+CONFIG_QNX6FS_FS=m
+CONFIG_ROMFS_FS=m
+CONFIG_ROMFS_BACKED_BY_BOTH=y
+CONFIG_SYSV_FS=m
+CONFIG_UFS_FS=m
+CONFIG_EXOFS_FS=m
+CONFIG_AUFS_FS=m
+CONFIG_AUFS_EXPORT=y
+CONFIG_AUFS_XATTR=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+CONFIG_NFS_SWAP=y
+CONFIG_NFS_V4_1=y
+CONFIG_NFS_V4_2=y
+CONFIG_ROOT_NFS=y
+CONFIG_NFSD=m
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+CONFIG_NFSD_V4_SECURITY_LABEL=y
+CONFIG_SUNRPC_DEBUG=y
+CONFIG_CEPH_FS=m
+CONFIG_CEPH_FSCACHE=y
+CONFIG_CEPH_FS_POSIX_ACL=y
+CONFIG_CIFS=m
+CONFIG_CIFS_WEAK_PW_HASH=y
+CONFIG_CIFS_UPCALL=y
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+CONFIG_CIFS_ACL=y
+CONFIG_CIFS_DFS_UPCALL=y
+CONFIG_CIFS_SMB2=y
+CONFIG_CIFS_FSCACHE=y
+CONFIG_NCP_FS=m
+CONFIG_NCPFS_PACKET_SIGNING=y
+CONFIG_NCPFS_IOCTL_LOCKING=y
+CONFIG_NCPFS_STRONG=y
+CONFIG_NCPFS_NFS_NS=y
+CONFIG_NCPFS_OS2_NS=y
+CONFIG_NCPFS_NLS=y
+CONFIG_NCPFS_EXTRAS=y
+CONFIG_CODA_FS=m
+CONFIG_AFS_FS=m
+CONFIG_AFS_FSCACHE=y
+CONFIG_9P_FS=m
+CONFIG_9P_FSCACHE=y
+CONFIG_9P_FS_POSIX_ACL=y
+CONFIG_9P_FS_SECURITY=y
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_MAC_ROMAN=m
+CONFIG_NLS_MAC_CELTIC=m
+CONFIG_NLS_MAC_CENTEURO=m
+CONFIG_NLS_MAC_CROATIAN=m
+CONFIG_NLS_MAC_CYRILLIC=m
+CONFIG_NLS_MAC_GAELIC=m
+CONFIG_NLS_MAC_GREEK=m
+CONFIG_NLS_MAC_ICELAND=m
+CONFIG_NLS_MAC_INUIT=m
+CONFIG_NLS_MAC_ROMANIAN=m
+CONFIG_NLS_MAC_TURKISH=m
+CONFIG_DLM=m
+CONFIG_DLM_DEBUG=y
+CONFIG_PRINTK_TIME=y
+CONFIG_DYNAMIC_DEBUG=y
+CONFIG_STRIP_ASM_SYMS=y
+CONFIG_UNUSED_SYMBOLS=y
+CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x01b6
+CONFIG_DEBUG_MEMORY_INIT=y
+CONFIG_LOCKUP_DETECTOR=y
+CONFIG_SCHEDSTATS=y
+CONFIG_SCHED_STACK_END_CHECK=y
+CONFIG_TIMER_STATS=y
+CONFIG_DEBUG_LIST=y
+# CONFIG_RCU_CPU_STALL_INFO is not set
+CONFIG_FTRACE_SYSCALLS=y
+CONFIG_TRACER_SNAPSHOT=y
+CONFIG_STACK_TRACER=y
+CONFIG_BLK_DEV_IO_TRACE=y
+CONFIG_UPROBE_EVENT=y
+CONFIG_SAMPLES=y
+CONFIG_SAMPLE_RPMSG_CLIENT=m
+CONFIG_KGDB=y
+CONFIG_KGDB_KDB=y
+CONFIG_KDB_KEYBOARD=y
+CONFIG_SECURITY=y
+CONFIG_SECURITY_NETWORK_XFRM=y
+CONFIG_SECURITY_SELINUX=y
+CONFIG_SECURITY_TOMOYO=y
+CONFIG_SECURITY_APPARMOR=y
+CONFIG_SECURITY_YAMA=y
+CONFIG_SECURITY_YAMA_STACKED=y
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_CRYPTO_PCRYPT=m
+CONFIG_CRYPTO_TEST=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_VMAC=m
+CONFIG_CRYPTO_CRC32=m
+CONFIG_CRYPTO_RMD128=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_RMD256=m
+CONFIG_CRYPTO_RMD320=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_SALSA20=m
+CONFIG_CRYPTO_SEED=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_ZLIB=m
+CONFIG_CRYPTO_LZ4=m
+CONFIG_CRYPTO_LZ4HC=m
+CONFIG_CRYPTO_USER_API_HASH=y
+CONFIG_CRYPTO_USER_API_SKCIPHER=y
+CONFIG_CRYPTO_DEV_OMAP_SHAM=y
+CONFIG_CRYPTO_DEV_OMAP_AES=y
+CONFIG_CRYPTO_DEV_OMAP_DES=y
+CONFIG_ARM_CRYPTO=y
+CONFIG_CRYPTO_SHA1_ARM_NEON=m
+CONFIG_CRYPTO_SHA256_ARM=m
+CONFIG_CRYPTO_SHA512_ARM_NEON=m
+CONFIG_CRYPTO_AES_ARM_BS=m
+# CONFIG_XZ_DEC_X86 is not set
+# CONFIG_XZ_DEC_POWERPC is not set
+# CONFIG_XZ_DEC_IA64 is not set
+# CONFIG_XZ_DEC_SPARC is not set
diff --git a/board/beaglebone/patches/dtc/0001-libfdt-fix-comment-block-of-fdt_get_property_namelen.patch b/board/beaglebone/patches/dtc/0001-libfdt-fix-comment-block-of-fdt_get_property_namelen.patch
new file mode 100644
index 0000000..d0c19ef
--- /dev/null
+++ b/board/beaglebone/patches/dtc/0001-libfdt-fix-comment-block-of-fdt_get_property_namelen.patch
@@ -0,0 +1,32 @@ 
+From 554fde2c77bd73de3f5093df3b643ce1553e1f96 Mon Sep 17 00:00:00 2001
+From: Masahiro Yamada <yamada.masahiro@socionext.com>
+Date: Thu, 27 Aug 2015 12:12:42 +0900
+Subject: [PATCH 1/4] libfdt: fix comment block of fdt_get_property_namelen()
+
+The statement "Identical to fdt_get_property_namelen() ..." does not
+make sense for the comment of fdt_get_property_namelen() itself.
+
+Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
+Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
+---
+ libfdt/libfdt.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/libfdt/libfdt.h b/libfdt/libfdt.h
+index 1054512..1bd0242 100644
+--- a/libfdt/libfdt.h
++++ b/libfdt/libfdt.h
+@@ -457,8 +457,8 @@ const struct fdt_property *fdt_get_property_by_offset(const void *fdt,
+  * @namelen: number of characters of name to consider
+  * @lenp: pointer to an integer variable (will be overwritten) or NULL
+  *
+- * Identical to fdt_get_property_namelen(), but only examine the first
+- * namelen characters of name for matching the property name.
++ * Identical to fdt_get_property(), but only examine the first namelen
++ * characters of name for matching the property name.
+  */
+ const struct fdt_property *fdt_get_property_namelen(const void *fdt,
+ 						    int nodeoffset,
+-- 
+1.9.1
+
diff --git a/board/beaglebone/patches/dtc/0002-fdt-Add-a-function-to-count-strings.patch b/board/beaglebone/patches/dtc/0002-fdt-Add-a-function-to-count-strings.patch
new file mode 100644
index 0000000..74b15e0
--- /dev/null
+++ b/board/beaglebone/patches/dtc/0002-fdt-Add-a-function-to-count-strings.patch
@@ -0,0 +1,246 @@ 
+From 2218387a8cb9270a688775350a07b02db6d03103 Mon Sep 17 00:00:00 2001
+From: Thierry Reding <treding@nvidia.com>
+Date: Wed, 30 Sep 2015 13:16:12 +1000
+Subject: [PATCH 2/4] fdt: Add a function to count strings
+
+Given a device tree node and a property name, the fdt_stringlist_count()
+function counts the number of strings found in the property value.
+
+This also adds a new error code, FDT_ERR_BADVALUE, that the function
+returns when it encounters a non-NUL-terminated string list.
+
+Signed-off-by: Thierry Reding <treding@nvidia.com>
+[Changed testcase name --dwg]
+Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
+---
+ libfdt/fdt_ro.c      | 25 ++++++++++++++++
+ libfdt/libfdt.h      | 19 +++++++++++-
+ tests/.gitignore     |  1 +
+ tests/Makefile.tests |  1 +
+ tests/run_tests.sh   |  3 ++
+ tests/stringlist.c   | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++
+ tests/stringlist.dts | 12 ++++++++
+ 7 files changed, 142 insertions(+), 1 deletion(-)
+ create mode 100644 tests/stringlist.c
+ create mode 100644 tests/stringlist.dts
+
+diff --git a/libfdt/fdt_ro.c b/libfdt/fdt_ro.c
+index a65e4b5..4cde931 100644
+--- a/libfdt/fdt_ro.c
++++ b/libfdt/fdt_ro.c
+@@ -538,6 +538,31 @@ int fdt_stringlist_contains(const char *strlist, int listlen, const char *str)
+ 	return 0;
+ }
+ 
++int fdt_stringlist_count(const void *fdt, int nodeoffset, const char *property)
++{
++	const char *list, *end;
++	int length, count = 0;
++
++	list = fdt_getprop(fdt, nodeoffset, property, &length);
++	if (!list)
++		return -length;
++
++	end = list + length;
++
++	while (list < end) {
++		length = strnlen(list, end - list) + 1;
++
++		/* Abort if the last string isn't properly NUL-terminated. */
++		if (list + length > end)
++			return -FDT_ERR_BADVALUE;
++
++		list += length;
++		count++;
++	}
++
++	return count;
++}
++
+ int fdt_node_check_compatible(const void *fdt, int nodeoffset,
+ 			      const char *compatible)
+ {
+diff --git a/libfdt/libfdt.h b/libfdt/libfdt.h
+index 1bd0242..2863001 100644
+--- a/libfdt/libfdt.h
++++ b/libfdt/libfdt.h
+@@ -121,7 +121,12 @@
+ 	/* FDT_ERR_BADNCELLS: Device tree has a #address-cells, #size-cells
+ 	 * or similar property with a bad format or value */
+ 
+-#define FDT_ERR_MAX		14
++#define FDT_ERR_BADVALUE	15
++	/* FDT_ERR_BADVALUE: Device tree has a property with an unexpected
++	 * value. For example: a property expected to contain a string list
++	 * is not NUL-terminated within the length of its value. */
++
++#define FDT_ERR_MAX		15
+ 
+ /**********************************************************************/
+ /* Low-level functions (you probably don't need these)                */
+@@ -868,6 +873,18 @@ int fdt_node_offset_by_compatible(const void *fdt, int startoffset,
+  */
+ int fdt_stringlist_contains(const char *strlist, int listlen, const char *str);
+ 
++/**
++ * fdt_stringlist_count - count the number of strings in a string list
++ * @fdt: pointer to the device tree blob
++ * @nodeoffset: offset of a tree node
++ * @property: name of the property containing the string list
++ * @return:
++ *   the number of strings in the given property
++ *   -FDT_ERR_BADVALUE if the property value is not NUL-terminated
++ *   -FDT_ERR_NOTFOUND if the property does not exist
++ */
++int fdt_stringlist_count(const void *fdt, int nodeoffset, const char *property);
++
+ /**********************************************************************/
+ /* Read-only functions (addressing related)                           */
+ /**********************************************************************/
+diff --git a/tests/.gitignore b/tests/.gitignore
+index 5656555..e4532da 100644
+--- a/tests/.gitignore
++++ b/tests/.gitignore
+@@ -49,6 +49,7 @@ tmp.*
+ /setprop_inplace
+ /sized_cells
+ /string_escapes
++/stringlist
+ /subnode_iterate
+ /subnode_offset
+ /supernode_atdepth_offset
+diff --git a/tests/Makefile.tests b/tests/Makefile.tests
+index 9adedec..f7c3a4b 100644
+--- a/tests/Makefile.tests
++++ b/tests/Makefile.tests
+@@ -9,6 +9,7 @@ LIB_TESTS_L = get_mem_rsv \
+ 	sized_cells \
+ 	notfound \
+ 	addr_size_cells \
++	stringlist \
+ 	setprop_inplace nop_property nop_node \
+ 	sw_tree1 \
+ 	move_and_save mangle-layout nopulate \
+diff --git a/tests/run_tests.sh b/tests/run_tests.sh
+index 5268293..1063d1e 100755
+--- a/tests/run_tests.sh
++++ b/tests/run_tests.sh
+@@ -198,6 +198,9 @@ libfdt_tests () {
+     run_dtc_test -I dts -O dtb -o addresses.test.dtb addresses.dts
+     run_test addr_size_cells addresses.test.dtb
+ 
++    run_dtc_test -I dts -O dtb -o stringlist.test.dtb stringlist.dts
++    run_test stringlist stringlist.test.dtb
++
+     # Sequential write tests
+     run_test sw_tree1
+     tree1_tests sw_tree1.test.dtb
+diff --git a/tests/stringlist.c b/tests/stringlist.c
+new file mode 100644
+index 0000000..923e2ed
+--- /dev/null
++++ b/tests/stringlist.c
+@@ -0,0 +1,82 @@
++/*
++ * libfdt - Flat Device Tree manipulation
++ *	Testcase for string handling
++ * Copyright (C) 2015 NVIDIA Corporation
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public License
++ * as published by the Free Software Foundation; either version 2.1 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
++ * 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 St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++#include <stdlib.h>
++#include <stdio.h>
++#include <string.h>
++#include <stdint.h>
++
++#include <libfdt.h>
++
++#include "tests.h"
++#include "testdata.h"
++
++static void check_expected_failure(const void *fdt, const char *path,
++				   const char *property)
++{
++	int offset, err;
++
++	offset = fdt_path_offset(fdt, "/");
++	if (offset < 0)
++		FAIL("Couldn't find path %s", path);
++
++	err = fdt_stringlist_count(fdt, offset, "#address-cells");
++	if (err != -FDT_ERR_BADVALUE)
++		FAIL("unexpectedly succeeded in parsing #address-cells\n");
++}
++
++static void check_string_count(const void *fdt, const char *path,
++			       const char *property, int count)
++{
++	int offset, err;
++
++	offset = fdt_path_offset(fdt, path);
++	if (offset < 0)
++		FAIL("Couldn't find path %s", path);
++
++	err = fdt_stringlist_count(fdt, offset, property);
++	if (err < 0)
++		FAIL("Couldn't count strings in property %s of node %s: %d\n",
++		     property, path, err);
++
++	if (err != count)
++		FAIL("String count for property %s of node %s is %d instead of %d\n",
++		     path, property, err, count);
++}
++
++int main(int argc, char *argv[])
++{
++	void *fdt;
++
++	if (argc != 2)
++		CONFIG("Usage: %s <dtb file>\n", argv[0]);
++
++	test_init(argc, argv);
++	fdt = load_blob(argv[1]);
++
++	check_expected_failure(fdt, "/", "#address-cells");
++	check_expected_failure(fdt, "/", "#size-cells");
++
++	check_string_count(fdt, "/", "compatible", 1);
++	check_string_count(fdt, "/device", "compatible", 2);
++	check_string_count(fdt, "/device", "big-endian", 0);
++
++	PASS();
++}
+diff --git a/tests/stringlist.dts b/tests/stringlist.dts
+new file mode 100644
+index 0000000..1e4d314
+--- /dev/null
++++ b/tests/stringlist.dts
+@@ -0,0 +1,12 @@
++/dts-v1/;
++
++/ {
++	compatible = "test-strings";
++	#address-cells = <2>;
++	#size-cells = <2>;
++
++	device {
++		compatible = "foo", "bar";
++		big-endian;
++	};
++};
+-- 
+1.9.1
+
diff --git a/board/beaglebone/patches/dtc/0003-fdt-Add-a-function-to-get-the-index-of-a-string.patch b/board/beaglebone/patches/dtc/0003-fdt-Add-a-function-to-get-the-index-of-a-string.patch
new file mode 100644
index 0000000..d039739
--- /dev/null
+++ b/board/beaglebone/patches/dtc/0003-fdt-Add-a-function-to-get-the-index-of-a-string.patch
@@ -0,0 +1,159 @@ 
+From 8702bd1d3b430c16aaa37056cb24b6d984da48f7 Mon Sep 17 00:00:00 2001
+From: Thierry Reding <treding@nvidia.com>
+Date: Tue, 29 Sep 2015 11:09:07 +0200
+Subject: [PATCH 3/4] fdt: Add a function to get the index of a string
+
+The new fdt_stringlist_search() function will look up a given string in
+the list contained in the value of a named property of a given device
+tree node and return its index.
+
+Signed-off-by: Thierry Reding <treding@nvidia.com>
+[Fix some -Wshadow warnings --dwg]
+Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
+---
+ libfdt/fdt_ro.c    | 30 ++++++++++++++++++++++++++++++
+ libfdt/libfdt.h    | 22 ++++++++++++++++++++++
+ tests/stringlist.c | 40 ++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 92 insertions(+)
+
+diff --git a/libfdt/fdt_ro.c b/libfdt/fdt_ro.c
+index 4cde931..2d74c37 100644
+--- a/libfdt/fdt_ro.c
++++ b/libfdt/fdt_ro.c
+@@ -563,6 +563,36 @@ int fdt_stringlist_count(const void *fdt, int nodeoffset, const char *property)
+ 	return count;
+ }
+ 
++int fdt_stringlist_search(const void *fdt, int nodeoffset, const char *property,
++			  const char *string)
++{
++	int length, len, idx = 0;
++	const char *list, *end;
++
++	list = fdt_getprop(fdt, nodeoffset, property, &length);
++	if (!list)
++		return -length;
++
++	len = strlen(string) + 1;
++	end = list + length;
++
++	while (list < end) {
++		length = strnlen(list, end - list) + 1;
++
++		/* Abort if the last string isn't properly NUL-terminated. */
++		if (list + length > end)
++			return -FDT_ERR_BADVALUE;
++
++		if (length == len && memcmp(list, string, length) == 0)
++			return idx;
++
++		list += length;
++		idx++;
++	}
++
++	return -FDT_ERR_NOTFOUND;
++}
++
+ int fdt_node_check_compatible(const void *fdt, int nodeoffset,
+ 			      const char *compatible)
+ {
+diff --git a/libfdt/libfdt.h b/libfdt/libfdt.h
+index 2863001..aa376b8 100644
+--- a/libfdt/libfdt.h
++++ b/libfdt/libfdt.h
+@@ -885,6 +885,28 @@ int fdt_stringlist_contains(const char *strlist, int listlen, const char *str);
+  */
+ int fdt_stringlist_count(const void *fdt, int nodeoffset, const char *property);
+ 
++/**
++ * fdt_stringlist_search - find a string in a string list and return its index
++ * @fdt: pointer to the device tree blob
++ * @nodeoffset: offset of a tree node
++ * @property: name of the property containing the string list
++ * @string: string to look up in the string list
++ *
++ * Note that it is possible for this function to succeed on property values
++ * that are not NUL-terminated. That's because the function will stop after
++ * finding the first occurrence of @string. This can for example happen with
++ * small-valued cell properties, such as #address-cells, when searching for
++ * the empty string.
++ *
++ * @return:
++ *   the index of the string in the list of strings
++ *   -FDT_ERR_BADVALUE if the property value is not NUL-terminated
++ *   -FDT_ERR_NOTFOUND if the property does not exist or does not contain
++ *                     the given string
++ */
++int fdt_stringlist_search(const void *fdt, int nodeoffset, const char *property,
++			  const char *string);
++
+ /**********************************************************************/
+ /* Read-only functions (addressing related)                           */
+ /**********************************************************************/
+diff --git a/tests/stringlist.c b/tests/stringlist.c
+index 923e2ed..b8835b7 100644
+--- a/tests/stringlist.c
++++ b/tests/stringlist.c
+@@ -40,6 +40,24 @@ static void check_expected_failure(const void *fdt, const char *path,
+ 	err = fdt_stringlist_count(fdt, offset, "#address-cells");
+ 	if (err != -FDT_ERR_BADVALUE)
+ 		FAIL("unexpectedly succeeded in parsing #address-cells\n");
++
++	err = fdt_stringlist_search(fdt, offset, "#address-cells", "foo");
++	if (err != -FDT_ERR_BADVALUE)
++		FAIL("found string in #address-cells: %d\n", err);
++
++	/*
++	 * Note that the #address-cells property contains a small 32-bit
++	 * unsigned integer, hence some bytes will be zero, and searching for
++	 * the empty string will succeed.
++	 *
++	 * The reason for this oddity is that the function will exit when the
++	 * first occurrence of the string is found, but in order to determine
++	 * that the property does not contain a valid string list it would
++	 * need to process the whole value.
++	 */
++	err = fdt_stringlist_search(fdt, offset, "#address-cells", "");
++	if (err != 0)
++		FAIL("empty string not found in #address-cells: %d\n", err);
+ }
+ 
+ static void check_string_count(const void *fdt, const char *path,
+@@ -61,6 +79,23 @@ static void check_string_count(const void *fdt, const char *path,
+ 		     path, property, err, count);
+ }
+ 
++static void check_string_index(const void *fdt, const char *path,
++			       const char *property, const char *string,
++			       int idx)
++{
++	int offset, err;
++
++	offset = fdt_path_offset(fdt, path);
++	if (offset < 0)
++		FAIL("Couldn't find path %s", path);
++
++	err = fdt_stringlist_search(fdt, offset, property, string);
++
++	if (err != idx)
++		FAIL("Index of %s in property %s of node %s is %d, expected %d\n",
++		     string, property, path, err, idx);
++}
++
+ int main(int argc, char *argv[])
+ {
+ 	void *fdt;
+@@ -78,5 +113,10 @@ int main(int argc, char *argv[])
+ 	check_string_count(fdt, "/device", "compatible", 2);
+ 	check_string_count(fdt, "/device", "big-endian", 0);
+ 
++	check_string_index(fdt, "/", "compatible", "test-strings", 0);
++	check_string_index(fdt, "/device", "compatible", "foo", 0);
++	check_string_index(fdt, "/device", "compatible", "bar", 1);
++	check_string_index(fdt, "/device", "big-endian", "baz", -1);
++
+ 	PASS();
+ }
+-- 
+1.9.1
+
diff --git a/board/beaglebone/patches/dtc/0004-fdt-Add-functions-to-retrieve-strings.patch b/board/beaglebone/patches/dtc/0004-fdt-Add-functions-to-retrieve-strings.patch
new file mode 100644
index 0000000..ac7328b
--- /dev/null
+++ b/board/beaglebone/patches/dtc/0004-fdt-Add-functions-to-retrieve-strings.patch
@@ -0,0 +1,173 @@ 
+From 604e61e081e3c6c8fa1a8189c71cb3908a5bbc1e Mon Sep 17 00:00:00 2001
+From: Thierry Reding <treding@nvidia.com>
+Date: Tue, 29 Sep 2015 11:09:08 +0200
+Subject: [PATCH 4/4] fdt: Add functions to retrieve strings
+
+Given a device tree node, a property name and an index, the new function
+fdt_stringlist_get() will return a pointer to the index'th string in the
+property's value and return its length (or an error code on failure) in
+an output argument.
+
+Signed-off-by: Thierry Reding <treding@nvidia.com>
+[Fix some -Wshadow warnings --dwg]
+Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
+---
+ libfdt/fdt_ro.c    | 45 +++++++++++++++++++++++++++++++++++++++++++++
+ libfdt/libfdt.h    | 28 ++++++++++++++++++++++++++++
+ tests/stringlist.c | 32 ++++++++++++++++++++++++++++++++
+ 3 files changed, 105 insertions(+)
+
+diff --git a/libfdt/fdt_ro.c b/libfdt/fdt_ro.c
+index 2d74c37..e5b3136 100644
+--- a/libfdt/fdt_ro.c
++++ b/libfdt/fdt_ro.c
+@@ -593,6 +593,51 @@ int fdt_stringlist_search(const void *fdt, int nodeoffset, const char *property,
+ 	return -FDT_ERR_NOTFOUND;
+ }
+ 
++const char *fdt_stringlist_get(const void *fdt, int nodeoffset,
++			       const char *property, int idx,
++			       int *lenp)
++{
++	const char *list, *end;
++	int length;
++
++	list = fdt_getprop(fdt, nodeoffset, property, &length);
++	if (!list) {
++		if (lenp)
++			*lenp = length;
++
++		return NULL;
++	}
++
++	end = list + length;
++
++	while (list < end) {
++		length = strnlen(list, end - list) + 1;
++
++		/* Abort if the last string isn't properly NUL-terminated. */
++		if (list + length > end) {
++			if (lenp)
++				*lenp = -FDT_ERR_BADVALUE;
++
++			return NULL;
++		}
++
++		if (idx == 0) {
++			if (lenp)
++				*lenp = length - 1;
++
++			return list;
++		}
++
++		list += length;
++		idx--;
++	}
++
++	if (lenp)
++		*lenp = -FDT_ERR_NOTFOUND;
++
++	return NULL;
++}
++
+ int fdt_node_check_compatible(const void *fdt, int nodeoffset,
+ 			      const char *compatible)
+ {
+diff --git a/libfdt/libfdt.h b/libfdt/libfdt.h
+index aa376b8..78adb12 100644
+--- a/libfdt/libfdt.h
++++ b/libfdt/libfdt.h
+@@ -907,6 +907,34 @@ int fdt_stringlist_count(const void *fdt, int nodeoffset, const char *property);
+ int fdt_stringlist_search(const void *fdt, int nodeoffset, const char *property,
+ 			  const char *string);
+ 
++/**
++ * fdt_stringlist_get() - obtain the string at a given index in a string list
++ * @fdt: pointer to the device tree blob
++ * @nodeoffset: offset of a tree node
++ * @property: name of the property containing the string list
++ * @index: index of the string to return
++ * @lenp: return location for the string length or an error code on failure
++ *
++ * Note that this will successfully extract strings from properties with
++ * non-NUL-terminated values. For example on small-valued cell properties
++ * this function will return the empty string.
++ *
++ * If non-NULL, the length of the string (on success) or a negative error-code
++ * (on failure) will be stored in the integer pointer to by lenp.
++ *
++ * @return:
++ *   A pointer to the string at the given index in the string list or NULL on
++ *   failure. On success the length of the string will be stored in the memory
++ *   location pointed to by the lenp parameter, if non-NULL. On failure one of
++ *   the following negative error codes will be returned in the lenp parameter
++ *   (if non-NULL):
++ *     -FDT_ERR_BADVALUE if the property value is not NUL-terminated
++ *     -FDT_ERR_NOTFOUND if the property does not exist
++ */
++const char *fdt_stringlist_get(const void *fdt, int nodeoffset,
++			       const char *property, int index,
++			       int *lenp);
++
+ /**********************************************************************/
+ /* Read-only functions (addressing related)                           */
+ /**********************************************************************/
+diff --git a/tests/stringlist.c b/tests/stringlist.c
+index b8835b7..a9d3e73 100644
+--- a/tests/stringlist.c
++++ b/tests/stringlist.c
+@@ -58,6 +58,13 @@ static void check_expected_failure(const void *fdt, const char *path,
+ 	err = fdt_stringlist_search(fdt, offset, "#address-cells", "");
+ 	if (err != 0)
+ 		FAIL("empty string not found in #address-cells: %d\n", err);
++
++	/*
++	 * fdt_get_string() can successfully extract strings from non-string
++	 * properties. This is because it doesn't necessarily parse the whole
++	 * property value, which would be necessary for it to determine if a
++	 * valid string or string list is present.
++	 */
+ }
+ 
+ static void check_string_count(const void *fdt, const char *path,
+@@ -96,6 +103,27 @@ static void check_string_index(const void *fdt, const char *path,
+ 		     string, property, path, err, idx);
+ }
+ 
++static void check_string(const void *fdt, const char *path,
++			 const char *property, int idx,
++			 const char *string)
++{
++	const char *result;
++	int offset, len;
++
++	offset = fdt_path_offset(fdt, path);
++	if (offset < 0)
++		FAIL("Couldn't find path %s", path);
++
++	result = fdt_stringlist_get(fdt, offset, property, idx, &len);
++	if (!result)
++		FAIL("Couldn't extract string %d from property %s of node %s: %d\n",
++		     idx, property, path, len);
++
++	if (strcmp(string, result) != 0)
++		FAIL("String %d in property %s of node %s is %s, expected %s\n",
++		     idx, property, path, result, string);
++}
++
+ int main(int argc, char *argv[])
+ {
+ 	void *fdt;
+@@ -118,5 +146,9 @@ int main(int argc, char *argv[])
+ 	check_string_index(fdt, "/device", "compatible", "bar", 1);
+ 	check_string_index(fdt, "/device", "big-endian", "baz", -1);
+ 
++	check_string(fdt, "/", "compatible", 0, "test-strings");
++	check_string(fdt, "/device", "compatible", 0, "foo");
++	check_string(fdt, "/device", "compatible", 1, "bar");
++
+ 	PASS();
+ }
+-- 
+1.9.1
+
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..af7d1ba 100644
--- a/board/beaglebone/uEnv.txt
+++ b/board/beaglebone/uEnv.txt
@@ -1,3 +1,10 @@ 
-bootpart=0:1
-bootdir=
-uenvcmd=run loadimage;run loadramdisk;run findfdt;run loadfdt;run ramboot
+bootfile=zImage
+fdtfile=am335x-boneblack.dtb
+loadfdt=fatload mmc 0:1 ${fdtaddr} ${fdtfile}
+loadzimage=fatload mmc 0:1 ${loadaddr} ${bootfile}
+console=ttyO0,115200n8
+mmcroot=/dev/mmcblk0p2
+mmcrootfstype=ext2
+uenvcmd=mmc rescan; run loadzimage; run loadfdt; run fdtboot
+mmc_args=setenv bootargs console=${console} ${optargs} root=${mmcroot} rw rootfstype=${mmcrootfstype} rootwait
+fdtboot=run mmc_args; bootz ${loadaddr} - ${fdtaddr}
diff --git a/configs/beaglebone_defconfig b/configs/beaglebone_defconfig
index ddb583c..773e210 100644
--- a/configs/beaglebone_defconfig
+++ b/configs/beaglebone_defconfig
@@ -1,42 +1,30 @@ 
-# architecture
 BR2_arm=y
 BR2_cortex_a8=y
-BR2_ARM_EABIHF=y
-
-# system
+BR2_GLOBAL_PATCH_DIR="board/beaglebone/patches/"
+BR2_KERNEL_HEADERS_VERSION=y
+BR2_DEFAULT_KERNEL_VERSION="4.1.13"
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_1=y
 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"
-
-# filesystem
-BR2_PACKAGE_AM33X_CM3=y
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_GIT=y
+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_USE_CUSTOM_CONFIG=y
+BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/beaglebone/linux_4.1.13_bb.org_defconfig"
+BR2_LINUX_KERNEL_ZIMAGE=y
+BR2_LINUX_KERNEL_DTS_SUPPORT=y
+BR2_LINUX_KERNEL_INTREE_DTS_NAME="am335x-bone am335x-boneblack"
+BR2_PACKAGE_AM335X_PRU_PACKAGE=y
 BR2_TARGET_ROOTFS_EXT2=y
 # BR2_TARGET_ROOTFS_TAR is not set
-
-# 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
-
-# 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_CUSTOM_VERSION_VALUE="2015.10"
+BR2_TARGET_UBOOT_NEEDS_DTC=y
 BR2_TARGET_UBOOT_FORMAT_IMG=y
 BR2_TARGET_UBOOT_SPL=y
 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_USE_CUSTOM_CONFIG=y
-BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/beaglebone/linux-3.12.config"
-BR2_LINUX_KERNEL_ZIMAGE=y
-BR2_LINUX_KERNEL_DTS_SUPPORT=y
-BR2_LINUX_KERNEL_INTREE_DTS_NAME="am335x-bone am335x-boneblack"