Hi,
Thanks for the tips. I've made some progress.
>
> >
> > It seems that YAFFS is mounting on top of RAM instead of on the NAND
> chip.
> > Do I have to specify mtd parts in u-boot order to access the NAND?
> > Is there a u-boot config define for selecting NAND or RAM for YAFFS2
> > support?
>
> Why do you think it is writing to RAM?
>
I suspected that it was being written to RAM because the files were
disappearing when I powered off the device.
This is no longer the case when I am testing now
> A few things to try:
> 1. Try turning on tracing and seeing if you get any further info.
> 2. What happens if you save a file under u-boot then reboot back into
> u-boot.
> Is the file still there?
>
> These problems are almost always due to incompatibilities between the mtd
> in
> u-boot and Linux.
>
This comment got me thinking about what I have changed in linux mtd/nand!
The board I am using has a NAND chip that stores bad block info at offsets
0 and 5 in OOB.
The oobfree offset and length have been adjusted accordingly in the linux
MTD nand driver (offest e= 6 instead of 2 and length = 34 instead of 38).
When I make the same change in u-boot mtd / nand I now am able to mount
existing linux yaffs partitions in u-boot
However when I create files in u-boot they get size 0.
They are visible from linux (also with size 0) and can be erased.
Trying to read files from u-boot seems to freeze up.
U-Boot> yls -l /rfs
home 2048 645 directory
var 2048 675 directory
usr 2048 294 directory
sbin 2048 564 directory
tmp 2048 522 directory
media 2048 275 directory
dev 2048 284 directory
mnt 2048 290 directory
lib 2048 529 directory
opt 2048 534 directory
sys 2048 544 directory
linuxrc 11 554 symlink
bin 2048 847 directory
proc 2048 879 directory
root 2048 797 directory
etc 2048 889 directory
lost+found 2048 2 directory
U-Boot> ywr /rfs/test.txt 0x30 10
Writing value (30) 10 times to /rfs/test.txt... done
U-Boot> yls -l /rfs
test.txt 0 1026 regular file
home 2048 645 directory
var 2048 675 directory
usr 2048 294 directory
sbin 2048 564 directory
tmp 2048 522 directory
media 2048 275 directory
dev 2048 284 directory
mnt 2048 290 directory
lib 2048 529 directory
opt 2048 534 directory
sys 2048 544 directory
linuxrc 11 554 symlink
bin 2048 847 directory
proc 2048 879 directory
root 2048 797 directory
etc 2048 889 directory
lost+found 2048 2 directory
U-Boot> yrd /rfs/test.txt
Reading file /rfs/test.txt
<freeze>
Created files are present after reboots but always unreadable.
u-boot freezes even when reading files created from linux.
Any hints as to where to look to figure out why reading and writing from
u-boot aren't working?
Do the versions of YAFFS2 in linux and u-boot need to be indentical?
Should u-boot/yaffs read out the and use the time and date from the real
time clock?
Would a Bbad or incompatible ECC give this kind of result?
> My ultimate goal is to read out the linux kernel image from the rootfs
> > (YAFFS), copy it to RAM and boot.
>
> That is a most achievable goal.
>
One step closer :)