Lines Matching refs:hdr

60 static void android_boot_image_v3_v4_parse_hdr(const struct andr_boot_img_hdr_v3 *hdr,
65 data->kcmdline = hdr->cmdline;
66 data->header_version = hdr->header_version;
73 end = (ulong)hdr;
76 data->kernel_size = hdr->kernel_size;
77 end += ALIGN(hdr->kernel_size, ANDR_GKI_PAGE_SIZE);
78 data->ramdisk_size = hdr->ramdisk_size;
79 data->boot_ramdisk_size = hdr->ramdisk_size;
80 end += ALIGN(hdr->ramdisk_size, ANDR_GKI_PAGE_SIZE);
82 if (hdr->header_version > 3)
83 end += ALIGN(hdr->signature_size, ANDR_GKI_PAGE_SIZE);
85 data->boot_img_total_size = end - (ulong)hdr;
89 *hdr, struct andr_image_data *data)
97 data->kcmdline_extra = hdr->cmdline;
98 data->tags_addr = hdr->tags_addr;
99 data->image_name = hdr->name;
100 data->kernel_addr = hdr->kernel_addr;
101 data->ramdisk_addr = hdr->ramdisk_addr;
102 data->dtb_load_addr = hdr->dtb_addr;
103 data->bootconfig_size = hdr->bootconfig_size;
104 end = (ulong)hdr;
105 end += hdr->page_size;
106 if (hdr->vendor_ramdisk_size) {
108 data->vendor_ramdisk_size = hdr->vendor_ramdisk_size;
109 data->ramdisk_size += hdr->vendor_ramdisk_size;
110 end += ALIGN(hdr->vendor_ramdisk_size, hdr->page_size);
114 data->dtb_size = hdr->dtb_size;
116 end += ALIGN(hdr->dtb_size, hdr->page_size);
117 end += ALIGN(hdr->vendor_ramdisk_table_size, hdr->page_size);
119 if (hdr->bootconfig_size) {
124 end += ALIGN(data->bootconfig_size, hdr->page_size);
125 data->vendor_boot_img_total_size = end - (ulong)hdr;
128 static void android_boot_image_v0_v1_v2_parse_hdr(const struct andr_boot_img_hdr_v0 *hdr,
133 data->image_name = hdr->name;
134 data->kcmdline = hdr->cmdline;
135 data->kernel_addr = hdr->kernel_addr;
136 data->ramdisk_addr = hdr->ramdisk_addr;
137 data->header_version = hdr->header_version;
138 data->dtb_load_addr = hdr->dtb_addr;
140 end = (ulong)hdr;
147 end += hdr->page_size;
150 data->kernel_size = hdr->kernel_size;
151 end += ALIGN(hdr->kernel_size, hdr->page_size);
154 data->ramdisk_size = hdr->ramdisk_size;
155 end += ALIGN(hdr->ramdisk_size, hdr->page_size);
158 data->second_size = hdr->second_size;
159 end += ALIGN(hdr->second_size, hdr->page_size);
161 if (hdr->header_version >= 1) {
163 data->recovery_dtbo_size = hdr->recovery_dtbo_size;
164 end += ALIGN(hdr->recovery_dtbo_size, hdr->page_size);
167 if (hdr->header_version >= 2) {
169 data->dtb_size = hdr->dtb_size;
170 end += ALIGN(hdr->dtb_size, hdr->page_size);
173 data->boot_img_total_size = end - (ulong)hdr;
235 * @hdr: Pointer to boot image header, which is at the start
250 int android_image_get_kernel(const void *hdr,
258 if (!android_image_get_data(hdr, vendor_boot_img, &img_data))
335 bool is_android_boot_image_header(const void *hdr)
337 return !memcmp(ANDR_BOOT_MAGIC, hdr, ANDR_BOOT_MAGIC_SIZE);
340 ulong android_image_get_end(const struct andr_boot_img_hdr_v0 *hdr,
345 if (!android_image_get_data(hdr, vendor_boot_img, &img_data))
354 ulong android_image_get_kload(const void *hdr,
359 if (!android_image_get_data(hdr, vendor_boot_img, &img_data))
365 ulong android_image_get_kcomp(const void *hdr,
371 if (!android_image_get_data(hdr, vendor_boot_img, &img_data))
383 int android_image_get_ramdisk(const void *hdr, const void *vendor_boot_img,
389 if (!android_image_get_data(hdr, vendor_boot_img, &img_data))
421 int android_image_get_second(const void *hdr, ulong *second_data, ulong *second_len)
425 if (!android_image_get_data(hdr, NULL, &img_data))
467 const struct andr_boot_img_hdr_v0 *hdr;
471 hdr = map_sysmem(hdr_addr, sizeof(*hdr));
472 if (!is_android_boot_image_header(hdr)) {
478 if (hdr->header_version != 1 && hdr->header_version != 2) {
484 if (hdr->recovery_dtbo_size == 0) {
492 dtbo_img_addr += hdr->page_size;
493 dtbo_img_addr += ALIGN(hdr->kernel_size, hdr->page_size);
494 dtbo_img_addr += ALIGN(hdr->ramdisk_size, hdr->page_size);
495 dtbo_img_addr += ALIGN(hdr->second_size, hdr->page_size);
500 *size = hdr->recovery_dtbo_size;
503 unmap_sysmem(hdr);
517 const struct andr_boot_img_hdr_v0 *hdr;
522 hdr = map_sysmem(hdr_addr, sizeof(*hdr));
523 if (!is_android_boot_image_header(hdr)) {
529 if (hdr->header_version < 2) {
535 if (hdr->header_version == 2) {
536 if (!hdr->dtb_size) {
543 dtb_img_addr += hdr->page_size;
544 dtb_img_addr += ALIGN(hdr->kernel_size, hdr->page_size);
545 dtb_img_addr += ALIGN(hdr->ramdisk_size, hdr->page_size);
546 dtb_img_addr += ALIGN(hdr->second_size, hdr->page_size);
547 dtb_img_addr += ALIGN(hdr->recovery_dtbo_size, hdr->page_size);
552 if (hdr->header_version > 2) {
570 unmap_sysmem(hdr);
591 const struct andr_boot_img_hdr_v0 *hdr;
594 hdr = map_sysmem(hdr_addr, sizeof(*hdr));
597 if (!android_image_get_data(hdr, vhdr, &img_data)) {
600 unmap_sysmem(hdr);
605 unmap_sysmem(hdr);
656 * @hdr: pointer to the Android format image header
665 void android_print_contents(const struct andr_boot_img_hdr_v0 *hdr)
667 if (hdr->header_version >= 3) {
673 u32 os_ver = hdr->os_version >> 11;
674 u32 os_lvl = hdr->os_version & ((1U << 11) - 1);
676 printf("%skernel size: %x\n", p, hdr->kernel_size);
677 printf("%skernel address: %x\n", p, hdr->kernel_addr);
678 printf("%sramdisk size: %x\n", p, hdr->ramdisk_size);
679 printf("%sramdisk address: %x\n", p, hdr->ramdisk_addr);
680 printf("%ssecond size: %x\n", p, hdr->second_size);
681 printf("%ssecond address: %x\n", p, hdr->second_addr);
682 printf("%stags address: %x\n", p, hdr->tags_addr);
683 printf("%spage size: %x\n", p, hdr->page_size);
687 p, hdr->os_version,
690 printf("%sname: %s\n", p, hdr->name);
691 printf("%scmdline: %s\n", p, hdr->cmdline);
692 printf("%sheader_version: %d\n", p, hdr->header_version);
694 if (hdr->header_version >= 1) {
696 hdr->recovery_dtbo_size);
698 hdr->recovery_dtbo_offset);
700 hdr->header_size);
703 if (hdr->header_version == 2) {
704 printf("%sdtb size: %x\n", p, hdr->dtb_size);
705 printf("%sdtb addr: %llx\n", p, hdr->dtb_addr);
761 const struct andr_boot_img_hdr_v0 *hdr;
782 hdr = map_sysmem(hdr_addr, sizeof(*hdr));
783 dtb_img_size = hdr->dtb_size;
784 unmap_sysmem(hdr);