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