Re: Intel P30 flash support MTD 2.4.16 kernel

Simon Vogl
2006-05-20T08:58:27Z

Dan,
Dan Merillat wrote:

>> > We are planning to change to P30 flash. Does 2.4.16 kernel supports
>> > this flash?
>> >
>> > If not what are my choices?
>>
>> 2.6.16.
>
>
> If it fails, turn on DEBUG_CFI_FEATURES in
> drivers/mtd/chips/cfi_cmdset_0001.c and check
> for Simultaneous Operations. Some P30 versions erroniously set that
> bit and fail horribly as a result. I spent a week trying to figure
> that out.

I found out this minute that this could apply to my pxa271 core (with
on-chip p30 flash!)
as well - it reports the sim.op. bit, while the data sheet says no.
Could you tell me what your
symptoms were, and your cure (a code snippet, preferrably)?

My jffs2 partition reports crc errors when mounting:
"
Node at 0x0001f9ec with length 0x0000093a would run over the end of the
erase block
Perhaps the file system was created with the wrong erase
size?
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0001f9f0:
0x093a instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0001f9f4:
0x173d instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0001f9f8:
0x0013 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0001f9fc:
0x0031 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0001fa00:
0x81ed instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0001fa08:
0x4dc4 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0001fa1c:
0x08f6 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0001fa20:
0x1000 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0001fa24:
0x0006 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0001fa28:
0x9190 instead
Further such events for this erase block will not be printed
jjffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00020000:
0xb80e instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00020004:
0x87f4 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00020008:
0x67d7 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0002000c:
0xb9d8 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00020010:
0xee1f instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00020014:
0xf3a0 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00020018:
0xbf12 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0002001c:
0x6f85 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00020020:
0xc933 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00020024:
0x6b75 instead
Further such events for this erase block will not be printed
Node at 0x0005fe90 with length 0x00000892 would run over the end of the
erase block
Perhaps the file system was created with the wrong erase size?
"
.... up to the end of the partition, followed by
jffs2_build_inode_pass1 failures and tons of
crc errors (
JFFS2 error: (290) jffs2_do_read_inode_internal: Argh. Special inode #86
with mode 0xa1ff had more than one node
Returned error for crccheck of ino #86. Expect badness...
JFFS2 error: (290) jffs2_do_read_inode_internal: Argh. Special inode
#186 with mode 0xa1ff had more than one node
Returned error for crccheck of ino #186. Expect badness...
...)

The same image is booting on other (pxa270) boards, of course...
Simon