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