summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common/image-android.c19
-rw-r--r--include/image.h2
2 files changed, 21 insertions, 0 deletions
diff --git a/common/image-android.c b/common/image-android.c
index e74d0aafca..5ad3a1fa38 100644
--- a/common/image-android.c
+++ b/common/image-android.c
@@ -146,6 +146,25 @@ int android_image_get_ramdisk(const struct andr_img_hdr *hdr,
return 0;
}
+int android_image_get_second(const struct andr_img_hdr *hdr,
+ ulong *second_data, ulong *second_len)
+{
+ if (!hdr->second_size) {
+ *second_data = *second_len = 0;
+ return -1;
+ }
+
+ *second_data = (unsigned long)hdr;
+ *second_data += hdr->page_size;
+ *second_data += ALIGN(hdr->kernel_size, hdr->page_size);
+ *second_data += ALIGN(hdr->ramdisk_size, hdr->page_size);
+
+ printf("second address is 0x%lx\n",*second_data);
+
+ *second_len = hdr->second_size;
+ return 0;
+}
+
#if !defined(CONFIG_SPL_BUILD)
/**
* android_print_contents - prints out the contents of the Android format image
diff --git a/include/image.h b/include/image.h
index b2b23a96f1..c8ce4da901 100644
--- a/include/image.h
+++ b/include/image.h
@@ -1263,6 +1263,8 @@ int android_image_get_kernel(const struct andr_img_hdr *hdr, int verify,
ulong *os_data, ulong *os_len);
int android_image_get_ramdisk(const struct andr_img_hdr *hdr,
ulong *rd_data, ulong *rd_len);
+int android_image_get_second(const struct andr_img_hdr *hdr,
+ ulong *second_data, ulong *second_len);
ulong android_image_get_end(const struct andr_img_hdr *hdr);
ulong android_image_get_kload(const struct andr_img_hdr *hdr);
void android_print_contents(const struct andr_img_hdr *hdr);