Re: Endianess question
Wolf-Rüdiger Jürgens wrote:
> I see that the Debian NSLU2 is little-endian but many other Arm boards
> using Big-endian. (Arcom, Snapgear ...).
> What is the reason for using Little/Big Endian?
It usually simply depends on which endianness the reference software
development kit for that particular board uses.
Intel IXP4xx reference board software is big-endian, and so the NSLU2
(and similar devices) are shipped with big-endian firmware. Other ARM
devices have reference designs with little-endian firmware, and
therefore all the firmware you see for those devices is little-endian.
Most vendors are not knowledgeable enough to choose their endianness on
anything more than what the reference design uses.
We wanted to use the official Debian repository on the NSLU2, so we
changed the firmware to little-endian (the biggest hassle was the
network driver, but we sorted that out too).
The other aspect is performance (i.e. network order is big endian), but
don't let people tell you that matters on a device like the NSLU2,
because it absolutely does not. We have NSLU2 developers who have
benchmarked performance on identical firmware releases running
little-endian and big-endian, and the simple fact is that the difference
in overall performance is negligible due to the overwhelming slowness of
other parts of the system.
Of course the same argument does not hold for the high-end IOP
processors. When you're routing 10GB/s line rate you really do want to
be running a big-endian processor.
-- Rod Whitby
-- NSLU2-Linux Project Lead