MA-11339 [Android] skip ramdisk when booti for normal boot
authorzhang sanshan <sanshan.zhang@nxp.com>
Mon, 5 Feb 2018 11:10:26 +0000 (19:10 +0800)
committerzhang sanshan <sanshan.zhang@nxp.com>
Tue, 6 Feb 2018 02:58:02 +0000 (10:58 +0800)
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>
drivers/usb/gadget/f_fastboot.c

index fa3d9cb..6c46f44 100755 (executable)
@@ -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);