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