Project

General

Profile

Actions

Bug #75

closed

Why doesn't xorg omap driver build with --enable-neon

Added by Hammel about 13 years ago. Updated about 13 years ago.

Status:
Closed
Priority:
High
Assignee:
Category:
xcc
Target version:
Start date:
28 Feb 2011
Due date:
% Done:

100%

Estimated time:
Severity:
Medium

Description

Compiling the xorg omap driver with --enable-neon fails with the following message: {standard input}: Assembler messages: {standard input}:105: Error: bad instruction `vld1.u8 {d0},[r1]!' {standard input}:108: Error: bad instruction `vld1.u8 {d1},[r4]!' {standard input}:109: Error: bad instruction `vld1.u8 {q1},[r7]!' {standard input}:110: Error: bad instruction `vzip.u8 d0,d1' {standard input}:111: Error: bad instruction `vld1.u8 {q2},[r6]!' {standard input}:112: Error: bad instruction `vst2.u8 {q0,q1},[r5]!' {standard input}:113: Error: bad instruction `vmov.u8 q1,q2' {standard input}:114: Error: bad instruction `vst2.u8 {q0,q1},[sl]!'
make5: *** [image-format-conversions.lo] Error 1

CC     sw-exa.lo

This appears to mean that the cross-compiler is not properly enabled for neon capabilities. But the Crosstool-NG config file includes the following two entries:
CT_ARCH_FPU="neon"
CT_CC_CORE_EXTRA_CONFIG="--with-fpu=neon"

This seems to be all that is required, but I'll need to check with the Crosstool-NG list to be certain.

Actions #1

Updated by Hammel about 13 years ago

Emailed Crosstool-NG list to ask about this issue.

Actions #2

Updated by Hammel about 13 years ago

Verified today that the updated xcc (with specified options under Details) does not build the driver.

Actions #3

Updated by Hammel about 13 years ago

Some info on using the driver under Ubuntu might shed some light:
http://elinux.org/BeagleBoardUbuntu#Xorg_omapfb_Drivers

Actions #5

Updated by Hammel about 13 years ago

I found three URLs that helped me solve this problem today:
Linaro's native GCC toolchain working group: https://wiki.linaro.org/WorkingGroups/ToolChain/Using/GCCNative
This lead to the config they use to build gcc:
http://bazaar.launchpad.net/~linaro-toolchain-dev/cbuild/trunk/view/head:/config/cortexa8r1.mk
And when mixed with the info from the Ubuntu Hard Float for ARM page:
http://wiki.debian.org/ArmHardFloatPort
I managed to come up with a cross toolchain configuration for Crosstool-NG that supports building the omap xorg driver with --enable-neon included in the configure options.

The differences (see attached file) from my original configuration are the following:
1. Switch from GCC 4.4.3 to 4.4.1 to keep in line with Linaro's suggested build
2. Enable Thumb internetworking
3. Tuned for Cortex-A9 which apparently will also support A8.
4. Added --with-float=softfp to --with-fpu=neon in both CT_CC_CORE_EXTRA_CONFIG and CT_CC_EXTRA_CONFIG.

I think the one that made the real difference is #4 but the rest (I believe) keeps me inline with the Linaro and Ubuntu suggested cross compiler configurations. Time to rebuild everything with the new toolchain.

Actions

Also available in: Atom PDF