diff --git a/docs/getting_started/initial-build.rst b/docs/getting_started/initial-build.rst
index 893aba2457d9ec3390691a458e61a92e4e29f1d7..41cd4d1c97d923df3c8bda1da51ce31baf6a0a52 100644
--- a/docs/getting_started/initial-build.rst
+++ b/docs/getting_started/initial-build.rst
@@ -8,13 +8,13 @@ Performing an Initial Build
 
    .. code:: shell
 
-       export CROSS_COMPILE=<path-to-aarch64-gcc>/bin/aarch64-none-elf-
+       export CROSS_COMPILE=<path-to-aarch64-gcc>/bin/aarch64-linux-gnu-
 
    For AArch32:
 
    .. code:: shell
 
-       export CROSS_COMPILE=<path-to-aarch32-gcc>/bin/arm-none-eabi-
+       export CROSS_COMPILE=<path-to-aarch32-gcc>/bin/arm-eabi-
 
    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
@@ -32,7 +32,7 @@ Performing an Initial Build
 
    .. code:: shell
 
-       export CROSS_COMPILE=<path-to-aarch64-gcc>/bin/aarch64-none-elf-
+       export CROSS_COMPILE=<path-to-aarch64-gcc>/bin/aarch64-linux-gnu-
        make CC=<path-to-armclang>/bin/armclang PLAT=<platform> all
 
    Clang will be selected when the base name of the path assigned to ``CC``
@@ -43,7 +43,7 @@ Performing an Initial Build
 
    .. code:: shell
 
-       export CROSS_COMPILE=<path-to-aarch64-gcc>/bin/aarch64-none-elf-
+       export CROSS_COMPILE=<path-to-aarch64-gcc>/bin/aarch64-linux-gnu-
        make CC=<path-to-clang>/bin/clang PLAT=<platform> all
 
 -  Change to the root directory of the TF-A source tree and build.
diff --git a/docs/getting_started/prerequisites.rst b/docs/getting_started/prerequisites.rst
index 3e0c8fff295a750174ccbf3623cf308eda01c759..27ad0ed5f7809a0cc8d36435c3f94848e3b9fef9 100644
--- a/docs/getting_started/prerequisites.rst
+++ b/docs/getting_started/prerequisites.rst
@@ -26,7 +26,7 @@ Toolchain
 |TF-A| can be built with any of the following *cross-compiler* toolchains that
 target the Armv7-A or Armv8-A architectures:
 
-- GCC >= 9.2-2019.12 (from the `Arm Developer website`_)
+- GCC >= 8.3-2019.03 (from the `Arm Developer website`_)
 - Clang >= 4.0
 - Arm Compiler >= 6.0
 
diff --git a/docs/plat/allwinner.rst b/docs/plat/allwinner.rst
index 5c905d86beaaa67379180add392941b975fb6c70..a1e06590a0b735ff5b7f6abea1ad61b4a0fc98af 100644
--- a/docs/plat/allwinner.rst
+++ b/docs/plat/allwinner.rst
@@ -26,13 +26,13 @@ To build for machines with an A64 or H5 SoC:
 
 .. code:: shell
 
-    make CROSS_COMPILE=aarch64-none-elf- PLAT=sun50i_a64 DEBUG=1 bl31
+    make CROSS_COMPILE=aarch64-linux-gnu- PLAT=sun50i_a64 DEBUG=1 bl31
 
 To build for machines with an H6 SoC:
 
 .. code:: shell
 
-    make CROSS_COMPILE=aarch64-none-elf- PLAT=sun50i_h6 DEBUG=1 bl31
+    make CROSS_COMPILE=aarch64-linux-gnu- PLAT=sun50i_h6 DEBUG=1 bl31
 
 .. _U-Boot documentation: http://git.denx.de/?p=u-boot.git;f=board/sunxi/README.sunxi64;hb=HEAD
 
