[U-Boot] Booting kernel/dtb with FIT image

2017-01-13 Thread Nicolas le bayon
Hi,

Here is a problem I presently meet, any help or track to follow would be
welcome.

My U-boot (2016.09) loads a kernel and a dtb, and "bootm" all this. This is
my reference, and this is correctly running.

>From this, I'm trying to implement FIT image management, so I enabled
CONFIG_FIT.

On the other side, I constructed the ITS FILE from my kernel and my dtb, as
described below:

*/dts-v1/;*
*/ {*
*description = "Simple image with single Linux kernel and FDT blob";*
*#address-cells = <0x1>;*
*images {*
*kernel@1 {*
*description = "My Linux kernel";*
*data = /incbin/("./uImage");*
*type = "kernel";*
*arch = "arm";*
*os = "linux";*
*compression = "none";*
*load = <0x40008000>;*
*entry = <0x40008000>;*
*hash@1 {*
*algo = "md5";*
*};*
*hash@2 {*
*algo = "sha1";*
*};*
*};*
*fdt@1 {*
*description = "My Flattened Device Tree blob";*
*data = /incbin/("./mydtb.dtb");*
*type = "flat_dt";*
*arch = "arm";*
*compression = "none";*
*hash@1 {*
*algo = "md5";*
*};*
*hash@2 {*
*algo = "sha1";*
*};*
*};*
*};*
*/* a notable concept of FIT, configurations */*
*configurations {*
*default = "conf@1";*
*conf@1 {*
*description = "Boot Linux kernel with FDT blob";*
*kernel = "kernel@1";*
*fdt = "fdt@1";*
*};*
*};*
*};*

I managed to construct the ITB (using the mkimage of my u-boot, in tools
directory) and to store it on my target.

I load this ITB at 0x6000 address of memory.

The "bootm 0x6000" gives the following error: "Ramdisk image is corrupt
or invalid". Indeed I have no ramdisk. Not what was described in tutorials.

The "bootm 0x6000 - " gives a better result:
*## Loading kernel from FIT Image at 6000 ...*
*   Using 'conf@1' configuration*
*   Trying 'kernel@1' kernel subimage*
* Description:  My Linux kernel*
* Type: Kernel Image*
* Compression:  uncompressed*
* Data Start:   0x60e4*
* Data Size:5568600 Bytes = 5.3 MiB (Note: same size as the
original file!)*
* Architecture: ARM*
* OS:   Linux*
* Load Address: 0x40008000*
* Entry Point:  0x40008000*
* Hash algo:md5*
* Hash value:   0cccb060e1c4f50e98d8f6c8ed61242e*
* Hash algo:sha1*
* Hash value:   f0442dd1b8c4f006b25533c3148df2742fc8a7ad*
*   Verifying Hash Integrity ... md5+ sha1+ OK*
*## Loading fdt from FIT Image at 6000 ...*
*   Using 'conf@1' configuration*
*   Trying 'fdt@1' fdt subimage*
* Description:  My Flattened Device Tree blob*
* Type: Flat Device Tree*
* Compression:  uncompressed*
* Data Start:   0x6054fa70*
* Data Size:55154 Bytes = 53.9 KiB **(Note: same size as the
original file!)*
* Architecture: ARM*
* Hash algo:md5*
* Hash value:   a201db29486c7c70b707e085d0196fda*
* Hash algo:sha1*
* Hash value:   adb751ba04c1aed120a329bb4812a9c8f0bb68a7*
*   Verifying Hash Integrity ... md5+ sha1+ OK*
*   Booting using the fdt blob at 0x6054fa70*
*   Loading Kernel Image ... OK*
*   Using Device Tree in place at 6054fa70, end 605601e1*

*Starting kernel ...*

And unfortunately nothing else after.

I have the feeling to be in the same conditions, but I do not have the same
result.

If you have any idea of what could be wrong, please let me know, it would
be welcomed.
Maybe some corrections have been pushed in this domain since v2016.09?
Thanks in advance.

Best Regards
Nicolas
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] Booting kernel/dtb with FIT image

