[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