1#!/bin/bash 2if [ "$#" -ne 3 ]; then 3 echo "You must enter exactly 3 arguments: \$OPENWIFI_DIR \$XILINX_DIR \$ARCH(32 or 64)" 4 exit 1 5fi 6 7WORKDIR=$PWD 8OPENWIFI_DIR=$1 9XILINX_DIR=$2 10ARCH_OPTION=$3 11 12set -x 13 14if [ -f "$OPENWIFI_DIR/LICENSE" ]; then 15 echo "\$OPENWIFI_DIR is found!" 16else 17 echo "\$OPENWIFI_DIR is not correct. Please check!" 18 exit 1 19fi 20 21if [ -d "$XILINX_DIR/SDK" ]; then 22 echo "\$XILINX_DIR is found!" 23else 24 echo "\$XILINX_DIR is not correct. Please check!" 25 exit 1 26fi 27 28if [ "$ARCH_OPTION" != "32" ] && [ "$ARCH_OPTION" != "64" ]; then 29 echo "\$ARCH_OPTION is not correct. Should be 32 or 64. Please check!" 30 exit 1 31else 32 echo "\$ARCH_OPTION is valid!" 33fi 34 35source $XILINX_DIR/SDK/2018.3/settings64.sh 36if [ "$ARCH_OPTION" == "64" ]; then 37 KDIR=$OPENWIFI_DIR/adi-linux-64/ 38 export ARCH=arm64 39 export CROSS_COMPILE=aarch64-linux-gnu- 40else 41 KDIR=$OPENWIFI_DIR/adi-linux/ 42 export ARCH=arm 43 export CROSS_COMPILE=arm-linux-gnueabihf- 44fi 45 46SUBMODULE=xilinx_dma 47 48cp $KDIR/drivers/dma/xilinx/xilinx_dma.c $KDIR/drivers/dma/xilinx/xilinx_dma.c.bak 49cp xilinx_dma.c $KDIR/drivers/dma/xilinx -rf 50cd $KDIR 51make $KDIR/drivers/dma/xilinx/$SUBMODULE.ko 52cp $KDIR/drivers/dma/xilinx/$SUBMODULE.ko $WORKDIR -rf 53# cp $KDIR/drivers/dma/xilinx/xilinx_dma.c.bak $KDIR/drivers/dma/xilinx/xilinx_dma.c 54cd $WORKDIR 55ls $SUBMODULE.ko 56