From: Prabhakar Kushwaha <prabhakar@freescale.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 7/10] driver/mtd/spi:Read 8KB data chunk during u-boot load in SPL
Date: Wed, 2 Apr 2014 08:34:21 +0530 [thread overview]
Message-ID: <533B7E35.6070609@freescale.com> (raw)
In-Reply-To: <1396389777.32034.20.camel@snotra.buserror.net>
On 4/2/2014 3:32 AM, Scott Wood wrote:
> 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 <prabhakar@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.
>
>
It take 20 sec to boot. it is long enough. This issue has already been
reported.
Problem is reading 1 MB from SPI flash. It take almost 20s in on u-boot
prompt from any boot.
I agree, we should first fix it.
But This patch should not be stopped to get apply because of issue
somewhere else. That issue can be fixed separately in other patch.
Regards,
Prabhakar
next prev parent reply other threads:[~2014-04-02 3:04 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-31 10:04 [U-Boot] [PATCH 7/10] driver/mtd/spi:Read 8KB data chunk during u-boot load in SPL Prabhakar Kushwaha
2014-04-01 22:02 ` Scott Wood
2014-04-02 3:04 ` Prabhakar Kushwaha [this message]
2014-04-02 23:10 ` Scott Wood
2014-04-03 3:50 ` Prabhakar Kushwaha
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=533B7E35.6070609@freescale.com \
--to=prabhakar@freescale.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox