[U-Boot] ATMEL AT45DB041D spi flash and gplugd

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

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!

Hi Jagan,
On Sun, Feb 16, 2014 at 10:08 PM, Jagan Teki jagannadh.teki@gmail.comwrote:
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.

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?
participants (3)
-
Jagan Teki
-
Yogi P
-
yogi p