public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 1/4] spiflash: at25: using common spi flash operation
@ 2012-08-20  6:32 Bo Shen
  2012-08-20  6:32 ` [U-Boot] [PATCH 2/4] spi: atmel: add WDRBT bit to avoid receive overrun Bo Shen
                   ` (4 more replies)
  0 siblings, 5 replies; 15+ messages in thread
From: Bo Shen @ 2012-08-20  6:32 UTC (permalink / raw)
  To: u-boot

Using common spi flash operation function to replace private operation
funtion

This patch is based on http://patchwork.ozlabs.org/patch/177896/
which has been merged by Mike frysinger

Signed-off-by: Bo Shen <voice.shen@atmel.com>
---
 drivers/mtd/spi/atmel.c |   11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/drivers/mtd/spi/atmel.c b/drivers/mtd/spi/atmel.c
index 89ebe9d..006f6d5 100644
--- a/drivers/mtd/spi/atmel.c
+++ b/drivers/mtd/spi/atmel.c
@@ -518,13 +518,19 @@ struct spi_flash *spi_flash_probe_atmel(struct spi_slave *spi, u8 *idcode)
 			asf->flash.erase = dataflash_erase_p2;
 		}
 
+		asf->flash.page_size = page_size;
+		asf->flash.sector_size = page_size;
 		break;
 
 	case DF_FAMILY_AT26F:
 	case DF_FAMILY_AT26DF:
 		asf->flash.read = spi_flash_cmd_read_fast;
-		asf->flash.write = dataflash_write_p2;
-		asf->flash.erase = dataflash_erase_p2;
+		asf->flash.write = spi_flash_cmd_write_multi;
+		asf->flash.erase = spi_flash_cmd_erase;
+		asf->flash.page_size = page_size;
+		asf->flash.sector_size = 4096;
+		/* clear SPRL# bit for locked flash */
+		spi_flash_cmd_write_status(&asf->flash, 0);
 		break;
 
 	default:
@@ -532,7 +538,6 @@ struct spi_flash *spi_flash_probe_atmel(struct spi_slave *spi, u8 *idcode)
 		goto err;
 	}
 
-	asf->flash.sector_size = page_size;
 	asf->flash.size = page_size * params->pages_per_block
 				* params->blocks_per_sector
 				* params->nr_sectors;
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH 2/4] spi: atmel: add WDRBT bit to avoid receive overrun
  2012-08-20  6:32 [U-Boot] [PATCH 1/4] spiflash: at25: using common spi flash operation Bo Shen
@ 2012-08-20  6:32 ` Bo Shen
  2012-08-21 11:11   ` Andreas Bießmann
  2012-08-20  6:32 ` [U-Boot] [PATCH 3/4] atmel: at91sam9x5: fix name error for spi Bo Shen
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 15+ messages in thread
From: Bo Shen @ 2012-08-20  6:32 UTC (permalink / raw)
  To: u-boot

The atmel at91sam9x5 series spi has feature to avoid receive overren

Using the patch to enable it

Signed-off-by: Bo Shen <voice.shen@atmel.com>
---
 drivers/spi/atmel_spi.c |    3 +++
 drivers/spi/atmel_spi.h |    1 +
 2 files changed, 4 insertions(+)

diff --git a/drivers/spi/atmel_spi.c b/drivers/spi/atmel_spi.c
index 83ef8e8..c7a51f7 100644
--- a/drivers/spi/atmel_spi.c
+++ b/drivers/spi/atmel_spi.c
@@ -92,6 +92,9 @@ struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs,
 	as->slave.cs = cs;
 	as->regs = regs;
 	as->mr = ATMEL_SPI_MR_MSTR | ATMEL_SPI_MR_MODFDIS
+#if defined(CONFIG_AT91SAM9X5)
+			| ATMEL_SPI_MR_WDRBT
+#endif
 			| ATMEL_SPI_MR_PCS(~(1 << cs) & 0xf);
 	spi_writel(as, CSR(cs), csrx);
 
diff --git a/drivers/spi/atmel_spi.h b/drivers/spi/atmel_spi.h
index 8b69a6d..057de9a 100644
--- a/drivers/spi/atmel_spi.h
+++ b/drivers/spi/atmel_spi.h
@@ -26,6 +26,7 @@
 #define ATMEL_SPI_MR_PCSDEC		(1 << 2)
 #define ATMEL_SPI_MR_FDIV		(1 << 3)
 #define ATMEL_SPI_MR_MODFDIS		(1 << 4)
+#define ATMEL_SPI_MR_WDRBT		(1 << 5)
 #define ATMEL_SPI_MR_LLB		(1 << 7)
 #define ATMEL_SPI_MR_PCS(x)		(((x) & 15) << 16)
 #define ATMEL_SPI_MR_DLYBCS(x)		((x) << 24)
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH 3/4] atmel: at91sam9x5: fix name error for spi
  2012-08-20  6:32 [U-Boot] [PATCH 1/4] spiflash: at25: using common spi flash operation Bo Shen
  2012-08-20  6:32 ` [U-Boot] [PATCH 2/4] spi: atmel: add WDRBT bit to avoid receive overrun Bo Shen
