[U-Boot] Flat Image Tree and boot arguments

Weiß Christoph Christoph.Weiss at ait.ac.at
Wed Oct 29 15:22:56 CET 2014


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?

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
         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 in advance,
Best regards


CHRISTOPH WEISS
Engineer
Safety & Security Department
Video and Security Technology

AIT Austrian Institute of Technology GmbH
Donau-City-Straße 1  |  1220 Vienna  | Austria
T +43 50550-4179 | M +43 664 883906749
christoph.weiss at ait.ac.at<mailto:christoph.weiss at ait.ac.at> | http://www.ait.ac.at<http://www.ait.ac.at/>

FN: 115980 i HG Wien  |  UID: ATU14703506
www.ait.ac.at/Email-Disclaimer<http://www.ait.ac.at/Email-Disclaimer>



More information about the U-Boot mailing list