[U-Boot] [RFC PATCH] common: image: minimal android image iminfo support

Signed-off-by: Michael Trimarchi michael@amarulasolutions.com --- cmd/bootm.c | 6 ++++++ common/image-android.c | 28 ++++++++++++++++++++++++++++ include/image.h | 1 + 3 files changed, 35 insertions(+)
diff --git a/cmd/bootm.c b/cmd/bootm.c index 1bca6fa..eb4e904 100644 --- a/cmd/bootm.c +++ b/cmd/bootm.c @@ -275,6 +275,12 @@ static int image_info(ulong addr) puts("OK\n"); return 0; #endif +#if defined(CONFIG_ANDROID_BOOT_IMAGE) + case IMAGE_FORMAT_ANDROID: + puts(" Android image found\n"); + android_print_contents(hdr); + return 0; +#endif #if defined(CONFIG_FIT) case IMAGE_FORMAT_FIT: puts(" FIT image found\n"); diff --git a/common/image-android.c b/common/image-android.c index b6a94b3..6284c4c 100644 --- a/common/image-android.c +++ b/common/image-android.c @@ -145,3 +145,31 @@ int android_image_get_ramdisk(const struct andr_img_hdr *hdr, *rd_len = hdr->ramdisk_size; return 0; } + +#if !defined(CONFIG_SPL_BUILD) +/** + * android_print_contents - prints out the contents of the Android format image + * @hdr: pointer to the Android format image header + * + * fit_print_contents() formats a multi line Android image contents description. + * The routine prints out Android image properties + * + * returns: + * no returned results + */ +void android_print_contents(const struct andr_img_hdr *hdr) +{ + const char * const p = IMAGE_INDENT_STRING; + + printf("%skernel size: 0x%x\n", p, hdr->kernel_size); + printf("%skernel address: 0x%x\n", p, hdr->kernel_addr); + printf("%sramdisk size: 0x%x\n", p, hdr->ramdisk_size); + printf("%sramdisk addrress: 0x%x\n", p, hdr->ramdisk_addr); + printf("%ssecond size: 0x%x\n", p, hdr->second_size); + printf("%ssecond address: 0x%x\n", p, hdr->second_addr); + printf("%stags address: 0x%x\n", p, hdr->tags_addr); + printf("%spage size: 0x%x\n", p, hdr->page_size); + printf("%sname: %s\n", p, hdr->name); + printf("%scmdline: %s\n", p, hdr->cmdline); +} +#endif diff --git a/include/image.h b/include/image.h index f9ee564..61b5d3b 100644 --- a/include/image.h +++ b/include/image.h @@ -1151,6 +1151,7 @@ int android_image_get_ramdisk(const struct andr_img_hdr *hdr, ulong *rd_data, ulong *rd_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);
#endif /* CONFIG_ANDROID_BOOT_IMAGE */

On 10 June 2016 at 08:23, Michael Trimarchi michael@amarulasolutions.com wrote:
Signed-off-by: Michael Trimarchi michael@amarulasolutions.com
Commit message?
cmd/bootm.c | 6 ++++++ common/image-android.c | 28 ++++++++++++++++++++++++++++ include/image.h | 1 + 3 files changed, 35 insertions(+)
diff --git a/cmd/bootm.c b/cmd/bootm.c index 1bca6fa..eb4e904 100644 --- a/cmd/bootm.c +++ b/cmd/bootm.c @@ -275,6 +275,12 @@ static int image_info(ulong addr) puts("OK\n"); return 0; #endif +#if defined(CONFIG_ANDROID_BOOT_IMAGE)
case IMAGE_FORMAT_ANDROID:
puts(" Android image found\n");
android_print_contents(hdr);
return 0;
+#endif #if defined(CONFIG_FIT) case IMAGE_FORMAT_FIT: puts(" FIT image found\n"); diff --git a/common/image-android.c b/common/image-android.c index b6a94b3..6284c4c 100644 --- a/common/image-android.c +++ b/common/image-android.c @@ -145,3 +145,31 @@ int android_image_get_ramdisk(const struct andr_img_hdr *hdr, *rd_len = hdr->ramdisk_size; return 0; }
+#if !defined(CONFIG_SPL_BUILD) +/**
- android_print_contents - prints out the contents of the Android format image
- @hdr: pointer to the Android format image header
- fit_print_contents() formats a multi line Android image contents description.
- The routine prints out Android image properties
- returns:
no returned results
- */
+void android_print_contents(const struct andr_img_hdr *hdr) +{
const char * const p = IMAGE_INDENT_STRING;
printf("%skernel size: 0x%x\n", p, hdr->kernel_size);
printf("%skernel address: 0x%x\n", p, hdr->kernel_addr);
printf("%sramdisk size: 0x%x\n", p, hdr->ramdisk_size);
printf("%sramdisk addrress: 0x%x\n", p, hdr->ramdisk_addr);
printf("%ssecond size: 0x%x\n", p, hdr->second_size);
printf("%ssecond address: 0x%x\n", p, hdr->second_addr);
printf("%stags address: 0x%x\n", p, hdr->tags_addr);
printf("%spage size: 0x%x\n", p, hdr->page_size);
printf("%sname: %s\n", p, hdr->name);
printf("%scmdline: %s\n", p, hdr->cmdline);
U-Boot uses hex by default so I think you can drop the 0x.
+} +#endif diff --git a/include/image.h b/include/image.h index f9ee564..61b5d3b 100644 --- a/include/image.h +++ b/include/image.h @@ -1151,6 +1151,7 @@ int android_image_get_ramdisk(const struct andr_img_hdr *hdr, ulong *rd_data, ulong *rd_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);
#endif /* CONFIG_ANDROID_BOOT_IMAGE */
-- 2.8.4
Regards, Simon

