Patchwork [PATCHv3,0/6] Add some support for device tree kernels

login
register
mail settings
Submitter Maxime Ripard
Date July 27, 2012, 6:59 p.m.
Message ID <5012E503.2070005@free-electrons.com>
Download mbox | patch
Permalink /patch/173761/
State Not Applicable
Headers show

Comments

Maxime Ripard - July 27, 2012, 6:59 p.m.
Hi Fabio,

Thanks for the reporting.

Le 27/07/2012 18:06, Fabio Porcedda a écrit :
> Hi Maxime,
> thanks for the work, this feature it's very useful for me,
> i tried your patches and i tried to build a kernel for arm, but it
> failed to build it,
> this is the tail of the output log:
> 
> cat /home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/arch/arm/boot/zImage
> /home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/arch/arm/boot/"usb_a9260".dtb
>> /home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/arch/arm/boot/zImage_dtb
> mv /home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/arch/arm/boot/zImage_dtb
> /home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/arch/arm/boot/zImage
> # We need to generate a new u-boot image that takes into
> # account the extra-size added by the device tree at the end
> # of the image. To do so, we first need to retrieve both load
> # address and entry point for the kernel from the already
> # generate uboot image before using mkimage -l.
> LOAD=` -l /home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/arch/arm/boot/uImage
> | sed -n 's/Load Address: \([0-9]*\)/\1/p'`; ENTRY=` -l
> /home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/arch/arm/boot/uImage
> | sed -n 's/Entry Point: \([0-9]*\)/\1/p'`;  -A arm -O linux -T kernel
> -C none -a ${LOAD} -e ${ENTRY} -n 'Linux Buildroot' -d
> /home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/arch/arm/boot/zImage
> /home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/arch/arm/boot/uImage
> /bin/bash: -l: command not found
> /bin/bash: -l: command not found
> /bin/bash: -A: command not found
> make: *** [/home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/.stamp_built]
> Error 127
> 
> 
> I've applied your patches on top of the commit
> fd08153b9d677d654add6c580b9ccc5c27d672e2,
> 
> My defconfig is:
> BR2_arm=y
> BR2_arm926t=y
> BR2_TOOLCHAIN_EXTERNAL=y
> BR2_LINUX_KERNEL=y
> BR2_LINUX_KERNEL_CUSTOM_VERSION=y
> BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.5"
> BR2_LINUX_KERNEL_DEFCONFIG="at91_dt"
> BR2_LINUX_KERNEL_INTREE_DTS_NAME="usb_a9260"
> BR2_LINUX_KERNEL_APPENDED_UIMAGE=y

I have seen no such bugs during my testing, but can you try with the
attached patch?

I've only discovered this simplification of the code recently and didn't
take the time to submit a patch for it, I guess I have the opportunity
now :)

Thanks,
Maxime
Fabio Porcedda - July 30, 2012, 8:33 a.m.
On Fri, Jul 27, 2012 at 8:59 PM, Maxime Ripard
<maxime.ripard@free-electrons.com> wrote:
> Hi Fabio,
>
> Thanks for the reporting.
>
> Le 27/07/2012 18:06, Fabio Porcedda a écrit :
>> Hi Maxime,
>> thanks for the work, this feature it's very useful for me,
>> i tried your patches and i tried to build a kernel for arm, but it
>> failed to build it,
>> this is the tail of the output log:
>>
>> cat /home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/arch/arm/boot/zImage
>> /home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/arch/arm/boot/"usb_a9260".dtb
>>> /home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/arch/arm/boot/zImage_dtb
>> mv /home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/arch/arm/boot/zImage_dtb
>> /home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/arch/arm/boot/zImage
>> # We need to generate a new u-boot image that takes into
>> # account the extra-size added by the device tree at the end
>> # of the image. To do so, we first need to retrieve both load
>> # address and entry point for the kernel from the already
>> # generate uboot image before using mkimage -l.
>> LOAD=` -l /home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/arch/arm/boot/uImage
>> | sed -n 's/Load Address: \([0-9]*\)/\1/p'`; ENTRY=` -l
>> /home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/arch/arm/boot/uImage
>> | sed -n 's/Entry Point: \([0-9]*\)/\1/p'`;  -A arm -O linux -T kernel
>> -C none -a ${LOAD} -e ${ENTRY} -n 'Linux Buildroot' -d
>> /home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/arch/arm/boot/zImage
>> /home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/arch/arm/boot/uImage
>> /bin/bash: -l: command not found
>> /bin/bash: -l: command not found
>> /bin/bash: -A: command not found
>> make: *** [/home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/.stamp_built]
>> Error 127
>>
>>
>> I've applied your patches on top of the commit
>> fd08153b9d677d654add6c580b9ccc5c27d672e2,
>>
>> My defconfig is:
>> BR2_arm=y
>> BR2_arm926t=y
>> BR2_TOOLCHAIN_EXTERNAL=y
>> BR2_LINUX_KERNEL=y
>> BR2_LINUX_KERNEL_CUSTOM_VERSION=y
>> BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.5"
>> BR2_LINUX_KERNEL_DEFCONFIG="at91_dt"
>> BR2_LINUX_KERNEL_INTREE_DTS_NAME="usb_a9260"
>> BR2_LINUX_KERNEL_APPENDED_UIMAGE=y
>
> I have seen no such bugs during my testing, but can you try with the
> attached patch?

