mirror of
https://git.yoctoproject.org/meta-arm
synced 2026-01-12 03:10:15 +00:00
meta-arm-toolchain: Add README
Document usage details for GNU Arm toolchains which could either be built from source or pre-built. Signed-off-by: Sumit Garg <sumit.garg@linaro.org> Signed-off-by: Jon Mason <jon.mason@arm.com>
This commit is contained in:
113
meta-arm-toolchain/README.md
Normal file
113
meta-arm-toolchain/README.md
Normal file
@@ -0,0 +1,113 @@
|
||||
meta-arm-toolchain Yocto Layer
|
||||
==============================
|
||||
|
||||
This layer contains recipes for GNU Arm toolchains which could either be built
|
||||
from source or pre-built toolchain binaries.
|
||||
|
||||
Information regarding contributing, reporting bugs, etc can be found in the
|
||||
top-level meta-arm readme file.
|
||||
|
||||
Source Arm toolchain for Linux development
|
||||
------------------------------------------
|
||||
|
||||
Recipes for GNU Arm toolchain built from source are provided under
|
||||
``recipes-devtools/gcc/``. In order to use Arm toolchain instead of OE core
|
||||
toolchain, one just needs to override ``GCCVERSION`` in corresponding distro
|
||||
conf file.
|
||||
|
||||
- Eg. to use GNU Arm toolchain version ``9.2``
|
||||
GCCVERSION = "arm-9.2"
|
||||
|
||||
Pre-built Arm toolchain for Linux development
|
||||
---------------------------------------------
|
||||
|
||||
Recipes for pre-built GNU Arm toolchain for Linux development are provided under
|
||||
``recipes-devtools/external-arm-toolchain/``.
|
||||
|
||||
external-arm-toolchain.bb
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
This recipe provides support for pre-built GNU toolchains targeting processors
|
||||
from the Arm Cortex-A family and implementing the Arm A-profile architecture.
|
||||
|
||||
Usage
|
||||
^^^^^
|
||||
|
||||
In order to use any of pre-built Arm toolchain versions (8.2, 8.3, 9.2 and so
|
||||
on), a user needs to download and untar tool-set on host machine at a particular
|
||||
installation path eg: ``/opt/toolchain/``. Then user needs to specify following
|
||||
in ``conf/local.conf`` in order to replace OE toolchain with pre-built GNU-A
|
||||
toolchain:
|
||||
|
||||
TCMODE = "external-arm"
|
||||
EXTERNAL_TOOLCHAIN = "<path-to-the-toolchain>"
|
||||
|
||||
- Eg. for AArch64 (eg. qemuarm64 machine in poky distro)
|
||||
EXTERNAL_TOOLCHAIN = "\
|
||||
<installation-path>/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu \
|
||||
"
|
||||
|
||||
- Eg. for AArch32 (eg. qemuarm machine in poky distro)
|
||||
EXTERNAL_TOOLCHAIN = "\
|
||||
<installation-path>/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf \
|
||||
"
|
||||
|
||||
Supported distros and machines
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Since this pre-built GNU-A tool-set simply replaces OE toolchain, so it is
|
||||
meant to be distro and machine agnostic as long as one is cross-compiling for
|
||||
Arm A-profile architecture.
|
||||
|
||||
Tested distro and machines (for zeus stable release):
|
||||
1. Distro: poky; machines: qemuarm and qemuarm64 (build and boot tested)
|
||||
2. Distro: RPB; machines: dragonboard-410c (build and boot tested)
|
||||
3. Distro: world; machines: qemuarm and qemuarm64. Build tested for following
|
||||
layers:
|
||||
- poky/meta
|
||||
- poky/meta-poky
|
||||
- poky/meta-yocto-bsp
|
||||
- meta-openembedded/meta-oe
|
||||
- meta-openembedded/meta-python
|
||||
- meta-openembedded/meta-networking
|
||||
|
||||
SDK support
|
||||
^^^^^^^^^^^
|
||||
|
||||
Pre-built toochain provides support to build OE SDK which has been tested using
|
||||
following commands:
|
||||
|
||||
$ bitbake core-image-base -c populate_sdk
|
||||
$ bitbake core-image-base -c testsdk
|
||||
|
||||
Note: Currently generated SDK only uses glibc provided by pre-built toolchain.
|
||||
The cross compiler, binutils, gdb/gdbserver etc. are built from source.
|
||||
This is something we would like to improve in future in order to package
|
||||
most of the components from pre-built toolchain instead.
|
||||
|
||||
Pre-built Arm toolchain for bare-metal development
|
||||
--------------------------------------------------
|
||||
|
||||
Recipes for pre-built GNU Arm toolchain for bare-metal development are provided
|
||||
under ``recipes-devtools/external-arm-toolchain/``.
|
||||
|
||||
gcc-arm-none-eabi_<version>.bb
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
This recipe provides support for pre-built GNU Arm Embedded toolchain for
|
||||
bare-metal software development on devices based on 32-bit Arm Cortex-A,
|
||||
Cortex-R and Cortex-M processors.
|
||||
|
||||
Supported version: 9-2019-q4-major
|
||||
|
||||
gcc-aarch64-none-elf_<version>.bb
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
This recipe provides support for pre-built GNU Arm toolchain for bare-metal
|
||||
software development on devices based on 64-bit Arm Cortex-A processors.
|
||||
|
||||
Supported version: 9.2-2019.12
|
||||
|
||||
Layer maintainer(s)
|
||||
-------------------
|
||||
* Sumit Garg <sumit.garg@linaro.org>
|
||||
Reference in New Issue
Block a user