diff mbox

pandaboard: fix defonf build with recent kernels

Message ID 1386201464-19380-1-git-send-email-thomas@cozybit.com
State Superseded
Headers show

Commit Message

Thomas Pedersen Dec. 4, 2013, 11:57 p.m. UTC
The patch "pandaboard: Fix defconfig build" locked the
default pandaboard kernel to 3.8.11. This is inconvenient,
however, and we can make the default pandaboard kernel
build and boot with a few changes:

1. specify the correct load address
2. append the flattened device tree to the uImage

Note the default device tree is now for the pandaboard-ES,
so users of other board revisions will need to set the
correct DTS_NAME.

Signed-off-by: Thomas Pedersen <thomas@cozybit.com>
---
 configs/pandaboard_defconfig | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

Comments

Thomas Petazzoni Dec. 5, 2013, 7:59 a.m. UTC | #1
Dear Thomas Pedersen,

On Wed,  4 Dec 2013 15:57:44 -0800, Thomas Pedersen wrote:
> The patch "pandaboard: Fix defconfig build" locked the
> default pandaboard kernel to 3.8.11. This is inconvenient,
> however, and we can make the default pandaboard kernel
> build and boot with a few changes:

The lock down to a specific version of the kernel and a specific version
of the kernel headers is intentional. These are here to guarantee that
the defconfig will always produce the same result, regardless of
whether Buildroot updates the default kernel / kernel headers version.

> -# Lock to 3.8 headers to avoid breaking with newer kernels
> -BR2_KERNEL_HEADERS_3_8=y

So this should be kept (possibly updating to a new kernel headers
version of course, but we should keep a kernel headers version here).

>  # Kernel
>  BR2_LINUX_KERNEL=y
> -BR2_LINUX_KERNEL_CUSTOM_VERSION=y
> -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.8.11"

Same thing here. No problem with bumping from 3.8.x to 3.12.x or
something like that, if you've tested 3.12.x, but an explicit version
selection must be kept.

>  BR2_LINUX_KERNEL_DEFCONFIG="omap2plus"
> +BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x80008000"
> +BR2_LINUX_KERNEL_APPENDED_UIMAGE=y
> +BR2_LINUX_KERNEL_APPENDED_DTB=y
> +BR2_LINUX_KERNEL_USE_INTREE_DTS=y
> +# might need omap4-panda or omap4-panda-a4 instead
> +BR2_LINUX_KERNEL_INTREE_DTS_NAME="omap4-panda-es"
>  
>  # GCC
>  BR2_GCC_VERSION_4_6_X=y

Thanks!

Thomas
Peter Korsgaard Dec. 5, 2013, 8:15 a.m. UTC | #2
>>>>> "Thomas" == Thomas Pedersen <thomas@cozybit.com> writes:

 > The patch "pandaboard: Fix defconfig build" locked the
 > default pandaboard kernel to 3.8.11. This is inconvenient,
 > however, and we can make the default pandaboard kernel
 > build and boot with a few changes:

 > 1. specify the correct load address
 > 2. append the flattened device tree to the uImage

 > Note the default device tree is now for the pandaboard-ES,
 > so users of other board revisions will need to set the
 > correct DTS_NAME.

Thanks. There afaik has been quite some breakage in the kernel related
to pandaboard, what version have you tested with?

In general we try to stick to known (fixed) kernel version in the
defconfigs, to not get the users into that kind of trouble by default.
Thomas Pedersen Dec. 5, 2013, 8:24 a.m. UTC | #3
On Dec 4, 2013 11:59 PM, "Thomas Petazzoni" <
thomas.petazzoni@free-electrons.com> wrote:
>
> Dear Thomas Pedersen,
>
> On Wed,  4 Dec 2013 15:57:44 -0800, Thomas Pedersen wrote:
> > The patch "pandaboard: Fix defconfig build" locked the
> > default pandaboard kernel to 3.8.11. This is inconvenient,
> > however, and we can make the default pandaboard kernel
> > build and boot with a few changes:
>
> The lock down to a specific version of the kernel and a specific version
> of the kernel headers is intentional. These are here to guarantee that
> the defconfig will always produce the same result, regardless of
> whether Buildroot updates the default kernel / kernel headers version.

Ah OK. At least this patch will make future kernels compatible with legacy
u-boot loaders. In our case we're using usbboot, and I'm not aware of a
method to pass the device tree over USB or PXE.

> > -# Lock to 3.8 headers to avoid breaking with newer kernels
> > -BR2_KERNEL_HEADERS_3_8=y
>
> So this should be kept (possibly updating to a new kernel headers
> version of course, but we should keep a kernel headers version here).
>
> >  # Kernel
> >  BR2_LINUX_KERNEL=y
> > -BR2_LINUX_KERNEL_CUSTOM_VERSION=y
> > -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.8.11"
>
> Same thing here. No problem with bumping from 3.8.x to 3.12.x or
> something like that, if you've tested 3.12.x, but an explicit version
> selection must be kept.

