uboot-mtk-20250711: make use of fit_get_totalsize

func `itb_external_image_data_info` inside `parse_image_itb`
is broken, needs investigation. Disable for now.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
Tianling Shen
2025-08-13 03:19:41 +08:00
committed by hanwckf
parent 2d1ef29a25
commit b5bc2b2dfb
4 changed files with 12 additions and 11 deletions

View File

@@ -401,12 +401,12 @@ static int parse_image_itb(const void *fit, size_t size, u32 blocksize,
struct owrt_image_info *ii)
{
int ret, cfg_noffset;
u32 image_size;
size_t image_size;
image_size = itb_image_size(fit);
image_size = fit_get_totalsize(fit);
if (!image_size || image_size > size) {
if (image_size) {
printf("itb image size is invalid (%u >= %zu)\n",
printf("itb image size is invalid (%lu >= %zu)\n",
image_size, size);
}
@@ -512,8 +512,8 @@ int parse_image_ram(const void *data, size_t size, u32 blocksize,
#endif
#if defined(CONFIG_FIT)
case IMAGE_FORMAT_FIT:
if (!parse_image_itb(data, size, blocksize, ii))
return 0;
// if (!parse_image_itb(data, size, blocksize, ii))
// return 0;
ii->header_type = HEADER_FIT;
ii->kernel_size = fit_get_size(data);

View File

@@ -856,7 +856,7 @@ static int _boot_from_mmc(struct mmc *mmc, u64 offset, bool do_boot)
if (ret)
return ret;
itb_size = itb_image_size((const void *)data_load_addr);
itb_size = fit_get_totalsize((const void *)data_load_addr);
if (itb_size > size) {
ret = _mmc_read(mmc, offset + size,
(void *)(data_load_addr + size),
@@ -1428,7 +1428,7 @@ int mmc_upgrade_image_cust(u32 dev, const void *data, size_t size,
if (ret)
return ret;
if (ii.type == IMAGE_ITB)
if (ii.header_type == HEADER_FIT)
return mmc_upgrade_image_itb(dev, data, size, kernel_part);
if (IS_ENABLED(CONFIG_MTK_DUAL_BOOT_ITB_IMAGE) ||

View File

@@ -571,7 +571,7 @@ int boot_from_mtd(struct mtd_info *mtd, u64 offset, bool do_boot)
if (ret)
return ret;
itb_size = itb_image_size((const void *)data_load_addr);
itb_size = fit_get_totalsize((const void *)data_load_addr);
if (itb_size > size) {
ret = mtd_read_skip_bad(mtd, offset + size,
itb_size - size,
@@ -1610,7 +1610,7 @@ int mtd_upgrade_image(const void *data, size_t size)
#endif
return write_ubi2_tar_image(data, size, mtd);
}
if (!ret && ii.type == IMAGE_ITB)
if (ii.header_type == HEADER_FIT)
return write_ubi_itb_image(data, size, mtd);
}
}

View File

@@ -675,7 +675,8 @@ bool read_verify_rootfs(struct image_read_priv *rpriv, const void *fit,
bool read_verify_itb_image(struct image_read_priv *rpriv, void *ptr, u64 addr,
size_t max_size, size_t *actual_size)
{
ulong probe_size, fit_size, image_size;
ulong probe_size, fit_size;
size_t image_size;
int ret;
if (!rpriv || !ptr)
@@ -710,7 +711,7 @@ bool read_verify_itb_image(struct image_read_priv *rpriv, void *ptr, u64 addr,
return false;
}
image_size = itb_image_size(ptr);
image_size = fit_get_totalsize(ptr);
if (!image_size || (max_size && image_size > max_size)) {
if (image_size && max_size) {
printf("itb image size is invalid (%lu >= %zu)\n",