The problem it's on the patch "[PATCH 2/4] Add support for appended
device tree blobs for arm ",
please read my replay on the patch.

> I've only discovered this simplification of the code recently and didn't
> take the time to submit a patch for it, I guess I have the opportunity
> now :)

I tried your patch on top of the others, but the patch doesn't apply:

git apply < ~/Downloads/uimage-dtb.patch
<stdin>:20: trailing whitespace.
	cat $(KERNEL_ARCH_PATH)/boot/$(KERNEL_DTS_NAME).dtb >>
$(KERNEL_ARCH_PATH)/boot/zImage
<stdin>:21: trailing whitespace.
	# We need to generate the uImage here after that so that the uImage is
<stdin>:22: trailing whitespace.
	# generated with the right image size.
<stdin>:23: trailing whitespace.
	$(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) uImage
<stdin>:29: trailing whitespace.
	cat $(KERNEL_ARCH_PATH)/boot/$(KERNEL_DTS_NAME).dtb >>
$(KERNEL_ARCH_PATH)/boot/zImage
error: patch failed: linux/linux.mk:198
error: linux/linux.mk: patch does not apply

Regards
Maxime Ripard - July 30, 2012, 9:38 a.m.
Le 30/07/2012 10:33, Fabio Porcedda a écrit :
> On Fri, Jul 27, 2012 at 8:59 PM, Maxime Ripard
> <maxime.ripard@free-electrons.com> wrote:
>> Le 27/07/2012 18:06, Fabio Porcedda a écrit :
>>> thanks for the work, this feature it's very useful for me,
>>> i tried your patches and i tried to build a kernel for arm, but it
>>> failed to build it,
>>> this is the tail of the output log:
>>>
>>> cat /home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/arch/arm/boot/zImage
>>> /home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/arch/arm/boot/"usb_a9260".dtb
>>>> /home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/arch/arm/boot/zImage_dtb
>>> mv /home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/arch/arm/boot/zImage_dtb
>>> /home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/arch/arm/boot/zImage
>>> # We need to generate a new u-boot image that takes into
>>> # account the extra-size added by the device tree at the end
>>> # of the image. To do so, we first need to retrieve both load
>>> # address and entry point for the kernel from the already
>>> # generate uboot image before using mkimage -l.
>>> LOAD=` -l /home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/arch/arm/boot/uImage
>>> | sed -n 's/Load Address: \([0-9]*\)/\1/p'`; ENTRY=` -l
>>> /home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/arch/arm/boot/uImage
>>> | sed -n 's/Entry Point: \([0-9]*\)/\1/p'`;  -A arm -O linux -T kernel
>>> -C none -a ${LOAD} -e ${ENTRY} -n 'Linux Buildroot' -d
>>> /home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/arch/arm/boot/zImage
>>> /home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/arch/arm/boot/uImage
>>> /bin/bash: -l: command not found
>>> /bin/bash: -l: command not found
>>> /bin/bash: -A: command not found
>>> make: *** [/home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/.stamp_built]
>>> Error 127
>>>
>>>
>>> I've applied your patches on top of the commit
>>> fd08153b9d677d654add6c580b9ccc5c27d672e2,
>>>
>>> My defconfig is:
>>> BR2_arm=y
>>> BR2_arm926t=y
>>> BR2_TOOLCHAIN_EXTERNAL=y
>>> BR2_LINUX_KERNEL=y
>>> BR2_LINUX_KERNEL_CUSTOM_VERSION=y
>>> BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.5"
>>> BR2_LINUX_KERNEL_DEFCONFIG="at91_dt"
>>> BR2_LINUX_KERNEL_INTREE_DTS_NAME="usb_a9260"
>>> BR2_LINUX_KERNEL_APPENDED_UIMAGE=y
>>
>> I have seen no such bugs during my testing, but can you try with the
>> attached patch?
> 
> The problem it's on the patch "[PATCH 2/4] Add support for appended
> device tree blobs for arm ",
> please read my replay on the patch.
> 
>> I've only discovered this simplification of the code recently and didn't
>> take the time to submit a patch for it, I guess I have the opportunity
>> now :)
> 
> I tried your patch on top of the others, but the patch doesn't apply:
> 
> git apply < ~/Downloads/uimage-dtb.patch
> <stdin>:20: trailing whitespace.
> 	cat $(KERNEL_ARCH_PATH)/boot/$(KERNEL_DTS_NAME).dtb >>
> $(KERNEL_ARCH_PATH)/boot/zImage
> <stdin>:21: trailing whitespace.
> 	# We need to generate the uImage here after that so that the uImage is
> <stdin>:22: trailing whitespace.
> 	# generated with the right image size.
> <stdin>:23: trailing whitespace.
> 	$(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) uImage
> <stdin>:29: trailing whitespace.
> 	cat $(KERNEL_ARCH_PATH)/boot/$(KERNEL_DTS_NAME).dtb >>
> $(KERNEL_ARCH_PATH)/boot/zImage
> error: patch failed: linux/linux.mk:198
> error: linux/linux.mk: patch does not apply

