[U-Boot-Users] DiskOnChip, filesystems, and other booting options

Wolfgang Denk wd at denx.de
Fri Apr 25 10:13:42 CEST 2003


Dear Udi,

in message <01qhav4dc6n97kctt8ob8f9qsjrva8v3sm at 4ax.com> you wrote:
> 
> Yes, I know about these - what I meant was that the D.O.C support is
> still at
> the sector level, without any filesystem support.

Right.

IMHO all filesystem stuff for U-Boot should be split into a  separate
layer  (standalone  applications  acting  as  second  stage bootstrap
loaders).

> As far as I know (correct me if I'm wrong), NFTL does block-level
> remapping of
> bad blocks as well as wear levering by constantly changing the
> logical<>physical sector mapping on each write (so that if you write the
> same
> "logical" sector 1000 times it would spread over all the flash).

So they claim to do.

> If my understanding is accurate, how can I use the U-Boot raw sectors
> without
> disturbing the NFTL mapping that is handled by the Linux MTD package?

I think that the "binary partition" is not subject to this, i. e. you
can do direct I/O with the binary partition on the DoC.

> Besides, I've peeked into the D.O.C code in U-boot and it's full of NFTL
> references. In fact, as far as I can see, binary partitions are part of
> NFTL.

Yes.

> I've been looking at the files in fs/fdos/... and the CMD_FDC, CMD_FDOS
> code
> which calls them., and I see it contains complete code to read a FAT
> filesystem.

Something to be cleaned up and implemented in a more general way...


> I understand from the above that I don't need it, but just for the sake
> of
> understanding - couldn't I drop the NFTL+normal filesystem and use JFFS2
> over
> the raw D.O.C sectors, since JFFS2 does bad block mapping and wear
> levering
> (or does it??)

I don't know if it is possible to  extend  the  size  of  the  binary
partition to cover the whole device.

> OK, so where to I stand now?
> 1. My kernel correctly identifies the D.O.C but for some reason manages
> to
> mount it only partially. /dev/mtdchar0 is non functional, but /dev/nftla
> seems
> to work between reboots. I can correctly partition the D.O.C using fdisk,
>  and
> the format is kept when I leave fdisk and re-run it, btu once I reboot,
> all
> the partitioning done is lost.

That rings a bell to me. We fixed exactly such a problem once.

In the old version of the code some internal data structures  of  the
NFTL  driver, which are initialized only at boot-time, become invalid
after you run nftl_format.

See my message "DOC / NFTL problem, and fix" from Aug  28,  2002,  to
the MTD mailing list:
http://lists.infradead.org/pipermail/linux-mtd/2002-August/005853.html
I don't know if they  ever  accepted  the  patch,  and/or  if  it  is
included  with  your  version of the MTD tools. Just in case I attach
this patch again below.


> I think this part of my questions should be sent to the MTD list I guess.

Agreed.


Best regards,

Wolfgang Denk

-- 
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-4596-87  Fax: (+49)-8142-4596-88  Email: wd at denx.de
Do not underestimate the value of print statements for debugging.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: mtd_nftl.patch
Type: application/x-patch
Size: 6104 bytes
Desc: mtd_nftl.patch
Url : http://lists.denx.de/pipermail/u-boot/attachments/20030425/ec2bdf1a/attachment.bin 


More information about the U-Boot mailing list