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