uboot: fix boot fit image from mtd

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
Tianling Shen
2024-10-06 22:22:06 +08:00
committed by hanwckf
parent 985b24e379
commit 290e6a9ce0
2 changed files with 33 additions and 3 deletions

View File

@@ -144,7 +144,17 @@ int boot_from_mtd(struct mtd_info *mtd, u64 offset)
#endif
#if defined(CONFIG_FIT)
case IMAGE_FORMAT_FIT:
size = fit_get_size((const void *)data_load_addr);
size = fit_get_totalsize((const void *)data_load_addr);
if (size <= 0x2000) {
/* Load FDT header into memory */
ret = mtd_read_generic(mtd, offset, (void *)data_load_addr,
mtd->writesize);
if (ret)
return ret;
/* Read whole FIT image */
size = fit_get_totalsize((const void *)data_load_addr);
}
break;
#endif
default:
@@ -188,7 +198,17 @@ int boot_from_snor(struct spi_flash *snor, u32 offset)
#endif
#if defined(CONFIG_FIT)
case IMAGE_FORMAT_FIT:
size = fit_get_size((const void *)data_load_addr);
size = fit_get_totalsize((const void *)data_load_addr);
if (size <= 0x2000) {
/* Load FDT header into memory */
ret = mtd_read_generic(mtd, offset, (void *)data_load_addr,
mtd->writesize);
if (ret)
return ret;
/* Read whole FIT image */
size = fit_get_totalsize((const void *)data_load_addr);
}
break;
#endif
default:

View File

@@ -495,7 +495,17 @@ int boot_from_mtd(struct mtd_info *mtd, u64 offset)
#endif
#if defined(CONFIG_FIT)
case IMAGE_FORMAT_FIT:
size = fit_get_size((const void *)data_load_addr);
size = fit_get_totalsize((const void *)data_load_addr);
if (size <= 0x2000) {
/* Load FDT header into memory */
ret = mtd_read_skip_bad(mtd, offset, size, mtd->size,
NULL, (void *)data_load_addr);
if (ret)
return ret;
/* Read whole FIT image */
size = fit_get_totalsize((const void *)data_load_addr);
}
break;
#endif
default: