Hi On Thu, Jun 16, 2016 at 2:39 AM, Simon Glass <s...@chromium.org> wrote: > Hi Michael, > > On 13 June 2016 at 13:53, Michael Trimarchi > <mich...@amarulasolutions.com> wrote: >> >> We can support dts load from the second address of android image. >> This let us to boot board (aka freescale) >> >> Signed-off-by: Michael Trimarchi <mich...@amarulasolutions.com> >> --- >> Changes: >> v2 -> v3: Move variable fdt_data and fdt_len in main body >> v1 -> v2: reduce code and cleanup >> --- >> common/image-android.c | 21 +++++++++++++++++++++ >> common/image-fdt.c | 13 +++++++++++-- >> include/image.h | 2 ++ >> 3 files changed, 34 insertions(+), 2 deletions(-) > > Reviewed-by: Simon Glass <s...@chromium.org> > > But please see below. > >> >> diff --git a/common/image-android.c b/common/image-android.c >> index ee03b96..9701acd 100644 >> --- a/common/image-android.c >> +++ b/common/image-android.c >> @@ -146,6 +146,27 @@ int android_image_get_ramdisk(const struct andr_img_hdr >> *hdr, >> return 0; >> } >> >> +int android_image_get_dts(const struct andr_img_hdr *hdr, >> + ulong *dts_data, ulong *dts_len) >> +{ >> + if (!hdr->second_size) { >> + *dts_data = *dts_len = 0; >> + return -1; >> + } >> + >> + printf("Dts load addr 0x%08x size %u KiB\n", >> + hdr->second_addr, DIV_ROUND_UP(hdr->second_size, 1024)); >> + >> + *dts_data = (unsigned long)hdr; >> + *dts_data += hdr->page_size; >> + *dts_data += ALIGN(hdr->kernel_size, hdr->page_size); >> + *dts_data += ALIGN(hdr->ramdisk_size, hdr->page_size); >> + >> + *dts_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/common/image-fdt.c b/common/image-fdt.c >> index 6cac7db..fb4cceb 100644 >> --- a/common/image-fdt.c >> +++ b/common/image-fdt.c >> @@ -237,6 +237,7 @@ int boot_get_fdt(int flag, int argc, char * const >> argv[], uint8_t arch, >> ulong default_addr; >> int fdt_noffset; >> #endif >> + ulong fdt_data, fdt_len; > > Won't this give an unused variable warning if > CONFIG_ANDROID_BOOT_IMAGE is not defined? >
I had the same feeling but if I remember correctly the other path is always compiled. I will check and in case I will add may_unsed or somenthing similar Michael >> const char *select = NULL; >> int ok_no_fdt = 0; >> >> @@ -345,6 +346,12 @@ int boot_get_fdt(int flag, int argc, char * const >> argv[], uint8_t arch, >> fdt_addr = load; >> break; >> #endif >> +#if defined(CONFIG_ANDROID_BOOT_IMAGE) >> + case IMAGE_FORMAT_ANDROID: >> + android_image_get_dts(buf, &fdt_data, &fdt_len); >> + goto boot_fdt; >> + break; >> +#endif >> case IMAGE_FORMAT_FIT: >> /* >> * This case will catch both: new uImage format >> @@ -389,8 +396,6 @@ int boot_get_fdt(int flag, int argc, char * const >> argv[], uint8_t arch, >> } else if (images->legacy_hdr_valid && >> image_check_type(&images->legacy_hdr_os_copy, >> IH_TYPE_MULTI)) { >> - ulong fdt_data, fdt_len; >> - >> /* >> * Now check if we have a legacy multi-component image, >> * get second entry data start address and len. >> @@ -400,6 +405,10 @@ int boot_get_fdt(int flag, int argc, char * const >> argv[], uint8_t arch, >> >> image_multi_getimg(images->legacy_hdr_os, 2, &fdt_data, >> &fdt_len); >> + >> +#if defined(CONFIG_ANDROID_BOOT_IMAGE) >> +boot_fdt: >> +#endif >> if (fdt_len) { >> fdt_blob = (char *)fdt_data; >> printf(" Booting using the fdt at 0x%p\n", >> fdt_blob); >> diff --git a/include/image.h b/include/image.h >> index 61b5d3b..f475481 100644 >> --- a/include/image.h >> +++ b/include/image.h >> @@ -1147,6 +1147,8 @@ struct andr_img_hdr; >> int android_image_check_header(const struct andr_img_hdr *hdr); >> int android_image_get_kernel(const struct andr_img_hdr *hdr, int verify, >> ulong *os_data, ulong *os_len); >> +int android_image_get_dts(const struct andr_img_hdr *hdr, >> + ulong *dts_data, ulong *dts_len); >> 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); >> -- >> 2.8.4 >> > > Regards, > Simon -- | Michael Nazzareno Trimarchi Amarula Solutions BV | | COO - Founder Cruquiuskade 47 | | +31(0)851119172 Amsterdam 1018 AM NL | | [`as] http://www.amarulasolutions.com | _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot