Bare metal toolchain for A15

Michael Hope michael.hope at linaro.org
Thu Mar 8 20:51:36 UTC 2012


On Fri, Mar 9, 2012 at 5:51 AM, William Mills <wmills at ti.com> wrote:
> All,
>
> I need to supply a Linaro toolchain "aligned" (same source code) bare-metal
> compiler to a group doing benchmarking on A15.
>
> First off my assumption is that we will write our own boot and semi hosting
> code.  (semi-hosting for TI emulators/simulators is different than ARM RDI
> semi-hosting.)
>
> I was planning on looking at the two toolchains here[1] and here [2]:
> [1] https://launchpad.net/linaro-toolchain-binaries
> [2] https://launchpad.net/gcc-arm-embedded
>
> I was then going to build a hybrid that was newlib based but appropriate for
> armv7-a (instead of cortext-m3) and maybe even -mtune'ed for A15.
>
> However looking at the gcc-arm-embedded release more[3] I see that it
> supports ARMv7-R.  It supports both thumb and non-thumb modes, both softfp
> and hardfp ABIs.
>
> What would I really gain by building my own?  For app code the user should
> be able to add -mtune=cortex-a15 and still be compatible with the pre-built
> R4/R5 libraries.  The only performance difference should be in the library
> code and that should be only pipeline tuning if I understand the difference
> between armv7-a and armv7-r correctly.
>
> Am I missing something?  Should I build my hybrid anyway?
>
> [1] https://launchpadlibrarian.net/88152755/readme.txt
>
> [BTW: has the below project been obsoleted by the gcc-arm-embedded one?
>  Perhaps gcc-arm-embedded should be referenced in the description of the
> page below.
> https://launchpad.net/linaro-toolchain-unsupported ]

Hi William.  I recommend using the exact same tools we use for
building the binary toolchains but reconfiguring for a baremetal
build.  That way you can get the Cortex-A15 improvements that we've
been doing in a simple to make binary toolchain.

I wrote some brief instructions on this yesterday at:
 https://wiki.linaro.org/WorkingGroups/ToolChain/BinaryBuild

Also see the building from source section in the README:
 https://launchpadlibrarian.net/93804205/README.txt

The extra steps are to tune for the Cortex-A15 by default and use a
baremetal instead of prebuilt sysroot.

gcc-arm-embedded is from our friends at ARM's Cortex-R&M group.  We
share the same requirements and build tools but have a different focus
- they're a long term supported build of FSF 4.6 for the Cortex-R&M
while we're the latest performance on Cortex-A.

The linaro-toolchain-unsupported builds are the Linaro toolchain in a
baremetal Cortex-M configuration.  I've been doing these on my own
time as I have a personal STM32 project I'm working on.

Hope that helps,

-- Michael



More information about the linaro-toolchain mailing list