[U-Boot] Flat Image Tree and boot arguments

Jagan Teki jagannadh.teki at gmail.com
Wed Oct 29 16:14:25 CET 2014


On 29 October 2014 19:52, Weiß Christoph <Christoph.Weiss at ait.ac.at> wrote:
> Dear all,
>
> I am trying to get my own build of U-Boot to boot Linux on a Jetson TK1 board. As we are pushing for verified boot I am using the Flat Image Tree (unifying kernel image, device tree blob, ...) to describe my system. U-Boot can load the ITB file and tries to start the kernel but the system hangs after this message.
>
> I assume that this is because no boot arguments are passed to the kernel (the original startup adds loads of arguments) but I am a little dumbfounded on how to pass the arguments to the kernel. I tried setting the bootargs environment variable but this did not change the situation.
>
> How do I pass kernel arguments to the kernel when using an ITB file?

Usually bootargs is part of dts itself check it on chosen node.
No need to set it on u-boot if you use it from there.

>
> Command line arguments (taken from the APPEND command of the examples extlinux.conf):
>
>     console=ttyS0,115200n8 console=tty1 no_console_suspend=1
>     lp0_vec=2064 at 0xf46ff000 video=tegrafb mem=1862M at 2048M memtype=255 ddr_die=2048M at 2048M
>     section=256M pmuboard=0x0177:0x0000:0x02:0x43:0x00 vpr=151M at 3945M tsec=32M at 3913M
>     otf_key=c75e5bb91eb3bd947560357b64422f85 usbcore.old_scheme_first=1 core_edp_mv=1150
>     core_edp_ma=4000 tegraid=40.1.1.0.0 debug_uartport=lsport,3 power_supply=Adapter
>     audio_codec=rt5640 modem_id=0 android.kerneltype=normal usb_port_owner_info=0
>     fbcon=map:1 commchip_id=0 usb_port_owner_info=0 lane_owner_info=6 emc_max_dvfs=0
>     touch_id=0 at 0 tegra_fbmem=32899072 at 0xad012000 board_info=0x0177:0x0000:0x02:0x43:0x00
>     root=/dev/mmcblk0p1 rw rootwait tegraboot=sdmmc gpt
>
> Content of ITS file:
>
>     /dts-v1/;
>
>     / {
>                 description = "Simple image with single Linux kernel and FDT blob";
>                 #address-cells = <1>;
>
>                 images {
>                                kernel at 1 {
>                                                description = "Vanilla Linux kernel";
>                                                data = /incbin/("./zImage");
>                                                type = "kernel";
>                                                arch = "arm";
>                                                os = "linux";
>                                                compression = "none";
>                                                load = <0x81008000>;
>                                                entry = <0x81008000>;
>                                                hash at 1 {
>                                                                algo = "crc32";
>                                                };
>                                                hash at 2 {
>                                                                algo = "sha1";
>                                                };
>                                };
>                                fdt at 1 {
>                                                description = "Flattened Device Tree blob";
>                                                data = /incbin/("./tegra124-pm375.dtb");
>                                                type = "flat_dt";
>                                                arch = "arm";
>                                                compression = "none";
>                                                hash at 1 {
>                                                                algo = "crc32";
>                                                };
>                                                hash at 2 {
>                                                                algo = "sha1";
>                                                };
>                                };
>                 };
>
>                 configurations {
>                                default = "conf at 1";
>                                conf at 1 {
>                                                description = "Boot Linux kernel with FDT blob";
>                                                kernel = "kernel at 1";
>                                                fdt = "fdt at 1";
>                                };
>                 };
>     };
>
> U-Boot Output:
>
>     Tegra124 (Jetson TK1) # fatload mmc 1 0x90000000 /kernel_fdt.itb
>     reading /kernel_fdt.itb
>     5946200 bytes read in 497 ms (11.4 MiB/s)
>     Tegra124 (Jetson TK1) # bootm 0x90000000
>     ## Loading kernel from FIT Image at 90000000 ...
>        Using 'conf at 1' configuration
>        Verifying Hash Integrity ... OK
>        Trying 'kernel at 1' kernel subimage
>          Description:  Vanilla Linux kernel
>          Type:         Kernel Image
>          Compression:  uncompressed
>          Data Start:   0x900000ec
>          Data Size:    5910168 Bytes = 5.6 MiB
>          Architecture: ARM
>          OS:           Linux
>          Load Address: 0x00000000
>          Entry Point:  0x00000000

This looks odd - I guess host you created itb might have an issue.
Check itb on host itself once you create through mkimage tool

$ mkimage -l kernel_fdt.itb

>          Hash algo:    crc32
>          Hash value:   c5b4b377
>          Hash algo:    sha1
>          Hash value:   f001007efe83f563425bfe0659186a32395c946c
>        Verifying Hash Integrity ... crc32+ sha1+ OK
>     ## Loading fdt from FIT Image at 90000000 ...
>        Using 'conf at 1' configuration
>        Trying 'fdt at 1' fdt subimage
>          Description:  Flattened Device Tree blob
>          Type:         Flat Device Tree
>          Compression:  uncompressed
>          Data Start:   0x905a30ac
>          Data Size:    34678 Bytes = 33.9 KiB
>          Architecture: ARM
>          Hash algo:    crc32
>          Hash value:   e466b23e
>          Hash algo:    sha1
>          Hash value:   ec909ae16e62233d0ed1e1f4c909085abc9b5879
>        Verifying Hash Integrity ... crc32+ sha1+ OK
>        Booting using the fdt blob at 0x905a30ac
>        Loading Kernel Image ... OK
>        Using Device Tree in place at 905a30ac, end 905ae821
>
>     Starting kernel ...

thanks!
-- 
Jagan.


More information about the U-Boot mailing list