[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[microblaze-uclinux] 16-bit flash again... More clues and info
John and all,
I am still struggling with the flash in 16-bit mode. Has ANYONE got 16-bit flash to work with the latest uclinux? If no one know, please point me in the direction of a place where I can post this to get an answer. Is there a jffs2 forum?
Here is what I have done:
(I enabled jffs2 file system) -> This fixed the other issue I posted about the system not recognized)
(Flash is recognized and the partitions seems to be correct):
I am targeting mtd6 (jffs2 block)
1). create a jffs2 file system image
mkfs.jffs2 -p 0x400000 -r /var/run -e 0x20000 -o jffs2.img
2). Copy image to mtd6
cp jffs2.img /dev/mtd6
3). Attempt to mount image
mount -t jffs2 /dev/mtdblock6 /var
This is where it fails. Notice it sees the 1985 but does not correctly calculate the CRC. This is because it is not seeing it as 16-bit, but seems to think the flash is 32-bit. And so, always reads xxxx0000 for the CRC. Also, the CRC must be incorrect.
Here is an example
jffs2: read_super for device 1f:06
jffs2_scan_eraseblock(): Scanning block at 0x0
jffs2_scan_eraseblock(): Node at 0x00000000 {0x1985, 0x0000, 0x00000000) has invalid CRC 0x2d2e0000 (calculated 0xbe76ea63)
Empty bitmask at 0x00000004
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000008: 0x2d2e instead
This is followed by a long srting of the mount trying to mount anything it can find in the 0x400000 jffs2 flash block.
4). OK, so I tested the flash by reading the info from the flash back to a file:
dd if=/dev/mtd6 of=/tmp/image_test.bin
This file read back from the flash is perfect and matches the file created from the mkfs.jffs2 command.
However : when I do a cp /dev/mtd6 jffs2_test.img it reads it back incorrectly and puts in 0000s every other half-word. So, this is broken in that it thinks its 32-bits?
Any help would be greatly appreciated. I have been working on this and the troubleshooting quite a bit.
Thanks,
Greg Miller