]> git.sur5r.net Git - u-boot/blobdiff - common/image-sparse.c
spi: fsl_qspi: Fix issues on arm64
[u-boot] / common / image-sparse.c
index 2433192b20ef019198483e03f14866dc6340f2d3..2bf737b46c27b4d3c53bfb83468eecf6e0cd1d30 100644 (file)
@@ -276,7 +276,6 @@ int store_sparse_image(sparse_storage_t *storage, void *storage_priv,
        sparse_buffer_t *buffer;
        uint32_t start;
        uint32_t total_blocks = 0;
-       uint32_t skipped = 0;
        int i;
 
        debug("=== Storage ===\n");
@@ -331,9 +330,12 @@ int store_sparse_image(sparse_storage_t *storage, void *storage_priv,
                 * and go on parsing the rest of the chunks
                 */
                if (chunk_header->chunk_type == CHUNK_TYPE_DONT_CARE) {
-                       skipped += sparse_block_size_to_storage(chunk_header->chunk_sz,
-                                                               storage,
-                                                               sparse_header);
+                       blkcnt = sparse_block_size_to_storage(chunk_header->chunk_sz,
+                                                             storage,
+                                                             sparse_header);
+#ifdef CONFIG_FASTBOOT_FLASH_MMC_DEV
+                       total_blocks += blkcnt;
+#endif
                        continue;
                }
 
@@ -374,14 +376,14 @@ int store_sparse_image(sparse_storage_t *storage, void *storage_priv,
                sparse_put_data_buffer(buffer);
        }
 
-       debug("Wrote %d blocks, skipped %d, expected to write %d blocks\n",
-             total_blocks, skipped,
+       debug("Wrote %d blocks, expected to write %d blocks\n",
+             total_blocks,
              sparse_block_size_to_storage(sparse_header->total_blks,
                                           storage, sparse_header));
        printf("........ wrote %d blocks to '%s'\n", total_blocks,
               storage->name);
 
-       if ((total_blocks + skipped) !=
+       if (total_blocks !=
            sparse_block_size_to_storage(sparse_header->total_blks,
                                         storage, sparse_header)) {
                printf("sparse image write failure\n");