@ 2012-08-20  6:32 ` Bo Shen
  2012-08-21 11:04   ` Andreas Bießmann
  2012-08-20  6:32 ` [U-Boot] [PATCH 4/4] atmel: at91sam9x5: add spi flash boot support Bo Shen
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 15+ messages in thread
From: Bo Shen @ 2012-08-20  6:32 UTC (permalink / raw)
  To: u-boot

Fix the name error

Signed-off-by: Bo Shen <voice.shen@atmel.com>
---
 arch/arm/cpu/arm926ejs/at91/at91sam9x5_devices.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm/cpu/arm926ejs/at91/at91sam9x5_devices.c b/arch/arm/cpu/arm926ejs/at91/at91sam9x5_devices.c
index 7558ca2..6d77219 100644
--- a/arch/arm/cpu/arm926ejs/at91/at91sam9x5_devices.c
+++ b/arch/arm/cpu/arm926ejs/at91/at91sam9x5_devices.c
@@ -121,7 +121,7 @@ void at91_serial2_hw_init(void)
 #ifdef CONFIG_ATMEL_SPI
 void at91_spi0_hw_init(unsigned long cs_mask)
 {
-	at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_PMC_BASE;
+	at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC;
 
 	at91_set_a_periph(AT91_PIO_PORTA, 11, 0);	/* SPI0_MISO */
 	at91_set_a_periph(AT91_PIO_PORTA, 12, 0);	/* SPI0_MOSI */
@@ -150,7 +150,7 @@ void at91_spi0_hw_init(unsigned long cs_mask)
 
 void at91_spi1_hw_init(unsigned long cs_mask)
 {
-	at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_PMC_BASE;
+	at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC;
 
 	at91_set_b_periph(AT91_PIO_PORTA, 21, 0);	/* SPI1_MISO */
 	at91_set_b_periph(AT91_PIO_PORTA, 22, 0);	/* SPI1_MOSI */
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH 4/4] atmel: at91sam9x5: add spi flash boot support
  2012-08-20  6:32 [U-Boot] [PATCH 1/4] spiflash: at25: using common spi flash operation Bo Shen
  2012-08-20  6:32 ` [U-Boot] [PATCH 2/4] spi: atmel: add WDRBT bit to avoid receive overrun Bo Shen
  2012-08-20  6:32 ` [U-Boot] [PATCH 3/4] atmel: at91sam9x5: fix name error for spi Bo Shen
@ 2012-08-20  6:32 ` Bo Shen
  2012-08-21 11:26 ` [U-Boot] [PATCH 1/4] spiflash: at25: using common spi flash operation Andreas Bießmann
  2012-09-17 17:03 ` Andreas Bießmann
  4 siblings, 0 replies; 15+ messages in thread
From: Bo Shen @ 2012-08-20  6:32 UTC (permalink / raw)
  To: u-boot

Add at91sam9x5 series spi flash boot support

Using at91sam9x5ek_spiflash to configure, then it can boot from at25df321
serial flash

SPI mater work in 30Mhz speed, while not 1Mhz speed. This will base on
atmel_spi patch, or else, it will occur receive overrun

Signed-off-by: Bo Shen <voice.shen@atmel.com>
---
 boards.cfg                     |    1 +
 include/configs/at91sam9x5ek.h |   20 ++++++++++++++++----
 2 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/boards.cfg b/boards.cfg
index edd750c..343ff0c 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -91,6 +91,7 @@ at91sam9m10g45ek_nandflash   arm         arm926ejs   at91sam9m10g45ek    atmel
 at91sam9rlek_dataflash       arm         arm926ejs   at91sam9rlek        atmel          at91        at91sam9rlek:AT91SAM9RL,SYS_USE_DATAFLASH
 at91sam9rlek_nandflash       arm         arm926ejs   at91sam9rlek        atmel          at91        at91sam9rlek:AT91SAM9RL,SYS_USE_NANDFLASH
 at91sam9x5ek_nandflash       arm         arm926ejs   at91sam9x5ek        atmel          at91        at91sam9x5ek:AT91SAM9X5,SYS_USE_NANDFLASH
