1 2#!/bin/bash 3 4# SPDX-FileCopyrightText: 2019 Jiao Xianjun <[email protected]> 5# SPDX-License-Identifier: AGPL-3.0-or-later 6 7if [ "$#" -lt 3 ]; then 8 echo "You must enter at least 3 arguments: \$OPENWIFI_DIR \$XILINX_DIR ARCH_BIT(32 or 64)" 9 exit 1 10fi 11 12OPENWIFI_DIR=$1 13XILINX_DIR=$2 14ARCH_OPTION=$3 15 16if [ -f "$OPENWIFI_DIR/LICENSE" ]; then 17 echo "\$OPENWIFI_DIR is found!" 18else 19 echo "\$OPENWIFI_DIR is not correct. Please check!" 20 exit 1 21fi 22 23if [ -d "$XILINX_DIR/SDK" ]; then 24 echo "\$XILINX_DIR is found!" 25else 26 echo "\$XILINX_DIR is not correct. Please check!" 27 exit 1 28fi 29 30if [ "$ARCH_OPTION" != "32" ] && [ "$ARCH_OPTION" != "64" ]; then 31 echo "\$ARCH_OPTION is not correct. Should be 32 or 64. Please check!" 32 exit 1 33else 34 echo "\$ARCH_OPTION is valid!" 35fi 36 37if [ "$ARCH_OPTION" == "64" ]; then 38 LINUX_KERNEL_SRC_DIR_NAME=adi-linux-64 39 LINUX_KERNEL_CONFIG_FILE=$OPENWIFI_DIR/kernel_boot/kernel_config_zynqmp 40 ARCH_NAME="arm64" 41 CROSS_COMPILE_NAME="aarch64-linux-gnu-" 42 IMAGE_TYPE=Image 43else 44 LINUX_KERNEL_SRC_DIR_NAME=adi-linux 45 LINUX_KERNEL_CONFIG_FILE=$OPENWIFI_DIR/kernel_boot/kernel_config 46 ARCH_NAME="arm" 47 CROSS_COMPILE_NAME="arm-linux-gnueabihf-" 48 IMAGE_TYPE=uImage 49fi 50 51home_dir=$(pwd) 52 53set -x 54 55cd $OPENWIFI_DIR/ 56git submodule init $LINUX_KERNEL_SRC_DIR_NAME 57git submodule update $LINUX_KERNEL_SRC_DIR_NAME 58cd $OPENWIFI_DIR/$LINUX_KERNEL_SRC_DIR_NAME 59git checkout 2019_R1 60git pull origin 2019_R1 61# git reset --hard 4fea7c5 62cp $OPENWIFI_DIR/driver/xilinx_dma/xilinx_dma.c $OPENWIFI_DIR/$LINUX_KERNEL_SRC_DIR_NAME/drivers/dma/xilinx/xilinx_dma.c 63cp $LINUX_KERNEL_CONFIG_FILE ./.config 64source $XILINX_DIR/SDK/2018.3/settings64.sh 65export ARCH=$ARCH_NAME 66export CROSS_COMPILE=$CROSS_COMPILE_NAME 67 68make oldconfig && make prepare && make modules_prepare 69 70if [ "$#" -gt 3 ]; then 71 if [ -f "$OPENWIFI_DIR/$LINUX_KERNEL_SRC_DIR_NAME/arch/$ARCH_NAME/boot/$IMAGE_TYPE" ]; then 72 echo "Kernel found! Skip the time costly Linux kernel compiling." 73 else 74 make -j12 $IMAGE_TYPE UIMAGE_LOADADDR=0x8000 75 make modules 76 fi 77fi 78 79cd $home_dir 80