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