12ee67178SXianjun Jiao#!/bin/bash 2a6085186SLina Ceballos 39e463211SJiao Xianjun# Author: Xianjun jiao 49e463211SJiao Xianjun# SPDX-FileCopyrightText: 2019 UGent 5a6085186SLina Ceballos# SPDX-License-Identifier: AGPL-3.0-or-later 6a6085186SLina Ceballos 7e9919b37SXianjun Jiaoprint_usage () { 8e9919b37SXianjun Jiao echo "You must enter at least 2 arguments: \$XILINX_DIR ARCH_BIT(32 or 64)" 9e9919b37SXianjun Jiao echo "Further arguments (maximum 5) will be converted to #define argument in pre_def.h" 10e9919b37SXianjun Jiao echo " " 11e9919b37SXianjun Jiao} 12e9919b37SXianjun Jiao 13e9919b37SXianjun Jiaoprint_usage 14e9919b37SXianjun Jiao 15e9919b37SXianjun Jiaoif [ "$#" -lt 2 ]; then 162ee67178SXianjun Jiao exit 1 172ee67178SXianjun Jiaofi 182ee67178SXianjun Jiao 19abdb610fSJiao XianjunOPENWIFI_DIR=$(pwd)/../ 20abdb610fSJiao XianjunXILINX_DIR=$1 21abdb610fSJiao XianjunARCH_OPTION=$2 22b73660adSXianjun Jiao 23e9919b37SXianjun Jiaoecho OPENWIFI_DIR $OPENWIFI_DIR 24e9919b37SXianjun Jiaoecho XILINX_DIR $XILINX_DIR 25e9919b37SXianjun Jiaoecho ARCH_OPTION $ARCH_OPTION 26e9919b37SXianjun Jiao 27b73660adSXianjun Jiaoif [ -f "$OPENWIFI_DIR/LICENSE" ]; then 28b73660adSXianjun Jiao echo "\$OPENWIFI_DIR is found!" 29b73660adSXianjun Jiaoelse 30b73660adSXianjun Jiao echo "\$OPENWIFI_DIR is not correct. Please check!" 31b73660adSXianjun Jiao exit 1 32b73660adSXianjun Jiaofi 33b73660adSXianjun Jiao 340dff9736SXianjun Jiaoif [ -d "$XILINX_DIR/Vitis" ]; then 35b73660adSXianjun Jiao echo "\$XILINX_DIR is found!" 36b73660adSXianjun Jiaoelse 37b73660adSXianjun Jiao echo "\$XILINX_DIR is not correct. Please check!" 38b73660adSXianjun Jiao exit 1 39b73660adSXianjun Jiaofi 40b73660adSXianjun Jiao 41febc5adfSXianjun Jiaoif [ "$ARCH_OPTION" != "32" ] && [ "$ARCH_OPTION" != "64" ]; then 42febc5adfSXianjun Jiao echo "\$ARCH_OPTION is not correct. Should be 32 or 64. Please check!" 432ee67178SXianjun Jiao exit 1 44febc5adfSXianjun Jiaoelse 45febc5adfSXianjun Jiao echo "\$ARCH_OPTION is valid!" 46febc5adfSXianjun Jiaofi 47febc5adfSXianjun Jiao 48e9919b37SXianjun Jiaoecho "#define USE_NEW_RX_INTERRUPT 1" > pre_def.h 49e9919b37SXianjun Jiaoif [[ -n $3 ]]; then 50e9919b37SXianjun Jiao DEFINE1=$3 51e9919b37SXianjun Jiao echo DEFINE1 $DEFINE1 52e9919b37SXianjun Jiao echo "#define $DEFINE1" >> pre_def.h 53e9919b37SXianjun Jiaofi 54e9919b37SXianjun Jiaoif [[ -n $4 ]]; then 55e9919b37SXianjun Jiao DEFINE2=$4 56e9919b37SXianjun Jiao echo DEFINE2 $DEFINE2 57e9919b37SXianjun Jiao echo "#define $DEFINE2" >> pre_def.h 58e9919b37SXianjun Jiaofi 59e9919b37SXianjun Jiaoif [[ -n $5 ]]; then 60e9919b37SXianjun Jiao DEFINE3=$5 61e9919b37SXianjun Jiao echo DEFINE3 $DEFINE3 62e9919b37SXianjun Jiao echo "#define $DEFINE3" >> pre_def.h 63e9919b37SXianjun Jiaofi 64e9919b37SXianjun Jiaoif [[ -n $6 ]]; then 65e9919b37SXianjun Jiao DEFINE4=$6 66e9919b37SXianjun Jiao echo DEFINE4 $DEFINE4 67e9919b37SXianjun Jiao echo "#define $DEFINE4" >> pre_def.h 68e9919b37SXianjun Jiaofi 69e9919b37SXianjun Jiaoif [[ -n $7 ]]; then 70e9919b37SXianjun Jiao DEFINE5=$7 71e9919b37SXianjun Jiao echo DEFINE5 $DEFINE5 72e9919b37SXianjun Jiao echo "#define $DEFINE5" >> pre_def.h 73e9919b37SXianjun Jiaofi 74e9919b37SXianjun Jiao 750dff9736SXianjun Jiaosource $XILINX_DIR/Vitis/2021.1/settings64.sh 76febc5adfSXianjun Jiaoif [ "$ARCH_OPTION" == "64" ]; then 77febc5adfSXianjun Jiao LINUX_KERNEL_SRC_DIR=$OPENWIFI_DIR/adi-linux-64/ 78febc5adfSXianjun Jiao ARCH="arm64" 79febc5adfSXianjun Jiao CROSS_COMPILE="aarch64-linux-gnu-" 80febc5adfSXianjun Jiaoelse 81febc5adfSXianjun Jiao LINUX_KERNEL_SRC_DIR=$OPENWIFI_DIR/adi-linux/ 82febc5adfSXianjun Jiao ARCH="arm" 83febc5adfSXianjun Jiao CROSS_COMPILE="arm-linux-gnueabihf-" 842ee67178SXianjun Jiaofi 852ee67178SXianjun Jiao 862ee67178SXianjun Jiao# check if user entered the right path to analog device linux 87febc5adfSXianjun Jiaoif [ -d "$LINUX_KERNEL_SRC_DIR" ]; then 88febc5adfSXianjun Jiao echo "setup linux kernel path ${LINUX_KERNEL_SRC_DIR}" 892ee67178SXianjun Jiaoelse 90febc5adfSXianjun Jiao echo "Error: path to adi linux: ${LINUX_KERNEL_SRC_DIR} not found. Can not continue." 912ee67178SXianjun Jiao exit 1 922ee67178SXianjun Jiaofi 932ee67178SXianjun Jiao 94febc5adfSXianjun Jiaoset -x 95febc5adfSXianjun Jiao 96b73660adSXianjun Jiaohome_dir=$(pwd) 972ee67178SXianjun Jiao 98b73660adSXianjun Jiaocd $OPENWIFI_DIR/driver/ 998dc97f7fSXianjun Jiaoif git log -1; then 1000a92505dSXianjun Jiao echo "#define GIT_REV 0x"$(git log -1 --pretty=%h) > git_rev.h 1018dc97f7fSXianjun Jiaoelse 1028dc97f7fSXianjun Jiao echo "#define GIT_REV 0xFFFFFFFF" > git_rev.h 1038dc97f7fSXianjun Jiaofi 104b73660adSXianjun Jiaocd $OPENWIFI_DIR/driver/openofdm_tx 105febc5adfSXianjun Jiaomake KDIR=$LINUX_KERNEL_SRC_DIR ARCH=$ARCH CROSS_COMPILE=$CROSS_COMPILE 106b73660adSXianjun Jiaocd $OPENWIFI_DIR/driver/openofdm_rx 107febc5adfSXianjun Jiaomake KDIR=$LINUX_KERNEL_SRC_DIR ARCH=$ARCH CROSS_COMPILE=$CROSS_COMPILE 108b73660adSXianjun Jiaocd $OPENWIFI_DIR/driver/tx_intf 109febc5adfSXianjun Jiaomake KDIR=$LINUX_KERNEL_SRC_DIR ARCH=$ARCH CROSS_COMPILE=$CROSS_COMPILE 110b73660adSXianjun Jiaocd $OPENWIFI_DIR/driver/rx_intf 111febc5adfSXianjun Jiaomake KDIR=$LINUX_KERNEL_SRC_DIR ARCH=$ARCH CROSS_COMPILE=$CROSS_COMPILE 112b73660adSXianjun Jiaocd $OPENWIFI_DIR/driver/xpu 113febc5adfSXianjun Jiaomake KDIR=$LINUX_KERNEL_SRC_DIR ARCH=$ARCH CROSS_COMPILE=$CROSS_COMPILE 11456fcab20SXianjun Jiao# cd $OPENWIFI_DIR/driver/ad9361 11556fcab20SXianjun Jiao# make KDIR=$LINUX_KERNEL_SRC_DIR ARCH=$ARCH CROSS_COMPILE=$CROSS_COMPILE 1162ee67178SXianjun Jiao 117*456a7957SXianjun Jiaocd $OPENWIFI_DIR/driver/side_ch 118*456a7957SXianjun Jiao./make_driver.sh $XILINX_DIR $ARCH_OPTION 119*456a7957SXianjun Jiao 1200dff9736SXianjun Jiaocd $OPENWIFI_DIR/driver/ 1210dff9736SXianjun Jiaomake KDIR=$LINUX_KERNEL_SRC_DIR ARCH=$ARCH CROSS_COMPILE=$CROSS_COMPILE 1220dff9736SXianjun Jiao 123b73660adSXianjun Jiaocd $home_dir 124