[1/2,rfc] parse the second area of android image

Message ID 1499752564-10488-1-git-send-email-bin.chen@linaro.org
State New
Headers show
Series
  • [1/2,rfc] parse the second area of android image
Related show

Commit Message

Bin Chen July 11, 2017, 5:56 a.m.
The second area of android image was intended to put a 2nd stage
bootloader but in practice were rarely used (in my knowledge).

An proposal was made to the AOSP to (re)use the second area as the dtb[1],
This patch itself doesn't depend on that proposal being accepted but it won't
be that helpful as well if that proposal won't be accepted. But don't do
any harm as well.

[1] https://android-review.googlesource.com/#/c/417447/
Signed-off-by: Bin Chen <bin.chen@linaro.org>
---
 common/image-android.c | 19 +++++++++++++++++++
 include/image.h        |  2 ++
 2 files changed, 21 insertions(+)

Comments

Tom Rini July 12, 2017, 6:25 p.m. | #1
On Tue, Jul 11, 2017 at 03:56:03PM +1000, Bin Chen wrote:

> The second area of android image was intended to put a 2nd stage

> bootloader but in practice were rarely used (in my knowledge).

> 

> An proposal was made to the AOSP to (re)use the second area as the dtb[1],

> This patch itself doesn't depend on that proposal being accepted but it won't

> be that helpful as well if that proposal won't be accepted. But don't do

> any harm as well.

> 

> [1] https://android-review.googlesource.com/#/c/417447/

> Signed-off-by: Bin Chen <bin.chen@linaro.org>


Reviewed-by: Tom Rini <trini@konsulko.com>


-- 
Tom
Andy Yan Aug. 24, 2017, 2:58 a.m. | #2
Hi Tom and other maintainers:

2017-07-13 2:25 GMT+08:00 Tom Rini <trini@konsulko.com>:

> On Tue, Jul 11, 2017 at 03:56:03PM +1000, Bin Chen wrote:
>
> > The second area of android image was intended to put a 2nd stage
> > bootloader but in practice were rarely used (in my knowledge).
> >
> > An proposal was made to the AOSP to (re)use the second area as the
> dtb[1],
> > This patch itself doesn't depend on that proposal being accepted but it
> won't
> > be that helpful as well if that proposal won't be accepted. But don't do
> > any harm as well.
> >
> > [1] https://android-review.googlesource.com/#/c/417447/
> > Signed-off-by: Bin Chen <bin.chen@linaro.org>
>
> Reviewed-by: Tom Rini <trini@konsulko.com>
>
>

Can we get this patch applied now[1/2]?Because some  ARM32 platforms also
want to use the second area to stored dtb or other resource .



> --
> Tom
>
> _______________________________________________
> U-Boot mailing list
> U-Boot@lists.denx.de
> https://lists.denx.de/listinfo/u-boot
>
>
Bin Chen Aug. 25, 2017, 4:03 a.m. | #3
On 24 August 2017 at 12:58, Andy Yan <andyshrk@gmail.com> wrote:

> Hi Tom and other maintainers:
>
> 2017-07-13 2:25 GMT+08:00 Tom Rini <trini@konsulko.com>:
>
>> On Tue, Jul 11, 2017 at 03:56:03PM +1000, Bin Chen wrote:
>>
>> > The second area of android image was intended to put a 2nd stage
>> > bootloader but in practice were rarely used (in my knowledge).
>> >
>> > An proposal was made to the AOSP to (re)use the second area as the
>> dtb[1],
>> > This patch itself doesn't depend on that proposal being accepted but it
>> won't
>> > be that helpful as well if that proposal won't be accepted. But don't do
>> > any harm as well.
>> >
>> > [1] https://android-review.googlesource.com/#/c/417447/
>> > Signed-off-by: Bin Chen <bin.chen@linaro.org>
>>
>> Reviewed-by: Tom Rini <trini@konsulko.com>
>>
>>
>
> Can we get this patch applied now[1/2]?Because some  ARM32 platforms also
> want to use the second area to stored dtb or other resource .
>

Let me know if I need to rebase it or something.

p.s: sorry I was busy with other stuff, so wasn't able timely resend/update
the patches.


>
>
>
>> --
>> Tom
>>
>> _______________________________________________
>> U-Boot mailing list
>> U-Boot@lists.denx.de
>> https://lists.denx.de/listinfo/u-boot
>>
>>
>

Patch

diff --git a/common/image-android.c b/common/image-android.c
index ee03b96..7daa5fa 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 3f26f9b..8264c52 100644
--- a/include/image.h
+++ b/include/image.h
@@ -1237,6 +1237,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);