Re: [PATCH v2 1/5] boot: android: Provide vendor_bootimg_addr in boot_get_fdt()

2024-06-13 Thread Guillaume LA ROQUE

Hi,

Le 13/06/2024 à 12:13, Mattijs Korpershoek a écrit :

When calling android_image_get_dtb_by_index() using boot image v3+,
we should also pass the vendor_boot ramdisk address.

Use get_avendor_bootimg_addr() to do so.

Notes: on boot image v2, this is harmless since get_avendor_bootimg_addr()
returns -1.
for legacy implementations that don't have CMD_ABOOTIMG, add a weak
implementation to avoid linking errors.

Signed-off-by: Mattijs Korpershoek 
---
  boot/image-android.c | 5 +
  boot/image-fdt.c | 2 +-
  2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/boot/image-android.c b/boot/image-android.c
index ee626972c114..09c7a44e058a 100644
--- a/boot/image-android.c
+++ b/boot/image-android.c
@@ -56,6 +56,11 @@ static ulong add_trailer(ulong bootconfig_start_addr, ulong 
bootconfig_size)
return BOOTCONFIG_TRAILER_SIZE;
  }
  
+__weak ulong get_avendor_bootimg_addr(void)

+{
+   return -1;
+}
+
  static void android_boot_image_v3_v4_parse_hdr(const struct 
andr_boot_img_hdr_v3 *hdr,
   struct andr_image_data *data)
  {
diff --git a/boot/image-fdt.c b/boot/image-fdt.c
index 56dd7687f51c..8332792b8e80 100644
--- a/boot/image-fdt.c
+++ b/boot/image-fdt.c
@@ -502,7 +502,7 @@ int boot_get_fdt(void *buf, const char *select, uint arch,
 * Firstly check if this android boot image has dtb field.
 */
dtb_idx = (u32)env_get_ulong("adtb_idx", 10, 0);
-   if (android_image_get_dtb_by_index((ulong)hdr, 0,
+   if (android_image_get_dtb_by_index((ulong)hdr, 
get_avendor_bootimg_addr(),
   dtb_idx, _addr, 
_size)) {
fdt_blob = (char *)map_sysmem(fdt_addr, 0);
if (fdt_check_header(fdt_blob))


Reviewed-by: Guillaume La Roque 



Re: [PATCH v2 1/5] boot: android: Provide vendor_bootimg_addr in boot_get_fdt()

2024-06-13 Thread Igor Opaniuk
On Thu, Jun 13, 2024 at 12:13 PM Mattijs Korpershoek
 wrote:
>
> When calling android_image_get_dtb_by_index() using boot image v3+,
> we should also pass the vendor_boot ramdisk address.
>
> Use get_avendor_bootimg_addr() to do so.
>
> Notes: on boot image v2, this is harmless since get_avendor_bootimg_addr()
>returns -1.
>for legacy implementations that don't have CMD_ABOOTIMG, add a weak
>implementation to avoid linking errors.
>
> Signed-off-by: Mattijs Korpershoek 
> ---
>  boot/image-android.c | 5 +
>  boot/image-fdt.c | 2 +-
>  2 files changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/boot/image-android.c b/boot/image-android.c
> index ee626972c114..09c7a44e058a 100644
> --- a/boot/image-android.c
> +++ b/boot/image-android.c
> @@ -56,6 +56,11 @@ static ulong add_trailer(ulong bootconfig_start_addr, 
> ulong bootconfig_size)
> return BOOTCONFIG_TRAILER_SIZE;
>  }
>
> +__weak ulong get_avendor_bootimg_addr(void)
> +{
> +   return -1;
> +}
> +
>  static void android_boot_image_v3_v4_parse_hdr(const struct 
> andr_boot_img_hdr_v3 *hdr,
>struct andr_image_data *data)
>  {
> diff --git a/boot/image-fdt.c b/boot/image-fdt.c
> index 56dd7687f51c..8332792b8e80 100644
> --- a/boot/image-fdt.c
> +++ b/boot/image-fdt.c
> @@ -502,7 +502,7 @@ int boot_get_fdt(void *buf, const char *select, uint arch,
>  * Firstly check if this android boot image has dtb field.
>  */
> dtb_idx = (u32)env_get_ulong("adtb_idx", 10, 0);
> -   if (android_image_get_dtb_by_index((ulong)hdr, 0,
> +   if (android_image_get_dtb_by_index((ulong)hdr, 
> get_avendor_bootimg_addr(),
>dtb_idx, _addr, 
> _size)) {
> fdt_blob = (char *)map_sysmem(fdt_addr, 0);
> if (fdt_check_header(fdt_blob))
>
> --
> 2.45.2
>
Reviewed-by: Igor Opaniuk 

-- 
Best regards - Atentamente - Meilleures salutations

Igor Opaniuk

mailto: igor.opan...@gmail.com
skype: igor.opanyuk
https://www.linkedin.com/in/iopaniuk


Re: [PATCH v2 1/5] boot: android: Provide vendor_bootimg_addr in boot_get_fdt()

2024-06-13 Thread Julien Masson


On Thu 13 Jun 2024 at 17:42, Mattijs Korpershoek  
wrote:

> When calling android_image_get_dtb_by_index() using boot image v3+,
> we should also pass the vendor_boot ramdisk address.
> 
> Use get_avendor_bootimg_addr() to do so.
> 
> Notes: on boot image v2, this is harmless since get_avendor_bootimg_addr()
>returns -1.
>for legacy implementations that don't have CMD_ABOOTIMG, add a weak
>implementation to avoid linking errors.
> 
> Signed-off-by: Mattijs Korpershoek 
> ---
>  boot/image-android.c | 5 +
>  boot/image-fdt.c | 2 +-
>  2 files changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/boot/image-android.c b/boot/image-android.c
> index ee626972c114..09c7a44e058a 100644
> --- a/boot/image-android.c
> +++ b/boot/image-android.c
> @@ -56,6 +56,11 @@ static ulong add_trailer(ulong bootconfig_start_addr, 
> ulong bootconfig_size)
>   return BOOTCONFIG_TRAILER_SIZE;
>  }
>  
> +__weak ulong get_avendor_bootimg_addr(void)
> +{
> + return -1;
> +}
> +
>  static void android_boot_image_v3_v4_parse_hdr(const struct 
> andr_boot_img_hdr_v3 *hdr,
>  struct andr_image_data *data)
>  {
> diff --git a/boot/image-fdt.c b/boot/image-fdt.c
> index 56dd7687f51c..8332792b8e80 100644
> --- a/boot/image-fdt.c
> +++ b/boot/image-fdt.c
> @@ -502,7 +502,7 @@ int boot_get_fdt(void *buf, const char *select, uint arch,
>* Firstly check if this android boot image has dtb field.
>*/
>   dtb_idx = (u32)env_get_ulong("adtb_idx", 10, 0);
> - if (android_image_get_dtb_by_index((ulong)hdr, 0,
> + if (android_image_get_dtb_by_index((ulong)hdr, 
> get_avendor_bootimg_addr(),
>  dtb_idx, _addr, 
> _size)) {
>   fdt_blob = (char *)map_sysmem(fdt_addr, 0);
>   if (fdt_check_header(fdt_blob))
> 
> -- 
> 2.45.2
> 

Reviewed-by: Julien Masson 
-- 
Julien Masson


Re: [PATCH v2 1/5] boot: android: Provide vendor_bootimg_addr in boot_get_fdt()

2024-06-13 Thread Simon Glass
On Thu, 13 Jun 2024 at 04:13, Mattijs Korpershoek
 wrote:
>
> When calling android_image_get_dtb_by_index() using boot image v3+,
> we should also pass the vendor_boot ramdisk address.
>
> Use get_avendor_bootimg_addr() to do so.
>
> Notes: on boot image v2, this is harmless since get_avendor_bootimg_addr()
>returns -1.
>for legacy implementations that don't have CMD_ABOOTIMG, add a weak
>implementation to avoid linking errors.
>
> Signed-off-by: Mattijs Korpershoek 
> ---
>  boot/image-android.c | 5 +
>  boot/image-fdt.c | 2 +-
>  2 files changed, 6 insertions(+), 1 deletion(-)

Reviewed-by: Simon Glass 


[PATCH v2 1/5] boot: android: Provide vendor_bootimg_addr in boot_get_fdt()

2024-06-13 Thread Mattijs Korpershoek
When calling android_image_get_dtb_by_index() using boot image v3+,
we should also pass the vendor_boot ramdisk address.

Use get_avendor_bootimg_addr() to do so.

Notes: on boot image v2, this is harmless since get_avendor_bootimg_addr()
   returns -1.
   for legacy implementations that don't have CMD_ABOOTIMG, add a weak
   implementation to avoid linking errors.

Signed-off-by: Mattijs Korpershoek 
---
 boot/image-android.c | 5 +
 boot/image-fdt.c | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/boot/image-android.c b/boot/image-android.c
index ee626972c114..09c7a44e058a 100644
--- a/boot/image-android.c
+++ b/boot/image-android.c
@@ -56,6 +56,11 @@ static ulong add_trailer(ulong bootconfig_start_addr, ulong 
bootconfig_size)
return BOOTCONFIG_TRAILER_SIZE;
 }
 
+__weak ulong get_avendor_bootimg_addr(void)
+{
+   return -1;
+}
+
 static void android_boot_image_v3_v4_parse_hdr(const struct 
andr_boot_img_hdr_v3 *hdr,
   struct andr_image_data *data)
 {
diff --git a/boot/image-fdt.c b/boot/image-fdt.c
index 56dd7687f51c..8332792b8e80 100644
--- a/boot/image-fdt.c
+++ b/boot/image-fdt.c
@@ -502,7 +502,7 @@ int boot_get_fdt(void *buf, const char *select, uint arch,
 * Firstly check if this android boot image has dtb field.
 */
dtb_idx = (u32)env_get_ulong("adtb_idx", 10, 0);
-   if (android_image_get_dtb_by_index((ulong)hdr, 0,
+   if (android_image_get_dtb_by_index((ulong)hdr, 
get_avendor_bootimg_addr(),
   dtb_idx, _addr, 
_size)) {
fdt_blob = (char *)map_sysmem(fdt_addr, 0);
if (fdt_check_header(fdt_blob))

-- 
2.45.2