[U-Boot] Need help with verified u-boot on Tegra TX2

Rayees Shamsuddin Rayees.Shamsuddin at intusurg.com
Sun Oct 20 02:14:36 UTC 2019


Simon,

Thanks for all your great and pioneering effort on verified u-boot. I am benefiting a lot for your work. I am trying to implement verified u-boot on Tegra TX2.

Based on the wonderful documentation that you provided, I was able to successfully create a fit image and got the dtb and kernel to boot. But I ran into some issues when I incorporated ramdisk into the fit image. Initially, it would get stuck on "Starting kernel ...". Then I modified the environment as follows
setenv initrd_high 8effffff
setenv fdt_high 8effffff

Initially it was set to
fdt_high=ffffffffffffffff
initrd_high=ffffffffffffffff

I haven't quite understood why this change caused the kernel to load. Is it because initrd_high=ffffffffffffffff overwrites the relocatable u-boot code?

Anyway after this change, I got the kernel to boot, but with one caveat - the RAMDISK couldn't be loaded.

   Booting using the fdt blob at 0x920989cc
   Loading Kernel Image ... OK
   reserving fdt memory region: addr=80000000 size=10000
   Loading Ramdisk to 8eab1000, end 8efffaa2 ... OK
   Loading Device Tree to 000000008ea5a000, end 000000008eab0fd2 ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x100

However, I saw the message
[    5.403174] RAMDISK: Couldn't find valid RAM disk image starting at 0.

I would be grateful if you could provide me some guidance on what might be causing this issue or how to go about resolving this.

Thanks and Regards
Rayees Shamsuddin
Product Security Engineer
Intuitive Surgical

Tegra.its

/dts-v1/;
/ {
    description = "fitImage for Tegra TX2";
    #address-cells = <1>;
    images {
        kernel at 1 {
            description = "Linux kernel";
            data = /incbin/("Image");
            arch = "arm64";
            os = "linux";
            type = "kernel";
            compression = "none";
            load = <0x80280000>;
            entry = <0x80280000>;
            hash at 1 {
                algo = "sha256";
            };
        };
        fdt at 1 {
            description = "DTB for Tegra TX2";
            data = /incbin/("tegra186-quill-p3310-1000-c03-00-base.dtb");
            type = "flat_dt";
            arch = "arm64";
            compression = "none";
            hash at 1 {
                algo = "sha256";
            };
        };
        ramdisk at 1 {
            description = "Ramdisk Image for Tegra TX2";
            data = /incbin/("initrd");
            type = "ramdisk";
            arch = "arm64";
            os = "linux";
            compression = "gzip";
            load = <0x82a00000>;
            entry = <0x82a00000>;
            hash at 1 {
                 algo = "sha256";
            };
        };
    };
    configurations {
        default = "conf at 1";
        conf at 1 {
            description = "Boot Linux kernel, FDT blob and ramdisk";
            kernel = "kernel at 1";
            fdt = "fdt at 1";
            ramdisk = "ramdisk at 1";
            signature at 1 {
                algo = "sha256,rsa4096";
                key-name-hint = "tx2_key";
                sign-images = "fdt", "kernel", "ramdisk";
            };
        };
    };
};




More information about the U-Boot mailing list