[U-Boot] [PATCH 1/4] spiflash: at25: using common spi flash operation
Andreas Bießmann
andreas.devel at googlemail.com
Tue Aug 21 13:26:27 CEST 2012
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 at 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
More information about the U-Boot
mailing list