diff --git a/docs/plat/arm/fvp/index.rst b/docs/plat/arm/fvp/index.rst
index 37010e1a50985d0556d878beead0ec6779e290e4..b6396b97c20923e8e0a85fdddb170def897973b6 100644
--- a/docs/plat/arm/fvp/index.rst
+++ b/docs/plat/arm/fvp/index.rst
@@ -223,7 +223,7 @@ address ``0x82000000``, the firmware can be built like this:
 
 .. code:: shell
 
-    CROSS_COMPILE=aarch64-none-elf-  \
+    CROSS_COMPILE=aarch64-linux-gnu-  \
     make PLAT=fvp DEBUG=1             \
     RESET_TO_BL31=1                   \
     ARM_LINUX_KERNEL_AS_BL33=1        \
diff --git a/docs/plat/arm/juno/index.rst b/docs/plat/arm/juno/index.rst
index cf328fac92befeccb1fb6c9c6fdf4fcd4dc4cb69..6429ede7a5fb0798e13dfcf31457121417d6745b 100644
--- a/docs/plat/arm/juno/index.rst
+++ b/docs/plat/arm/juno/index.rst
@@ -136,7 +136,7 @@ a single FIP binary. It assumes that a Linaro release has been installed.
 
       .. code:: shell
 
-          export CROSS_COMPILE=<path-to-aarch64-gcc>/bin/aarch64-none-elf-
+          export CROSS_COMPILE=<path-to-aarch64-gcc>/bin/aarch64-linux-gnu-
 
    -  The following parameters should be used to build BL1 and BL2 in AArch64
       and point to the BL32 file.
diff --git a/docs/plat/hikey.rst b/docs/plat/hikey.rst
index d7a01a881ed0fe5ee8903d3cf2821862245443d2..372d3886786aab3a50a0a40df0102a32db596fdb 100644
--- a/docs/plat/hikey.rst
+++ b/docs/plat/hikey.rst
@@ -78,7 +78,7 @@ Build Procedure
        EDK2_OUTPUT_DIR=${EDK2_DIR}/Build/HiKey/${BUILD_OPTION}_${AARCH64_TOOLCHAIN}
        # Build fastboot for Trusted Firmware-A. It's used for recovery mode.
        cd ${BUILD_PATH}/atf-fastboot
-       CROSS_COMPILE=aarch64-none-elf- make PLAT=hikey DEBUG=1
+       CROSS_COMPILE=aarch64-linux-gnu- make PLAT=hikey DEBUG=1
        # Convert DEBUG/RELEASE to debug/release
        FASTBOOT_BUILD_OPTION=$(echo ${BUILD_OPTION} | tr '[A-Z]' '[a-z]')
        cd ${EDK2_DIR}
diff --git a/docs/plat/imx8.rst b/docs/plat/imx8.rst
index cec1a39d898e598484136933c80f5793f0294940..49ba37412263b973a327ffa9d067ee2f1f0703e4 100644
--- a/docs/plat/imx8.rst
+++ b/docs/plat/imx8.rst
@@ -40,7 +40,7 @@ Build Procedure
 
    .. code:: shell
 
-       CROSS_COMPILE=aarch64-none-elf- make PLAT=<Target_SoC> bl31
+       CROSS_COMPILE=aarch64-linux-gnu- make PLAT=<Target_SoC> bl31
 
    Target_SoC should be "imx8qm" for i.MX8QM SoC.
    Target_SoC should be "imx8qx" for i.MX8QX SoC.
diff --git a/docs/plat/imx8m.rst b/docs/plat/imx8m.rst
index 0116b34a9349ebff34d5d81d2e5c1abbe4ca6ce4..8acd13cf700b4d750a1eb76c048be685eebbcfb0 100644
--- a/docs/plat/imx8m.rst
+++ b/docs/plat/imx8m.rst
@@ -28,7 +28,7 @@ Build Procedure
 
    .. code:: shell
 
-       CROSS_COMPILE=aarch64-none-elf- make PLAT=<Target_SoC> bl31
+       CROSS_COMPILE=aarch64-linux-gnu- make PLAT=<Target_SoC> bl31
 
    Target_SoC should be "imx8mq" for i.MX8MQ SoC.
    Target_SoC should be "imx8mm" for i.MX8MM SoC.
diff --git a/docs/plat/intel-agilex.rst b/docs/plat/intel-agilex.rst
index f60bf14ad6fe01430c58851e1f50c1a789e1f71d..ff27b6b5fa96c802f98323fa2fdee8e79cd940f0 100644
--- a/docs/plat/intel-agilex.rst
+++ b/docs/plat/intel-agilex.rst
@@ -41,7 +41,7 @@ Build Procedure
 
 .. code:: bash
 
-       make CROSS_COMPILE=aarch64-none-elf- bl2 fip PLAT=agilex
+       make CROSS_COMPILE=aarch64-linux-gnu- bl2 fip PLAT=agilex
        BL33=PEI.ROM
 
 Install Procedure
diff --git a/docs/plat/intel-stratix10.rst b/docs/plat/intel-stratix10.rst
index 5f33d12de141127a2edde56a5184821ce70c40c6..7f8d18e03b76e752c04e84045b5d0941d4efdc5e 100644
--- a/docs/plat/intel-stratix10.rst
+++ b/docs/plat/intel-stratix10.rst
@@ -41,7 +41,7 @@ Build Procedure
 
 .. code:: bash
 
-       make CROSS_COMPILE=aarch64-none-elf- bl2 fip PLAT=stratix10
+       make CROSS_COMPILE=aarch64-linux-gnu- bl2 fip PLAT=stratix10
        BL33=PEI.ROM
 
 Install Procedure
diff --git a/docs/plat/ls1043a.rst b/docs/plat/ls1043a.rst
index 5a8f7558f7a5981053b3669cab0d349aa963506e..72a51f3cc85c81dde5993d80255dfd526f9628f5 100644
--- a/docs/plat/ls1043a.rst
+++ b/docs/plat/ls1043a.rst
@@ -59,13 +59,13 @@ Build Procedure
 
    .. code:: shell
 
-       CROSS_COMPILE=aarch64-none-elf- make PLAT=ls1043 bl1
+       CROSS_COMPILE=aarch64-linux-gnu- make PLAT=ls1043 bl1
 
    Build fip:
 
    .. code:: shell
 
-       CROSS_COMPILE=aarch64-none-elf- make PLAT=ls1043 fip \
+       CROSS_COMPILE=aarch64-linux-gnu- make PLAT=ls1043 fip \
        BL33=u-boot.bin NEED_BL32=yes BL32=tee.bin SPD=opteed
 
 Deploy TF-A Images
diff --git a/docs/plat/marvell/build.rst b/docs/plat/marvell/build.rst
index d0e37c683411f3f6e018f6de0e4ad0e0f83d1b21..c10bcff7923033ee790f6ee29ba14dd41c8f05a6 100644
--- a/docs/plat/marvell/build.rst
+++ b/docs/plat/marvell/build.rst
@@ -9,7 +9,7 @@ Build Instructions
 
     .. code:: shell
 
-        > export CROSS_COMPILE=/path/to/toolchain/aarch64-none-elf-
+        > export CROSS_COMPILE=/path/to/toolchain/aarch64-linux-gnu-
 
 (2) Set path for FIP images:
 
diff --git a/docs/plat/meson-g12a.rst b/docs/plat/meson-g12a.rst
index 8b06cc287bca278fdbaa43f6bcde148a89bd0e0e..7cd1bf746eff77663c85010d396e54a51c63cfa3 100644
--- a/docs/plat/meson-g12a.rst
+++ b/docs/plat/meson-g12a.rst
@@ -17,7 +17,7 @@ In order to build it:
 
 .. code:: shell
 
-    CROSS_COMPILE=aarch64-none-elf- make DEBUG=1 PLAT=g12a
+    CROSS_COMPILE=aarch64-linux-gnu- make DEBUG=1 PLAT=g12a
 
 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
