On Mon, 2014-03-31 at 15:34 +0530, Prabhakar Kushwaha wrote: > SPI driver perform its operation(read/write) on 64KB buffer chunk for data > greater than 64KB. This buffer chunk is allocated from system heap. > > During SPL boot, 768KB of data is read from SPI flash. > Here, heap size may not be sufficient enough to full-fill 64KB buffer > requirement of SPI driver. So break down u-boot read operation at 8KB of > chunk. > > Also, fix a warning i.e. "unused variable buf" during CONFIG_FSL_CORENET > > Signed-off-by: Prabhakar Kushwaha <prabha...@freescale.com> > --- > drivers/mtd/spi/fsl_espi_spl.c | 15 ++++++++++++--- > 1 file changed, 12 insertions(+), 3 deletions(-) > > diff --git a/drivers/mtd/spi/fsl_espi_spl.c b/drivers/mtd/spi/fsl_espi_spl.c > index e5ac79b..a55d741 100644 > --- a/drivers/mtd/spi/fsl_espi_spl.c > +++ b/drivers/mtd/spi/fsl_espi_spl.c > @@ -20,8 +20,10 @@ > void spi_boot(void) > { > void (*uboot)(void) __noreturn; > - u32 offset, code_len; > + u32 offset, code_len, copy_len = 0; > +#ifndef CONFIG_FSL_CORENET > unsigned char *buf = NULL; > +#endif > struct spi_flash *flash; > > flash = spi_flash_probe(CONFIG_ENV_SPI_BUS, CONFIG_ENV_SPI_CS, > @@ -56,8 +58,15 @@ void spi_boot(void) > code_len = code_len - CONFIG_SPL_MAX_SIZE; > #endif > /* copy code to DDR */ > - spi_flash_read(flash, offset, code_len, > - (void *)CONFIG_SYS_SPI_FLASH_U_BOOT_DST); > + printf("Loading second stage boot loader "); > + while (copy_len <= code_len) { > + spi_flash_read(flash, offset + copy_len, 0x2000, > + (void *)(CONFIG_SYS_SPI_FLASH_U_BOOT_DST > + + copy_len)); > + copy_len = copy_len + 0x2000; > + putc('.'); > + }
How long does this take? If it's long enough to warrant a progress meter, that ought to be fixed first. -Scott _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot