ARM Moxa BSP

Daron Chabot daron.chabot at gmail.com
Fri Mar 12 01:59:33 UTC 2010


First off, I am a complete ARM NooB, so please bare with me...

I have an opportunity to construct BSPs for a couple of Moxa's xscale-based
boards (UC-8418 and DA-661/2). I would appreciate some guidance.

They come equipped with Redboot bootloader, a Linux 2.6 kernel, and a
gnu-based cross-toolchain. CPUs are IXP-42x/43x ARMv5TE. It looks like the
critical peripherals are already supported (serial ports and NICs) in RTEMS.

Some questions:
1) Toolchain -- as i said, there's an existing gnu-based toolchain, so I can
see how the compiler was constructed:
djc at TooLBox--> /opt/xscale_be/bin/xscale_be-gcc -v
Reading specs from
/opt/xscale_be/bin/../lib/gcc/armv5teb-montavista-linuxeabi/3.4.3/specs
Configured with: ../configure --host=i686-pc-linux-gnu
--target=armv5teb-montavista-linuxeabi
--prefix=/opt/montavista/foundation/devkit/arm/xscale_be
--exec-prefix=/opt/montavista/foundation/devkit/arm/xscale_be
--bindir=/opt/montavista/foundation/devkit/arm/xscale_be/bin
--sbindir=/opt/montavista/foundation/devkit/arm/xscale_be/sbin
--sysconfdir=/opt/montavista/foundation/devkit/arm/xscale_be/etc
--datadir=/opt/montavista/foundation/devkit/arm/xscale_be/share
--includedir=/opt/montavista/foundation/devkit/arm/xscale_be/include
--libdir=/opt/montavista/foundation/devkit/arm/xscale_be/lib
--libexecdir=/opt/montavista/foundation/devkit/arm/xscale_be/libexec
--localstatedir=/opt/montavista/foundation/devkit/arm/xscale_be/var
--sharedstatedir=/opt/montavista/foundation/devkit/arm/xscale_be/share
--mandir=/opt/montavista/foundation/devkit/arm/xscale_be/man
--infodir=/opt/montavista/foundation/devkit/arm/xscale_be/info
--build=i686-pc-linux-gnu --program-transform-name=s,^,xscale_be-,
--enable-cross
--with-sysroot=/opt/montavista/foundation/devkit/arm/xscale_be/target
--enable-shared --enable-languages=c,c++ --enable-__cxa_atexit
--enable-threads=posix --disable-multilib
--with-gxx-include-dir=${prefix}/lib/gcc/armv5teb-montavista-linuxeabi/3.4.3/../../../../target/usr/include/c++/3.4.3
--with-numa-policy=yes --with-float=soft --with-cpu=xscale
--libexecdir=/opt/montavista/foundation/devkit/arm/xscale_be/lib
Thread model: posix
gcc version 3.4.3 (MontaVista 3.4.3-25.0.30.0501131 2005-07-23)

Naturally I don't have access
to /opt/montavista/foundation/devkit/arm/xscale_be ... :-(
I don't see anything troublesome, but is there anything here I should be
concerned with when building an RTEMS toolchain with newlib? I've already
built one using the options Ralf specifies in the RPM *.spec files...
AFAICT, this should work for little-endian archs _only_ ?

2) Endian-ness -- the Linux BSP is big-endian, and I'd like to keep the
RTEMS version the same. But, I seem to recall some issues here... Comments,
thoughts ?

3) Can someone recommend an existing ARM BSP to use as a template ? It
appears to my inexperienced eyes like the gumstix BSP (libcpu/pxa255) might
be a good basis to start with...

 4) BSP compiler flags --  "-mcpu=xscale -mbig-endian -msoft-float
-mstructure-size-boundary=8" Seems like the latter is required, unless one
wants to redo the network stack, as Sebastian pointed out...

I hope the ARM experts on the list will chime in with their $0.02 (USD)...

Thanks.


-- dc
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/users/attachments/20100311/0da9bed6/attachment.html>


More information about the users mailing list