fdt: boot_get_fdt: android: use ENV 'fdtaddr' as fallback
Our platform doesn't store the DTB into the Android image second area, but rather copies the DTB to RAM from a dedicated dtb.img partition [0], prior to booting the Android image by calling bootm. Similar to [1], we find it useful to just call 'bootm' and have the right DTB being passed to OS (assuming its address has been previously stored in 'fdtaddr' by calling `fdt addr <dtb-addr>`). Booting Android with DTB from 'fdtaddr' will only occur if: - No DTB is embedded in the second area of Android image - 'fdtaddr' points to a valid DTB in RAM [0] https://source.android.com/devices/architecture/dto/partitions [1] https://patchwork.ozlabs.org/patch/1046652/ ("Support boot Android image without address on bootm command") Signed-off-by: Eugeniu Rosca <erosca@de.adit-jv.com> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
18b8f2c49e
commit
62392675cd
@ -469,7 +469,15 @@ int boot_get_fdt(int flag, int argc, char * const argv[], uint8_t arch,
|
||||
|
||||
debug("## Using FDT in Android image second area\n");
|
||||
} else {
|
||||
goto no_fdt;
|
||||
fdt_addr = env_get_hex("fdtaddr", 0);
|
||||
if (!fdt_addr)
|
||||
goto no_fdt;
|
||||
|
||||
fdt_blob = map_sysmem(fdt_addr, 0);
|
||||
if (fdt_check_header(fdt_blob))
|
||||
goto no_fdt;
|
||||
|
||||
debug("## Using FDT at ${fdtaddr}=Ox%lx\n", fdt_addr);
|
||||
}
|
||||
#endif
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user