Big Endian/Little Endian headache in cfi_cmdset_0002.c

Alice Hennessy ahennessy at mvista.com
Tue Nov 14 16:50:54 EST 2000


mark.langsdorf at amd.com wrote:

>         The write code in cfi_amdext_write_bytes_32 uses
> be32_to_cpu and cpu_to_be32 to make the last four or
> less bytes of a buffer Big Endian.  However, none of
> the other write or read code in cfi_cmdset_002 is
> concerned with Endianess, so it looks like (on my
> x86 chip) that the first x bytes of a write are
> little endian, and then the last 3 or 4 are reversed.
>         Is there some reason for handling things this
> way, or is this a bug in the code?
>
> Mark Langsdorf
> Advanced Micro Devices, Inc             Tel: 512.602.3756
> 5204 E. Ben White Blvd. M/S 590         Fax: 512.602.5051
> Austin, TX 78741                        mark.langsdorf at amd.com
>
> To unsubscribe, send "unsubscribe mtd" to majordomo at infradead.org

I'm also having to alter cfi_cmdset_0002.c for big endianness -  I think
we should use
cfi_write and cfi_read functions that cfi_cmdset_0001.c uses  but alter
them to take care
of both be32_to_cpu and le32_to_cpu (depending on a define) to take care
of both endiannesses.
This would isolate both the bus width issue and the endianness in these
2 functions.   In other words, move the
endianness out of cfi_build_cmd and put it into cfi_read and
cfi_write.   Also,  the handling
of unaligned bytes in cfi_cmdset_0001. c is good for both
endiannesses.   We should use this
method in cfi_cmdset_0002.c

Alice



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



More information about the linux-mtd mailing list