From 9df731a176aab8e03b984b681b1bea01ccff6644 Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Mon, 06 Nov 2023 07:23:06 +0000 Subject: [PATCH] rk3568 rt uboot init --- u-boot/common/image-sparse.c | 17 +++++++++-------- 1 files changed, 9 insertions(+), 8 deletions(-) diff --git a/u-boot/common/image-sparse.c b/u-boot/common/image-sparse.c index f1382bd..505428e 100644 --- a/u-boot/common/image-sparse.c +++ b/u-boot/common/image-sparse.c @@ -56,10 +56,10 @@ lbaint_t blk; lbaint_t blkcnt; lbaint_t blks; - uint32_t bytes_written = 0; + uint64_t bytes_written = 0; unsigned int chunk; unsigned int offset; - unsigned int chunk_data_sz; + uint64_t chunk_data_sz; uint32_t *fill_buf = NULL; uint32_t fill_val; sparse_header_t *sparse_header; @@ -130,8 +130,8 @@ sizeof(chunk_header_t)); } - chunk_data_sz = sparse_header->blk_sz * chunk_header->chunk_sz; - blkcnt = chunk_data_sz / info->blksz; + chunk_data_sz = ((u64)sparse_header->blk_sz) * chunk_header->chunk_sz; + blkcnt = DIV_ROUND_UP_ULL(chunk_data_sz, info->blksz); switch (chunk_header->chunk_type) { case CHUNK_TYPE_RAW: if (chunk_header->total_sz != @@ -161,7 +161,7 @@ return; } blk += blks; - bytes_written += blkcnt * info->blksz; + bytes_written += ((u64)blkcnt) * info->blksz; total_blocks += chunk_header->chunk_sz; data += chunk_data_sz; break; @@ -222,8 +222,9 @@ blk += blks; i += j; } - bytes_written += blkcnt * info->blksz; - total_blocks += chunk_data_sz / sparse_header->blk_sz; + bytes_written += ((u64)blkcnt) * info->blksz; + total_blocks += DIV_ROUND_UP_ULL(chunk_data_sz, + sparse_header->blk_sz); free(fill_buf); break; @@ -253,7 +254,7 @@ debug("Wrote %d blocks, expected to write %d blocks\n", total_blocks, sparse_header->total_blks); - printf("........ wrote %u bytes to '%s'\n", bytes_written, part_name); + printf("........ wrote %llu bytes to '%s'\n", bytes_written, part_name); if (total_blocks != sparse_header->total_blks) fastboot_fail("sparse image write failure", response); -- Gitblit v1.6.2