[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Big endian in debian ARM

On Fri, May 27, 2005 at 04:50:45PM +0200, Marco Canini wrote:
> The microengines can also work in little endian, however the network is big 
> endian, plus programming in this field shows that you don't want to waste any 
> microengine cycles. So it's really inconvenient to put microengines in LE 
> mode, and practically no one is doing that.
> On the XScale side things are different. You get it right when you say that 
> the XScale has to handle only exceptions, but you've to clear what you mean 
> by exception. In this case the exception packets are not fixed and you can 
> chose what you consider an exception. However the important part is that when 
> a packet is marked as exception it's not passed to XScale, only a packet 
> handle reaches the software running on that. So if you have to process a 
> packet there you will finish to copy & byte swap all the parts of the packet 
> you consider of some interest.
> Since it's clearly easier to have the XScale running in BE mode that's what 
> MontaVista has done.
> So here I don't have a LE linux running on this hardware and using debootstrap 
> I won't be able to install Debian starting from it.
> That's make me think to use a port of Fedora to XScale BE, however I would 
> prefer to use Debian.
> Do you have some suggestions?

So monta vista has a big endian linux for xscale?  Or are they using
another OS?

A google search found some chatter on the arm linux list from 2001 about
how one could go about supporting big endian and also about how the arm
has 4 different modes (cpu in little/big endian and devices connect in
little/big endian all of which have to be considered it seems).

The Debian arm port is little endian only, probably since all the
standard arm machines that area easy to get are little endian.  i think
mips is the only port I have seen on debian that has both a little and
big endian version (SGI is big endian, DecStation was little endian).

I suppose you could use montavista linux to start building dpkg and get
a chroot going a package at a time and building everything big endian
(you would have to add a new target to dpkg called armeb probably [mips
and mipsel are mips endian big and mips endian little respectively, so
arm and armeb make some sense that way) and add whatever uname -m calls
the system to the archtable.  After the first few base packages are
compiled and installed in a chroot, you might be able to have it build
everything else you want as debian packages and start using it.  Of
course debian arm packages won't work, you will have to recompile all of
them for armeb (including updated which architectures packages should
compile on at all if something lists arm explicitly).  It would be a lot
of work.

I can't imagine Fedora is any easier to port, since I didn't even think
that had an arm port in the first place, and arm big endian is more like
arm little endian than it is like anything else.

Len Sorensen

Reply to: