From 895d1bcb91189eae2070e7d353294ce6cece986c Mon Sep 17 00:00:00 2001
From: guowenxue <guowenxue@gmail.com>
Date: Fri, 05 Apr 2024 14:38:55 +0800
Subject: [PATCH] Driver:IGKBoard-All: Update default board to igkboard-imx6ull

---
 tools/setup_tools.sh |  104 +++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 74 insertions(+), 30 deletions(-)

diff --git a/tools/setup_tools.sh b/tools/setup_tools.sh
index 5e4314c..09a6fab 100755
--- a/tools/setup_tools.sh
+++ b/tools/setup_tools.sh
@@ -1,21 +1,37 @@
 #!/bin/bash
 # This shell script used to install system tools
 
-# display in red
+# this project absolute path
+PRJ_PATH=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd)
+
+# top project absolute path
+TOP_PATH=$(realpath $PRJ_PATH/..)
+
+# config file path
+CONF_FILE=$TOP_PATH/config.json
+
+# NXP document suggest cross compiler from ARM Developer:
+#   https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads
+ARMTOOL_VER=10.3-2021.07
+
+# shell script will exit once get command error
+set -e
+
+#+-------------------------+
+#| Shell script functions  |
+#+-------------------------+
+
 function pr_error() {
-    echo -e "\033[40;31m --E-- $1 \033[0m\n"
+    echo -e "\033[40;31m $1 \033[0m"
 }
 
-# display in green
+function pr_warn() {
+    echo -e "\033[40;33m $1 \033[0m"
+}
+
 function pr_info() {
-    echo -e "\033[40;32m --I-- $1 \033[0m\n"
+    echo -e "\033[40;32m $1 \033[0m"
 }
-
-if [ `id -u` != 0 ] ; then
-    echo ""
-    pr_error "This shell script must be excuted as root privilege"
-    exit;
-fi
 
 function install_systools()
 {
@@ -53,19 +69,40 @@
     apt install -y $devtools
 }
 
-
-# NXP document suggest cross compiler from ARM Developer:
-#   https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads
-function install_crosstool()
+function install_crosstool_imx6()
 {
-    ARMTOOL_VER=10.3-2021.07
+    # Crosstool for Cortex-A download from ARM Developer
+    ARMTOOL_NAME=arm-none-linux-gnueabihf
+    CortexA_PACK=gcc-arm-$ARMTOOL_VER-`uname -p`-$ARMTOOL_NAME
+    CortexA_TAR=$CortexA_PACK.tar.xz
+    CortexA_URL=https://developer.arm.com/-/media/Files/downloads/gnu-a/$ARMTOOL_VER/binrel/
+    CortexA_NAME=gcc-aarch32-$ARMTOOL_VER
 
-    CortexM_PACK=gcc-arm-none-eabi-$ARMTOOL_VER-`uname -p`-linux
+    if [ -d /opt/$CortexA_NAME ]  ; then
+        pr_info "Cortex-A crosstool /opt/$CortexA_NAME installed already, skip it"
+    else
+        if [ ! -s $CortexA_TAR ] ; then
+            pr_info "start download cross compiler from ARM Developer for Cortex-A core"
+            wget $CortexA_URL/$CortexA_TAR
+        fi
+
+        pr_info "start decompress cross compiler for Cortex-A core"
+        tar -xJf $CortexA_TAR -C /opt
+        mv /opt/$CortexA_PACK /opt/$CortexA_NAME
+        /opt/$CortexA_NAME/bin/${ARMTOOL_NAME}-gcc -v
+        pr_info "cross compiler for Cortex-A installed to \"/opt/$CortexA_NAME\" successfully"
+        rm -f $CortexA_TAR
+    fi
+}
+
+function install_crosstool_imx8()
+{
+    # Crosstool for Cortex-M download from ARM Developer
+    ARMTOOL_NAME=arm-none-eabi
+    CortexM_PACK=gcc-$ARMTOOL_NAME-$ARMTOOL_VER-`uname -p`-linux
     CortexM_TAR=$CortexM_PACK.tar.bz2
     CortexM_URL=https://developer.arm.com/-/media/Files/downloads/gnu-rm/$ARMTOOL_VER/
     CortexM_NAME=gcc-cortexM-$ARMTOOL_VER
-
-    # Crosstool for Cortex-M download from ARM Developer
 
     if [ -d /opt/$CortexM_NAME ]  ; then
         pr_info "Cortex-M crosstool /opt/$CortexM_NAME installed already, skip it"
@@ -77,16 +114,15 @@
 
         pr_info "start decompress cross compiler for Cortex-M core"
         tar -xjf $CortexM_TAR -C /opt
-        mv /opt/gcc-arm-none-eabi-$ARMTOOL_VER /opt/$CortexM_NAME
-        rm -f $CortexM_TAR
-
-        /opt/$CortexM_NAME/bin/arm-none-eabi-gcc -v
+        mv /opt/gcc-$ARMTOOL_NAME-$ARMTOOL_VER /opt/$CortexM_NAME
+        /opt/$CortexM_NAME/bin/$ARMTOOL_NAME-gcc -v
         pr_info "cross compiler for Cortex-M installed to \"/opt/$CortexM_NAME\" successfully"
+        rm -f $CortexM_TAR
     fi
 
     # Crosstool for Cortex-A download from ARM Developer
-
-    CortexA_PACK=gcc-arm-$ARMTOOL_VER-`uname -p`-aarch64-none-linux-gnu
+    ARMTOOL_NAME=aarch64-none-linux-gnu
+    CortexA_PACK=gcc-arm-$ARMTOOL_VER-`uname -p`-$ARMTOOL_NAME
     CortexA_TAR=$CortexA_PACK.tar.xz
     CortexA_URL=https://developer.arm.com/-/media/Files/downloads/gnu-a/$ARMTOOL_VER/binrel/
     CortexA_NAME=gcc-aarch64-$ARMTOOL_VER
@@ -102,19 +138,27 @@
         pr_info "start decompress cross compiler for Cortex-A core"
         tar -xJf $CortexA_TAR -C /opt
         mv /opt/$CortexA_PACK /opt/$CortexA_NAME
-        rm -f $CortexA_TAR
-
-        /opt/$CortexA_NAME/bin/aarch64-none-linux-gnu-gcc -v
+        /opt/$CortexA_NAME/bin/$ARMTOOL_NAME-gcc -v
         pr_info "cross compiler for Cortex-A installed to \"/opt/$CortexA_NAME\" successfully"
+        rm -f $CortexA_TAR
     fi
 }
 
-echo ""
-set -e
+if [ `id -u` != 0 ] ; then
+    echo ""
+    pr_error "This shell script must be excuted as root privilege"
+    exit;
+fi
 
 install_systools
 
 install_devtools
 
-install_crosstool
+BOARD=`jq -r ".bsp.board" $CONF_FILE | tr 'A-Z' 'a-z'`
+
+if [[ $BOARD =~ mx6ull ]] ; then
+    install_crosstool_imx6
+else
+    install_crosstool_imx8
+fi
 

--
Gitblit v1.9.1