+at91sam9x5ek_spiflash        arm         arm926ejs   at91sam9x5ek        atmel          at91        at91sam9x5ek:AT91SAM9X5,SYS_USE_SPIFLASH
 at91sam9xeek_dataflash_cs0   arm         arm926ejs   at91sam9260ek       atmel          at91        at91sam9260ek:AT91SAM9XE,SYS_USE_DATAFLASH_CS0
 at91sam9xeek_dataflash_cs1   arm         arm926ejs   at91sam9260ek       atmel          at91        at91sam9260ek:AT91SAM9XE,SYS_USE_DATAFLASH_CS1
 at91sam9xeek_nandflash       arm         arm926ejs   at91sam9260ek       atmel          at91        at91sam9260ek:AT91SAM9XE,SYS_USE_NANDFLASH
diff --git a/include/configs/at91sam9x5ek.h b/include/configs/at91sam9x5ek.h
index 82f6b48..5cae6bd 100644
--- a/include/configs/at91sam9x5ek.h
+++ b/include/configs/at91sam9x5ek.h
@@ -86,6 +86,7 @@
 #define CONFIG_CMD_PING
 #define CONFIG_CMD_DHCP
 #define CONFIG_CMD_NAND
+#define CONFIG_CMD_SF
 
 /* SDRAM */
 #define CONFIG_NR_DRAM_BANKS		1
@@ -96,12 +97,11 @@
 	(CONFIG_SYS_SDRAM_BASE + 4 * 1024 - GENERATED_GBL_DATA_SIZE)
 
 /* DataFlash */
-#ifdef CONFIG_ATMEL_SPI
-#define CONFIG_CMD_SF
-#define CONFIG_CMD_SPI
+#ifdef CONFIG_CMD_SF
+#define CONFIG_ATMEL_SPI
 #define CONFIG_SPI_FLASH
 #define CONFIG_SPI_FLASH_ATMEL
-#define CONFIG_SYS_MAX_DATAFLASH_BANKS
+#define CONFIG_SF_DEFAULT_SPEED		30000000
 #endif
 
 /* no NOR flash */
@@ -149,6 +149,18 @@
 #define CONFIG_BOOTCOMMAND	"nand read " \
 				"0x22000000 0x200000 0x300000; " \
 				"bootm 0x22000000"
+#else
+#ifdef CONFIG_SYS_USE_SPIFLASH
+/* bootstrap + u-boot + env + linux in spi flash */
+#define CONFIG_ENV_IS_IN_SPI_FLASH
+#define CONFIG_ENV_OFFSET	0x5000
+#define CONFIG_ENV_SIZE		0x3000
+#define CONFIG_ENV_SECT_SIZE	0x1000
+#define CONFIG_ENV_SPI_MAX_HZ	30000000
+#define CONFIG_BOOTCOMMAND	"sf probe 0; " \
+				"sf read 0x22000000 0x100000 0x300000; " \
+				"bootm 0x22000000"
+#endif
 #endif
 
 #define CONFIG_BOOTARGS		"mem=128M console=ttyS0,115200 " \
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH 3/4] atmel: at91sam9x5: fix name error for spi
  2012-08-20  6:32 ` [U-Boot] [PATCH 3/4] atmel: at91sam9x5: fix name error for spi Bo Shen
@ 2012-08-21 11:04   ` Andreas Bießmann
  0 siblings, 0 replies; 15+ messages in thread
From: Andreas Bießmann @ 2012-08-21 11:04 UTC (permalink / raw)
  To: u-boot

Dear Bo Shen,

On 20.08.2012 08:32, Bo Shen wrote:
> Fix the name error
> 
> Signed-off-by: Bo Shen <voice.shen@atmel.com>
> ---

applied to u-boot-atmel/master, thanks!

Best regards