2017-01-13 Thread Jagan Teki
On Fri, Jan 13, 2017 at 6:13 PM, Nicolas le bayon  wrote:
> Hi,
>
> Here is a problem I presently meet, any help or track to follow would be
> welcome.
>
> My U-boot (2016.09) loads a kernel and a dtb, and "bootm" all this. This is
> my reference, and this is correctly running.
>
> From this, I'm trying to implement FIT image management, so I enabled
> CONFIG_FIT.
>
> On the other side, I constructed the ITS FILE from my kernel and my dtb, as
> described below:
>
> */dts-v1/;*
> */ {*
> *description = "Simple image with single Linux kernel and FDT blob";*
> *#address-cells = <0x1>;*
> *images {*
> *kernel@1 {*
> *description = "My Linux kernel";*
> *data = /incbin/("./uImage");*

Usually kernel images can be considered to vmlinux.bin or
vmlinux.bin.gz (if compressed) in its

> *type = "kernel";*
> *arch = "arm";*
> *os = "linux";*
> *compression = "none";*
> *load = <0x40008000>;*
> *entry = <0x40008000>;*
> *hash@1 {*
> *algo = "md5";*
> *};*
> *hash@2 {*
> *algo = "sha1";*
> *};*
> *};*
> *fdt@1 {*
> *description = "My Flattened Device Tree blob";*
> *data = /incbin/("./mydtb.dtb");*
> *type = "flat_dt";*
> *arch = "arm";*
> *compression = "none";*
> *hash@1 {*
> *algo = "md5";*
> *};*
> *hash@2 {*
> *algo = "sha1";*
> *};*
> *};*
> *};*
> */* a notable concept of FIT, configurations */*
> *configurations {*
> *default = "conf@1";*
> *conf@1 {*
> *description = "Boot Linux kernel with FDT blob";*
> *kernel = "kernel@1";*
> *fdt = "fdt@1";*
> *};*
> *};*
> *};*
>
> I managed to construct the ITB (using the mkimage of my u-boot, in tools
> directory) and to store it on my target.
>
> I load this ITB at 0x6000 address of memory.
>
> The "bootm 0x6000" gives the following error: "Ramdisk image is corrupt
> or invalid". Indeed I have no ramdisk. Not what was described in tutorials.

Sorry I didn't see "Ramdisk image" correct on below log, shall I miss?

thanks!
-- 
Jagan Teki
Free Software Engineer | www.openedev.com
U-Boot, Linux | Upstream Maintainer
Hyderabad, India.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] Booting kernel/dtb with FIT image

