mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-28 15:41:40 +00:00
find dtb in android boot image with header version 2 during bootm
This patch is about bootm process, android boot image and device tree. Android 10 updates the boot image header to version 2, which includes a section to store the device tree blob (DTB) image. include/android_image.h has updated the struct andr_img_hdr, but not used in bootm process. This patch avoid reporting "Device tree not found or missing FDT support" when bootm a correctly constructed android boot image. Signed-off-by: chenshuo <chenshuo@eswin.com>
This commit is contained in:
parent
6724a37a7c
commit
6e31458435
1 changed files with 13 additions and 3 deletions
|
@ -465,10 +465,20 @@ int boot_get_fdt(int flag, int argc, char *const argv[], uint8_t arch,
|
|||
#ifdef CONFIG_ANDROID_BOOT_IMAGE
|
||||
} else if (genimg_get_format(buf) == IMAGE_FORMAT_ANDROID) {
|
||||
struct andr_img_hdr *hdr = buf;
|
||||
ulong fdt_data, fdt_len;
|
||||
ulong fdt_data, fdt_len;
|
||||
u32 fdt_size, dtb_idx;
|
||||
/*
|
||||
* 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, dtb_idx, &fdt_addr, &fdt_size)) {
|
||||
fdt_blob = (char *)map_sysmem(fdt_addr, 0);
|
||||
if (fdt_check_header(fdt_blob))
|
||||
goto no_fdt;
|
||||
|
||||
if (!android_image_get_second(hdr, &fdt_data, &fdt_len) &&
|
||||
!fdt_check_header((char *)fdt_data)) {
|
||||
debug("## Using FDT in Android image dtb area with idx %u\n", dtb_idx);
|
||||
} else if (!android_image_get_second(hdr, &fdt_data, &fdt_len) &&
|
||||
!fdt_check_header((char *)fdt_data)) {
|
||||
fdt_blob = (char *)fdt_data;
|
||||
if (fdt_totalsize(fdt_blob) != fdt_len)
|
||||
goto error;
|
||||
|
|
Loading…
Reference in a new issue