toolchain.mk: add RISC-V toolchain downloaded from official release
Add "TARGET_ARCH" variable to download either ARM or RISC-V toolchains.
If "TARGET_ARCH" is specified as "riscv", the RISC-V 64-bit toolchain
will be downloaded from riscv-gnu-toolchain repository and decompressed
to toolchains/riscv64 folder.
Signed-off-by: Alvin Chang <alvinga@andestech.com>
Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
diff --git a/toolchain.mk b/toolchain.mk
index ec0f512..41da55c 100644
--- a/toolchain.mk
+++ b/toolchain.mk
@@ -5,6 +5,7 @@
ROOT ?= $(CURDIR)/..
TOOLCHAIN_ROOT ?= $(ROOT)/toolchains
UNAME_M := $(shell uname -m)
+TARGET_ARCH ?= arm
# Download toolchain macro for saving some repetition
# $(1) is $AARCH.._PATH : i.e., path to the destination
@@ -44,6 +45,7 @@
endef
ifeq ($(UNAME_M),x86_64)
+ifeq ($(TARGET_ARCH),arm)
AARCH32_PATH ?= $(TOOLCHAIN_ROOT)/aarch32
AARCH32_CROSS_COMPILE ?= $(AARCH32_PATH)/bin/arm-linux-gnueabihf-
AARCH32_GCC_VERSION ?= arm-gnu-toolchain-11.3.rel1-x86_64-arm-none-linux-gnueabihf
@@ -81,6 +83,22 @@
clang-toolchains:
$(call dl-clang,$(CLANG_VER),$(CLANG_PATH))
+else ifeq ($(TARGET_ARCH),riscv)
+RISCV64_PATH ?= $(TOOLCHAIN_ROOT)/riscv64
+RISCV64_CROSS_COMPILE ?= $(RISCV64_PATH)/bin/riscv64-unknown-linux-gnu-
+RISCV64_GCC_RELEASE_DATE ?= 2023.07.07
+RISCV64_GCC_VERSION ?= riscv64-glibc-ubuntu-22.04-gcc-nightly-$(RISCV64_GCC_RELEASE_DATE)-nightly
+SRC_RISCV64_GCC ?= https://github.com/riscv-collab/riscv-gnu-toolchain/releases/download/$(RISCV64_GCC_RELEASE_DATE)/$(RISCV64_GCC_VERSION).tar.gz
+
+.PHONY: toolchains
+toolchains: riscv64
+
+.PHONY: riscv64
+riscv64:
+ $(call dltc,$(RISCV64_PATH),$(SRC_RISCV64_GCC),$(RISCV64_GCC_VERSION))
+
+endif
+
else ifeq ($(UNAME_M),aarch64)
AARCH32_PATH ?= $(TOOLCHAIN_ROOT)/aarch32