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
next prev parent 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.