diff --git a/docs/plat/meson-gxbb.rst b/docs/plat/meson-gxbb.rst
index f891ecd81612b75014c8f90575628e7305d77af3..2cd8342cb9371847d1139d1a8949ff1fcb59d378 100644
--- a/docs/plat/meson-gxbb.rst
+++ b/docs/plat/meson-gxbb.rst
@@ -17,7 +17,7 @@ In order to build it:
 
 .. code:: shell
 
-    CROSS_COMPILE=aarch64-none-elf- make DEBUG=1 PLAT=gxbb bl31
+    CROSS_COMPILE=aarch64-linux-gnu- make DEBUG=1 PLAT=gxbb bl31
 
 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**
diff --git a/docs/plat/meson-gxl.rst b/docs/plat/meson-gxl.rst
index 170d7c774569eb0ecac75bb31d9e36993feaaec3..c6d8504466252723da82cafd8ce38b79dcb48cc9 100644
--- a/docs/plat/meson-gxl.rst
+++ b/docs/plat/meson-gxl.rst
@@ -17,7 +17,7 @@ In order to build it:
 
 .. code:: shell
 
-    CROSS_COMPILE=aarch64-none-elf- make DEBUG=1 PLAT=gxl
+    CROSS_COMPILE=aarch64-linux-gnu- make DEBUG=1 PLAT=gxl
 
 This port has been tested on a Lepotato. After building it, follow the
 instructions in the `gxlimg repository` or `U-Boot repository`_, replacing the
diff --git a/docs/plat/mt8183.rst b/docs/plat/mt8183.rst
index 7a0830f089e4bb256b392fc0502902c71df1e83e..c639be1ee8d1eb68f3c3193486a8a6f29896e16b 100644
--- a/docs/plat/mt8183.rst
+++ b/docs/plat/mt8183.rst
@@ -17,4 +17,4 @@ How to Build
 
 .. code:: shell
 
-    make CROSS_COMPILE=aarch64-none-elf- PLAT=mt8183 DEBUG=1
+    make CROSS_COMPILE=aarch64-linux-gnu- PLAT=mt8183 DEBUG=1
diff --git a/docs/plat/poplar.rst b/docs/plat/poplar.rst
index 040b59396f4a38e0665b052c68ed4a32e1f165e8..215f551429ce773f39731d345b45433b273999c6 100644
--- a/docs/plat/poplar.rst
+++ b/docs/plat/poplar.rst
@@ -68,7 +68,7 @@ Build Procedure
 
 .. code:: bash
 
-       make CROSS_COMPILE=aarch64-none-elf- all fip SPD=none PLAT=poplar
+       make CROSS_COMPILE=aarch64-linux-gnu-  all fip SPD=none PLAT=poplar
        BL33=u-boot.bin
 
 -  Build l-loader (generated the final fastboot.bin)
diff --git a/docs/plat/qemu-sbsa.rst b/docs/plat/qemu-sbsa.rst
index 5e8535c722f09a7c984de14ee0d935baea253dcc..51fe4140463e305e30db7d6727d07f6c4574d7a0 100644
--- a/docs/plat/qemu-sbsa.rst
+++ b/docs/plat/qemu-sbsa.rst
@@ -27,7 +27,7 @@ To build TF-A:
 
     git clone https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git tfa
     cd tfa
-    export CROSS_COMPILE=aarch64-none-elf-
+    export CROSS_COMPILE=aarch64-linux-gnu-
     make PLAT=qemu_sbsa all fip
 
 Images will be placed at build/qemu_sbsa/release (bl1.bin and fip.bin).
diff --git a/docs/plat/rockchip.rst b/docs/plat/rockchip.rst
index 2c3c38fb5424b6aab6b8dfa0cccb1264315db877..b7c43fbe17a9c56cbfd38791fad22efa616c7ace 100644
--- a/docs/plat/rockchip.rst
+++ b/docs/plat/rockchip.rst
@@ -35,7 +35,7 @@ these images need to get build from the TF-A repository.
 
 For AARCH64 architectures the build command looks like
 