Will do. Thanks!

Thomas
Ryan Barnett Dec. 5, 2013, 8:29 a.m. UTC | #4
Thomas Pedersen,

Thomas Pedersen <thomas@cozybit.com> wrote on 12/04/2013 05:57:44 PM:

[...]

>  # Kernel
>  BR2_LINUX_KERNEL=y
> -BR2_LINUX_KERNEL_CUSTOM_VERSION=y
> -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.8.11"
>  BR2_LINUX_KERNEL_DEFCONFIG="omap2plus"

Would it be possible to lock the kernel version down by using the custom 
version? This way that when we provide a defconfig with a known working 
kernel. If it were to be left to not use this, the kernel version will 
change with all the bumps.

> +BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x80008000"
> +BR2_LINUX_KERNEL_APPENDED_UIMAGE=y

What is the need for uImage? zImage is what is supported by default in 
U-Boot for pandaboard - 
http://git.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=blob;f=include/configs/omap4_common.h

This configuration is not going to work out of the box for a user since 
U-Boot searches for a zImage and a omap4-panda-es.dtb. So we would want to 
generate a stand-alone dtb.

> +BR2_LINUX_KERNEL_APPENDED_DTB=y
> +BR2_LINUX_KERNEL_USE_INTREE_DTS=y
> +# might need omap4-panda or omap4-panda-a4 instead
> +BR2_LINUX_KERNEL_INTREE_DTS_NAME="omap4-panda-es"

Also could we lock down the version of u-boot too?

Currently it looks like this -

# Bootloaders
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_FORMAT_IMG=y
BR2_TARGET_UBOOT_BOARDNAME="omap4_panda"
BR2_TARGET_UBOOT_SPL=y
BR2_TARGET_UBOOT_SPL_NAME="MLO"

Which means we will be pulling the latest version of U-Boot which is also 
not preferable since U-Boot also has a tendency to break. Would you be 
willing to specify a custom version of u-boot too in your update to the 
defconfig?

Thanks,
-Ryan
Thomas Pedersen Dec. 5, 2013, 8:29 a.m. UTC | #5
On Dec 5, 2013 12:15 AM, "Peter Korsgaard" <jacmet@uclibc.org> wrote:
>
> >>>>> "Thomas" == Thomas Pedersen <thomas@cozybit.com> writes:
>
>  > The patch "pandaboard: Fix defconfig build" locked the
>  > default pandaboard kernel to 3.8.11. This is inconvenient,
>  > however, and we can make the default pandaboard kernel
>  > build and boot with a few changes:
>
>  > 1. specify the correct load address
>  > 2. append the flattened device tree to the uImage
>
>  > Note the default device tree is now for the pandaboard-ES,
>  > so users of other board revisions will need to set the
>  > correct DTS_NAME.
>
> Thanks. There afaik has been quite some breakage in the kernel related
> to pandaboard, what version have you tested with?

This was tested with 3.12.2, and AFAICT should continue to work moving
forward. The recent pandaboard breakage seems to have been shook out since
the 3.8+ transition.

> In general we try to stick to known (fixed) kernel version in the
> defconfigs, to not get the users into that kind of trouble by default.

Makes sense. I'll submit a v2 which does this in the morning.

Thomas
Thomas Pedersen Dec. 5, 2013, 8:26 p.m. UTC | #6
HI Ryan,

On Thu, Dec 5, 2013 at 12:29 AM,  <rjbarnet@rockwellcollins.com> wrote:
> Thomas Pedersen <thomas@cozybit.com> wrote on 12/04/2013 05:57:44 PM:
>
> [...]
>
>>  # Kernel
>>  BR2_LINUX_KERNEL=y
>> -BR2_LINUX_KERNEL_CUSTOM_VERSION=y
>> -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.8.11"
>>  BR2_LINUX_KERNEL_DEFCONFIG="omap2plus"
>
> Would it be possible to lock the kernel version down by using the custom
> version? This way that when we provide a defconfig with a known working
> kernel. If it were to be left to not use this, the kernel version will
> change with all the bumps.

Yes, I'll lock it to 3.12.2 or so.

>> +BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x80008000"
>> +BR2_LINUX_KERNEL_APPENDED_UIMAGE=y
>
> What is the need for uImage? zImage is what is supported by default in
> U-Boot for pandaboard -
> http://git.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=blob;f=include/configs/omap4_common.h
>
> This configuration is not going to work out of the box for a user since
> U-Boot searches for a zImage and a omap4-panda-es.dtb. So we would want to
> generate a stand-alone dtb.

zImage and dtb is still intact. The appended uImage is simply
generated as an extra step after appending the DTB to the zImage.

