]> git.sur5r.net Git - u-boot/blobdiff - common/bootm.c
spl: Add dependency on serial to Ymodem
[u-boot] / common / bootm.c
index 08563540670c4349d3915091702ffcaa9eb10a34..36162917a1b72a10aab9c10dcfa6acd1921afcb5 100644 (file)
@@ -55,8 +55,8 @@ static void boot_start_lmb(bootm_headers_t *images)
 
        lmb_init(&images->lmb);
 
-       mem_start = getenv_bootm_low();
-       mem_size = getenv_bootm_size();
+       mem_start = env_get_bootm_low();
+       mem_size = env_get_bootm_size();
 
        lmb_add(&images->lmb, (phys_addr_t)mem_start, mem_size);
 
@@ -248,7 +248,7 @@ int bootm_find_images(int flag, int argc, char * const argv[])
 #endif
 
 #if IMAGE_ENABLE_FIT
-#if defined(CONFIG_FPGA) && defined(CONFIG_FPGA_XILINX)
+#if defined(CONFIG_FPGA)
        /* find bitstreams */
        ret = boot_get_fpga(argc, argv, &images, IH_ARCH_DEFAULT,
                            NULL, NULL);
@@ -434,6 +434,8 @@ static int bootm_load_os(bootm_headers_t *images, unsigned long *load_end,
        ulong blob_end = os.end;
        ulong image_start = os.image_start;
        ulong image_len = os.image_len;
+       ulong flush_start = ALIGN_DOWN(load, ARCH_DMA_MINALIGN);
+       ulong flush_len = *load_end - load;
        bool no_overlap;
        void *load_buf, *image_buf;
        int err;
@@ -447,7 +449,11 @@ static int bootm_load_os(bootm_headers_t *images, unsigned long *load_end,
                bootstage_error(BOOTSTAGE_ID_DECOMP_IMAGE);
                return err;
        }
-       flush_cache(load, ALIGN(*load_end - load, ARCH_DMA_MINALIGN));
+
+       if (flush_start < load)
+               flush_len += load - flush_start;
+
+       flush_cache(flush_start, ALIGN(flush_len, ARCH_DMA_MINALIGN));
 
        debug("   kernel loaded at 0x%08lx, end = 0x%08lx\n", load, *load_end);
        bootstage_mark(BOOTSTAGE_ID_KERNEL_LOADED);
@@ -810,9 +816,6 @@ static const void *boot_get_kernel(cmd_tbl_t *cmdtp, int flag, int argc,
 
        bootstage_mark(BOOTSTAGE_ID_CHECK_MAGIC);
 
-       /* copy from dataflash if needed */
-       img_addr = genimg_get_image(img_addr);
-
        /* check image type, for FIT images get FIT kernel node */
        *os_data = *os_len = 0;
        buf = map_sysmem(img_addr, 0);