Hi Jagan, On Fri, Apr 17, 2015 at 2:09 AM, Jagan Teki <jagannadh.t...@gmail.com> wrote: > Hi Bin, > > I think you have a different interpretation of sector size here- > > /* The size listed here is what works with SPINOR_OP_SE, which isn't > * necessarily called a "sector" by the vendor. > */ > Say for example SST25VF040B has 8 sectors of which each sector size is > 64 * 1024 out of this we can use 4K sector erase or 32K sector erase or > 64K sector erase through flags. > > Linux does follow the same- > /* SST -- large erase sizes are "overlays", "sectors" are 4K */ > { "sst25vf040b", INFO(0xbf258d, 0, 64 * 1024, 8, SECT_4K | > SST_WRITE) }, > { "sst25vf080b", INFO(0xbf258e, 0, 64 * 1024, 16, SECT_4K | > SST_WRITE) }, > { "sst25vf016b", INFO(0xbf2541, 0, 64 * 1024, 32, SECT_4K | > SST_WRITE) }, > { "sst25vf032b", INFO(0xbf254a, 0, 64 * 1024, 64, SECT_4K | > SST_WRITE) }, > > Please check it.
Yes, I know this pretty well. And I want to change this behavior, as my cover letter says. Currently the 'sf erase' command operates on a 64KB granularity, while the actual erase command is 4KB granularity, which is inconsistent and causes confusion. > On 10 December 2014 at 18:21, Bin Meng <bmeng...@gmail.com> wrote: >> Update SST25VF064C read command to RD_EXTN per datasheet. >> Also change flash sector size to 4KiB to match SECT_4K. >> >> Signed-off-by: Bin Meng <bmeng...@gmail.com> >> --- >> >> drivers/mtd/spi/sf_params.c | 20 ++++++++++---------- >> 1 file changed, 10 insertions(+), 10 deletions(-) >> >> diff --git a/drivers/mtd/spi/sf_params.c b/drivers/mtd/spi/sf_params.c >> index 30875b3..5482700 100644 >> --- a/drivers/mtd/spi/sf_params.c >> +++ b/drivers/mtd/spi/sf_params.c >> @@ -89,16 +89,16 @@ const struct spi_flash_params spi_flash_params_table[] = >> { >> {"N25Q1024A", 0x20bb21, 0x0, 64 * 1024, 2048, RD_FULL, >> WR_QPP | E_FSR | SECT_4K}, >> #endif >> #ifdef CONFIG_SPI_FLASH_SST /* SST */ >> - {"SST25VF040B", 0xbf258d, 0x0, 64 * 1024, 8, RD_NORM, >> SECT_4K | SST_WR}, >> - {"SST25VF080B", 0xbf258e, 0x0, 64 * 1024, 16, RD_NORM, >> SECT_4K | SST_WR}, >> - {"SST25VF016B", 0xbf2541, 0x0, 64 * 1024, 32, RD_NORM, >> SECT_4K | SST_WR}, >> - {"SST25VF032B", 0xbf254a, 0x0, 64 * 1024, 64, RD_NORM, >> SECT_4K | SST_WR}, >> - {"SST25VF064C", 0xbf254b, 0x0, 64 * 1024, 128, RD_NORM, >> SECT_4K}, >> - {"SST25WF512", 0xbf2501, 0x0, 64 * 1024, 1, RD_NORM, >> SECT_4K | SST_WR}, >> - {"SST25WF010", 0xbf2502, 0x0, 64 * 1024, 2, RD_NORM, >> SECT_4K | SST_WR}, >> - {"SST25WF020", 0xbf2503, 0x0, 64 * 1024, 4, RD_NORM, >> SECT_4K | SST_WR}, >> - {"SST25WF040", 0xbf2504, 0x0, 64 * 1024, 8, RD_NORM, >> SECT_4K | SST_WR}, >> - {"SST25WF080", 0xbf2505, 0x0, 64 * 1024, 16, RD_NORM, >> SECT_4K | SST_WR}, >> + {"SST25VF040B", 0xbf258d, 0x0, 4 * 1024, 128, RD_NORM, >> SECT_4K | SST_WR}, >> + {"SST25VF080B", 0xbf258e, 0x0, 4 * 1024, 256, RD_NORM, >> SECT_4K | SST_WR}, >> + {"SST25VF016B", 0xbf2541, 0x0, 4 * 1024, 512, RD_NORM, >> SECT_4K | SST_WR}, >> + {"SST25VF032B", 0xbf254a, 0x0, 4 * 1024, 1024, RD_NORM, >> SECT_4K | SST_WR}, >> + {"SST25VF064C", 0xbf254b, 0x0, 4 * 1024, 2048, RD_EXTN, >> SECT_4K}, >> + {"SST25WF512", 0xbf2501, 0x0, 4 * 1024, 16, RD_NORM, >> SECT_4K | SST_WR}, >> + {"SST25WF010", 0xbf2502, 0x0, 4 * 1024, 32, RD_NORM, >> SECT_4K | SST_WR}, >> + {"SST25WF020", 0xbf2503, 0x0, 4 * 1024, 64, RD_NORM, >> SECT_4K | SST_WR}, >> + {"SST25WF040", 0xbf2504, 0x0, 4 * 1024, 128, RD_NORM, >> SECT_4K | SST_WR}, >> + {"SST25WF080", 0xbf2505, 0x0, 4 * 1024, 256, RD_NORM, >> SECT_4K | SST_WR}, >> #endif >> #ifdef CONFIG_SPI_FLASH_WINBOND /* WINBOND */ >> {"W25P80", 0xef2014, 0x0, 64 * 1024, 16, RD_NORM, >> 0}, >> -- Regards, Bin _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot