Home Support Contact
Overview Products Innovation Applications News Press Room
Innovation
Home Innovation Technologies
Linux Embedded Systems Debian Embe4dian Computers

What is EABI?

GNU EABI is a new application binary interface (ABI) for Linux. It is part of a new family of ABIs from ARM® Ltd. known in the ARM-Linux community as EABI (or sometimes Embedded ABI). Applied Data Systems has made available for immediate EABI download an experimental port of Debian using this new ABI for ARM systems and we will update this frequently.

Why switch to EABI?

According to Debian Wiki the new EABI:

    • Allows the mixing of softfloat and hardfloat code
    • Uses a more efficient syscall convention
    • Will be more compatible with future tools

The ability to mix floating point code is the most important new feature. Like most root file systems for ARM computers, Debian has traditionally used hardfloat FPA instructions for floating point arithmetic. Very few ARM CPUs actually support FPA (a specific kind of floating point acceleration) but ARM-Linux kernels can emulate FPA instructions. They do this through illegal instruction faults which are rather inefficient. Emulating floating point instructions using softfloat (-msoftfloat) can be 4 to 10 times faster than kernel emulation. Prior to the introduction of EABI, the only way to use softfloat was to recompile the entire root file system with softfloat enabled. With EABI, softfloat instructions will be used by default and the root file system can have a mixture of softfloat and hardfloat executables. Now, if you have a system with floating point hardware -- it doesn't have to be FPA, it can be something else -- you can recompile critical software with the appropriate hardfloat instructions and run it on a system along with software that uses softfloat.

How do I use EABI?

To use EABI, you'll need to visit our support forums for installation details. The root file system includes an ARM-Linux-GNU EABI toolchain which you can use to recompile your own source code. Besides FPA, what other intruction sets are there? We have or will have systems that use VFP (Vector Floating Points), Maverick Crunch (Cirrus Logic), and iWMMXt (Intel) instructions. (The iWMMXt instructions are actually integer SIMD instructions but their opcodes overlap those for FPA.)

To learn more about our EABI build, contact us.

Overview Products Innovation Applications News Press Room