Hmmm, that's weird, it applies fine here on top of these patches.
Let me send another version of these patches then.

Maxime
Fabio Porcedda - July 30, 2012, 10:09 a.m.
On Mon, Jul 30, 2012 at 11:38 AM, Maxime Ripard
<maxime.ripard@free-electrons.com> wrote:
> Le 30/07/2012 10:33, Fabio Porcedda a écrit :
>> On Fri, Jul 27, 2012 at 8:59 PM, Maxime Ripard
>> <maxime.ripard@free-electrons.com> wrote:
>>> Le 27/07/2012 18:06, Fabio Porcedda a écrit :
>>>> thanks for the work, this feature it's very useful for me,
>>>> i tried your patches and i tried to build a kernel for arm, but it
>>>> failed to build it,
>>>> this is the tail of the output log:
>>>>
>>>> cat /home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/arch/arm/boot/zImage
>>>> /home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/arch/arm/boot/"usb_a9260".dtb
>>>>> /home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/arch/arm/boot/zImage_dtb
>>>> mv /home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/arch/arm/boot/zImage_dtb
>>>> /home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/arch/arm/boot/zImage
>>>> # We need to generate a new u-boot image that takes into
>>>> # account the extra-size added by the device tree at the end
>>>> # of the image. To do so, we first need to retrieve both load
>>>> # address and entry point for the kernel from the already
>>>> # generate uboot image before using mkimage -l.
>>>> LOAD=` -l /home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/arch/arm/boot/uImage
>>>> | sed -n 's/Load Address: \([0-9]*\)/\1/p'`; ENTRY=` -l
>>>> /home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/arch/arm/boot/uImage
>>>> | sed -n 's/Entry Point: \([0-9]*\)/\1/p'`;  -A arm -O linux -T kernel
>>>> -C none -a ${LOAD} -e ${ENTRY} -n 'Linux Buildroot' -d
>>>> /home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/arch/arm/boot/zImage
>>>> /home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/arch/arm/boot/uImage
>>>> /bin/bash: -l: command not found
>>>> /bin/bash: -l: command not found
>>>> /bin/bash: -A: command not found
>>>> make: *** [/home/fabiopo/porting-pro3/ge863-pro3-linux-3.6/buildroot-dt/output/build/linux-3.5/.stamp_built]
>>>> Error 127
>>>>
>>>>
>>>> I've applied your patches on top of the commit
>>>> fd08153b9d677d654add6c580b9ccc5c27d672e2,
>>>>
>>>> My defconfig is:
>>>> BR2_arm=y
>>>> BR2_arm926t=y
>>>> BR2_TOOLCHAIN_EXTERNAL=y
>>>> BR2_LINUX_KERNEL=y
>>>> BR2_LINUX_KERNEL_CUSTOM_VERSION=y
>>>> BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.5"
>>>> BR2_LINUX_KERNEL_DEFCONFIG="at91_dt"
>>>> BR2_LINUX_KERNEL_INTREE_DTS_NAME="usb_a9260"
>>>> BR2_LINUX_KERNEL_APPENDED_UIMAGE=y
>>>
>>> I have seen no such bugs during my testing, but can you try with the
>>> attached patch?
>>
>> The problem it's on the patch "[PATCH 2/4] Add support for appended
>> device tree blobs for arm ",
>> please read my replay on the patch.
>>
>>> I've only discovered this simplification of the code recently and didn't
>>> take the time to submit a patch for it, I guess I have the opportunity
>>> now :)
>>
>> I tried your patch on top of the others, but the patch doesn't apply:
>>
>> git apply < ~/Downloads/uimage-dtb.patch
>> <stdin>:20: trailing whitespace.
>>       cat $(KERNEL_ARCH_PATH)/boot/$(KERNEL_DTS_NAME).dtb >>
>> $(KERNEL_ARCH_PATH)/boot/zImage
>> <stdin>:21: trailing whitespace.
>>       # We need to generate the uImage here after that so that the uImage is
>> <stdin>:22: trailing whitespace.
>>       # generated with the right image size.
>> <stdin>:23: trailing whitespace.
>>       $(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) uImage
>> <stdin>:29: trailing whitespace.
>>       cat $(KERNEL_ARCH_PATH)/boot/$(KERNEL_DTS_NAME).dtb >>
>> $(KERNEL_ARCH_PATH)/boot/zImage
>> error: patch failed: linux/linux.mk:198
>> error: linux/linux.mk: patch does not apply
>
> Hmmm, that's weird, it applies fine here on top of these patches.
> Let me send another version of these patches then.