>> +BR2_LINUX_KERNEL_APPENDED_DTB=y
>> +BR2_LINUX_KERNEL_USE_INTREE_DTS=y
>> +# might need omap4-panda or omap4-panda-a4 instead
>> +BR2_LINUX_KERNEL_INTREE_DTS_NAME="omap4-panda-es"
>
> Also could we lock down the version of u-boot too?
>
> Currently it looks like this -
>
> # Bootloaders
> BR2_TARGET_UBOOT=y
> BR2_TARGET_UBOOT_FORMAT_IMG=y
> BR2_TARGET_UBOOT_BOARDNAME="omap4_panda"
> BR2_TARGET_UBOOT_SPL=y
> BR2_TARGET_UBOOT_SPL_NAME="MLO"
>
> Which means we will be pulling the latest version of U-Boot which is also
> not preferable since U-Boot also has a tendency to break. Would you be
> willing to specify a custom version of u-boot too in your update to the
> defconfig?

I'm actually using the linaro-boot-utils u-boot (SPL 2012.07) to
enable booting over USB. I'll see if the vanilla version boots the
generated uImage off an SD card.

Thanks,
Thomas Pedersen Dec. 6, 2013, 8:45 p.m. UTC | #7
On Thu, Dec 5, 2013 at 12:26 PM, Thomas Pedersen <thomas@cozybit.com> wrote:
> HI Ryan,
>
> On Thu, Dec 5, 2013 at 12:29 AM,  <rjbarnet@rockwellcollins.com> wrote:
>> Thomas Pedersen <thomas@cozybit.com> wrote on 12/04/2013 05:57:44 PM:
>>
>> [...]
>>
>>>  # Kernel
>>>  BR2_LINUX_KERNEL=y
>>> -BR2_LINUX_KERNEL_CUSTOM_VERSION=y
>>> -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.8.11"
>>>  BR2_LINUX_KERNEL_DEFCONFIG="omap2plus"
>>
>> Would it be possible to lock the kernel version down by using the custom
>> version? This way that when we provide a defconfig with a known working
>> kernel. If it were to be left to not use this, the kernel version will
>> change with all the bumps.
>
> Yes, I'll lock it to 3.12.2 or so.
>
>>> +BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x80008000"
>>> +BR2_LINUX_KERNEL_APPENDED_UIMAGE=y
>>
>> What is the need for uImage? zImage is what is supported by default in
>> U-Boot for pandaboard -
>> http://git.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=blob;f=include/configs/omap4_common.h
>>
>> This configuration is not going to work out of the box for a user since
>> U-Boot searches for a zImage and a omap4-panda-es.dtb. So we would want to
>> generate a stand-alone dtb.
>
> zImage and dtb is still intact. The appended uImage is simply
> generated as an extra step after appending the DTB to the zImage.

Sorry Ryan, you were correct. The resulting uImage is then installed
instead of the zImage, breaking boot with current u-boot.

>>> +BR2_LINUX_KERNEL_APPENDED_DTB=y
>>> +BR2_LINUX_KERNEL_USE_INTREE_DTS=y
>>> +# might need omap4-panda or omap4-panda-a4 instead
>>> +BR2_LINUX_KERNEL_INTREE_DTS_NAME="omap4-panda-es"
>>
>> Also could we lock down the version of u-boot too?
>>
>> Currently it looks like this -
>>
>> # Bootloaders
>> BR2_TARGET_UBOOT=y
>> BR2_TARGET_UBOOT_FORMAT_IMG=y
>> BR2_TARGET_UBOOT_BOARDNAME="omap4_panda"
>> BR2_TARGET_UBOOT_SPL=y
>> BR2_TARGET_UBOOT_SPL_NAME="MLO"
>>
>> Which means we will be pulling the latest version of U-Boot which is also
>> not preferable since U-Boot also has a tendency to break. Would you be
>> willing to specify a custom version of u-boot too in your update to the
>> defconfig?
>
> I'm actually using the linaro-boot-utils u-boot (SPL 2012.07) to
> enable booting over USB. I'll see if the vanilla version boots the
> generated uImage off an SD card.
>
> Thanks,
>
> --
> Thomas
diff mbox

Patch

diff --git a/configs/pandaboard_defconfig b/configs/pandaboard_defconfig
index 95cfdd6..341ce22 100644
--- a/configs/pandaboard_defconfig
+++ b/configs/pandaboard_defconfig
@@ -11,14 +11,15 @@  BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS=y
 BR2_TARGET_ROOTFS_EXT2=y
 # BR2_TARGET_ROOTFS_TAR is not set
 
-# Lock to 3.8 headers to avoid breaking with newer kernels
-BR2_KERNEL_HEADERS_3_8=y
-
 # Kernel
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.8.11"
 BR2_LINUX_KERNEL_DEFCONFIG="omap2plus"
+BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x80008000"
+BR2_LINUX_KERNEL_APPENDED_UIMAGE=y
+BR2_LINUX_KERNEL_APPENDED_DTB=y
+BR2_LINUX_KERNEL_USE_INTREE_DTS=y
+# might need omap4-panda or omap4-panda-a4 instead
+BR2_LINUX_KERNEL_INTREE_DTS_NAME="omap4-panda-es"
 
 # GCC
 BR2_GCC_VERSION_4_6_X=y