-    make CROSS_COMPILE=aarch64-none-elf- PLAT=rk3399 bl32
+    make CROSS_COMPILE=aarch64-linux-gnu- PLAT=rk3399 bl32
 
 while AARCH32 needs a slightly different command
 
diff --git a/docs/plat/rpi3.rst b/docs/plat/rpi3.rst
index 5c7b6d5ddac341994128d411480d7619a6bea11d..38c3dfa824439359bbe4a6ae933b7b035a61e63e 100644
--- a/docs/plat/rpi3.rst
+++ b/docs/plat/rpi3.rst
@@ -315,7 +315,7 @@ Then compile TF-A. For a 32-bit kernel, use the following command line:
 
 .. code:: shell
 
-    CROSS_COMPILE=aarch64-none-elf- make PLAT=rpi3             \
+    CROSS_COMPILE=aarch64-linux-gnu- make PLAT=rpi3             \
     RPI3_BL33_IN_AARCH32=1                                      \
     BL33=../rpi3-arm-tf-bootstrap/aarch32/el2-bootstrap.bin
 
@@ -323,7 +323,7 @@ For a 64-bit kernel, use this other command line:
 
 .. code:: shell
 
-    CROSS_COMPILE=aarch64-none-elf- make PLAT=rpi3             \
+    CROSS_COMPILE=aarch64-linux-gnu- make PLAT=rpi3             \
     BL33=../rpi3-arm-tf-bootstrap/aarch64/el2-bootstrap.bin
 
 However, enabling PSCI support in a 64-bit kernel is really easy. In the
@@ -340,7 +340,7 @@ For a 64-bit kernel:
 
 .. code:: shell
 
-    CROSS_COMPILE=aarch64-none-elf- make PLAT=rpi3             \
+    CROSS_COMPILE=aarch64-linux-gnu- make PLAT=rpi3             \
     PRELOADED_BL33_BASE=0x02000000                              \
     RPI3_PRELOADED_DTB_BASE=0x01000000                          \
     RPI3_DIRECT_LINUX_BOOT=1
@@ -349,7 +349,7 @@ For a 32-bit kernel:
 
 .. code:: shell
 
-    CROSS_COMPILE=aarch64-none-elf- make PLAT=rpi3             \
+    CROSS_COMPILE=aarch64-linux-gnu- make PLAT=rpi3             \
     PRELOADED_BL33_BASE=0x02000000                              \
     RPI3_PRELOADED_DTB_BASE=0x01000000                          \
     RPI3_DIRECT_LINUX_BOOT=1                                    \
diff --git a/docs/plat/rpi4.rst b/docs/plat/rpi4.rst
index e87aef71a957bebbf759be3536bb44905babf983..0f529c1032a7eea46ce1efc361d8e3fd325667a8 100644
--- a/docs/plat/rpi4.rst
+++ b/docs/plat/rpi4.rst
@@ -22,7 +22,7 @@ one universal binary (bl31.bin), which can be built with:
 
 .. code:: shell
 
-    CROSS_COMPILE=aarch64-none-elf- make PLAT=rpi4 DEBUG=1
+    CROSS_COMPILE=aarch64-linux-gnu- make PLAT=rpi4 DEBUG=1
 
 Copy the generated build/rpi4/debug/bl31.bin to the SD card, either
 renaming it to ``armstub8.bin`` or adding an entry starting with ``armstub=``,
diff --git a/docs/plat/ti-k3.rst b/docs/plat/ti-k3.rst
index 2626e6741025cd64aba2b3de4c9daa1b2effece9..4843227df3f28e4ff7b95ea0c4d10825e704b764 100644
--- a/docs/plat/ti-k3.rst
+++ b/docs/plat/ti-k3.rst
@@ -27,7 +27,7 @@ TF-A:
 
 .. code:: shell
 
-    make CROSS_COMPILE=aarch64-none-elf- PLAT=k3 SPD=opteed all
+    make CROSS_COMPILE=aarch64-linux-gnu- PLAT=k3 SPD=opteed all
 
 OP-TEE: