From: Stefano Babic Date: Mon, 11 Dec 2006 23:22:42 +0000 (+0100) Subject: Fix cfi failure with Spansion Flash (Spansion Flash Devices have a different offset... X-Git-Url: http://git.dujemihanovic.xyz/?a=commitdiff_plain;h=d784fdb05900ada3686d5778783e1fb328e9fb66;p=u-boot.git Fix cfi failure with Spansion Flash (Spansion Flash Devices have a different offset to go into CFI mode) --- diff --git a/drivers/cfi_flash.c b/drivers/cfi_flash.c index 9b10220fc7..68a2c71bb9 100644 --- a/drivers/cfi_flash.c +++ b/drivers/cfi_flash.c @@ -1149,6 +1149,7 @@ static int flash_detect_cfi (flash_info_t * info) && flash_isequal (info, 0, FLASH_OFFSET_CFI_RESP + 1, 'R') && flash_isequal (info, 0, FLASH_OFFSET_CFI_RESP + 2, 'Y')) { info->interface = flash_read_ushort (info, 0, FLASH_OFFSET_INTERFACE); + info->cfi_offset=flash_offset_cfi[cfi_offset]; debug ("device interface is %d\n", info->interface); debug ("found port %d chip %d ", @@ -1193,7 +1194,7 @@ ulong flash_get_size (ulong base, int banknum) info->vendor = flash_read_ushort (info, 0, FLASH_OFFSET_PRIMARY_VENDOR); flash_read_jedec_ids (info); - flash_write_cmd (info, 0, FLASH_OFFSET_CFI, FLASH_CMD_CFI); + flash_write_cmd (info, 0, info->cfi_offset, FLASH_CMD_CFI); num_erase_regions = flash_read_uchar (info, FLASH_OFFSET_NUM_ERASE_REGIONS); info->ext_addr = flash_read_ushort (info, 0, diff --git a/include/flash.h b/include/flash.h index 9c57cbc427..8b7e824cca 100644 --- a/include/flash.h +++ b/include/flash.h @@ -51,6 +51,7 @@ typedef struct { ushort device_id2; /* extended device id */ ushort ext_addr; /* extended query table address */ ushort cfi_version; /* cfi version */ + ushort cfi_offset; /* offset for cfi query */ #endif } flash_info_t;