flash status after unlocking

Dmitry Krivoschokov dkrivoschokov at dev.rtsoft.ru
Wed Aug 24 06:06:44 EDT 2005


    Hi all,

it appears that cfi flash unlocking routines always leaves a flash chip 
in status mode (if CONFIG_MTD_XIP is not set).
But in some cases it is desired that the chip remains in read array 
mode, for linear cramfs at least.
So I've added code to put a chip in read array mode after unlocking, see 
patch below (the patch against 2.4 kernel, sorry), tested on OMAP1610. 
The patch is for Intel's command set only,  though it is easy to add the 
fix to others.
If  no complaints for the fix I can test it with the latest kernel and 
submit a patch.

    Thanks,
       Dmitry

diff -upr linux-2.4.orig/drivers/mtd/chips/cfi_cmdset_0001.c 
linux-2.4/drivers/mtd/chips/cfi_cmdset_0001.c
--- linux-2.4.orig/drivers/mtd/chips/cfi_cmdset_0001.c  2005-04-06 
03:01:44.000000000 +0400
+++ linux-2.4/drivers/mtd/chips/cfi_cmdset_0001.c       2005-08-23 
15:31:31.000000000 +0400
@@ -1920,6 +1920,13 @@ static int __xipram do_xxlock_oneblock(s
        /* Done and happy. */
        chip->state = FL_STATUS;
        xip_enable(map, chip, adr);
+
+#ifndef CONFIG_MTD_XIP
+       if (chip->state != FL_POINT && chip->state != FL_READY) {
+               map_write(map, CMD(0xff), adr);
+               chip->state = FL_READY;
+       }
+#endif
        put_chip(map, chip, adr);
        spin_unlock(chip->mutex);
        return 0;





More information about the linux-mtd mailing list