Lines Matching +full:boot +full:- +full:blks

4  * SPDX-License-Identifier:     GPL-2.0+
10 #include <image-sparse.h>
11 #include <u-boot/sha256.h>
14 #define PER_BLK_WRITE_SIZE SZ_8M /* Avoid -ENOMEM, eg: bounce buffer */
22 printf(" magic: 0x%x\n", header->magic); in print_header_info()
23 printf(" major_version: 0x%x\n", header->major_version); in print_header_info()
24 printf(" minor_version: 0x%x\n", header->minor_version); in print_header_info()
25 printf(" file_hdr_sz: %d\n", header->file_hdr_sz); in print_header_info()
26 printf(" chunk_hdr_sz: %d\n", header->chunk_hdr_sz); in print_header_info()
27 printf(" blk_sz: %d\n", header->blk_sz); in print_header_info()
28 printf(" total_blks: %d\n", header->total_blks); in print_header_info()
29 printf(" total_chunks: %d\n", header->total_chunks); in print_header_info()
30 printf(" image_checksum: %d\n\n", header->image_checksum); in print_header_info()
40 if (chunk->chunk_type == CHUNK_TYPE_RAW) in print_chunk_info()
42 else if (chunk->chunk_type == CHUNK_TYPE_DONT_CARE) in print_chunk_info()
44 else if (chunk->chunk_type == CHUNK_TYPE_FILL) in print_chunk_info()
46 else if (chunk->chunk_type == CHUNK_TYPE_CRC32) in print_chunk_info()
53 printf(" chunk_sz: %d\n", chunk->chunk_sz); in print_chunk_info()
54 printf(" total_sz: %d\n", chunk->total_sz); in print_chunk_info()
55 printf(" offset: %ld\n", (ulong)ptr - (ulong)header); in print_chunk_info()
66 ulong blks; in flash_write_data() local
69 printf(" lba: 0x%08lx - 0x%08lx\n", lba, lba + blocks); in flash_write_data()
74 sha256_csum(data, blocks * desc->blksz, hash); in flash_write_data()
83 blks = left; in flash_write_data()
85 blks = step; in flash_write_data()
87 if (blks != blk_dwrite(desc, lba, blks, buf)) { in flash_write_data()
89 return -EIO; in flash_write_data()
91 buf += blks * desc->blksz; in flash_write_data()
92 lba += blks; in flash_write_data()
93 left -= step; in flash_write_data()
105 ulong blks; in flash_fill_data() local
111 return -ENOMEM; in flash_fill_data()
114 printf(" lba: 0x%08lx - 0x%08lx\n", lba, lba + blocks); in flash_fill_data()
120 blks = left; in flash_fill_data()
122 blks = step; in flash_fill_data()
124 if (blks != blk_dwrite(desc, lba, blks, buf)) { in flash_fill_data()
127 return -EIO; in flash_fill_data()
129 lba += blks; in flash_fill_data()
130 left -= step; in flash_fill_data()
151 return -EINVAL; in ext4_unsparse()
157 img_size = (u64)(header->total_blks * header->blk_sz); in ext4_unsparse()
159 /* erase area: ensure DONT-CARE is 0 and FILL(0x0) is 0 */ in ext4_unsparse()
162 return -EIO; in ext4_unsparse()
164 printf("Erase 0x%08lx - 0x%08lx blocks OK.\n\n", in ext4_unsparse()
168 buf += header->file_hdr_sz; in ext4_unsparse()
171 for (i = 0; i < header->total_chunks; i++) { in ext4_unsparse()
176 buf += header->chunk_hdr_sz; in ext4_unsparse()
178 switch (chunk->chunk_type) { in ext4_unsparse()
183 chunk_len = chunk->chunk_sz * header->blk_sz; in ext4_unsparse()
186 if (chunk->total_sz in ext4_unsparse()
187 != (chunk_len + header->chunk_hdr_sz)) { in ext4_unsparse()
189 return -EINVAL; in ext4_unsparse()
194 return -EIO; in ext4_unsparse()
202 if (chunk->total_sz != header->chunk_hdr_sz) { in ext4_unsparse()
204 return -EINVAL; in ext4_unsparse()
207 chunk_len = chunk->chunk_sz * header->blk_sz; in ext4_unsparse()
214 if (chunk->total_sz - header->chunk_hdr_sz != 4) { in ext4_unsparse()
216 return -EINVAL; in ext4_unsparse()
220 chunk_len = chunk->chunk_sz * header->blk_sz; in ext4_unsparse()
227 return -EIO; in ext4_unsparse()
235 return -ENOTSUPP; in ext4_unsparse()
237 printf("sparse: unknown chunk type %04x.\n", chunk->chunk_type); in ext4_unsparse()
238 return -ENOTSUPP; in ext4_unsparse()
242 printf("\nUnsparsed is %lld MiB and 0x%08lx - 0x%08lx blocks written OK.\n", in ext4_unsparse()