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

4  * SPDX-License-Identifier:	GPL-2.0+
19 #include <u-boot/sha1.h>
37 ((_num_bytes + _block_size - 1) / _block_size)
53 return -1; in android_version_init()
60 return -1; in android_version_init()
64 return -1; in android_version_init()
66 os_version = hdr->os_version; in android_version_init()
71 hdr->header_version); in android_version_init()
79 static int android_version = -1; /* static */ in android_bcb_msg_sector_offset()
87 * defines it at 0x00 offset, and from Android-10 it becoms mandary in android_bcb_msg_sector_offset()
116 return -ENODEV; in android_image_init_resource()
123 return -ENOENT; in android_image_init_resource()
127 return -EINVAL; in android_image_init_resource()
129 if (hdr->header_version >= 2 && hdr->dtb_size) in android_image_init_resource()
132 if (hdr->header_version <= 2) { in android_image_init_resource()
133 offset = hdr->page_size + in android_image_init_resource()
134 ALIGN(hdr->kernel_size, hdr->page_size) + in android_image_init_resource()
135 ALIGN(hdr->ramdisk_size, hdr->page_size); in android_image_init_resource()
137 *out_blk_offset = DIV_ROUND_UP(offset, desc->blksz); in android_image_init_resource()
139 ret = -EINVAL; in android_image_init_resource()
150 * All the Android tools that generate a boot.img use this in android_image_get_kernel_addr()
160 if (hdr->kernel_addr == ANDROID_IMAGE_DEFAULT_KERNEL_ADDR) in android_image_get_kernel_addr()
161 return (ulong)hdr + hdr->page_size; in android_image_get_kernel_addr()
170 return hdr->kernel_addr; in android_image_get_kernel_addr()
177 return (ulong)hdr + hdr->page_size; in android_image_get_kernel_addr()
179 return hdr->kernel_addr; in android_image_get_kernel_addr()
201 * android_image_get_kernel() - processes kernel part of Android boot images
219 const char *cmdline = hdr->header_version < 3 ? in android_image_get_kernel()
220 hdr->cmdline : hdr->total_cmdline; in android_image_get_kernel()
226 strncpy(andr_tmp_str, hdr->name, ANDR_BOOT_NAME_SIZE); in android_image_get_kernel()
231 printf("Kernel: 0x%08x - 0x%08x (%u KiB)\n", in android_image_get_kernel()
232 kernel_addr, kernel_addr + hdr->kernel_size, in android_image_get_kernel()
233 DIV_ROUND_UP(hdr->kernel_size, 1024)); in android_image_get_kernel()
248 return -ENOMEM; in android_image_get_kernel()
263 *os_data += hdr->page_size; in android_image_get_kernel()
266 *os_len = hdr->kernel_size; in android_image_get_kernel()
272 return memcmp(ANDR_BOOT_MAGIC, hdr->magic, ANDR_BOOT_MAGIC_SIZE); in android_image_check_header()
283 if (hdr->header_version < 3) { in android_image_get_end()
284 end += hdr->page_size; in android_image_get_end()
285 end += ALIGN(hdr->kernel_size, hdr->page_size); in android_image_get_end()
286 end += ALIGN(hdr->ramdisk_size, hdr->page_size); in android_image_get_end()
287 end += ALIGN(hdr->second_size, hdr->page_size); in android_image_get_end()
288 if (hdr->header_version == 1) { in android_image_get_end()
289 end += ALIGN(hdr->recovery_dtbo_size, hdr->page_size); in android_image_get_end()
290 } else if (hdr->header_version == 2) { in android_image_get_end()
291 end += ALIGN(hdr->recovery_dtbo_size, hdr->page_size); in android_image_get_end()
292 end += ALIGN(hdr->dtb_size, hdr->page_size); in android_image_get_end()
296 end += hdr->page_size; in android_image_get_end()
297 end += ALIGN(hdr->kernel_size, hdr->page_size); in android_image_get_end()
298 end += ALIGN(hdr->ramdisk_size, hdr->page_size); in android_image_get_end()
306 return hdr->kernel_size; in android_image_get_ksize()
311 hdr->kernel_addr = load_address; in android_image_set_kload()
325 if (!hdr->ramdisk_size) { in android_image_get_ramdisk()
327 return -1; in android_image_get_ramdisk()
334 return -1; in android_image_get_ramdisk()
338 *rd_len = hdr->ramdisk_size; in android_image_get_ramdisk()
339 if (hdr->header_version >= 3) in android_image_get_ramdisk()
340 *rd_len += hdr->vendor_ramdisk_size; in android_image_get_ramdisk()
341 if (hdr->header_version >= 4) { in android_image_get_ramdisk()
342 *rd_len += hdr->vendor_bootconfig_size + in android_image_get_ramdisk()
348 if (hdr->header_version >= 3) { in android_image_get_ramdisk()
349 end = start + (ulong)hdr->vendor_ramdisk_size; in android_image_get_ramdisk()
350 printf("v-ramdisk: 0x%08lx - 0x%08lx (%u KiB)\n", in android_image_get_ramdisk()
351 start, end, DIV_ROUND_UP(hdr->vendor_ramdisk_size, 1024)); in android_image_get_ramdisk()
355 end = start + (ulong)hdr->ramdisk_size; in android_image_get_ramdisk()
356 printf("ramdisk: 0x%08lx - 0x%08lx (%u KiB)\n", in android_image_get_ramdisk()
357 start, end, DIV_ROUND_UP(hdr->ramdisk_size, 1024)); in android_image_get_ramdisk()
360 if (hdr->header_version >= 4) { in android_image_get_ramdisk()
361 end = start + (ulong)hdr->vendor_bootconfig_size; in android_image_get_ramdisk()
362 printf("bootconfig: 0x%08lx - 0x%08lx (%u KiB)\n", in android_image_get_ramdisk()
363 start, end, DIV_ROUND_UP(hdr->vendor_bootconfig_size, 1024)); in android_image_get_ramdisk()
366 printf("bootparams: 0x%08lx - 0x%08lx\n", start, end); in android_image_get_ramdisk()
377 if (!hdr->second_size) { in android_image_get_fdt()
379 return -1; in android_image_get_fdt()
386 return -1; in android_image_get_fdt()
392 hdr->second_addr, DIV_ROUND_UP(hdr->second_size, 1024)); in android_image_get_fdt()
411 IMG_RAMDISK, /* within boot.img or init_boot.img(Android-13 or later) */
433 u32 andr_version = (hdr->os_version >> 25) & 0x7f; in image_load()
434 ulong pgsz = hdr->page_size; in image_load()
435 ulong blksz = desc->blksz; in image_load()
448 length = hdr->kernel_size + pgsz; in image_load()
450 blkcnt = DIV_ROUND_UP(hdr->kernel_size + pgsz, blksz); in image_load()
451 typesz = sizeof(hdr->kernel_size); in image_load()
454 return -ENOMEM; in image_load()
457 if (hdr->vendor_boot_buf) { in image_load()
458 ram_base = hdr->vendor_boot_buf; in image_load()
463 printf("No vendor boot partition\n"); in image_load()
464 return -ENOENT; in image_load()
470 pgsz = hdr->vendor_page_size; in image_load()
472 length = hdr->vendor_ramdisk_size; in image_load()
474 blkcnt = DIV_ROUND_UP(hdr->vendor_ramdisk_size, blksz); in image_load()
475 typesz = sizeof(hdr->vendor_ramdisk_size); in image_load()
484 if (hdr->header_version >= 3) in image_load()
485 extra += ALIGN(hdr->ramdisk_size, blksz) + blksz; in image_load()
486 if (hdr->header_version >= 4) in image_load()
487 extra += ALIGN(hdr->vendor_bootconfig_size, blksz) + in image_load()
491 return -ENOMEM; in image_load()
495 if (hdr->header_version >= 4 && andr_version >= 13) { in image_load()
496 if (hdr->init_boot_buf) { in image_load()
497 ram_base = hdr->init_boot_buf; in image_load()
501 printf("No init boot partition\n"); in image_load()
502 return -ENOENT; in image_load()
509 /* get ramdisk from generic boot.img */ in image_load()
510 bsoffs = pgsz + ALIGN(hdr->kernel_size, pgsz); in image_load()
513 length = hdr->ramdisk_size; in image_load()
515 blkcnt = DIV_ROUND_UP(hdr->ramdisk_size, blksz); in image_load()
516 typesz = sizeof(hdr->ramdisk_size); in image_load()
520 * |----------------| in image_load()
522 * |----------------| in image_load()
524 * ramdisk_addr_r v3 (Android-11 and later): in image_load()
525 * |----------------|---------| in image_load()
526 * | vendor-ramdisk | ramdisk | in image_load()
527 * |----------------|---------| in image_load()
529 * ramdisk_addr_r v4 (Android-12 and later): in image_load()
530 * |----------------|---------|------------|------------| in image_load()
531 * | vendor-ramdisk | ramdisk | bootconfig | bootparams | in image_load()
532 * |----------------|---------|------------|------------| in image_load()
534 * ramdisk_addr_r v4 + init_boot(Android-13 and later): in image_load()
535 * |----------------|----------------|------------|------------| in image_load()
536 * | vendor-ramdisk | (init_)ramdisk | bootconfig | bootparams | in image_load()
537 * |----------------|----------------|------------|------------| in image_load()
539 if (hdr->header_version >= 3) { in image_load()
540 buffer += hdr->vendor_ramdisk_size; in image_load()
547 if (hdr->header_version < 3) { in image_load()
550 return -ENOMEM; in image_load()
554 if (hdr->header_version < 4) in image_load()
557 if (hdr->vendor_boot_buf) { in image_load()
558 ram_base = hdr->vendor_boot_buf; in image_load()
563 printf("No vendor boot partition\n"); in image_load()
564 return -ENOENT; in image_load()
569 pgsz = hdr->vendor_page_size; in image_load()
571 ALIGN(hdr->vendor_ramdisk_size, pgsz) + in image_load()
572 ALIGN(hdr->dtb_size, pgsz) + in image_load()
573 ALIGN(hdr->vendor_ramdisk_table_size, pgsz); in image_load()
574 length = hdr->vendor_bootconfig_size; in image_load()
576 blkcnt = DIV_ROUND_UP(hdr->vendor_bootconfig_size, blksz); in image_load()
577 typesz = sizeof(hdr->vendor_bootconfig_size); in image_load()
579 buffer += hdr->vendor_ramdisk_size + hdr->ramdisk_size; in image_load()
587 ALIGN(hdr->kernel_size, pgsz) + in image_load()
588 ALIGN(hdr->ramdisk_size, pgsz); in image_load()
589 length = hdr->second_size; in image_load()
590 blkcnt = DIV_ROUND_UP(hdr->second_size, blksz); in image_load()
592 typesz = sizeof(hdr->second_size); in image_load()
596 ALIGN(hdr->kernel_size, pgsz) + in image_load()
597 ALIGN(hdr->ramdisk_size, pgsz) + in image_load()
598 ALIGN(hdr->second_size, pgsz); in image_load()
599 length = hdr->recovery_dtbo_size; in image_load()
600 blkcnt = DIV_ROUND_UP(hdr->recovery_dtbo_size, blksz); in image_load()
602 typesz = sizeof(hdr->recovery_dtbo_size); in image_load()
606 ALIGN(hdr->kernel_size, pgsz) + in image_load()
607 ALIGN(hdr->ramdisk_size, pgsz) + in image_load()
608 ALIGN(hdr->second_size, pgsz) + in image_load()
609 ALIGN(hdr->recovery_dtbo_size, pgsz); in image_load()
610 length = hdr->dtb_size; in image_load()
611 blkcnt = DIV_ROUND_UP(hdr->dtb_size, blksz); in image_load()
613 typesz = sizeof(hdr->dtb_size); in image_load()
617 /* No going further, it handles DTBO, HW-ID, etc */ in image_load()
619 if (gd->fdt_blob != (void *)buffer) in image_load()
624 return -EINVAL; in image_load()
629 return -ENOMEM; in image_load()
643 return -EIO; in image_load()
653 length -= pgsz; in image_load()
657 if (hdr->header_version < 3) { in image_load()
682 return -1; in images_load_verify()
684 return -1; in images_load_verify()
686 return -1; in images_load_verify()
687 if (hdr->header_version > 0) { in images_load_verify()
690 return -1; in images_load_verify()
692 if (hdr->header_version > 1) { in images_load_verify()
694 return -1; in images_load_verify()
713 return -EINVAL; in android_image_separate()
718 bstart = part ? part->start : 0; in android_image_separate()
725 /* load rk-kernel.dtb alone */ in android_image_separate()
727 return -1; in android_image_separate()
735 if (hdr->header_version < 3 && verify) { in android_image_separate()
746 return -ENODEV; in android_image_separate()
750 ctx.length += hdr->kernel_size + sizeof(hdr->kernel_size) + in android_image_separate()
751 hdr->ramdisk_size + sizeof(hdr->ramdisk_size) + in android_image_separate()
752 hdr->second_size + sizeof(hdr->second_size); in android_image_separate()
753 if (hdr->header_version > 0) in android_image_separate()
754 ctx.length += hdr->recovery_dtbo_size + in android_image_separate()
755 sizeof(hdr->recovery_dtbo_size); in android_image_separate()
756 if (hdr->header_version > 1) in android_image_separate()
757 ctx.length += hdr->dtb_size + sizeof(hdr->dtb_size); in android_image_separate()
771 if (memcmp(hash, hdr->id, 20)) { in android_image_separate()
772 print_hash("Hash from header", (u8 *)hdr->id, 20); in android_image_separate()
774 return -EBADFD; in android_image_separate()
786 /* 2. Disable fdt/ramdisk relocation, it saves boot time */ in android_image_separate()
787 env_set("bootm-no-reloc", "y"); in android_image_separate()
800 return -EINVAL; in android_image_separate_v34()
805 bstart = part ? part->start : 0; in android_image_separate_v34()
812 return -1; in android_image_separate_v34()
814 return -1; in android_image_separate_v34()
816 return -1; in android_image_separate_v34()
818 return -1; in android_image_separate_v34()
820 return -1; in android_image_separate_v34()
827 memcpy((char *)load_address, hdr, hdr->page_size); in android_image_separate_v34()
829 /* 2. Disable fdt/ramdisk relocation, it saves boot time */ in android_image_separate_v34()
830 env_set("bootm-no-reloc", "y"); in android_image_separate_v34()
844 * On 64-bit kernel, assuming use IMAGE by default. in android_image_get_comp_addr()
846 * kernel_addr_c is for LZ4-IMAGE but maybe not defined. in android_image_get_comp_addr()
860 load_addr = comp_addr - hdr->page_size; in android_image_get_comp_addr()
864 * On 32-bit kernel: in android_image_get_comp_addr()
869 * - kernel_addr_r is for lz4/zImage if kernel_addr_c if [not] defined. in android_image_get_comp_addr()
870 * - kernel_addr_r is for IMAGE if kernel_addr_c is defined. in android_image_get_comp_addr()
880 load_addr -= hdr->page_size; in android_image_get_comp_addr()
885 load_addr = kernel_addr_c - hdr->page_size; in android_image_get_comp_addr()
915 if (hdr->header_version < 3) in android_image_load_separate()
926 comp = bootm_parse_comp((void *)(ulong)hdr + hdr->page_size); in android_image_memcpy_separate()
929 /* non-compressed image: already in-place */ in android_image_memcpy_separate()
936 if ((ulong)hdr == comp_addr) /* already in-place */ in android_image_memcpy_separate()
944 * separate(memcpy) subimages from boot.img to where they should be. in android_image_memcpy_separate()
946 if (hdr->header_version < 3) { in android_image_memcpy_separate()
948 return -1; in android_image_memcpy_separate()
951 return -1; in android_image_memcpy_separate()
968 if (max_size < part_info->blksz) in android_image_load()
969 return -1; in android_image_load()
974 return -1; in android_image_load()
980 * |<- page_size ->|1-blk | in android_image_load()
981 * |-----|---------|------|-----| in android_image_load()
983 * |-----|----- ---|------------| in android_image_load()
991 blk_off = BLK_CNT(hdr->page_size, dev_desc->blksz); in android_image_load()
993 realloc(hdr, (blk_off + 1) * dev_desc->blksz); in android_image_load()
995 return -1; in android_image_load()
997 if (blk_dread(dev_desc, part_info->start + blk_off, 1, in android_image_load()
998 (char *)hdr + hdr->page_size) != 1) { in android_image_load()
1000 return -1; in android_image_load()
1004 comp = bootm_parse_comp((void *)(ulong)hdr + hdr->page_size); in android_image_load()
1009 load_address -= hdr->page_size; in android_image_load()
1025 return -1; in android_image_load()
1035 blk_cnt = BLK_CNT(sizeof(struct andr_img_hdr), dev_desc->blksz); in extract_boot_image_v012_header()
1036 hdr = (struct andr_img_hdr *)malloc(blk_cnt * dev_desc->blksz); in extract_boot_image_v012_header()
1041 blks_read = blk_dread(dev_desc, boot_img->start, blk_cnt, hdr); in extract_boot_image_v012_header()
1043 debug("boot img header blk cnt is %ld and blks read is %ld\n", in extract_boot_image_v012_header()
1049 printf("boot header magic is invalid.\n"); in extract_boot_image_v012_header()
1053 if (hdr->page_size < sizeof(*hdr)) { in extract_boot_image_v012_header()
1069 blk_cnt = BLK_CNT(sizeof(struct boot_img_hdr_v34), dev_desc->blksz); in extract_boot_image_v34_header()
1070 boot_hdr = (struct boot_img_hdr_v34 *)malloc(blk_cnt * dev_desc->blksz); in extract_boot_image_v34_header()
1075 blks_read = blk_dread(dev_desc, boot_img->start, blk_cnt, boot_hdr); in extract_boot_image_v34_header()
1077 debug("boot img header blk cnt is %ld and blks read is %ld\n", in extract_boot_image_v34_header()
1083 printf("boot header magic is invalid.\n"); in extract_boot_image_v34_header()
1087 if (boot_hdr->header_version < 3) { in extract_boot_image_v34_header()
1088 printf("boot header %d, is not >= v3.\n", in extract_boot_image_v34_header()
1089 boot_hdr->header_version); in extract_boot_image_v34_header()
1093 /* Start from android-13 GKI, it doesn't assign 'os_version' */ in extract_boot_image_v34_header()
1094 if (boot_hdr->header_version >= 4 && boot_hdr->os_version == 0) { in extract_boot_image_v34_header()
1097 boot_hdr->os_version = 13 << 25; in extract_boot_image_v34_header()
1111 part_vendor_boot->blksz); in extract_vendor_boot_image_v34_header()
1113 malloc(blk_cnt * part_vendor_boot->blksz); in extract_vendor_boot_image_v34_header()
1118 blks_read = blk_dread(dev_desc, part_vendor_boot->start, in extract_vendor_boot_image_v34_header()
1121 debug("vboot img header blk cnt is %ld and blks read is %ld\n", in extract_vendor_boot_image_v34_header()
1126 if (strncmp(VENDOR_BOOT_MAGIC, (void *)vboot_hdr->magic, in extract_vendor_boot_image_v34_header()
1128 printf("vendor boot header is invalid.\n"); in extract_vendor_boot_image_v34_header()
1132 if (vboot_hdr->header_version < 3) { in extract_vendor_boot_image_v34_header()
1133 printf("vendor boot header %d, is not >= v3.\n", in extract_vendor_boot_image_v34_header()
1134 vboot_hdr->header_version); in extract_vendor_boot_image_v34_header()
1146 memset(hdr->magic, 0, ANDR_BOOT_MAGIC_SIZE); in populate_boot_info()
1147 memcpy(hdr->magic, boot_hdr->magic, ANDR_BOOT_MAGIC_SIZE); in populate_boot_info()
1149 hdr->kernel_size = boot_hdr->kernel_size; in populate_boot_info()
1150 /* don't use vendor_boot_hdr->kernel_addr, we prefer "hdr + hdr->page_size" */ in populate_boot_info()
1151 hdr->kernel_addr = ANDROID_IMAGE_DEFAULT_KERNEL_ADDR; in populate_boot_info()
1155 * It can be from init_boot.img or boot.img. in populate_boot_info()
1158 hdr->ramdisk_size = init_boot_hdr->ramdisk_size; in populate_boot_info()
1160 hdr->ramdisk_size = boot_hdr->ramdisk_size; in populate_boot_info()
1163 hdr->ramdisk_addr = env_get_ulong("ramdisk_addr_r", 16, 0); in populate_boot_info()
1166 hdr->second_size = 0; in populate_boot_info()
1167 hdr->second_addr = 0; in populate_boot_info()
1169 hdr->tags_addr = vendor_boot_hdr->tags_addr; in populate_boot_info()
1172 hdr->page_size = 4096; in populate_boot_info()
1173 hdr->header_version = boot_hdr->header_version; in populate_boot_info()
1174 hdr->os_version = boot_hdr->os_version; in populate_boot_info()
1176 memset(hdr->name, 0, ANDR_BOOT_NAME_SIZE); in populate_boot_info()
1177 strncpy(hdr->name, (const char *)vendor_boot_hdr->name, ANDR_BOOT_NAME_SIZE); in populate_boot_info()
1180 memset(hdr->cmdline, 0, ANDR_BOOT_ARGS_SIZE); in populate_boot_info()
1181 memset(hdr->id, 0, 32); in populate_boot_info()
1182 memset(hdr->extra_cmdline, 0, ANDR_BOOT_EXTRA_ARGS_SIZE); in populate_boot_info()
1183 hdr->recovery_dtbo_size = 0; in populate_boot_info()
1184 hdr->recovery_dtbo_offset = 0; in populate_boot_info()
1186 hdr->header_size = boot_hdr->header_size; in populate_boot_info()
1187 hdr->dtb_size = vendor_boot_hdr->dtb_size; in populate_boot_info()
1188 hdr->dtb_addr = vendor_boot_hdr->dtb_addr; in populate_boot_info()
1191 hdr->vendor_ramdisk_size = vendor_boot_hdr->vendor_ramdisk_size; in populate_boot_info()
1192 hdr->vendor_page_size = vendor_boot_hdr->page_size; in populate_boot_info()
1193 hdr->vendor_header_version = vendor_boot_hdr->header_version; in populate_boot_info()
1194 hdr->vendor_header_size = vendor_boot_hdr->header_size; in populate_boot_info()
1196 hdr->total_cmdline = calloc(1, TOTAL_BOOT_ARGS_SIZE); in populate_boot_info()
1197 if (!hdr->total_cmdline) in populate_boot_info()
1198 return -ENOMEM; in populate_boot_info()
1199 strncpy(hdr->total_cmdline, (const char *)boot_hdr->cmdline, in populate_boot_info()
1200 sizeof(boot_hdr->cmdline)); in populate_boot_info()
1201 strncat(hdr->total_cmdline, " ", 1); in populate_boot_info()
1202 strncat(hdr->total_cmdline, (const char *)vendor_boot_hdr->cmdline, in populate_boot_info()
1203 sizeof(vendor_boot_hdr->cmdline)); in populate_boot_info()
1206 if (vendor_boot_hdr->header_version >= 4) { in populate_boot_info()
1207 hdr->vendor_ramdisk_table_size = in populate_boot_info()
1208 vendor_boot_hdr->vendor_ramdisk_table_size; in populate_boot_info()
1209 hdr->vendor_ramdisk_table_entry_num = in populate_boot_info()
1210 vendor_boot_hdr->vendor_ramdisk_table_entry_num; in populate_boot_info()
1211 hdr->vendor_ramdisk_table_entry_size = in populate_boot_info()
1212 vendor_boot_hdr->vendor_ramdisk_table_entry_size; in populate_boot_info()
1218 hdr->vendor_bootconfig_size = in populate_boot_info()
1219 vendor_boot_hdr->vendor_bootconfig_size; in populate_boot_info()
1221 hdr->vendor_ramdisk_table_size = 0; in populate_boot_info()
1222 hdr->vendor_ramdisk_table_entry_num = 0; in populate_boot_info()
1223 hdr->vendor_ramdisk_table_entry_size = 0; in populate_boot_info()
1224 hdr->vendor_bootconfig_size = 0; in populate_boot_info()
1227 hdr->init_boot_buf = save_hdr ? (void *)init_boot_hdr : 0; in populate_boot_info()
1228 hdr->vendor_boot_buf = save_hdr ? (void *)vendor_boot_hdr : 0; in populate_boot_info()
1230 if (hdr->page_size < sizeof(*hdr)) { in populate_boot_info()
1232 return -EINVAL; in populate_boot_info()
1239 * The possible cases of boot.img + recovery.img:
1244 * |--------------------|---------------------|
1245 * | boot.img | recovery.img |
1246 * |--------------------|---------------------|
1248 * |--------------------|---------------------|
1250 * |------------------------------------------|
1252 * |------------------------------------------|
1269 andr_hdr = (struct andr_img_hdr *)malloc(1 * dev_desc->blksz); in populate_andr_img_hdr()
1273 if (blk_dread(dev_desc, part_boot->start, 1, andr_hdr) != 1) { in populate_andr_img_hdr()
1283 header_version = andr_hdr->header_version; in populate_andr_img_hdr()
1293 printf("No vendor boot partition\n"); in populate_andr_img_hdr()
1302 andr_version = (boot_hdr->os_version >> 25) & 0x7f; in populate_andr_img_hdr()
1307 printf("No init boot partition\n"); in populate_andr_img_hdr()
1313 if (!iboot_hdr->ramdisk_size) { in populate_andr_img_hdr()
1314 printf("No ramdisk in init boot partition\n"); in populate_andr_img_hdr()
1328 printf("populate boot info failed\n"); in populate_andr_img_hdr()
1348 * android_print_contents - prints out the contents of the Android format image
1362 u32 os_ver = hdr->os_version >> 11; in android_print_contents()
1363 u32 os_lvl = hdr->os_version & ((1U << 11) - 1); in android_print_contents()
1364 u32 header_version = hdr->header_version; in android_print_contents()
1366 printf("%skernel size: %x\n", p, hdr->kernel_size); in android_print_contents()
1367 printf("%skernel address: %x\n", p, hdr->kernel_addr); in android_print_contents()
1368 printf("%sramdisk size: %x\n", p, hdr->ramdisk_size); in android_print_contents()
1369 printf("%sramdisk address: %x\n", p, hdr->ramdisk_addr); in android_print_contents()
1370 printf("%ssecond size: %x\n", p, hdr->second_size); in android_print_contents()
1371 printf("%ssecond address: %x\n", p, hdr->second_addr); in android_print_contents()
1372 printf("%stags address: %x\n", p, hdr->tags_addr); in android_print_contents()
1373 printf("%spage size: %x\n", p, hdr->page_size); in android_print_contents()
1376 * lvl = ((Y - 2000) & 127) << 4 | M (7 bits for Y, 4 bits for M) */ in android_print_contents()
1378 p, hdr->os_version, in android_print_contents()
1381 printf("%sname: %s\n", p, hdr->name); in android_print_contents()
1382 printf("%scmdline: %s\n", p, hdr->cmdline); in android_print_contents()
1385 printf("%srecovery dtbo size: %x\n", p, hdr->recovery_dtbo_size); in android_print_contents()
1386 printf("%srecovery dtbo offset: %llx\n", p, hdr->recovery_dtbo_offset); in android_print_contents()
1387 printf("%sheader size: %x\n", p, hdr->header_size); in android_print_contents()
1391 printf("%sdtb size: %x\n", p, hdr->dtb_size); in android_print_contents()
1392 printf("%sdtb addr: %llx\n", p, hdr->dtb_addr); in android_print_contents()
1396 printf("%scmdline: %s\n", p, hdr->total_cmdline); in android_print_contents()
1397 printf("%svendor ramdisk size: %x\n", p, hdr->vendor_ramdisk_size); in android_print_contents()
1398 printf("%svendor page size: %x\n", p, hdr->vendor_page_size); in android_print_contents()
1399 printf("%svendor header version: %d\n", p, hdr->vendor_header_version); in android_print_contents()
1400 printf("%svendor header size: %x\n", p, hdr->vendor_header_size); in android_print_contents()
1405 p, hdr->vendor_ramdisk_table_size); in android_print_contents()
1407 p, hdr->vendor_ramdisk_table_entry_num); in android_print_contents()
1409 p, hdr->vendor_ramdisk_table_entry_size); in android_print_contents()
1411 p, hdr->vendor_bootconfig_size); in android_print_contents()