20080201

Maverick-Crunch / EABI support for Crossdev




Since I've been using the TS-7xxx boards from Technologic Systems, I've been wanting to experiment a bit more with the Maverick-Crunch floating point coprocessor in order to squeeze a bit more performance in number-crunching apps.

Here are some simple instructions for creating an armv4tl-maverick-linux-gnueabi toolchain using Gentoo/Portage/Crossdev. These instructions are current as of 26. February 2008.

[ Update: 26. Feb, 2008 ]

The procedure is tested and I have yet to experience any bugs in any normal userspace applications. I know that lame now produces mp3s 25 times faster, and there were no audible errors, which basically confirms with Martin Guy's results that the Maverick FPU is being used.

The only thing that I am lacking is a better stress test - paranoia.c just segfaults, and I'm not really sure why.

I've moved the instructions, as well as instructions for creating an eabi Linux kernel and a full userland, to the Gentoo Wiki.

4 comments:

Andrew said...

Hi, when following the above, I get the following error:

WARNING: `makeinfo' is missing on your system. You should only need it if
you modified a `.texi' or `.texinfo' file, or any other file
indirectly affecting the aspect of the manual. The spurious
call might also be the consequence of using a buggy `make' (AIX,
DU, IRIX). You might want to install the `Texinfo' package or
the `GNU make' package. Grab either from any GNU archive site.
make[2]: *** [libiberty.info] Error 1
make[2]: Leaving directory `/var/tmp/cross/armv4t-maverick-linux-gnueabi/portage/cross-armv4t-ma
verick-linux-gnueabi/binutils-2.17-r1/work/build/libiberty'
make[1]: *** [info-libiberty] Error 1
make[1]: Leaving directory `/var/tmp/cross/armv4t-maverick-linux-gnueabi/portage/cross-armv4t-ma
verick-linux-gnueabi/binutils-2.17-r1/work/build'
make: *** [do-info] Error 2

The command actually used is:

PORTDIR_OVERLAY="/usr/local/portage/crossdev_overlay \
/usr/local/portage/maverick_overlay" ECONF_EXTRA="--disable-nls --enable-shared \
--with-system-zlib --without-included-gettext \
--enable-threads=posix --enable-clocale=gnu \
--with-fpu=maverick --with-float-abi=softfp \
--with-cpu=ep9312 --enable-languages=c,c++" USE="-gcj -gtk -fortran -mudflap" crossdev -S --l 2.5-r4 --g 4.1.2 --b 2.17-r1 armv4t-maverick-linux-gnueabi

directories /usr/local/portage/crossdev_overlay and
/usr/local/portage/maverick_overlay
exist and were created just before running the command. Possibly relevent make.conf entries:

FEATURES="distcc buildpkg"
source /usr/portage/local/layman/make.conf

Any suggestions?

Looking forwards to our next post, btw.

andrewldotozatgmaildotcom

Andrew said...

Hi, re binutils build problem, I have resolved it - downgrading texinfo to 4.8-r5 fixed it. maybe you might put a warning to that effect in the instructions to those of us living on the bleeding edge:)

Thanks for your stirling efforts, I am looking forwards to great performance improvements in some mixed float/fixed code I have installed.

Anonymous said...

Hi,
I'm very interested in the instructions to build an arm-eabi toolchain using Gentoo and Crossdev, but Gentoo wiki has recently had some technical difficulties, and most (or all) of its articles are gone.
Could you repost your instructions to gentoo wiki or here?

Thanks.

Christopher Friedt said...

I generally use Google's cache to access the Gentoo Wiki when it goes down (which is frequently).

http://64.233.169.104/search?q=cache:gSPuq2upoXIJ:www.gentoo-wiki.info/Technologic_Systems_TS-72xx+gentoo+wiki+ts72xx&hl=en&ct=clnk&cd=6&gl=ca&client=firefox-a