RPX Classic/Lite and byte ordering

Tim Bowman tbowman at emware.com
Mon Apr 2 16:52:50 EDT 2001


One more possibilty: 

Would cross-compiling the kernel on an x86 produce different ordering
than compiling natively on a PowerPC (which is how I am building it)? 
Maybe I need to build it on an x86?


Original message:

> I am having trouble with an Embeddded Planet RPX board.  The mtd layer
> seems to be reversing the data by double words.  If I write (then cat)
> some text, every double word is reversed.  I can use a cramfs file
> system, but I have to reverse the dwords myself before writing it to
> flash, then everything works fine.  JFFS and other file systems
> obviously don't work, since the data is written by mtd in the wrong
> order.  I am doing everything on big-endian machines (PowerPC).

I have tried all of the query ordering options in the kernel config, and
even tried changing just the read, and then just the write in
cfi-endian.h to order words and double words, to no avail.  I have the
latest code for both the bk kernel and the cvs mtd.

Eric B. suggested:
"You might want to take a look at .../include/mtd/cfi_endian.h and
be sure you are using __raw_writeb and friends. "

The rpxlite layer seems to be using memcpy_fromio, writeb, writew, etc,
not __raw_writeb.  Should these be replaced with the raw versions?

Finally, could this have something to do with flash interleave?  I am
relatively new at this low-level stuff, but if the interleave is 4 for
the RPX, then I could see how every 4 bytes might be reversed.  The
specific board I am using is a CLCC_E with 8M flash.

Thanks


To unsubscribe, send "unsubscribe mtd" to majordomo at infradead.org



More information about the linux-mtd mailing list