X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=common%2Fbootm.c;h=e517d9f118a8e2bd8c9623725a712a638d9b540d;hb=487b5fa6deb1f02843dbc9a9ac792bb38ef4d52a;hp=e789f6818aa30d043fea4526bef9806b535bf679;hpb=7f13b374fd8fa59f694a1127a79f9bfc3891ef0d;p=u-boot diff --git a/common/bootm.c b/common/bootm.c index e789f6818a..e517d9f118 100644 --- a/common/bootm.c +++ b/common/bootm.c @@ -202,8 +202,23 @@ static int bootm_find_os(cmd_tbl_t *cmdtp, int flag, int argc, } if (images.os.type == IH_TYPE_KERNEL_NOLOAD) { - images.os.load = images.os.image_start; - images.ep += images.os.load; + if (CONFIG_IS_ENABLED(CMD_BOOTI) && + images.os.arch == IH_ARCH_ARM64) { + ulong image_addr; + ulong image_size; + + ret = booti_setup(images.os.image_start, &image_addr, + &image_size, true); + if (ret != 0) + return 1; + + images.os.type = IH_TYPE_KERNEL; + images.os.load = image_addr; + images.ep = image_addr; + } else { + images.os.load = images.os.image_start; + images.ep += images.os.image_start; + } } images.os.start = map_to_sysmem(os_hdr);