1febc5adfSXianjun Jiao 2febc5adfSXianjun Jiao#!/bin/bash 3a6085186SLina Ceballos 4f56c9fb1SJiao Xianjun# Author: Xianjun Jiao 5f56c9fb1SJiao Xianjun# SPDX-FileCopyrightText: 2019 UGent 6a6085186SLina Ceballos# SPDX-License-Identifier: AGPL-3.0-or-later 7a6085186SLina Ceballos 8*abdb610fSJiao Xianjunif [ "$#" -lt 2 ]; then 9*abdb610fSJiao Xianjun echo "You must enter at least 2 arguments: \$XILINX_DIR ARCH_BIT(32 or 64)" 10febc5adfSXianjun Jiao exit 1 11febc5adfSXianjun Jiaofi 12febc5adfSXianjun Jiao 13*abdb610fSJiao XianjunOPENWIFI_DIR=$(pwd)/../ 14*abdb610fSJiao XianjunXILINX_DIR=$1 15*abdb610fSJiao XianjunARCH_OPTION=$2 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 62*abdb610fSJiao Xianjungit reset --hard 63*abdb610fSJiao Xianjun# git reset --hard 4e81f0927cfb2fada92fc762dbd65d002848405a 64febc5adfSXianjun Jiaocp $LINUX_KERNEL_CONFIG_FILE ./.config 6556fcab20SXianjun Jiaocp $OPENWIFI_DIR/driver/ad9361/ad9361.c $OPENWIFI_DIR/$LINUX_KERNEL_SRC_DIR_NAME/drivers/iio/adc/ad9361.c -rf 6656fcab20SXianjun Jiao 67febc5adfSXianjun Jiaosource $XILINX_DIR/SDK/2018.3/settings64.sh 68febc5adfSXianjun Jiaoexport ARCH=$ARCH_NAME 69febc5adfSXianjun Jiaoexport CROSS_COMPILE=$CROSS_COMPILE_NAME 70febc5adfSXianjun Jiao 71febc5adfSXianjun Jiaomake oldconfig && make prepare && make modules_prepare 72febc5adfSXianjun Jiao 73*abdb610fSJiao Xianjunif [ "$#" -gt 2 ]; then 74*abdb610fSJiao Xianjun # if [ -f "$OPENWIFI_DIR/$LINUX_KERNEL_SRC_DIR_NAME/arch/$ARCH_NAME/boot/$IMAGE_TYPE" ]; then 75*abdb610fSJiao Xianjun # echo "Kernel found! Skip the time costly Linux kernel compiling." 76*abdb610fSJiao Xianjun # else 77febc5adfSXianjun Jiao make -j12 $IMAGE_TYPE UIMAGE_LOADADDR=0x8000 78febc5adfSXianjun Jiao make modules 79*abdb610fSJiao Xianjun # fi 80febc5adfSXianjun Jiaofi 81febc5adfSXianjun Jiao 82febc5adfSXianjun Jiaocd $home_dir 83