
On 29 October 2014 19:52, Weiß Christoph Christoph.Weiss@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@0xf46ff000 video=tegrafb mem=1862M@2048M memtype=255 ddr_die=2048M@2048M section=256M pmuboard=0x0177:0x0000:0x02:0x43:0x00 vpr=151M@3945M tsec=32M@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@0 tegra_fbmem=32899072@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@1 { description = "Vanilla Linux kernel"; data = /incbin/("./zImage"); type = "kernel"; arch = "arm"; os = "linux"; compression = "none"; load = <0x81008000>; entry = <0x81008000>; hash@1 { algo = "crc32"; }; hash@2 { algo = "sha1"; }; }; fdt@1 { description = "Flattened Device Tree blob"; data = /incbin/("./tegra124-pm375.dtb"); type = "flat_dt"; arch = "arm"; compression = "none"; hash@1 { algo = "crc32"; }; hash@2 { algo = "sha1"; }; }; }; configurations { default = "conf@1"; conf@1 { description = "Boot Linux kernel with FDT blob"; kernel = "kernel@1"; fdt = "fdt@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@1' configuration Verifying Hash Integrity ... OK Trying 'kernel@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@1' configuration Trying 'fdt@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!