mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-27 17:41:34 +00:00
mtd: cfi: Fix checking status register feature
Commit 72443c7f7d
("mtd: cfi: Add support for status register
polling") added a feature check to determine if status register
is available for certain flash chips. The "lower software bits"
register used to determine this feature is not backward compati-
ble. Older flash chips without this feature has reserved value
0xff. Instead of checking "lower software bits" register, use
CFI primary vendor-specific extended query. Since CFI version
1.4, software features can be read from offset 0x53 according to
document AN201168 from Cypress.
Signed-off-by: York Sun <york.sun@nxp.com>
CC: Marek Vasut <marek.vasut@gmail.com>
Tested-by: Marek Vasut <marek.vasut@gmail.com>
Signed-off-by: Stefan Roese <sr@denx.de>
This commit is contained in:
parent
b06c46de63
commit
2544f47078
1 changed files with 9 additions and 3 deletions
|
@ -1694,7 +1694,7 @@ static void cmdset_amd_read_jedec_ids(flash_info_t *info)
|
|||
{
|
||||
ushort bankId = 0;
|
||||
uchar manuId;
|
||||
uchar lsbits;
|
||||
uchar feature;
|
||||
|
||||
flash_write_cmd(info, 0, 0, AMD_CMD_RESET);
|
||||
flash_unlock_seq(info, 0);
|
||||
|
@ -1710,8 +1710,14 @@ static void cmdset_amd_read_jedec_ids(flash_info_t *info)
|
|||
}
|
||||
info->manufacturer_id = manuId;
|
||||
|
||||
lsbits = flash_read_uchar(info, FLASH_OFFSET_LOWER_SW_BITS);
|
||||
info->sr_supported = lsbits & BIT(0);
|
||||
debug("info->ext_addr = 0x%x, cfi_version = 0x%x\n",
|
||||
info->ext_addr, info->cfi_version);
|
||||
if (info->ext_addr && info->cfi_version >= 0x3134) {
|
||||
/* read software feature (at 0x53) */
|
||||
feature = flash_read_uchar(info, info->ext_addr + 0x13);
|
||||
debug("feature = 0x%x\n", feature);
|
||||
info->sr_supported = feature & 0x1;
|
||||
}
|
||||
|
||||
switch (info->chipwidth){
|
||||
case FLASH_CFI_8BIT:
|
||||
|
|
Loading…
Add table
Reference in a new issue