CFI Extended (Intel P30) problems on an ARM PXA255
Dan Merillat
harik.attar at gmail.com
Fri May 5 18:07:02 EDT 2006
> On 5/5/06, David Vrabel <dvrabel at arcom.com> wrote:
> >
> > Perhaps the cache invalidating operation in the MTD map driver you're
> > using is wrong?
And no such luck there, either.
static void pxa25x_map_inval_cache(struct map_info *map, unsigned long from,
ssize_t len)
{
consistent_sync((char *)map->cached + from, len, DMA_FROM_DEVICE);
}
map_info.inval_cache=pxa25x_map_inval_cache;
Is that wrong? It is getting called after writes to flash.
>
> > If you suspect memory timings may be an issue I would advise slowing the
> > timings under Linux to the lowest possible. The experiment you describe
> > here changes two variables (the software and the timings) which is not
> > good practice.
Tried it the other way around as well, set msc0 to boot-up paranoid
mode: 0x7ff07ff8 or longest waits on all reads/writes and no
burst-mode read. No go, same deal.
# mount / -o remount,rw
# touch /tmp/test
# ls
JFFS2 notice: (1) read_unknown: node header CRC failed at 0x048f70.
But it must have been OK earlier.
Node totlen on flash (0x00800080) != totlen from node ref (0x0000004c)
JFFS2 warning: (1) jffs2_do_read_inode_internal: no data nodes found for ino #47
/bin/sh: ls: Input/output error
(xscale-gdb) monitor long 0xff000000
Read long at 0xff000000 : 0x00800080
(xscale-gdb) monitor short 0xff0000aa = 0xff
Wrote short to 0xff0000aa : 0xff
(xscale-gdb) monitor long 0xff000000
Read long at 0xff000000 : 0xea000212
same deal, I can remount RO and use the filesystem (aside from /bin/ls
which is marked invalid until I reboot)
Trying vanilla 2.6.16.14 now.
More information about the linux-mtd
mailing list