I applied manually and now builds fine, thanks.

Patch

diff --git a/linux/linux.mk b/linux/linux.mk
index dd61a04..047fc4a 100644
--- a/linux/linux.mk
+++ b/linux/linux.mk
@@ -198,22 +198,14 @@  endif
 
 ifeq ($(BR2_LINUX_KERNEL_APPENDED_UIMAGE),y)
 define LINUX_APPEND_DTB
-	cat $(KERNEL_ARCH_PATH)/boot/zImage $(KERNEL_ARCH_PATH)/boot/$(KERNEL_DTS_NAME).dtb > $(KERNEL_ARCH_PATH)/boot/zImage_dtb
-	mv $(KERNEL_ARCH_PATH)/boot/zImage_dtb $(KERNEL_ARCH_PATH)/boot/zImage
-	# We need to generate a new u-boot image that takes into
-	# account the extra-size added by the device tree at the end
-	# of the image. To do so, we first need to retrieve both load
-	# address and entry point for the kernel from the already
-	# generate uboot image before using mkimage -l.
-	LOAD=`$(MKIMAGE) -l $(LINUX_IMAGE_PATH) | sed -n 's/Load Address: \([0-9]*\)/\1/p'`; \
-	ENTRY=`$(MKIMAGE) -l $(LINUX_IMAGE_PATH) | sed -n 's/Entry Point: \([0-9]*\)/\1/p'`; \
-	$(MKIMAGE) -A $(KERNEL_ARCH) -O linux -T kernel -C none -a $${LOAD} -e $${ENTRY} -n 'Linux Buildroot' \
-		-d $(KERNEL_ARCH_PATH)/boot/zImage $(KERNEL_ARCH_PATH)/boot/$(LINUX_IMAGE_NAME)
+	cat $(KERNEL_ARCH_PATH)/boot/$(KERNEL_DTS_NAME).dtb >> $(KERNEL_ARCH_PATH)/boot/zImage
+	# We need to generate the uImage here after that so that the uImage is
+	# generated with the right image size.
+	$(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) uImage 
 endef
 else ifeq ($(BR2_LINUX_KERNEL_APPENDED_ZIMAGE),y)
 define LINUX_APPEND_DTB
-	cat $(KERNEL_ARCH_PATH)/boot/zImage $(KERNEL_ARCH_PATH)/boot/$(KERNEL_DTS_NAME).dtb > $(KERNEL_ARCH_PATH)/boot/zImage_dtb
-	mv $(KERNEL_ARCH_PATH)/boot/zImage_dtb $(KERNEL_ARCH_PATH)/boot/zImage
+	cat $(KERNEL_ARCH_PATH)/boot/$(KERNEL_DTS_NAME).dtb >> $(KERNEL_ARCH_PATH)/boot/zImage
 endef
 endif