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