public inbox for linux-mtd@lists.infradead.org
 help / color / mirror / Atom feed
From: Changwoo Ryu <cwryu@debian.org>
To: mtd@infradead.org
Subject: kernel/jedec.c bug?
Date: 22 Feb 2001 10:31:51 +0900	[thread overview]
Message-ID: <871ysrcxko.fsf@hades.idis.co.kr> (raw)

Hello,

I'm using the MachZ (x86 compatible PC-on-a-chip) evaluation system.
It is equipped with AM29F017 2MB (8bit * 256k) flash, which is
compatible with AM29F016 except the device ID (0x3D).  But I failed to
erase a block at flash_earse() function in jedec.c.  Here it is:


         /* During erase bit 7 is held low and bit 6 toggles, we watch this,
            should it stop toggling or go high then the erase is completed,
            or this is not really flash ;> */
         Last[0] = map->read32(map,(chip->base >> chip->addrshift) + chip->start
 + off);
         Last[1] = map->read32(map,(chip->base >> chip->addrshift) + chip->start
 + off);
         Last[2] = map->read32(map,(chip->base >> chip->addrshift) + chip->start
 + off);
         Count = 3;
         while (todo_left != 0)
         {
            for (J = 0; J != 4; J++)
            {
               __u8 Byte1 = (Last[(Count-1)%4] >> (J*8)) & 0xFF;
               __u8 Byte2 = (Last[(Count-2)%4] >> (J*8)) & 0xFF;
               __u8 Byte3 = (Last[(Count-3)%4] >> (J*8)) & 0xFF;
               if (todo[J] == 0)
                  continue;
               
               if ((Byte1 & (1 << 7)) == 0 && Byte1 != Byte2)
               {
//                printk("Check %x %x %x\n",(short)J,(short)Byte1,(short)Byte2);
                  continue;
               }
               
               if (Byte1 == Byte2)
               {
                  jedec_flash_failed(Byte3);
                  return -EIO;
               }


Last[0], Last[1] and Last[2] for my flash are all "0x084C084C".  It's
ok, isn't?  Reading 32bit data requires 4 reads (0x08, 0x4C, 0x08,
0x4C) from the 8bit flash.  So when the erasure is not completed, the
two 32bit values should be same.

-- 
Changwoo Ryu


To unsubscribe, send "unsubscribe mtd" to majordomo@infradead.org

             reply	other threads:[~2001-02-22  1:35 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-02-22  1:31 Changwoo Ryu [this message]
2001-02-26 12:30 ` kernel/jedec.c bug? Changwoo Ryu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=871ysrcxko.fsf@hades.idis.co.kr \
    --to=cwryu@debian.org \
    --cc=mtd@infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox