[U-Boot] ATMEL AT45DB041D spi flash and gplugd

Jagan Teki jagannadh.teki at gmail.com
Mon Mar 17 17:55:28 CET 2014


Hi Yogi,

On Tue, Feb 18, 2014 at 6:55 AM, yogi p <yogi.p2182 at gmail.com> wrote:
> Hi Jagan,
>
> On Sun, Feb 16, 2014 at 10:08 PM, Jagan Teki <jagannadh.teki at gmail.com>
> wrote:
>>
>> Hi Yogi,
>>
>> On Sun, Feb 9, 2014 at 2:10 PM, Yogi P <yogi.p2182 at gmail.com> wrote:
>> > Hello all,
>> >
>> > From following commit spi write/erase times out on gplugd which uses
>> > ATMEL
>> > AT45DB041D spi flash.
>> >
>> >>commit f4f51a8ff894d34eb332f0d11f6c73c7bf509848
>> >>Author: Jagannadha Sutradharudu Teki <jaganna at xilinx.com>
>> >>Date:   Wed Oct 2 19:36:58 2013 +0530
>> >>
>> >>    sf: probe: Add support for erase sector selection flag
>> >>
>> >>    SECT_4K, SECT_32K and SECT_64K opeartions are performed to
>> >>    to specific flash by adding a SECT* flag on respective
>> >>    spi_flash_params.flag param.
>> >>
>> >>Signed-off-by: Jagannadha Sutradharudu Teki <jaganna at xilinx.com>
>> >
>> > Prior to this patch erase size was same as sector size; which is 64 *
>> > 1024 (64k).
>> > This 64K was replaced with 4k and timeout for erase started.
>> >
>> > If following patch is applied write/erase works well (See bottom) on top
>> > of
>> > above commit. But similar change on latest git head still has some
>> > problem
>> > with spi erase.
>>
>> Does this means CMD_ERASE_64K works on master?
>
>  No its not working on master.
>
>> Can you verify correctly - because we couldn't find any issues so far
>> as per as the sf_ops
>> code is concern.
>
> Its stopped working from  f4f51a8ff894d34eb332f0d11f6c73c7bf509848.
> But to get it working on this particular commit following patch is needed.
>
> But even with this patch, master is broken.
>
> Thanks
> Yogi
>>
>>
>> > diff --git a/drivers/mtd/spi/spi_flash_probe.c
>> > b/drivers/mtd/spi/spi_flash_probe.c
>> > index 9c2e115..9e1c4c5 100644
>> > --- a/drivers/mtd/spi/spi_flash_probe.c
>> > +++ b/drivers/mtd/spi/spi_flash_probe.c
>> > @@ -41,7 +41,7 @@ static const struct spi_flash_params
>> > spi_flash_params_table[] = {
>> >  #ifdef CONFIG_SPI_FLASH_ATMEL          /* ATMEL */
>> >         {"AT45DB011D",     0x1f2200, 0x0,       64 * 1024,     4,
>> > SECT_4K},
>> >         {"AT45DB021D",     0x1f2300, 0x0,       64 * 1024,     8,
>> > SECT_4K},
>> > -       {"AT45DB041D",     0x1f2400, 0x0,       64 * 1024,     8,
>> > SECT_4K},
>> > +       {"AT45DB041D",     0x1f2400, 0x0,       64 * 1024,     8,
>> > 0},
>> >         {"AT45DB081D",     0x1f2500, 0x0,       64 * 1024,    16,
>> > SECT_4K},
>> >         {"AT45DB161D",     0x1f2600, 0x0,       64 * 1024,    32,
>> > SECT_4K},
>> >         {"AT45DB321D",     0x1f2700, 0x0,       64 * 1024,    64,
>> > SECT_4K},

I'm recollecting bug information you pointed, please correct what I'm
saying here.

Current tree for AT45DB041D part has configured
flash->erase_cmd = CMD_ERASE_4K;
flash->erase_size = 4096;

The same configuration is not working for your board, is that true?
Did you see working tree in earlier tag releases?

-- 
Jagan.


More information about the U-Boot mailing list