I've spotted a couple of problems in 74522c898b35 "efi_loader: Add distro boot script for removable media". These help explain something I found strange in the commit description of the recently sent patch "jetson-tk1: Set fdtfile environment variable"; "The 4.5.0 kernel cannot cope with U-Boot's internal device tree".

        "load_efi_dtb="                                                   \
                "load ${devtype} ${devnum}:${distro_bootpart} "           \
                        "${fdt_addr_r} ${prefix}${fdtfile}; "             \
                "fdt addr ${fdt_addr_r}\0"                                \
        \

The "fdt addr" command shouldn't be there. That affects the DT that U-Boot's internal commands operate on internally. That is entirely unrelated to the the DT that is passed to the Linux kernel. Instead, the EFI code should pass the DTB at ${kernel_addr_r} to the kernel, just like all other boot mechanisms do.

If by some chance U-Boot is configured by DTB and that DTB is fully suitable to pass to the Linux kernel, then the board-specific code can arrange for ${kernel_addr_r} to point at that same DTB, thus removing the need to load one. However, that's unlikely to happen too often at present; the most complete DTBs are housed in the Linux kernel source tree, and DTB ABI still isn't really a thing, so in practice one mostly wants to load a DTB that was built as part of the kernel being booted, and hence U-Boot's DTB isn't relevant.
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to