Andreas Bie?mann

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH 2/4] spi: atmel: add WDRBT bit to avoid receive overrun
  2012-08-20  6:32 ` [U-Boot] [PATCH 2/4] spi: atmel: add WDRBT bit to avoid receive overrun Bo Shen
@ 2012-08-21 11:11   ` Andreas Bießmann
  2012-08-21 18:56     ` Mike Frysinger
  0 siblings, 1 reply; 15+ messages in thread
From: Andreas Bießmann @ 2012-08-21 11:11 UTC (permalink / raw)
  To: u-boot

Dear Bo Shen,

On 20.08.2012 08:32, Bo Shen wrote:
> The atmel at91sam9x5 series spi has feature to avoid receive overren
> 
> Using the patch to enable it
> 
> Signed-off-by: Bo Shen <voice.shen@atmel.com>

Acked-by: Andreas Bie?mann <andreas.devel@googlemail.com>

Mike, will you take this patch?

Best regards

Andreas Bie?mann
> ---
>  drivers/spi/atmel_spi.c |    3 +++
>  drivers/spi/atmel_spi.h |    1 +
>  2 files changed, 4 insertions(+)
> 
> diff --git a/drivers/spi/atmel_spi.c b/drivers/spi/atmel_spi.c
> index 83ef8e8..c7a51f7 100644
> --- a/drivers/spi/atmel_spi.c
> +++ b/drivers/spi/atmel_spi.c
> @@ -92,6 +92,9 @@ struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs,
>  	as->slave.cs = cs;
>  	as->regs = regs;
>  	as->mr = ATMEL_SPI_MR_MSTR | ATMEL_SPI_MR_MODFDIS
> +#if defined(CONFIG_AT91SAM9X5)
> +			| ATMEL_SPI_MR_WDRBT
> +#endif
>  			| ATMEL_SPI_MR_PCS(~(1 << cs) & 0xf);
>  	spi_writel(as, CSR(cs), csrx);
>  
> diff --git a/drivers/spi/atmel_spi.h b/drivers/spi/atmel_spi.h
> index 8b69a6d..057de9a 100644
> --- a/drivers/spi/atmel_spi.h
> +++ b/drivers/spi/atmel_spi.h
> @@ -26,6 +26,7 @@
>  #define ATMEL_SPI_MR_PCSDEC		(1 << 2)
>  #define ATMEL_SPI_MR_FDIV		(1 << 3)
>  #define ATMEL_SPI_MR_MODFDIS		(1 << 4)
> +#define ATMEL_SPI_MR_WDRBT		(1 << 5)
>  #define ATMEL_SPI_MR_LLB		(1 << 7)
>  #define ATMEL_SPI_MR_PCS(x)		(((x) & 15) << 16)
>  #define ATMEL_SPI_MR_DLYBCS(x)		((x) << 24)
> 

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH 1/4] spiflash: at25: using common spi flash operation
  2012-08-20  6:32 [U-Boot] [PATCH 1/4] spiflash: at25: using common spi flash operation Bo Shen
                   ` (2 preceding siblings ...)
  2012-08-20  6:32 ` [U-Boot] [PATCH 4/4] atmel: at91sam9x5: add spi flash boot support Bo Shen
@ 2012-08-21 11:26 ` Andreas Bießmann
  2012-08-21 18:55   ` Mike Frysinger
  2012-08-22  1:33   ` Bo Shen
  2012-09-17 17:03 ` Andreas Bießmann
  4 siblings, 2 replies; 15+ messages in thread
From: Andreas Bießmann @ 2012-08-21 11:26 UTC (permalink / raw)
  To: u-boot

Dear Bo Shen,

On 20.08.2012 08:32, Bo Shen wrote:
> Using common spi flash operation function to replace private operation
> funtion
> 
> This patch is based on http://patchwork.ozlabs.org/patch/177896/
> which has been merged by Mike frysinger

Mike, do you think this is a fix? Should it go into 2012.10? Will you
take it?

> Signed-off-by: Bo Shen <voice.shen@atmel.com>
> ---
>  drivers/mtd/spi/atmel.c |   11 ++++++++---
>  1 file changed, 8 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/mtd/spi/atmel.c b/drivers/mtd/spi/atmel.c
> index 89ebe9d..006f6d5 100644
> --- a/drivers/mtd/spi/atmel.c
> +++ b/drivers/mtd/spi/atmel.c
> @@ -518,13 +518,19 @@ struct spi_flash *spi_flash_probe_atmel(struct spi_slave *spi, u8 *idcode)
>  			asf->flash.erase = dataflash_erase_p2;
>  		}
>  
> +		asf->flash.page_size = page_size;
> +		asf->flash.sector_size = page_size;
>  		break;
>  
>  	case DF_FAMILY_AT26F:
>  	case DF_FAMILY_AT26DF:
>  		asf->flash.read = spi_flash_cmd_read_fast;
> -		asf->flash.write = dataflash_write_p2;
> -		asf->flash.erase = dataflash_erase_p2;
> +		asf->flash.write = spi_flash_cmd_write_multi;
> +		asf->flash.erase = spi_flash_cmd_erase;
> +		asf->flash.page_size = page_size;
> +		asf->flash.sector_size = 4096;

why do you take fixed value for sector size here?

> +		/* clear SPRL# bit for locked flash */
> +		spi_flash_cmd_write_status(&asf->flash, 0);
>  		break;
>  
>  	default:
> @@ -532,7 +538,6 @@ struct spi_flash *spi_flash_probe_atmel(struct spi_slave *spi, u8 *idcode)
>  		goto err;
>  	}
>  
> -	asf->flash.sector_size = page_size;
>  	asf->flash.size = page_size * params->pages_per_block
>  				* params->blocks_per_sector
>  				* params->nr_sectors;

And here you correlate number of sectors with page size ... but we may
have page_size != sector_size for some at26 devices, aren't we?

Best regards

Andreas Bie?mann

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH 1/4] spiflash: at25: using common spi flash operation
  2012-08-21 11:26 ` [U-Boot] [PATCH 1/4] spiflash: at25: using common spi flash operation Andreas Bießmann