2017-01-13 Thread André Przywara
On 13/01/17 17:13, Nicolas le bayon wrote:
> Hi,
> 
> Here is a problem I presently meet, any help or track to follow would be
> welcome.
> 
> My U-boot (2016.09) loads a kernel and a dtb, and "bootm" all this. This is
> my reference, and this is correctly running.
> 
> From this, I'm trying to implement FIT image management, so I enabled
> CONFIG_FIT.
> 
> On the other side, I constructed the ITS FILE from my kernel and my dtb, as
> described below:
> 
> */dts-v1/;*
> */ {*
> *description = "Simple image with single Linux kernel and FDT blob";*
> *#address-cells = <0x1>;*
> *images {*
> *kernel@1 {*
> *description = "My Linux kernel";*
> *data = /incbin/("./uImage");*

uImage is usually the name of a kernel wrapped into a _legacy U-Boot
image_. Now you are using the new FIT image, so I would use zImage as
the source here instead, otherwise you will have it double wrapped. I
guess U-Boot can't cope with that, also it would be a bit weird.
So copy arch/arm/boot/zImage and use that instead.

Cheers,
Andre.

> *type = "kernel";*
> *arch = "arm";*
> *os = "linux";*
> *compression = "none";*
> *load = <0x40008000>;*
> *entry = <0x40008000>;*
> *hash@1 {*
> *algo = "md5";*
> *};*
> *hash@2 {*
> *algo = "sha1";*
> *};*
> *};*
> *fdt@1 {*
> *description = "My Flattened Device Tree blob";*
> *data = /incbin/("./mydtb.dtb");*
> *type = "flat_dt";*
> *arch = "arm";*
> *compression = "none";*
> *hash@1 {*
> *algo = "md5";*
> *};*
> *hash@2 {*
> *algo = "sha1";*
> *};*
> *};*
> *};*
> */* a notable concept of FIT, configurations */*
> *configurations {*
> *default = "conf@1";*
> *conf@1 {*
> *description = "Boot Linux kernel with FDT blob";*
> *kernel = "kernel@1";*
> *fdt = "fdt@1";*
> *};*
> *};*
> *};*
> 
> I managed to construct the ITB (using the mkimage of my u-boot, in tools
> directory) and to store it on my target.
> 
> I load this ITB at 0x6000 address of memory.
> 
> The "bootm 0x6000" gives the following error: "Ramdisk image is corrupt
> or invalid". Indeed I have no ramdisk. Not what was described in tutorials.
> 
> The "bootm 0x6000 - " gives a better result:
> *## Loading kernel from FIT Image at 6000 ...*
> *   Using 'conf@1' configuration*
> *   Trying 'kernel@1' kernel subimage*
> * Description:  My Linux kernel*
> * Type: Kernel Image*
> * Compression:  uncompressed*
> * Data Start:   0x60e4*
> * Data Size:5568600 Bytes = 5.3 MiB (Note: same size as the
> original file!)*
> * Architecture: ARM*
> * OS:   Linux*
> * Load Address: 0x40008000*
> * Entry Point:  0x40008000*
> * Hash algo:md5*
> * Hash value:   0cccb060e1c4f50e98d8f6c8ed61242e*
> * Hash algo:sha1*
> * Hash value:   f0442dd1b8c4f006b25533c3148df2742fc8a7ad*
> *   Verifying Hash Integrity ... md5+ sha1+ OK*
> *## Loading fdt from FIT Image at 6000 ...*
> *   Using 'conf@1' configuration*
> *   Trying 'fdt@1' fdt subimage*
> * Description:  My Flattened Device Tree blob*
> * Type: Flat Device Tree*
> * Compression:  uncompressed*
> * Data Start:   0x6054fa70*
> * Data Size:55154 Bytes = 53.9 KiB **(Note: same size as the
> original file!)*
> * Architecture: ARM*
> * Hash algo:md5*
> * Hash value:   a201db29486c7c70b707e085d0196fda*
> * Hash algo:sha1*
> * Hash value:   adb751ba04c1aed120a329bb4812a9c8f0bb68a7*
> *   Verifying Hash Integrity ... md5+ sha1+ OK*
> *   Booting using the fdt blob at 0x6054fa70*
> *   Loading Kernel Image ... OK*
> *   Using Device Tree in place at 6054fa70, end 605601e1*
> 
> *Starting kernel ...*
> 
> And unfortunately nothing else after.
> 
> I have the feeling to be in the same conditions, but I do not have the same
> result.
> 
> If you have any idea of what could be wrong, please let me know, it would
> be welcomed.
> Maybe some corrections have been pushed in this domain since v2016.09?
> Thanks in advance.
> 
> Best Regards
> Nicolas
> ___
> U-Boot mailing list
> U-Boot@lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
> 

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] Booting kernel/dtb with FIT image

2017-01-16 Thread Nicolas le bayon
2017-01-13 23:39 GMT+01:00 André Przywara :

