From 57a6b88b7d0c738e94aea2922134e95c39757c02 Mon Sep 17 00:00:00 2001
From: guowenxue <guowenxue@gmail.com>
Date: Tue, 09 Nov 2021 21:10:01 +0800
Subject: [PATCH] Add bootloader build shell script

---
 bsp/bootloader/patch/uboot-imx-imx6ull.patch |   13 ++++
 bsp/bootloader/build.sh                      |  139 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 152 insertions(+), 0 deletions(-)

diff --git a/bsp/bootloader/build.sh b/bsp/bootloader/build.sh
new file mode 100755
index 0000000..d9500c1
--- /dev/null
+++ b/bsp/bootloader/build.sh
@@ -0,0 +1,139 @@
+#!/bin/bash
+
+PRJ_PATH=`pwd`
+
+IMG_PATH=${PRJ_PATH}/../images/bin
+  
+BOARD=imx6ull
+ 
+CROSS_TOOL=arm-linux-gnueabihf-
+
+# bootloader tarball path and branch
+TAR_PATH=/home/guowenxue/imx6ull/bsp/tarball
+BSP_BRANCH=lf-5.10.52-2.1.0 
+
+
+BOOT=emmc
+
+UBOOT_SRC=uboot-imx
+
+IMG_NAME=u-boot-${BOARD}-${BOOT}.imx
+
+PATCH_FILE=${PRJ_PATH}/patch/${UBOOT_SRC}-${BOARD}.patch
+
+
+set -u
+set -e
+
+STAGE=0
+
+function msg_banner()
+{ 
+	STAGE=`expr $STAGE + 1`
+	
+    echo ""
+    echo "+---------------------------------------------+" 
+    printf " Stage $STAGE: $1\n" 
+    echo "+---------------------------------------------+"
+    echo ""
+}
+
+function do_fetch()
+{
+    msg_banner "Fetch ${UBOOT_SRC} source code"
+    if [ -d ${UBOOT_SRC} ] ; then 
+        printf "\n\n -- ${UBOOT_SRC} fetched already -- \n\n"
+        return 0;
+    fi
+
+    printf "\n -- decompress ${UBOOT_SRC}-{BSP_BRANCH}.tar.xz now ... -- \n\n"
+    tar -xJf ${TAR_PATH}/${UBOOT_SRC}-${BSP_BRANCH}.tar.xz
+}
+
+function do_patch()
+{
+    msg_banner "Patch for ${UBOOT_SRC} source code"
+
+    cd ${UBOOT_SRC}
+
+    if [ -s $PATCH_FILE ] ; then
+        patch -p1 < $PATCH_FILE
+    fi
+
+    printf "\n\nModify cross compiler in Makefile: $CROSS_TOOL\n\n"
+    sed -i -e "s|^CROSS_COMPILE=.*|CROSS_COMPILE=${CROSS_TOOL}|g" Makefile
+
+    cd ${PRJ_PATH}
+}
+  
+function do_build()
+{
+    msg_banner "Build for ${UBOOT_SRC} source code"
+
+    cd ${UBOOT_SRC}
+
+    if [ ! -f .config ] ; then 
+        make mx6ull_14x14_evk_defconfig
+    fi
+
+    make
+    cp u-boot-dtb.imx ${IMG_NAME}
+    chmod a+x ${IMG_NAME}
+
+    cd ${PRJ_PATH}
+}
+
+
+function do_install()
+{
+    msg_banner "Install $IMG_NAME"
+
+    cd ${UBOOT_SRC}
+
+    mkdir -p ${IMG_PATH}
+    cp ${IMG_NAME} ${IMG_PATH}
+
+    cd ${PRJ_PATH}
+}
+
+function do_clean()
+{
+    msg_banner "Clean ${UBOOT_SRC} source code"
+
+    cd ${UBOOT_SRC}
+
+    make distclean
+
+    cd ${PRJ_PATH}
+}
+
+function gen_patch()
+{ 
+    do_clean
+
+    mv ${UBOOT_SRC} ${UBOOT_SRC}-${BOARD} 
+
+    do_fetch
+
+    msg_banner "Generate ${UBOOT_SRC} patch file"
+
+    set +e
+    diff -Nuar ${UBOOT_SRC} ${UBOOT_SRC}-${BOARD} > ${UBOOT_SRC}-${BOARD}.patch
+
+    rm -rf ${UBOOT_SRC}
+    mv ${UBOOT_SRC}-${BOARD} ${UBOOT_SRC}
+}
+
+if [[ $# == 1 ]] && [[ $1 == "patch" ]] ; then
+    gen_patch
+    exit 0;
+fi
+
+do_fetch
+
+do_patch
+
+do_build
+
+do_install
+  
diff --git a/bsp/bootloader/patch/uboot-imx-imx6ull.patch b/bsp/bootloader/patch/uboot-imx-imx6ull.patch
new file mode 100644
index 0000000..0ae786b
--- /dev/null
+++ b/bsp/bootloader/patch/uboot-imx-imx6ull.patch
@@ -0,0 +1,13 @@
+diff -Nuar uboot-imx/Makefile uboot-imx-imx6ull/Makefile
+--- uboot-imx/Makefile	2021-09-06 16:48:23.000000000 +0800
++++ uboot-imx-imx6ull/Makefile	2021-11-09 21:04:40.476902774 +0800
+@@ -263,6 +263,9 @@
+ CROSS_COMPILE ?=
+ endif
+ 
++ARCH=arm
++CROSS_COMPILE=arm-linux-gnueabihf-
++
+ KCONFIG_CONFIG	?= .config
+ export KCONFIG_CONFIG
+ 

--
Gitblit v1.9.1