Big Endian/Little Endian headache in cfi_cmdset_0002.c
Alice Hennessy
ahennessy at mvista.com
Wed Nov 15 17:36:28 EST 2000
Alice Hennessy wrote:
> 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
Well,
After thinking and testing a bit more, the endianness should only be a
concern
in the cfi_build_cmd (where it is now) or query reads (which need to be
altered slightly
when filling in the cfi_ident structure for buswidth > 1 and big endian)
because a particular order is expected.
In data writes and reads, endianness should not be a concern except for the
unaligned bytes
which should follow the cfi_cmdset_0001.c code example instead of the
assumption of
a particular endianness that exists now in cfi_amdext_write_bytes_32.
Alice
To unsubscribe, send "unsubscribe mtd" to majordomo at infradead.org
More information about the linux-mtd
mailing list