> On 13/01/17 17:13, Nicolas le bayon wrote:
> > Hi,
> >
> > Here is a problem I presently meet, any help or track to follow would be
> > welcome.
> >
> > My U-boot (2016.09) loads a kernel and a dtb, and "bootm" all this. This
> is
> > my reference, and this is correctly running.
> >
> > From this, I'm trying to implement FIT image management, so I enabled
> > CONFIG_FIT.
> >
> > On the other side, I constructed the ITS FILE from my kernel and my dtb,
> as
> > described below:
> >
> > */dts-v1/;*
> > */ {*
> > *description = "Simple image with single Linux kernel and FDT blob";*
> > *#address-cells = <0x1>;*
> > *images {*
> > *kernel@1 {*
> > *description = "My Linux kernel";*
> > *data = /incbin/("./uImage");*
>
> uImage is usually the name of a kernel wrapped into a _legacy U-Boot
> image_. Now you are using the new FIT image, so I would use zImage as
> the source here instead, otherwise you will have it double wrapped. I
> guess U-Boot can't cope with that, also it would be a bit weird.
> So copy arch/arm/boot/zImage and use that instead.
>
> Cheers,
> Andre.
>

You're right André, using zImage is the solution to bot correctly the
kernel, the header is weel-recognized by the system.
Many thanks for your help!
Best Regards
Nicolas

>
> > *type = "kernel";*
> > *arch = "arm";*
> > *os = "linux";*
> > *compression = "none";*
> > *load = <0x40008000>;*
> > *entry = <0x40008000>;*
> > *hash@1 {*
> > *algo = "md5";*
> > *};*
> > *hash@2 {*
> > *algo = "sha1";*
> > *};*
> > *};*
> > *fdt@1 {*
> > *description = "My Flattened Device Tree blob";*
> > *data = /incbin/("./mydtb.dtb");*
> > *type = "flat_dt";*
> > *arch = "arm";*
> > *compression = "none";*
> > *hash@1 {*
> > *algo = "md5";*
> > *};*
> > *hash@2 {*
> > *algo = "sha1";*
> > *};*
> > *};*
> > *};*
> > */* a notable concept of FIT, configurations */*
> > *configurations {*
> > *default = "conf@1";*
> > *conf@1 {*
> > *description = "Boot Linux kernel with FDT blob";*
> > *kernel = "kernel@1";*
> > *fdt = "fdt@1";*
> > *};*
> > *};*
> > *};*
> >
> > I managed to construct the ITB (using the mkimage of my u-boot, in tools
> > directory) and to store it on my target.
> >
> > I load this ITB at 0x6000 address of memory.
> >
> > The "bootm 0x6000" gives the following error: "Ramdisk image is
> corrupt
> > or invalid". Indeed I have no ramdisk. Not what was described in
> tutorials.
> >
> > The "bootm 0x6000 - " gives a better result:
> > *## Loading kernel from FIT Image at 6000 ...*
> > *   Using 'conf@1' configuration*
> > *   Trying 'kernel@1' kernel subimage*
> > * Description:  My Linux kernel*
> > * Type: Kernel Image*
> > * Compression:  uncompressed*
> > * Data Start:   0x60e4*
> > * Data Size:5568600 Bytes = 5.3 MiB (Note: same size as the
> > original file!)*
> > * Architecture: ARM*
> > * OS:   Linux*
> > * Load Address: 0x40008000*
> > * Entry Point:  0x40008000*
> > * Hash algo:md5*
> > * Hash value:   0cccb060e1c4f50e98d8f6c8ed61242e*
> > * Hash algo:sha1*
> > * Hash value:   f0442dd1b8c4f006b25533c3148df2742fc8a7ad*
> > *   Verifying Hash Integrity ... md5+ sha1+ OK*
> > *## Loading fdt from FIT Image at 6000 ...*
> > *   Using 'conf@1' configuration*
> > *   Trying 'fdt@1' fdt subimage*
> > * Description:  My Flattened Device Tree blob*
> > * Type: Flat Device Tree*
> > * Compression:  uncompressed*
> > * Data Start:   0x6054fa70*
> > * Data Size:55154 Bytes = 53.9 KiB **(Note: same size as the
> > original file!)*
> > * Architecture: ARM*
> > * Hash algo:md5*
> > * Hash value:   a201db29486c7c70b707e085d0196fda*
> > * Hash algo:sha1*
> > * Hash value:   adb751ba04c1aed120a329bb4812a9c8f0bb68a7*
> > *   Verifying Hash Integrity ... md5+ sha1+ OK*
> > *   Booting using the fdt blob at 0x6054fa70*
> > *   Loading Kernel Image ... OK*
> > *   Using Device Tree in place at 6054fa70, end 605601e1*
> >
> > *Starting kernel ...*
> >
> > And unfortunately nothing else after.
> >
> > I have the feeling to be in the same conditions, but I do not have the
> same
> > result.
> >
> > If you have any idea of what could be wrong, please let me know, it would
> > be welcomed.
> > Maybe some corrections have been pushed in this domain since v2016.09?
> > Thanks in advance.
> >
> > Best Regards
> > Nicolas
> > ___
> > U-Boot mailing list
> > U-Boot@lists.denx.de
> > http://lists.denx.