Commit de9bf1d8 authored by Madhukar Pappireddy's avatar Madhukar Pappireddy
Browse files

GCC: Upgrade to version 9.2-2019.12 of toolchain



This toolchain provides multiple cross compilers and are publicly
available on www.developer.arm.com

We thoroughly test TF-A in CI using:
AArch32 bare-metal target (arm-none-eabi)
AArch64 ELF bare-metal target (aarch64-none-elf)

Change-Id: I2360a3ac6705c68dca781b85e9894867df255b3e
Signed-off-by: default avatarMadhukar Pappireddy <madhukar.pappireddy@arm.com>
parent 0348ee49
...@@ -8,13 +8,13 @@ Performing an Initial Build ...@@ -8,13 +8,13 @@ Performing an Initial Build
.. code:: shell .. code:: shell
export CROSS_COMPILE=<path-to-aarch64-gcc>/bin/aarch64-linux-gnu- export CROSS_COMPILE=<path-to-aarch64-gcc>/bin/aarch64-none-elf-
For AArch32: For AArch32:
.. code:: shell .. code:: shell
export CROSS_COMPILE=<path-to-aarch32-gcc>/bin/arm-eabi- export CROSS_COMPILE=<path-to-aarch32-gcc>/bin/arm-none-eabi-
It is possible to build TF-A using Clang or Arm Compiler 6. To do so It is possible to build TF-A using Clang or Arm Compiler 6. To do so
``CC`` needs to point to the clang or armclang binary, which will ``CC`` needs to point to the clang or armclang binary, which will
...@@ -32,7 +32,7 @@ Performing an Initial Build ...@@ -32,7 +32,7 @@ Performing an Initial Build
.. code:: shell .. code:: shell
export CROSS_COMPILE=<path-to-aarch64-gcc>/bin/aarch64-linux-gnu- export CROSS_COMPILE=<path-to-aarch64-gcc>/bin/aarch64-none-elf-
make CC=<path-to-armclang>/bin/armclang PLAT=<platform> all make CC=<path-to-armclang>/bin/armclang PLAT=<platform> all
Clang will be selected when the base name of the path assigned to ``CC`` Clang will be selected when the base name of the path assigned to ``CC``
...@@ -43,7 +43,7 @@ Performing an Initial Build ...@@ -43,7 +43,7 @@ Performing an Initial Build
.. code:: shell .. code:: shell
export CROSS_COMPILE=<path-to-aarch64-gcc>/bin/aarch64-linux-gnu- export CROSS_COMPILE=<path-to-aarch64-gcc>/bin/aarch64-none-elf-
make CC=<path-to-clang>/bin/clang PLAT=<platform> all make CC=<path-to-clang>/bin/clang PLAT=<platform> all
- Change to the root directory of the TF-A source tree and build. - Change to the root directory of the TF-A source tree and build.
......
...@@ -26,7 +26,7 @@ Toolchain ...@@ -26,7 +26,7 @@ Toolchain
|TF-A| can be built with any of the following *cross-compiler* toolchains that |TF-A| can be built with any of the following *cross-compiler* toolchains that
target the Armv7-A or Armv8-A architectures: target the Armv7-A or Armv8-A architectures:
- GCC >= 8.3-2019.03 (from the `Arm Developer website`_) - GCC >= 9.2-2019.12 (from the `Arm Developer website`_)
- Clang >= 4.0 - Clang >= 4.0
- Arm Compiler >= 6.0 - Arm Compiler >= 6.0
......
...@@ -26,13 +26,13 @@ To build for machines with an A64 or H5 SoC: ...@@ -26,13 +26,13 @@ To build for machines with an A64 or H5 SoC:
.. code:: shell .. code:: shell
make CROSS_COMPILE=aarch64-linux-gnu- PLAT=sun50i_a64 DEBUG=1 bl31 make CROSS_COMPILE=aarch64-none-elf- PLAT=sun50i_a64 DEBUG=1 bl31
To build for machines with an H6 SoC: To build for machines with an H6 SoC:
.. code:: shell .. code:: shell
make CROSS_COMPILE=aarch64-linux-gnu- PLAT=sun50i_h6 DEBUG=1 bl31 make CROSS_COMPILE=aarch64-none-elf- PLAT=sun50i_h6 DEBUG=1 bl31
.. _U-Boot documentation: http://git.denx.de/?p=u-boot.git;f=board/sunxi/README.sunxi64;hb=HEAD .. _U-Boot documentation: http://git.denx.de/?p=u-boot.git;f=board/sunxi/README.sunxi64;hb=HEAD
......
...@@ -223,7 +223,7 @@ address ``0x82000000``, the firmware can be built like this: ...@@ -223,7 +223,7 @@ address ``0x82000000``, the firmware can be built like this:
.. code:: shell .. code:: shell
CROSS_COMPILE=aarch64-linux-gnu- \ CROSS_COMPILE=aarch64-none-elf- \
make PLAT=fvp DEBUG=1 \ make PLAT=fvp DEBUG=1 \
RESET_TO_BL31=1 \ RESET_TO_BL31=1 \
ARM_LINUX_KERNEL_AS_BL33=1 \ ARM_LINUX_KERNEL_AS_BL33=1 \
......
...@@ -136,7 +136,7 @@ a single FIP binary. It assumes that a Linaro release has been installed. ...@@ -136,7 +136,7 @@ a single FIP binary. It assumes that a Linaro release has been installed.
.. code:: shell .. code:: shell
export CROSS_COMPILE=<path-to-aarch64-gcc>/bin/aarch64-linux-gnu- export CROSS_COMPILE=<path-to-aarch64-gcc>/bin/aarch64-none-elf-
- The following parameters should be used to build BL1 and BL2 in AArch64 - The following parameters should be used to build BL1 and BL2 in AArch64
and point to the BL32 file. and point to the BL32 file.
......
...@@ -78,7 +78,7 @@ Build Procedure ...@@ -78,7 +78,7 @@ Build Procedure
EDK2_OUTPUT_DIR=${EDK2_DIR}/Build/HiKey/${BUILD_OPTION}_${AARCH64_TOOLCHAIN} EDK2_OUTPUT_DIR=${EDK2_DIR}/Build/HiKey/${BUILD_OPTION}_${AARCH64_TOOLCHAIN}
# Build fastboot for Trusted Firmware-A. It's used for recovery mode. # Build fastboot for Trusted Firmware-A. It's used for recovery mode.
cd ${BUILD_PATH}/atf-fastboot cd ${BUILD_PATH}/atf-fastboot
CROSS_COMPILE=aarch64-linux-gnu- make PLAT=hikey DEBUG=1 CROSS_COMPILE=aarch64-none-elf- make PLAT=hikey DEBUG=1
# Convert DEBUG/RELEASE to debug/release # Convert DEBUG/RELEASE to debug/release
FASTBOOT_BUILD_OPTION=$(echo ${BUILD_OPTION} | tr '[A-Z]' '[a-z]') FASTBOOT_BUILD_OPTION=$(echo ${BUILD_OPTION} | tr '[A-Z]' '[a-z]')
cd ${EDK2_DIR} cd ${EDK2_DIR}
......
...@@ -40,7 +40,7 @@ Build Procedure ...@@ -40,7 +40,7 @@ Build Procedure
.. code:: shell .. code:: shell
CROSS_COMPILE=aarch64-linux-gnu- make PLAT=<Target_SoC> bl31 CROSS_COMPILE=aarch64-none-elf- make PLAT=<Target_SoC> bl31
Target_SoC should be "imx8qm" for i.MX8QM SoC. Target_SoC should be "imx8qm" for i.MX8QM SoC.
Target_SoC should be "imx8qx" for i.MX8QX SoC. Target_SoC should be "imx8qx" for i.MX8QX SoC.
......
...@@ -28,7 +28,7 @@ Build Procedure ...@@ -28,7 +28,7 @@ Build Procedure
.. code:: shell .. code:: shell
CROSS_COMPILE=aarch64-linux-gnu- make PLAT=<Target_SoC> bl31 CROSS_COMPILE=aarch64-none-elf- make PLAT=<Target_SoC> bl31
Target_SoC should be "imx8mq" for i.MX8MQ SoC. Target_SoC should be "imx8mq" for i.MX8MQ SoC.
Target_SoC should be "imx8mm" for i.MX8MM SoC. Target_SoC should be "imx8mm" for i.MX8MM SoC.
......
...@@ -41,7 +41,7 @@ Build Procedure ...@@ -41,7 +41,7 @@ Build Procedure
.. code:: bash .. code:: bash
make CROSS_COMPILE=aarch64-linux-gnu- bl2 fip PLAT=agilex make CROSS_COMPILE=aarch64-none-elf- bl2 fip PLAT=agilex
BL33=PEI.ROM BL33=PEI.ROM
Install Procedure Install Procedure
......
...@@ -41,7 +41,7 @@ Build Procedure ...@@ -41,7 +41,7 @@ Build Procedure
.. code:: bash .. code:: bash
make CROSS_COMPILE=aarch64-linux-gnu- bl2 fip PLAT=stratix10 make CROSS_COMPILE=aarch64-none-elf- bl2 fip PLAT=stratix10
BL33=PEI.ROM BL33=PEI.ROM
Install Procedure Install Procedure
......
...@@ -59,13 +59,13 @@ Build Procedure ...@@ -59,13 +59,13 @@ Build Procedure
.. code:: shell .. code:: shell
CROSS_COMPILE=aarch64-linux-gnu- make PLAT=ls1043 bl1 CROSS_COMPILE=aarch64-none-elf- make PLAT=ls1043 bl1
Build fip: Build fip:
.. code:: shell .. code:: shell
CROSS_COMPILE=aarch64-linux-gnu- make PLAT=ls1043 fip \ CROSS_COMPILE=aarch64-none-elf- make PLAT=ls1043 fip \
BL33=u-boot.bin NEED_BL32=yes BL32=tee.bin SPD=opteed BL33=u-boot.bin NEED_BL32=yes BL32=tee.bin SPD=opteed
Deploy TF-A Images Deploy TF-A Images
......
...@@ -9,7 +9,7 @@ Build Instructions ...@@ -9,7 +9,7 @@ Build Instructions
.. code:: shell .. code:: shell
> export CROSS_COMPILE=/path/to/toolchain/aarch64-linux-gnu- > export CROSS_COMPILE=/path/to/toolchain/aarch64-none-elf-
(2) Set path for FIP images: (2) Set path for FIP images:
......
...@@ -17,7 +17,7 @@ In order to build it: ...@@ -17,7 +17,7 @@ In order to build it:
.. code:: shell .. code:: shell
CROSS_COMPILE=aarch64-linux-gnu- make DEBUG=1 PLAT=g12a CROSS_COMPILE=aarch64-none-elf- make DEBUG=1 PLAT=g12a
This port has been tested on a SEI510 board. After building it, follow the This port has been tested on a SEI510 board. After building it, follow the
instructions in the `gxlimg repository` or `U-Boot repository`_, replacing the instructions in the `gxlimg repository` or `U-Boot repository`_, replacing the
......
...@@ -17,7 +17,7 @@ In order to build it: ...@@ -17,7 +17,7 @@ In order to build it:
.. code:: shell .. code:: shell
CROSS_COMPILE=aarch64-linux-gnu- make DEBUG=1 PLAT=gxbb bl31 CROSS_COMPILE=aarch64-none-elf- make DEBUG=1 PLAT=gxbb bl31
This port has been tested in a ODROID-C2. After building it, follow the This port has been tested in a ODROID-C2. After building it, follow the
instructions in the `U-Boot repository`_, replacing the mentioned **bl31.bin** instructions in the `U-Boot repository`_, replacing the mentioned **bl31.bin**
......
...@@ -17,7 +17,7 @@ In order to build it: ...@@ -17,7 +17,7 @@ In order to build it:
.. code:: shell .. code:: shell
CROSS_COMPILE=aarch64-linux-gnu- make DEBUG=1 PLAT=gxl CROSS_COMPILE=aarch64-none-elf- make DEBUG=1 PLAT=gxl
This port has been tested on a Lepotato. After building it, follow the This port has been tested on a Lepotato. After building it, follow the
instructions in the `gxlimg repository` or `U-Boot repository`_, replacing the instructions in the `gxlimg repository` or `U-Boot repository`_, replacing the
......
...@@ -17,4 +17,4 @@ How to Build ...@@ -17,4 +17,4 @@ How to Build
.. code:: shell .. code:: shell
make CROSS_COMPILE=aarch64-linux-gnu- PLAT=mt8183 DEBUG=1 make CROSS_COMPILE=aarch64-none-elf- PLAT=mt8183 DEBUG=1
...@@ -68,7 +68,7 @@ Build Procedure ...@@ -68,7 +68,7 @@ Build Procedure
.. code:: bash .. code:: bash
make CROSS_COMPILE=aarch64-linux-gnu- all fip SPD=none PLAT=poplar make CROSS_COMPILE=aarch64-none-elf- all fip SPD=none PLAT=poplar
BL33=u-boot.bin BL33=u-boot.bin
- Build l-loader (generated the final fastboot.bin) - Build l-loader (generated the final fastboot.bin)
......
...@@ -27,7 +27,7 @@ To build TF-A: ...@@ -27,7 +27,7 @@ To build TF-A:
git clone https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git tfa git clone https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git tfa
cd tfa cd tfa
export CROSS_COMPILE=aarch64-linux-gnu- export CROSS_COMPILE=aarch64-none-elf-
make PLAT=qemu_sbsa all fip make PLAT=qemu_sbsa all fip
Images will be placed at build/qemu_sbsa/release (bl1.bin and fip.bin). Images will be placed at build/qemu_sbsa/release (bl1.bin and fip.bin).
......
...@@ -35,7 +35,7 @@ these images need to get build from the TF-A repository. ...@@ -35,7 +35,7 @@ these images need to get build from the TF-A repository.
For AARCH64 architectures the build command looks like For AARCH64 architectures the build command looks like
make CROSS_COMPILE=aarch64-linux-gnu- PLAT=rk3399 bl32 make CROSS_COMPILE=aarch64-none-elf- PLAT=rk3399 bl32
while AARCH32 needs a slightly different command while AARCH32 needs a slightly different command
......
...@@ -315,7 +315,7 @@ Then compile TF-A. For a 32-bit kernel, use the following command line: ...@@ -315,7 +315,7 @@ Then compile TF-A. For a 32-bit kernel, use the following command line:
.. code:: shell .. code:: shell
CROSS_COMPILE=aarch64-linux-gnu- make PLAT=rpi3 \ CROSS_COMPILE=aarch64-none-elf- make PLAT=rpi3 \
RPI3_BL33_IN_AARCH32=1 \ RPI3_BL33_IN_AARCH32=1 \
BL33=../rpi3-arm-tf-bootstrap/aarch32/el2-bootstrap.bin BL33=../rpi3-arm-tf-bootstrap/aarch32/el2-bootstrap.bin
...@@ -323,7 +323,7 @@ For a 64-bit kernel, use this other command line: ...@@ -323,7 +323,7 @@ For a 64-bit kernel, use this other command line:
.. code:: shell .. code:: shell
CROSS_COMPILE=aarch64-linux-gnu- make PLAT=rpi3 \ CROSS_COMPILE=aarch64-none-elf- make PLAT=rpi3 \
BL33=../rpi3-arm-tf-bootstrap/aarch64/el2-bootstrap.bin BL33=../rpi3-arm-tf-bootstrap/aarch64/el2-bootstrap.bin
However, enabling PSCI support in a 64-bit kernel is really easy. In the However, enabling PSCI support in a 64-bit kernel is really easy. In the
...@@ -340,7 +340,7 @@ For a 64-bit kernel: ...@@ -340,7 +340,7 @@ For a 64-bit kernel:
.. code:: shell .. code:: shell
CROSS_COMPILE=aarch64-linux-gnu- make PLAT=rpi3 \ CROSS_COMPILE=aarch64-none-elf- make PLAT=rpi3 \
PRELOADED_BL33_BASE=0x02000000 \ PRELOADED_BL33_BASE=0x02000000 \
RPI3_PRELOADED_DTB_BASE=0x01000000 \ RPI3_PRELOADED_DTB_BASE=0x01000000 \
RPI3_DIRECT_LINUX_BOOT=1 RPI3_DIRECT_LINUX_BOOT=1
...@@ -349,7 +349,7 @@ For a 32-bit kernel: ...@@ -349,7 +349,7 @@ For a 32-bit kernel:
.. code:: shell .. code:: shell
CROSS_COMPILE=aarch64-linux-gnu- make PLAT=rpi3 \ CROSS_COMPILE=aarch64-none-elf- make PLAT=rpi3 \
PRELOADED_BL33_BASE=0x02000000 \ PRELOADED_BL33_BASE=0x02000000 \
RPI3_PRELOADED_DTB_BASE=0x01000000 \ RPI3_PRELOADED_DTB_BASE=0x01000000 \
RPI3_DIRECT_LINUX_BOOT=1 \ RPI3_DIRECT_LINUX_BOOT=1 \
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment