[PATCH] fix root cause of NAND trouble

Ben Dooks ben-linux at fluff.org
Sat Nov 1 21:38:57 CET 2008


On Sat, Nov 01, 2008 at 01:54:53PM -0200, Werner Almesberger wrote:
> Andy Green wrote:
> > It seems its moot since the patch is not accepted as the solution...
> 
> Not so hasty :-) Ben thought this was something else entirely.
> Let's see if he likes it better now that I've explained what's
> really going on.
> 
> > you have some time to dig further into it to see where the unaligned
> > reads are suddenly coming from?
> 
> They're coming from nand_read_subpage and are just what the code
> there intends to do. There are (at least) three ways to fix this:
> 
> 1) declare non-word accesses generally illegal, which means that
>    nand_read_subpage needs to change
> 
> 2) make the driver support non-word accesses. This is what my
>    patch does.

I think this should be ok if it is as you say that the driver is
only reading three bytes from the ECC. My only comment would be
that a slightly better solution would be to do:

	u8 *ptr = buf + (len & ~3);
	for (i = 0; i < (len & 3); i++)
		ptr[i] = readb(_pointertodataregister);
 
so we always read the requisting number of data bytes from the data
register.

> 3) add some means for the driver to inform the NAND layer that it
>    has special alignment constraints.
> 
> 1) and 2) would be straightforward to do. 3) would make an
> already hard to understand interface a little more complex.
> 
> - Werner
> 

-- 
-- 
Ben

Q:      What's a light-year?
A:      One-third less calories than a regular year.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://lists.openmoko.org/pipermail/openmoko-kernel/attachments/20081101/2668cce8/attachment.pgp 


More information about the openmoko-kernel mailing list