[U-Boot] [PATCH v3 17/17] sf: Add Flag status register polling support
Willis, Max
Max.Willis at spansion.com
Thu Jun 13 19:46:47 CEST 2013
Hi Jagan, Simon - Adding Bacem and Gernot from Spansion. Would you be able to add them to the other open threads as well? --Max
-------------------------------------------------
Max Willis, PhD
Division Marketing Manager
Software Marketing
Spansion Inc.
-------------------------------------------------
-----Original Message-----
From: Jagan Teki [mailto:jagannadh.teki at gmail.com]
Sent: Wednesday, June 12, 2013 10:32 PM
To: Simon Glass
Cc: Jagannadha Sutradharudu Teki; U-Boot Mailing List; Michal Simek; Tom Rini; Rajeshwari Shinde; Syed Hussain; Willis, Max; Todd Legler (tlegler); Jagannadha Sutradharudu Teki
Subject: Re: [PATCH v3 17/17] sf: Add Flag status register polling support
Hi Simon,
On Thu, Jun 13, 2013 at 4:12 AM, Simon Glass <sjg at chromium.org> wrote:
> Hi Jagan,
>
> On Tue, Jun 11, 2013 at 12:23 PM, Jagannadha Sutradharudu Teki
> <jagannadha.sutradharudu-teki at xilinx.com> wrote:
>>
>> Flag status register polling is required for micron 512Mb flash
>> devices onwards, for performing erase/program operations.
>>
>> Like polling for WIP(Write-In-Progress) bit in read status register,
>> spi_flash_cmd_wait_ready will poll for PEC(Program-Erase-Control) bit
>> in flag status register.
>>
>> Signed-off-by: Jagannadha Sutradharudu Teki <jaganna at xilinx.com>
>>
>> ---
>> Changes for v3:
>> - define the flag status code on CONFIG_SPI_FLASH_STMICRO
>> Changes for v2:
>> - none
>>
>> drivers/mtd/spi/spi_flash.c | 16 +++++++++++++---
>> drivers/mtd/spi/spi_flash_internal.h | 2 ++
>> 2 files changed, 15 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/mtd/spi/spi_flash.c
>> b/drivers/mtd/spi/spi_flash.c index bb37f54..4f97fab0 100644
>> --- a/drivers/mtd/spi/spi_flash.c
>> +++ b/drivers/mtd/spi/spi_flash.c
>> @@ -200,12 +200,22 @@ int spi_flash_cmd_wait_ready(struct spi_flash
>> *flash, unsigned long timeout)
>> unsigned long timebase;
>> int ret;
>> u8 status;
>> + u8 check_status = 0x0;
>> u8 poll_bit = STATUS_WIP;
>> u8 cmd = CMD_READ_STATUS;
>>
>> +#ifdef CONFIG_SPI_FLASH_STMICRO
>> + if (flash->size >= 0x4000000) {
>> + poll_bit = STATUS_PEC;
>> + check_status = poll_bit;
>> + cmd = CMD_FLAG_STATUS;
>> + }
>> +#endif
>> +
>
>
> Similarly to the bank addressing I think this might be better done as
> a 'poll method' rather than a hack for a particular flash type.
>
You mean to say read_status cmd and flag_status cmd need to find it on probe it self.?
Can you please explain "better done as a 'poll method' '
> Also I worry that in a system with more than one type of flash, this
> code will fire for all flash types.
Even if the system has multiple flashes of different size, we can probe once at a time, right?
--
Thanks,
Jagan.
More information about the U-Boot
mailing list