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