diff mbox

[U-Boot] ATMEL AT45DB041D spi flash and gplugd

Message ID 20140209084037.GA881@gmail.com
State Rejected
Delegated to: Jagannadha Sutradharudu Teki
Headers show

Commit Message

Yogi P Feb. 9, 2014, 8:40 a.m. UTC
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@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@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.

Thanks
Yogi

Comments

Jagan Teki Feb. 16, 2014, 4:38 p.m. UTC | #1
Hi Yogi,

On Sun, Feb 9, 2014 at 2:10 PM, Yogi P <yogi.p2182@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@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@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?
Can you verify correctly - because we couldn't find any issues so far
as per as the sf_ops
code is concern.

> 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},
>
> _______________________________________________
> U-Boot mailing list
> U-Boot@lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot


thanks!
Yogi P Feb. 18, 2014, 1:25 a.m. UTC | #2
Hi Jagan,

On Sun, Feb 16, 2014 at 10:08 PM, Jagan Teki <jagannadh.teki@gmail.com>wrote:

> Hi Yogi,
>
> On Sun, Feb 9, 2014 at 2:10 PM, Yogi P <yogi.p2182@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@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@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},
> >
> > _______________________________________________
> > U-Boot mailing list
> > U-Boot@lists.denx.de
> > http://lists.denx.de/mailman/listinfo/u-boot
>
>
> thanks!
> --
> Jagan.
>
Jagan Teki March 17, 2014, 4:55 p.m. UTC | #3
Hi Yogi,

On Tue, Feb 18, 2014 at 6:55 AM, yogi p <yogi.p2182@gmail.com> wrote:
> Hi Jagan,
>
> On Sun, Feb 16, 2014 at 10:08 PM, Jagan Teki <jagannadh.teki@gmail.com>
> wrote:
>>
>> Hi Yogi,
>>
>> On Sun, Feb 9, 2014 at 2:10 PM, Yogi P <yogi.p2182@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@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@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?
diff mbox

Patch

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},