@ 2012-08-21 18:55   ` Mike Frysinger
  2012-08-24  9:51     ` Bo Shen
  2012-08-22  1:33   ` Bo Shen
  1 sibling, 1 reply; 15+ messages in thread
From: Mike Frysinger @ 2012-08-21 18:55 UTC (permalink / raw)
  To: u-boot

On Tuesday 21 August 2012 07:26:27 Andreas Bie?mann wrote:
> On 20.08.2012 08:32, Bo Shen wrote:
> > Using common spi flash operation function to replace private operation
> > funtion
> > 
> > This patch is based on http://patchwork.ozlabs.org/patch/177896/
> > which has been merged by Mike frysinger
> 
> Mike, do you think this is a fix? Should it go into 2012.10? Will you
> take it?

i'll take care of merging the changes to drivers/mtd/spi/*, but always happy 
to see people help to review the changes :).

especially with the atmel driver as their dataflashes have the unique command 
set :(.
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120821/aa857c4d/attachment.pgp>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH 2/4] spi: atmel: add WDRBT bit to avoid receive overrun
  2012-08-21 11:11   ` Andreas Bießmann
@ 2012-08-21 18:56     ` Mike Frysinger
  2012-08-24  9:46       ` Bo Shen
  2012-08-27 10:46       ` Andreas Bießmann
  0 siblings, 2 replies; 15+ messages in thread
From: Mike Frysinger @ 2012-08-21 18:56 UTC (permalink / raw)
  To: u-boot

On Tuesday 21 August 2012 07:11:18 Andreas Bie?mann wrote:
> On 20.08.2012 08:32, Bo Shen wrote:
> > The atmel at91sam9x5 series spi has feature to avoid receive overren
> > 
> > Using the patch to enable it
> > 
> > Signed-off-by: Bo Shen <voice.shen@atmel.com>
> 
> Acked-by: Andreas Bie?mann <andreas.devel@googlemail.com>
> 
> Mike, will you take this patch?

for SoC drivers, sometimes i'll help review, but i'd expect it to be merged 
through the respective architecture tree.  i've only been sheriffing the spi 
core changes.
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120821/cdaa8a4b/attachment.pgp>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH 1/4] spiflash: at25: using common spi flash operation
  2012-08-21 11:26 ` [U-Boot] [PATCH 1/4] spiflash: at25: using common spi flash operation Andreas Bießmann
  2012-08-21 18:55   ` Mike Frysinger
@ 2012-08-22  1:33   ` Bo Shen
  2012-08-27 11:29     ` Andreas Bießmann
  1 sibling, 1 reply; 15+ messages in thread
From: Bo Shen @ 2012-08-22  1:33 UTC (permalink / raw)
  To: u-boot

Hi Andreas,

On 8/21/2012 19:26, Andreas Bie?mann wrote:
> Dear Bo Shen,
>
> On 20.08.2012 08:32, Bo Shen wrote:
>> Using common spi flash operation function to replace private operation
>> funtion
>>
>> This patch is based on http://patchwork.ozlabs.org/patch/177896/
>> which has been merged by Mike frysinger
>
> Mike, do you think this is a fix? Should it go into 2012.10? Will you
> take it?
>
>> Signed-off-by: Bo Shen <voice.shen@atmel.com>
>> ---
>>   drivers/mtd/spi/atmel.c |   11 ++++++++---
>>   1 file changed, 8 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/mtd/spi/atmel.c b/drivers/mtd/spi/atmel.c
>> index 89ebe9d..006f6d5 100644
>> --- a/drivers/mtd/spi/atmel.c
>> +++ b/drivers/mtd/spi/atmel.c
>> @@ -518,13 +518,19 @@ struct spi_flash *spi_flash_probe_atmel(struct spi_slave *spi, u8 *idcode)
>>   			asf->flash.erase = dataflash_erase_p2;
>>   		}
>>
>> +		asf->flash.page_size = page_size;
>> +		asf->flash.sector_size = page_size;
>>   		break;
>>
>>   	case DF_FAMILY_AT26F:
>>   	case DF_FAMILY_AT26DF:
>>   		asf->flash.read = spi_flash_cmd_read_fast;
>> -		asf->flash.write = dataflash_write_p2;
>> -		asf->flash.erase = dataflash_erase_p2;
>> +		asf->flash.write = spi_flash_cmd_write_multi;
>> +		asf->flash.erase = spi_flash_cmd_erase;
>> +		asf->flash.page_size = page_size;
>> +		asf->flash.sector_size = 4096;
>
> why do you take fixed value for sector size here?

The fixed number fit for both AT25 and AT26 serials. So, I take it.

Actually, we can calculate it as:
asf->flash.sector_size = page_size * params->pages_per_block * 
params->blocks_per_sector

So, may I need to change it?

>
>> +		/* clear SPRL# bit for locked flash */
>> +		spi_flash_cmd_write_status(&asf->flash, 0);
>>   		break;
>>
>>   	default:
>> @@ -532,7 +538,6 @@ struct spi_flash *spi_flash_probe_atmel(struct spi_slave *spi, u8 *idcode)
>>   		goto err;
>>   	}
>>
>> -	asf->flash.sector_size = page_size;
>>   	asf->flash.size = page_size * params->pages_per_block
>>   				* params->blocks_per_sector
>>   				* params->nr_sectors;
>
> And here you correlate number of sectors with page size ... but we may
> have page_size != sector_size for some at26 devices, aren't we?

This is from old driver and this line is moved away.
For at26 devices, it is used the fixed number 4096 for sector size.
Please take following as a reference.
---------------------------------------------
    	case DF_FAMILY_AT26F:
	case DF_FAMILY_AT26DF:
    		asf->flash.read = spi_flash_cmd_read_fast;
  -		asf->flash.write = dataflash_write_p2;
  -		asf->flash.erase = dataflash_erase_p2;
  +		asf->flash.write = spi_flash_cmd_write_multi;
  +		asf->flash.erase = spi_flash_cmd_erase;
  +		asf->flash.page_size = page_size;
  +		asf->flash.sector_size = 4096;
---------------------------------------------

>
> Best regards
>
> Andreas Bie?mann
>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH 2/4] spi: atmel: add WDRBT bit to avoid receive overrun
  2012-08-21 18:56     ` Mike Frysinger
