BeagleBox: fixed NEON problems in cross toolchain


Sitting around this weekend taking care of one of my pups (Bailey, who just had TPLO surgery to fix a torn ACL) I decided to take a deeper look at the problem with the cross toolchain supporting NEON instructions.  I did a few more Google searches and found the Linaro notes on gcc toolchain builds.  This lead to the options they use. I also looked at Ubuntu's Hard Float for ARM data.

With all these I was able to find the configurations needed to build the Crosstool-NG based toolchain so it properly supports neon.  While there were a few changes made to place the toolchain in line with linaro's and ubuntu's build, the main change appeared to be setting –with-float=softfp in the CT_CC_CORE_EXTRA_CONFIG and CT_CC_EXTRA_CONFIG options.  These two already had –with-fpu=neon so I just need to extend what was there.

I tested the new toolchain by rebuilding the xorg omap driver with the –enable-neon option.  Previously this would fail with a bunch of unsupported assembler instructions.  With the new toolchain it builds without error.  Viola!

General Status

The project is stabilizing nicely now.  The kernel build is using a known good release with known working patches based on angstrom.  X11 is running now and has a stable NEON supported driver.  And the crashes associated with pango configuration issues have been fixed in BUI (my currently just stripped down version of matchbox).

I still have to fix issues with display resolution (probably something simple – just haven't dived into it yet) and I don't have either sgx or dsp integrated but the former has hooks in place to deal with it and the latter may be addressed through recent releases of buildroot.  I just need more time to dig in and get these thing solved.

But once those are done I believe I'll be ready to turn my attention to the UI again, like getting surf building again and also getting networking working via udev (instead of mdev) so the platform can support a wide range of USB network adapters. 

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.