public inbox for linux-mtd@lists.infradead.org
 help / color / mirror / Atom feed
From: Phil Wilshire <philwil@earthlink.net>
To: tharbaugh@lnxi.com, linux-mtd@lists.infradead.org
Subject: Re: Jffs2 write Error
Date: Mon, 17 Nov 2003 11:51:26 -0500	[thread overview]
Message-ID: <3FB8FC8E.B66AAFBB@earthlink.net> (raw)
In-Reply-To: 1069079731.14277.71.camel@tubarao


Hi Thane,

Thayne Harbaugh wrote:
> 
> On Sat, 2003-11-15 at 19:44, Phil Wilshire wrote:
> > I have found my original problem.
> >
> > The
> >    do_write_oneword
> > routine in
> >   cfi_cmdset_0002.c
> >
> > was being given values for datum wider than the 16 bits
> > we are allowed to write to the device.
> > The readback being limited to 16 bits, of course , failed to match
> >
> >
> > The data was being given to do_write_oneword by gc.c
> 
> Why is gc.c passing values that aren't appropriate?
I do not know . A quick scan of the software looked OK but the 
values in the actual hardware system were wrong.
It looked like only the call from gc.c produced the bad values.

> 
> > Here is the error output
> >
> > Last[3] is 66, datum is 8000066 addr 3028c
> > Write of 49 bytes at 0x00030264 failed. returned -5, retlen 40
> > jffs2_write_dirent in garbage_collect_dirent failed: -5
> >
> > As you can see 8000066 is impossible to write to a 16 bit device.
> 
> Quite obvious.
Yes i guess so. No one caught it on the first posting though.


> 
> > I put an extra check on the word size in do_write_oneword and the error just went away.
> 
> What check did you put in?  What do you mean by "the error just went

Here is the code I added. This is a hack/fix for just this system.

The diff is against the latest CVS 
============================================================================
--- drivers/mtd/chips/cfi_cmdset_0002.c.orig    Mon Nov 17 11:37:36 2003
+++ drivers/mtd/chips/cfi_cmdset_0002.c Mon Nov 17 11:45:00 2003
@@ -769,7 +769,20 @@
        int ta = 0;
        DECLARE_RETRY_CMD_CNT();

+
        adr += chip->start;
+
+        // PSW added sanity checks here...
+       if (cfi_buswidth_is_1()) {
+               if (datum & 0xffffff00) {
+                       datum &= 0x00ff;
+               }
+       }
+       if (cfi_buswidth_is_2()) {
+               if (datum & 0xffff0000) {
+                       datum &= 0xffff;
+               }
+       }

        cfi_spin_lock(chip->mutex);
        ret = get_chip(map, chip, adr, FL_WRITING);
==============================================================


> away?"  That sounds like a Heisenbug (race) more than a real solution.
Poor wording on my part. The fix was actually correcting the error. The system now works.

I do not claim that this is a real solution. However it does enable the process to work which is
what I was trying to do.

If this helps unstick some others who are having the same problem great.
I would  like to try to find out why gc.c does not 
set up the correct values in datum but I have not managed to trace that yet.

regards
  Phil Wilshire

-- 
SDCS -- System Design & Consulting Services LLC, http://www.sysdcs.com
** Embedded Linux Training **  email me for details  
630 Springhouse Sq., Leesburg VA 20175 t: 703 669 9766 f: 703 669 9768

  reply	other threads:[~2003-11-17 18:39 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-11-04 13:37 Jffs2 write Error Phil Wilshire
     [not found] ` <1068937683.17897.21.camel@localhost>
2003-11-16  2:44   ` Phil Wilshire
2003-11-17 14:35     ` Thayne Harbaugh
2003-11-17 16:51       ` Phil Wilshire [this message]
     [not found] <E1AHKvt-0001UM-VZ@pentafluge.infradead.org>
2003-11-06 18:51 ` Joan Dyer
2003-11-08  0:24   ` David Woodhouse
2003-11-10 17:56     ` Joan Dyer

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=3FB8FC8E.B66AAFBB@earthlink.net \
    --to=philwil@earthlink.net \
    --cc=linux-mtd@lists.infradead.org \
    --cc=tharbaugh@lnxi.com \
    /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