[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Re: Speeding up the mounting of JFFS Device
> We have a bit of an issue. The node cache generates an oops when
> the filesystem to the node cache. After enabling some debugging and
> adding a few other messages, this is what I get:
> jffs_nc_write_name(): name_offset: 44480
> jffs_nc_write_name(): filename: fail [c0321e20], off: 44480, size: 4
> jffs_nc_write_name(): name_offset: 44488
> jffs_nc_write_name(): filename: <NULL> , off: 44488,
> Unable to handle kernel NULL pointer dereference at virtual address
> current->tss.cr3 = 01cc3000, %cr3 = 01cc3000
> *pde = 00000000
> Oops: 0000
> CPU: 0
> EIP: 0010:[<c01a7f96>]
> EFLAGS: 00010202
> We're trying to call
> err = flash_safe_write(mtd, name_offset, (u_char*) f->name, f-
> when f->name is null which corresponds to "/"
> (from dumping out the system's hash table)
> *** c->hash: "" (ino: 1, pino: 0)
Well, gosh darn it!!! All the builds I did with mkfs.jffs
never put the root in flash. The virtual root was added
after the return from jffs_scan_flash(). This meant that
writing the node cache never hit the above condition.
How do I get this inode in the flash ? If you can tell me
I will debug it.
In a previous email, you write:
> There's quite a few oops happening after it starts. What I've been
> is just doing a head -c 65535 head.bin > /dev/mtd1 after doing an
> eraseall on the partition and then writing data to it following by
> mounting it read-only. Presumably the oops is happening in the
> flash_safe_write. Is there any chances that tbl_len might be wrong?
I did not know you could write directly to the device.
I am assuming that your erasesize is 65536 not 65535.
You can verify the erasesize in the partition data in
I also noticed "eraseall" only works with char devices. mtdblock
does not support the ioctl commands for erasing. Is /dev/mtd1 a
block device or char device ?
Upon entry to into jffs_scan_flash() the partition must look like
0x00000000: 'C' 'A' 'S' 'H' ff ff ff ff ff ff ff ff ff ff ff ff
0x00000010: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x00010000: Real JFFS data structures start here if your
erasesize is 0x10000 or 65536. That is, the
image that mkfs.jffs creates.
How are you downloading your jffs image to the device ?
Upon exit from jffs_scan_flash() the node cache is filled in.
Again it is crucial that the partition be completely erased before
putting in the cache+image.
I will check my email tomorrow for your response?
The Late Night Software Shop
Sign up today for your Free E-mail at: http://www.canoe.ca/CanoeMail
To unsubscribe from this list: send the line "unsubscribe jffs-dev" in
the body of a message to firstname.lastname@example.org