xref: /openwifi/driver/make_all.sh (revision 456a79570701b889bf36b5e087ad5094d5e4fc6f)
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