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

4  * SPDX-License-Identifier:	GPL-2.0+
12 #include <image-sparse.h>
43 #define BOOT_PARTITION_NAME "boot"
79 lbaint_t blks = 0; in fb_mmc_blk_write() local
82 cur_blkcnt = min((int)blkcnt-i, FASTBOOT_MAX_BLK_WRITE); in fb_mmc_blk_write()
86 buffer+(i*block_dev->blksz)); in fb_mmc_blk_write()
92 blks += blks_written; in fb_mmc_blk_write()
94 return blks; in fb_mmc_blk_write()
100 struct fb_mmc_sparse *sparse = info->priv; in fb_mmc_sparse_write()
101 struct blk_desc *dev_desc = sparse->dev_desc; in fb_mmc_sparse_write()
117 lbaint_t blks; in write_raw_image() local
120 blkcnt = ((download_bytes + (info->blksz - 1)) & ~(info->blksz - 1)); in write_raw_image()
121 blkcnt = lldiv(blkcnt, info->blksz); in write_raw_image()
123 if (blkcnt > info->size) { in write_raw_image()
131 blks = fb_mmc_blk_write(dev_desc, info->start, blkcnt, buffer); in write_raw_image()
132 if (blks != blkcnt) { in write_raw_image()
133 pr_err("failed writing to device %d\n", dev_desc->devnum); in write_raw_image()
138 printf("........ wrote " LBAFU " bytes to '%s'\n", blkcnt * info->blksz, in write_raw_image()
145 * Read Android boot image header from boot partition.
148 * @param[in] info Boot partition info
149 * @param[out] hdr Where to store read boot image header
151 * @return Boot image header sectors count or 0 on error
158 ulong sector_size; /* boot partition sector size */ in fb_mmc_get_boot_header()
159 lbaint_t hdr_sectors; /* boot image header sectors count */ in fb_mmc_get_boot_header()
162 /* Calculate boot image sectors count */ in fb_mmc_get_boot_header()
163 sector_size = info->blksz; in fb_mmc_get_boot_header()
166 pr_err("invalid number of boot sectors: 0"); in fb_mmc_get_boot_header()
167 fastboot_fail("invalid number of boot sectors: 0", response); in fb_mmc_get_boot_header()
171 /* Read the boot image header */ in fb_mmc_get_boot_header()
172 res = blk_dread(dev_desc, info->start, hdr_sectors, (void *)hdr); in fb_mmc_get_boot_header()
174 pr_err("cannot read header from boot partition"); in fb_mmc_get_boot_header()
175 fastboot_fail("cannot read header from boot partition", response); in fb_mmc_get_boot_header()
179 /* Check boot header magic string */ in fb_mmc_get_boot_header()
182 pr_err("bad boot image magic"); in fb_mmc_get_boot_header()
183 fastboot_fail("boot partition not initialized", response); in fb_mmc_get_boot_header()
191 * Write downloaded zImage to boot partition and repack it properly.
197 * @return 0 on success or -1 on error
204 uintptr_t hdr_addr; /* boot image header address */ in fb_mmc_update_zimage()
205 struct andr_img_hdr *hdr; /* boot image header */ in fb_mmc_update_zimage()
206 lbaint_t hdr_sectors; /* boot image header sectors */ in fb_mmc_update_zimage()
218 /* Get boot partition info */ in fb_mmc_update_zimage()
221 pr_err("cannot find boot partition"); in fb_mmc_update_zimage()
222 fastboot_fail("cannot find boot partition", response); in fb_mmc_update_zimage()
223 return -1; in fb_mmc_update_zimage()
226 /* Put boot image header in fastboot buffer after downloaded zImage */ in fb_mmc_update_zimage()
230 /* Read boot image header */ in fb_mmc_update_zimage()
233 pr_err("unable to read boot image header"); in fb_mmc_update_zimage()
234 fastboot_fail("unable to read boot image header", response); in fb_mmc_update_zimage()
235 return -1; in fb_mmc_update_zimage()
238 /* Check if boot image has second stage in it (we don't support it) */ in fb_mmc_update_zimage()
239 if (hdr->second_size > 0) { in fb_mmc_update_zimage()
242 return -1; in fb_mmc_update_zimage()
246 sectors_per_page = hdr->page_size / info.blksz; in fb_mmc_update_zimage()
248 ramdisk_sector_start += DIV_ROUND_UP(hdr->kernel_size, hdr->page_size) * in fb_mmc_update_zimage()
250 ramdisk_sectors = DIV_ROUND_UP(hdr->ramdisk_size, hdr->page_size) * in fb_mmc_update_zimage()
253 /* Read ramdisk and put it in fastboot buffer after boot image header */ in fb_mmc_update_zimage()
258 pr_err("cannot read ramdisk from boot partition"); in fb_mmc_update_zimage()
259 fastboot_fail("cannot read ramdisk from boot partition", response); in fb_mmc_update_zimage()
260 return -1; in fb_mmc_update_zimage()
263 /* Write new kernel size to boot image header */ in fb_mmc_update_zimage()
264 hdr->kernel_size = download_bytes; in fb_mmc_update_zimage()
267 pr_err("cannot writeback boot image header"); in fb_mmc_update_zimage()
268 fastboot_fail("cannot write back boot image header", response); in fb_mmc_update_zimage()
269 return -1; in fb_mmc_update_zimage()
274 kernel_sectors = DIV_ROUND_UP(hdr->kernel_size, hdr->page_size) * in fb_mmc_update_zimage()
281 return -1; in fb_mmc_update_zimage()
286 ramdisk_sector_start += DIV_ROUND_UP(hdr->kernel_size, hdr->page_size) * in fb_mmc_update_zimage()
293 return -1; in fb_mmc_update_zimage()
296 puts("........ zImage was updated in boot partition\n"); in fb_mmc_update_zimage()
320 if (!dev_desc || dev_desc->type == DEV_TYPE_UNKNOWN) { in fb_mmc_flash_write()
331 printf("%s: invalid GPT - refusing to write to flash\n", in fb_mmc_flash_write()
333 disksize = dev_desc->blksz * cpu_to_le64(dev_desc->lba); in fb_mmc_flash_write()
335 "%s - %s '%lld.%lld MiB')", in fb_mmc_flash_write()
359 printf("%s: invalid MBR - refusing to write to flash\n", in fb_mmc_flash_write()
426 lbaint_t blks, blks_start, blks_size, grp_size; in fb_mmc_erase() local
444 if (!dev_desc || dev_desc->type == DEV_TYPE_UNKNOWN) { in fb_mmc_erase()
458 grp_size = mmc->erase_grp_size; in fb_mmc_erase()
459 blks_start = (info.start + grp_size - 1) & ~(grp_size - 1); in fb_mmc_erase()
461 blks_size = (info.size - (blks_start - info.start)) & in fb_mmc_erase()
462 (~(grp_size - 1)); in fb_mmc_erase()
469 blks = fb_mmc_blk_write(dev_desc, blks_start, blks_size, NULL); in fb_mmc_erase()
470 if (blks != blks_size) { in fb_mmc_erase()
471 pr_err("failed erasing from device %d", dev_desc->devnum); in fb_mmc_erase()
489 return -1; in fb_mmc_get_erase_grp_size()
492 grp_size = mmc->erase_grp_size << 9; in fb_mmc_get_erase_grp_size()