diff options
author | zhang sanshan <sanshan.zhang@nxp.com> | 2018-02-05 19:10:26 +0800 |
---|---|---|
committer | zhang sanshan <sanshan.zhang@nxp.com> | 2018-02-06 11:01:51 +0800 |
commit | 7a956c33ffb5a04676143230f1af5156048c22a5 (patch) | |
tree | 1711c19bfa2829f1bae16f3adc9aa08ca7c71664 | |
parent | 226fd5500cb4930262a14f59ba44924c62fb9665 (diff) | |
download | uboot-imx-7a956c33ffb5a04676143230f1af5156048c22a5.tar.gz |
MA-11339 [Android] skip ramdisk when booti for normal boot
Do not copy ramdisk to address ramdisk_addr on normal boot.
Skip passing ramdisk address to booti.
Change-Id: I4ef001734db6aaacbb4bde41f7f794775849ff8e
Signed-off-by: zhang sanshan <sanshan.zhang@nxp.com>
-rwxr-xr-x | drivers/usb/gadget/f_fastboot.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/usb/gadget/f_fastboot.c b/drivers/usb/gadget/f_fastboot.c index fa3d9cb47d..6c46f44736 100755 --- a/drivers/usb/gadget/f_fastboot.c +++ b/drivers/usb/gadget/f_fastboot.c @@ -1647,8 +1647,14 @@ int do_boota(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { hdrload = (struct andr_img_hdr *)(ulong)(hdr->kernel_addr - hdr->page_size); check_image_arm64 = image_arm64((void *)(ulong)hdrload->kernel_addr); +#ifdef CONFIG_SYSTEM_RAMDISK_SUPPORT + if (is_recovery_mode) + memcpy((void *)(ulong)hdrload->ramdisk_addr, (void *)(ulong)hdrload->kernel_addr + + ALIGN(hdrload->kernel_size,hdrload->page_size), hdrload->ramdisk_size); +#else memcpy((void *)(ulong)hdrload->ramdisk_addr, (void *)(ulong)hdrload->kernel_addr + ALIGN(hdrload->kernel_size,hdrload->page_size), hdrload->ramdisk_size); +#endif #ifdef CONFIG_OF_LIBFDT /* load the dtb file */ @@ -1685,6 +1691,12 @@ int do_boota(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { sprintf(ramdisk_addr, "0x%x:0x%x", hdrload->ramdisk_addr, hdrload->ramdisk_size); sprintf(fdt_addr, "0x%x", hdrload->second_addr); +/* no need to pass ramdisk addr for normal boot mode when enable CONFIG_SYSTEM_RAMDISK_SUPPORT*/ +#ifdef CONFIG_SYSTEM_RAMDISK_SUPPORT + if (!is_recovery_mode) + boot_args[2] = NULL; +#endif + if (avb_out_data != NULL) avb_slot_verify_data_free(avb_out_data); |