public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Detlev Zundel <dzu@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot-Users] NAND and JFFS2
Date: Thu, 24 May 2007 16:36:08 +0200	[thread overview]
Message-ID: <m24pm2cmqv.fsf@sowhat.denx.de> (raw)
In-Reply-To: <131AF8573CF31945B5B11E4201D3F1E142BC58@mail3.Avidyne.com> (Matt Gessner's message of "Wed\, 23 May 2007 10\:14\:09 -0400")

Hi Matt,

> I'm using 1.2.0 on an AT91RM9200, along with linux 2.6.20-2 w/ patches
> from Maxim.
>
> I'm looking for info on how compatible the JFFS2 stuff is between u-boot
> and linux.

If that weren't the case what use would it be? ;)

> When I mount a partition (I have JFFS2 debugging turned on in the
> kernel), I get two kinds of error messages:
>
>
> OR
>
>
> I'm wondering if anyone can point me to what I'm doing wrong.

I am definitely not the guru on this, but I have a few suggestions.

First off, the JFFS2 (not NAND) cleanmarkers really were implemented
to circumvent strange problems with NOR flash not being erased
completely, so JFFS2 writes them _after_ erasing a sector.  In the
NAND implementation the designers use the out of band area of NAND to
store the cleanmarkers (don't ask me if they are technically needed
anymore).  So one potential problem is if you include cleanmarkers
without specifying "-n" to mkfs.jffs2 as this really produces output
for NOR flash - because the mkfs.jffs2 output does not include the OOB
area as such.

Some more theory.  You can always check the contents of your NAND
directly from U-Boot with "nand dump 0" for the first page for
example.

As you observed correctly, if you do a "nand erase clean", you will
write JFFS2 cleanmarkers in the OOB area of the NAND.  You can check
this with the "nand dump" command.  The cleanmarkers start with "19
85" (big endian).  Cf. jffs2_unknown_node in jffs2.h the next two
bytes are a node type and then we have a __u32 "totlen" field.

So now lets look at your output:

> 	"jffs2_check_nand_cleanmarker(): Cleanmarker node not detected
> in block at X"
> 	"OOB at X was ...."  (lots of FF)

Ok, probably you did a "nand erase" without clean and then this is to
be expected - but should only be a warning as JFFS2 will fix the
situation on the fly IIRC.

But this is interesting:

> 	"jffs2_check_nand_cleanmarker(): Cleanmarker node not detected
> in block at X"
> 	"OOB at X was ...."  (lots of data, not all FF)
> 	"CLEANMARKER node found at X has totlen 0xc != normal 0x0"

The "not all FF" probably is the cleanmarker from U-Boot which is
always 8 Bytes in U-Boot for NAND flash if I read current sources
correctly.

So the interesting part is to find out why the kernel sees 0xc bytes
here and expects 0.  If you find that out you should see mnore clearly
:)

Best wishes
  Detlev

-- 
Once the  implementation is  up and running,  it is still a trick to keep it
running.  In a normal,  closed implementation,  this is not a problem;  in a
system with metaobject protocols [..] there is the potential for spectacular
failure modes if certain situations are not properly anticipated.
                                       -- The Art of the Metaobject Protocol
--
DENX Software Engineering GmbH,      MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu at denx.de

      parent reply	other threads:[~2007-05-24 14:36 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-23 14:14 [U-Boot-Users] NAND and JFFS2 Matt Gessner
2007-05-23 11:56 ` Ulf Samuelsson
2007-05-24 13:41   ` Matt Gessner
2007-05-24 14:36 ` Detlev Zundel [this message]

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=m24pm2cmqv.fsf@sowhat.denx.de \
    --to=dzu@denx.de \
    --cc=u-boot@lists.denx.de \
    /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