diff --git a/README.md b/README.md
index 920f10a5035b8cf365c81ea4dec081f7cd3217ba..6941102f0ac48cf5e7fe2d7b2a5c9f43d6303fd3 100644
--- a/README.md
+++ b/README.md
@@ -156,7 +156,7 @@ The STM32 version
 The "stm32" port requires an ARM compiler, arm-none-eabi-gcc, and associated
 bin-utils.  For those using Arch Linux, you need arm-none-eabi-binutils,
 arm-none-eabi-gcc and arm-none-eabi-newlib packages.  Otherwise, try here:
-https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm
+https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads
 
 To build:
 
diff --git a/docs/develop/gettingstarted.rst b/docs/develop/gettingstarted.rst
index 36062ddc008bdc31551f441313eb1210678a55ed..000b7d61390cb01faa6c888175eddff2f80c650d 100644
--- a/docs/develop/gettingstarted.rst
+++ b/docs/develop/gettingstarted.rst
@@ -103,7 +103,7 @@ For the stm32 port, the ARM cross-compiler is required:
    $ sudo apt-get install arm-none-eabi-gcc arm-none-eabi-binutils arm-none-eabi-newlib
 
 See the `ARM GCC
-toolchain <https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm>`_
+toolchain <https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads>`_
 for the latest details.
 
 Python is also required. Python 2 is supported for now, but we recommend using Python 3.
diff --git a/ports/qemu-arm/README.md b/ports/qemu-arm/README.md
index 2c815c54b088a80fd3c0f6c1edd58de28d462d97..f821c4d1e28fb443aae046771979dcc83f16314a 100644
--- a/ports/qemu-arm/README.md
+++ b/ports/qemu-arm/README.md
@@ -16,7 +16,7 @@ The purposes of this port are to enable:
       process in terms of plugging things together, pressing buttons, etc.
 
 This port will only work with the [GNU ARM Embedded Toolchain](
-https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm)
+https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads
  and not with CodeSourcery toolchain. You will need to modify
 `LDFLAGS` if you want to use CodeSourcery's version of `arm-none-eabi`.
 The difference is that CodeSourcery needs `-T generic-m-hosted.ld` while
diff --git a/ports/renesas-ra/README.md b/ports/renesas-ra/README.md
index 482870e1c0368c06505eb5ec5ccbb263fe5f2147..c75a9e13d1ed0e664e70a68265a47cf551f9f846 100644
--- a/ports/renesas-ra/README.md
+++ b/ports/renesas-ra/README.md
@@ -36,7 +36,7 @@ All other commands below should be executed from the ports/renesas-ra/ directory
 * Arm compiler
 An `Arm compiler` is required for the build, along with the associated binary
 utilities.  The default compiler is `arm-none-eabi-gcc`, which is available for
-Arch Linux and Windows hosts via https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads.
+Linux, Mac and Windows hosts via https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads.
 The compiler can be changed using the `CROSS_COMPILE` variable
 when invoking `make`.