@ 2012-08-24  9:46       ` Bo Shen
  2012-08-27 10:46       ` Andreas Bießmann
  1 sibling, 0 replies; 15+ messages in thread
From: Bo Shen @ 2012-08-24  9:46 UTC (permalink / raw)
  To: u-boot

Hi Andreas,

On 8/22/2012 2:56, Mike Frysinger wrote:
> On Tuesday 21 August 2012 07:11:18 Andreas Bie?mann wrote:
>> On 20.08.2012 08:32, Bo Shen wrote:
>>> The atmel at91sam9x5 series spi has feature to avoid receive overren
>>>
>>> Using the patch to enable it
>>>
>>> Signed-off-by: Bo Shen <voice.shen@atmel.com>
>>
>> Acked-by: Andreas Bie?mann <andreas.devel@googlemail.com>
>>
>> Mike, will you take this patch?
>
> for SoC drivers, sometimes i'll help review, but i'd expect it to be merged
> through the respective architecture tree.  i've only been sheriffing the spi
> core changes.

If no problem, please take this patch?

> -mike
>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH 1/4] spiflash: at25: using common spi flash operation
  2012-08-21 18:55   ` Mike Frysinger
@ 2012-08-24  9:51     ` Bo Shen
  0 siblings, 0 replies; 15+ messages in thread
From: Bo Shen @ 2012-08-24  9:51 UTC (permalink / raw)
  To: u-boot

Hi Mike,

On 8/22/2012 2:55, Mike Frysinger wrote:
> On Tuesday 21 August 2012 07:26:27 Andreas Bie?mann wrote:
>> On 20.08.2012 08:32, Bo Shen wrote:
>>> Using common spi flash operation function to replace private operation
>>> funtion
>>>
>>> This patch is based on http://patchwork.ozlabs.org/patch/177896/
>>> which has been merged by Mike frysinger
>>
>> Mike, do you think this is a fix? Should it go into 2012.10? Will you
>> take it?
>
> i'll take care of merging the changes to drivers/mtd/spi/*, but always happy
> to see people help to review the changes :).
>
> especially with the atmel driver as their dataflashes have the unique command
> set :(.

For atmel at25 and at26 series spi flash, they can support standard spi 
flash operation. So, this patch intent to use common spi flash operation.

Will this patch be took?

> -mike
>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH 2/4] spi: atmel: add WDRBT bit to avoid receive overrun
  2012-08-21 18:56     ` Mike Frysinger
  2012-08-24  9:46       ` Bo Shen
@ 2012-08-27 10:46       ` Andreas Bießmann
  1 sibling, 0 replies; 15+ messages in thread
From: Andreas Bießmann @ 2012-08-27 10:46 UTC (permalink / raw)
  To: u-boot

Dear Mike Frysinger,

On 21.08.2012 20:56, Mike Frysinger wrote:
> On Tuesday 21 August 2012 07:11:18 Andreas Bie?mann wrote:
>> On 20.08.2012 08:32, Bo Shen wrote:
>>> The atmel at91sam9x5 series spi has feature to avoid receive overren
>>>
>>> Using the patch to enable it
>>>
>>> Signed-off-by: Bo Shen <voice.shen@atmel.com>
>>
>> Acked-by: Andreas Bie?mann <andreas.devel@googlemail.com>
>>
>> Mike, will you take this patch?
> 
> for SoC drivers, sometimes i'll help review, but i'd expect it to be merged 
> through the respective architecture tree.  i've only been sheriffing the spi 
> core changes.

Ah, OK. So I'll take this one. I think this is a fix for a change
provided before MW close so this should go into this release.

Best regards

Andreas Bie?mann

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH 1/4] spiflash: at25: using common spi flash operation
  2012-08-22  1:33   ` Bo Shen
