mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-19 05:31:32 +00:00
sf: Fix to compute proper sector_size
Upto now flash sector_size is assigned from params which isn't necessarily a sector size from vendor, so based on the SECT_* flags from flash_params the erase_size will compute and it will become the sector_size finally. Bug report (from Bin Meng): => sf probe SF: Detected SST25VF016B with page size 256 Bytes, erase size 4 KiB, total 2 MiB, mapped at ffe00000 => sf erase 0 +100 SF: 65536 bytes @ 0x0 Erased: OK Signed-off-by: Jagannadha Sutradharudu Teki <jagannadh.teki@gmail.com> Reported-by: Bin Meng <bmeng.cn@gmail.com> Tested-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
parent
074eed5146
commit
c650ca7b4c
2 changed files with 5 additions and 1 deletions
|
@ -119,7 +119,8 @@ int sst_write_bp(struct spi_flash *flash, u32 offset, size_t len,
|
||||||
* @name: Device name ([MANUFLETTER][DEVTYPE][DENSITY][EXTRAINFO])
|
* @name: Device name ([MANUFLETTER][DEVTYPE][DENSITY][EXTRAINFO])
|
||||||
* @jedec: Device jedec ID (0x[1byte_manuf_id][2byte_dev_id])
|
* @jedec: Device jedec ID (0x[1byte_manuf_id][2byte_dev_id])
|
||||||
* @ext_jedec: Device ext_jedec ID
|
* @ext_jedec: Device ext_jedec ID
|
||||||
* @sector_size: Sector size of this device
|
* @sector_size: Isn't necessarily a sector size from vendor,
|
||||||
|
* the size listed here is what works with CMD_ERASE_64K
|
||||||
* @nr_sectors: No.of sectors on this device
|
* @nr_sectors: No.of sectors on this device
|
||||||
* @e_rd_cmd: Enum list for read commands
|
* @e_rd_cmd: Enum list for read commands
|
||||||
* @flags: Important param, for flash specific behaviour
|
* @flags: Important param, for flash specific behaviour
|
||||||
|
|
|
@ -187,6 +187,9 @@ static int spi_flash_validate_params(struct spi_slave *spi, u8 *idcode,
|
||||||
flash->erase_size = flash->sector_size;
|
flash->erase_size = flash->sector_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Now erase size becomes valid sector size */
|
||||||
|
flash->sector_size = flash->erase_size;
|
||||||
|
|
||||||
/* Look for the fastest read cmd */
|
/* Look for the fastest read cmd */
|
||||||
cmd = fls(params->e_rd_cmd & flash->spi->op_mode_rx);
|
cmd = fls(params->e_rd_cmd & flash->spi->op_mode_rx);
|
||||||
if (cmd) {
|
if (cmd) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue