Message ID | 1302524179-11468-1-git-send-email-hs@denx.de |
---|---|
State | Awaiting Upstream |
Delegated to: | Stefan Roese |
Headers | show |
On Monday 11 April 2011 14:16:19 Heiko Schocher wrote: > tested on the a4m072 board with a S29GL512P flash. > > flinfo without this patch > Bank # 1: CFI conformant flash (16 x 16) Size: 32 MB in 256 Sectors > AMD Standard command set, Manufacturer ID: 0x01, Device ID: 0x227E > Erase timeout: 16384 ms, write timeout: 2 ms > Buffer write timeout: 5 ms, buffer size: 32 bytes > [...] > > flinfo with this patch > Bank # 1: CFI conformant flash (16 x 16) Size: 32 MB in 256 Sectors > AMD Standard command set, Manufacturer ID: 0x01, Device ID: 0x227E2301 > Erase timeout: 16384 ms, write timeout: 2 ms > Buffer write timeout: 5 ms, buffer size: 32 bytes > [...] Applied to u-boot-cfi-flash/master. Thanks. Cheers, Stefan -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-0 Fax: (+49)-8142-66989-80 Email: office@denx.de
diff --git a/drivers/mtd/cfi_flash.c b/drivers/mtd/cfi_flash.c index 5788328..7617e0e 100644 --- a/drivers/mtd/cfi_flash.c +++ b/drivers/mtd/cfi_flash.c @@ -1202,8 +1202,9 @@ void flash_print_info (flash_info_t * info) info->manufacturer_id); printf (info->chipwidth == FLASH_CFI_16BIT ? "%04X" : "%02X", info->device_id); - if (info->device_id == 0x7E) { - printf("%04X", info->device_id2); + if ((info->device_id & 0xff) == 0x7E) { + printf(info->chipwidth == FLASH_CFI_16BIT ? "%04X" : "%02X", + info->device_id2); } printf ("\n Erase timeout: %ld ms, write timeout: %ld ms\n", info->erase_blk_tout, @@ -1599,6 +1600,14 @@ static void cmdset_amd_read_jedec_ids(flash_info_t *info) case FLASH_CFI_16BIT: info->device_id = flash_read_word (info, FLASH_OFFSET_DEVICE_ID); + if ((info->device_id & 0xff) == 0x7E) { + /* AMD 3-byte (expanded) device ids */ + info->device_id2 = flash_read_uchar (info, + FLASH_OFFSET_DEVICE_ID2); + info->device_id2 <<= 8; + info->device_id2 |= flash_read_uchar (info, + FLASH_OFFSET_DEVICE_ID3); + } break; default: break;
tested on the a4m072 board with a S29GL512P flash. flinfo without this patch Bank # 1: CFI conformant flash (16 x 16) Size: 32 MB in 256 Sectors AMD Standard command set, Manufacturer ID: 0x01, Device ID: 0x227E Erase timeout: 16384 ms, write timeout: 2 ms Buffer write timeout: 5 ms, buffer size: 32 bytes [...] flinfo with this patch Bank # 1: CFI conformant flash (16 x 16) Size: 32 MB in 256 Sectors AMD Standard command set, Manufacturer ID: 0x01, Device ID: 0x227E2301 Erase timeout: 16384 ms, write timeout: 2 ms Buffer write timeout: 5 ms, buffer size: 32 bytes [...] Signed-off-by: Heiko Schocher <hs@denx.de> --- changes for v2: - added flinfo output in commit message drivers/mtd/cfi_flash.c | 13 +++++++++++-- 1 files changed, 11 insertions(+), 2 deletions(-)