@ 2012-08-27 11:29     ` Andreas Bießmann
  0 siblings, 0 replies; 15+ messages in thread
From: Andreas Bießmann @ 2012-08-27 11:29 UTC (permalink / raw)
  To: u-boot

Dear Bo Shen,

On 22.08.2012 03:33, Bo Shen wrote:
> Hi Andreas,
> 
> On 8/21/2012 19:26, Andreas Bie?mann wrote:
>> Dear Bo Shen,
>>
>> On 20.08.2012 08:32, Bo Shen wrote:
>>> Using common spi flash operation function to replace private operation
>>> funtion
>>>
>>> This patch is based on http://patchwork.ozlabs.org/patch/177896/
>>> which has been merged by Mike frysinger
>>
>> Mike, do you think this is a fix? Should it go into 2012.10? Will you
>> take it?
>>
>>> Signed-off-by: Bo Shen <voice.shen@atmel.com>
>>> ---
>>>   drivers/mtd/spi/atmel.c |   11 ++++++++---
>>>   1 file changed, 8 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/drivers/mtd/spi/atmel.c b/drivers/mtd/spi/atmel.c
>>> index 89ebe9d..006f6d5 100644
>>> --- a/drivers/mtd/spi/atmel.c
>>> +++ b/drivers/mtd/spi/atmel.c
>>> @@ -518,13 +518,19 @@ struct spi_flash *spi_flash_probe_atmel(struct
>>> spi_slave *spi, u8 *idcode)
>>>               asf->flash.erase = dataflash_erase_p2;
>>>           }
>>>
>>> +        asf->flash.page_size = page_size;
>>> +        asf->flash.sector_size = page_size;
>>>           break;
>>>
>>>       case DF_FAMILY_AT26F:
>>>       case DF_FAMILY_AT26DF:
>>>           asf->flash.read = spi_flash_cmd_read_fast;
>>> -        asf->flash.write = dataflash_write_p2;
>>> -        asf->flash.erase = dataflash_erase_p2;
>>> +        asf->flash.write = spi_flash_cmd_write_multi;
>>> +        asf->flash.erase = spi_flash_cmd_erase;
>>> +        asf->flash.page_size = page_size;
>>> +        asf->flash.sector_size = 4096;
>>
>> why do you take fixed value for sector size here?
> 
> The fixed number fit for both AT25 and AT26 serials. So, I take it.
> 
> Actually, we can calculate it as:
q> asf->flash.sector_size = page_size * params->pages_per_block *
> params->blocks_per_sector
> So, may I need to change it?

I got it. The current driver for AT45 is written to only support page
erase, therefore the page_size == sector_size.
The AT26 on the other hand will now use the generic API which uses
sector erase instead. Therefore we have different values at all, am I right?

The only supported DF of at26 type is currently [1] which in fact has
4KiB erase size. Unfortunately others (at least [2]) have another
layout. But this could be adopted if such a chip is supported in the future.

>>
>>> +        /* clear SPRL# bit for locked flash */
>>> +        spi_flash_cmd_write_status(&asf->flash, 0);
>>>           break;
>>>
>>>       default:
>>> @@ -532,7 +538,6 @@ struct spi_flash *spi_flash_probe_atmel(struct
>>> spi_slave *spi, u8 *idcode)
>>>           goto err;
>>>       }
>>>
>>> -    asf->flash.sector_size = page_size;
>>>       asf->flash.size = page_size * params->pages_per_block
>>>                   * params->blocks_per_sector
>>>                   * params->nr_sectors;
>>
>> And here you correlate number of sectors with page size ... but we may
>> have page_size != sector_size for some at26 devices, aren't we?
> 
> This is from old driver and this line is moved away.
> For at26 devices, it is used the fixed number 4096 for sector size.
> Please take following as a reference.
> ---------------------------------------------
>        case DF_FAMILY_AT26F:
>     case DF_FAMILY_AT26DF:
>            asf->flash.read = spi_flash_cmd_read_fast;
>  -        asf->flash.write = dataflash_write_p2;
>  -        asf->flash.erase = dataflash_erase_p2;
>  +        asf->flash.write = spi_flash_cmd_write_multi;
>  +        asf->flash.erase = spi_flash_cmd_erase;
>  +        asf->flash.page_size = page_size;
>  +        asf->flash.sector_size = 4096;
> ---------------------------------------------

Yea, I got that already. The only thing I asked why you correlate these
sector related parameters (blocks_per_sector and nr_sectors) with the
page_size.

I think this change is Ok.

Acked-by: Andreas Bie?mann <andreas.devel@googlemail.com>

@Mike: As I understand you I should take patch #2 to #4 while you will
take this one, am I right?

[1] http://www.atmel.com/Images/doc3633.pdf
[2] http://www.atmel.com/Images/doc3495.pdf

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH 1/4] spiflash: at25: using common spi flash operation
  2012-08-20  6:32 [U-Boot] [PATCH 1/4] spiflash: at25: using common spi flash operation Bo Shen
                   ` (3 preceding siblings ...)
  2012-08-21 11:26 ` [U-Boot] [PATCH 1/4] spiflash: at25: using common spi flash operation Andreas Bießmann
@ 2012-09-17 17:03 ` Andreas Bießmann
  4 siblings, 0 replies; 15+ messages in thread
From: Andreas Bießmann @ 2012-09-17 17:03 UTC (permalink / raw)
  To: u-boot

Dear Bo Shen,

On 20.08.2012 08:32, Bo Shen wrote:
> Using common spi flash operation function to replace private operation
> funtion
>
> This patch is based on http://patchwork.ozlabs.org/patch/177896/
> which has been merged by Mike frysinger
>
> Signed-off-by: Bo Shen <voice.shen@atmel.com>
> ---

applied to u-boot-atmel/master, thanks!

Best regards

Andreas Bie?mann

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2012-09-17 17:03 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-20  6:32 [U-Boot] [PATCH 1/4] spiflash: at25: using common spi flash operation Bo Shen
2012-08-20  6:32 ` [U-Boot] [PATCH 2/4] spi: atmel: add WDRBT bit to avoid receive overrun Bo Shen
2012-08-21 11:11   ` Andreas Bießmann
2012-08-21 18:56     ` Mike Frysinger
2012-08-24  9:46       ` Bo Shen
2012-08-27 10:46       ` Andreas Bießmann
2012-08-20  6:32 ` [U-Boot] [PATCH 3/4] atmel: at91sam9x5: fix name error for spi Bo Shen
2012-08-21 11:04   ` Andreas Bießmann
2012-08-20  6:32 ` [U-Boot] [PATCH 4/4] atmel: at91sam9x5: add spi flash boot support Bo Shen
2012-08-21 11:26 ` [U-Boot] [PATCH 1/4] spiflash: at25: using common spi flash operation Andreas Bießmann
2012-08-21 18:55   ` Mike Frysinger
2012-08-24  9:51     ` Bo Shen
2012-08-22  1:33   ` Bo Shen
2012-08-27 11:29     ` Andreas Bießmann
2012-09-17 17:03 ` Andreas Bießmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox