cfi_cmdset_0001.c: do_write_buffer: wrong length
D. Vrabel
dv207 at cam.ac.uk
Fri Dec 8 14:56:23 EST 2000
Hi,
Nicolas Pitre wrote:
>
> On Fri, 8 Dec 2000, David Vrabel wrote:
> >
> > In cfi_cmdset_0001.c do_write_buffer writes an incorrect length to the
> > chip
> >
> > cfi_write(map, CMD((len/(cfi->device_type*CFIDEV_INTERLEAVE))-1),
> > cmd_adr);
> >
> > Should it it be?
> > cfi_write(map, CMD(len/map->buswidth-1), cmd_adr);
>
> No. This will break the case where the interleave isn't 1.
>
> Hmmm... Will it?
>
> Euh... Each time I get around this question I get confused...
>
> Does someone have the data sheet nearby? (I don't ATM)... What should the
> lenght be if a x16 chip is used in x8 mode? bytes/sizeof(char) or
> bytes/sizeof(short)?
>
> On a 2 x16 arrangement you have buswidth=4, interleave=2, devicetype=2. In
> that case it should be len/4 - 1.
>
> Maybe you are right after all.
Time to compile a big list of all the arrangements of chips and the
resultant buffer write length...
So far we have:
device type interleave bus width buf write len
2 (x16) 1 1 (x8) len/1-1
2 (x16) 1 2 (x16) len/2-1
2 (x16) 2 4 (x32) len/4-1
So far it len/buswidth-1...
David Vrabel
To unsubscribe, send "unsubscribe mtd" to majordomo at infradead.org
More information about the linux-mtd
mailing list