We already support iminfo for other images. The idea of this patch is start to have a minimal support for android image format. We still need to print id[] array
Signed-off-by: Michael Trimarchi michael@amarulasolutions.com --- Changes V1 -> V2: - remove 0x on hex print - fix comment in the function - add commit message --- cmd/bootm.c | 6 ++++++ common/image-android.c | 29 +++++++++++++++++++++++++++++ include/image.h | 1 + 3 files changed, 36 insertions(+)
diff --git a/cmd/bootm.c b/cmd/bootm.c index 1bca6fa..eb4e904 100644 --- a/cmd/bootm.c +++ b/cmd/bootm.c @@ -275,6 +275,12 @@ static int image_info(ulong addr) puts("OK\n"); return 0; #endif +#if defined(CONFIG_ANDROID_BOOT_IMAGE) + case IMAGE_FORMAT_ANDROID: + puts(" Android image found\n"); + android_print_contents(hdr); + return 0; +#endif #if defined(CONFIG_FIT) case IMAGE_FORMAT_FIT: puts(" FIT image found\n"); diff --git a/common/image-android.c b/common/image-android.c index b6a94b3..ee03b96 100644 --- a/common/image-android.c +++ b/common/image-android.c @@ -145,3 +145,32 @@ int android_image_get_ramdisk(const struct andr_img_hdr *hdr, *rd_len = hdr->ramdisk_size; return 0; } + +#if !defined(CONFIG_SPL_BUILD) +/** + * android_print_contents - prints out the contents of the Android format image + * @hdr: pointer to the Android format image header + * + * android_print_contents() formats a multi line Android image contents + * description. + * The routine prints out Android image properties + * + * returns: + * no returned results + */ +void android_print_contents(const struct andr_img_hdr *hdr) +{ + const char * const p = IMAGE_INDENT_STRING; + + printf("%skernel size: %x\n", p, hdr->kernel_size); + printf("%skernel address: %x\n", p, hdr->kernel_addr); + printf("%sramdisk size: %x\n", p, hdr->ramdisk_size); + printf("%sramdisk addrress: %x\n", p, hdr->ramdisk_addr); + printf("%ssecond size: %x\n", p, hdr->second_size); + printf("%ssecond address: %x\n", p, hdr->second_addr); + printf("%stags address: %x\n", p, hdr->tags_addr); + printf("%spage size: %x\n", p, hdr->page_size); + printf("%sname: %s\n", p, hdr->name); + printf("%scmdline: %s\n", p, hdr->cmdline); +} +#endif diff --git a/include/image.h b/include/image.h index f9ee564..61b5d3b 100644 --- a/include/image.h +++ b/include/image.h @@ -1151,6 +1151,7 @@ int android_image_get_ramdisk(const struct andr_img_hdr *hdr, ulong *rd_data, ulong *rd_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);
#endif /* CONFIG_ANDROID_BOOT_IMAGE */

On 10 June 2016 at 11:54, Michael Trimarchi michael@amarulasolutions.com wrote:
We already support iminfo for other images. The idea of this patch is start to have a minimal support for android image format. We still need to print id[] array
Signed-off-by: Michael Trimarchi michael@amarulasolutions.com
Changes V1 -> V2: - remove 0x on hex print - fix comment in the function - add commit message
cmd/bootm.c | 6 ++++++ common/image-android.c | 29 +++++++++++++++++++++++++++++ include/image.h | 1 + 3 files changed, 36 insertions(+)
Reviewed-by: Simon Glass sjg@chromium.org

On Fri, Jun 10, 2016 at 07:54:37PM +0200, Michael Trimarchi wrote:
We already support iminfo for other images. The idea of this patch is start to have a minimal support for android image format. We still need to print id[] array
Signed-off-by: Michael Trimarchi michael@amarulasolutions.com Reviewed-by: Simon Glass sjg@chromium.org
Applied to u-boot/master, thanks!
participants (3)
-
Michael Trimarchi
-
Simon Glass
-
Tom Rini