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