DEBUG_LOCK_BITS fix for Intel NOR flash
Jared Hulbert
jaredeh at gmail.com
Wed Apr 27 12:01:31 EDT 2005
On 4/22/05, Todd Poynor <tpoynor at mvista.com> wrote:
> This patch seems to correctly access block lock status bits for at least
> one Intel StrataFlash model. Without at least half of this patch (the
> chip->start adjustment), DEBUG_LOCK_BITS won't work well with
> multi-partition flash, at the least.
>
> I also needed to change the code to follow the flowchart given in a
> recent StrataFlash datasheet: write command 0x90 followed by the block
> address + 2, then read block address + 2. The old code writes command
> 0x90 followed by hardcoded address 0x55, then reads block address + 2.
>
> Can anybody verify whether Intel flash models exist that require the
> 0x55 address for block lock query? If so, know of any way to
> distinguish the two cases?
>
> Absent any dissent this patch will go into CVS. (Why all the concern
> over a debug feature? Because I want to also write code to query lock
> status for other reasons.) Thanks -- Todd
>
> Index: linux-mtd/drivers/mtd/chips/cfi_cmdset_0001.c
> ===================================================================
> --- linux-mtd.orig/drivers/mtd/chips/cfi_cmdset_0001.c 2005-04-22 19:15:05.000000000 +0000
> +++ linux-mtd/drivers/mtd/chips/cfi_cmdset_0001.c 2005-04-22 19:39:12.000000000 +0000
> @@ -1823,8 +1823,9 @@
> struct cfi_private *cfi = map->fldrv_priv;
> int status, ofs_factor = cfi->interleave * cfi->device_type;
>
> + adr += chip->start;
> xip_disable(map, chip, adr+(2*ofs_factor));
> - cfi_send_gen_cmd(0x90, 0x55, 0, map, cfi, cfi->device_type, NULL);
> + map_write(map, CMD(0x90), adr+(2*ofs_factor));
> chip->state = FL_JEDEC_QUERY;
> status = cfi_read_query(map, adr+(2*ofs_factor));
> xip_enable(map, chip, 0);
>
> ______________________________________________________
> Linux MTD discussion mailing list
> http://lists.infradead.org/mailman/listinfo/linux-mtd/
>
Not sure where the 0x55 came from. This code looks generic enough to
work for multi and single partition Intel flash.
More information about the linux-mtd
mailing list