1 2#!/bin/bash 3 4# Author: Xianjun Jiao 5# SPDX-FileCopyrightText: 2022 UGent 6# SPDX-License-Identifier: AGPL-3.0-or-later 7 8if [ "$#" -ne 3 ]; then 9 echo "You have input $# arguments." 10 echo "You must enter exactly 3 arguments: \$OPENWIFI_HW_IMG_DIR \$XILINX_DIR \$BOARD_NAME" 11 exit 1 12fi 13 14OPENWIFI_HW_IMG_DIR=$1 15XILINX_DIR=$2 16BOARD_NAME=$3 17 18if [ -d "$XILINX_DIR/Vitis" ]; then 19 echo "\$XILINX_DIR is found!" 20else 21 echo "\$XILINX_DIR is not correct. Please check!" 22 exit 1 23fi 24 25if [ "$BOARD_NAME" != "neptunesdr" ] && [ "$BOARD_NAME" != "antsdr" ] && [ "$BOARD_NAME" != "antsdr_e200" ] && [ "$BOARD_NAME" != "e310v2" ] && [ "$BOARD_NAME" != "sdrpi" ] && [ "$BOARD_NAME" != "zc706_fmcs2" ] && [ "$BOARD_NAME" != "zc702_fmcs2" ] && [ "$BOARD_NAME" != "zed_fmcs2" ] && [ "$BOARD_NAME" != "adrv9361z7035" ] && [ "$BOARD_NAME" != "adrv9364z7020" ] && [ "$BOARD_NAME" != "zcu102_fmcs2" ] && [ "$BOARD_NAME" != "zcu102_9371" ]; then 26 echo "\$BOARD_NAME is not correct. Please check!" 27 exit 1 28else 29 echo "\$BOARD_NAME is found!" 30fi 31 32if [ -d "$OPENWIFI_HW_IMG_DIR/boards/$BOARD_NAME" ]; then 33 echo "\$OPENWIFI_HW_IMG_DIR is found!" 34else 35 echo "\$OPENWIFI_HW_IMG_DIR is not correct. Please check!" 36 exit 1 37fi 38 39# uncompress the system.hdf and system_top.bit for use 40mkdir -p hdf_and_bit 41rm hdf_and_bit/* -rf 42unzip $OPENWIFI_HW_IMG_DIR/boards/$BOARD_NAME/sdk/system_top.xsa -d ./hdf_and_bit 43# cp ./hdf_and_bit/$BOARD_NAME/sdk/system_top_hw_platform_0/system.hdf $OPENWIFI_HW_IMG_DIR/boards/$BOARD_NAME/sdk/system_top_hw_platform_0/ -rf 44# cp ./hdf_and_bit/system_top.bit $OPENWIFI_HW_IMG_DIR/boards/$BOARD_NAME/sdk/system_top_hw_platform_0/ -rf 45 46# BIT_FILENAME=$OPENWIFI_HW_IMG_DIR/boards/$BOARD_NAME/sdk/system_top_hw_platform_0/system_top.bit 47BIT_FILENAME=./hdf_and_bit/system_top.bit 48 49if [ -f "$BIT_FILENAME" ]; then 50 echo "\$BIT_FILENAME is found!" 51else 52 echo "\$BIT_FILENAME does NOT exist. Please check!" 53 exit 1 54fi 55 56if [ "$BOARD_NAME" == "zcu102_fmcs2" ] || [ "$BOARD_NAME" == "zcu102_9371" ]; then 57 ARCH="zynqmp" 58 ARCH_BIT=64 59else 60 ARCH="zynq" 61 ARCH_BIT=32 62fi 63 64# FINAL_BIT_FILENAME=$BOARD_NAME\_system_top_reload.bit.bin 65 66source $XILINX_DIR/Vitis/2021.1/settings64.sh 67 68set -x 69 70cp $BIT_FILENAME ./ 71bootgen -image system_top.bif -arch $ARCH -process_bitstream bin -w 72 73# cp system_top_reload.bit.bin ./$FINAL_BIT_FILENAME 74 75cd ../driver 76make clean 77./make_all.sh $XILINX_DIR $ARCH_BIT 78cd ../user_space 79mkdir -p drv_and_fpga 80rm -rf drv_and_fpga/* 81cp system_top.bit.bin ../driver/side_ch/side_ch.ko ../driver/tx_intf/tx_intf.ko ../driver/rx_intf/rx_intf.ko ../driver/openofdm_tx/openofdm_tx.ko ../driver/openofdm_rx/openofdm_rx.ko ../driver/xpu/xpu.ko ../driver/sdr.ko ./drv_and_fpga -f 82cp $OPENWIFI_HW_IMG_DIR/boards/$BOARD_NAME/sdk/git_info.txt ./drv_and_fpga -f 83tar -cvf ./drv_and_fpga/driver.tar $(git ls-files ../driver/) 84 85# dir_save=$(pwd) 86 87# cd $OPENWIFI_HW_DIR/ip/ 88# tar -cvf $dir_save/drv_and_fpga/openwifi-hw-ip-root.tar $(git ls-files ./ | grep -v -E "/|openofdm_rx") 89# tar -cvf $dir_save/drv_and_fpga/openwifi-hw-ip-xpu.tar $(git ls-files ./xpu) 90# tar -cvf $dir_save/drv_and_fpga/openwifi-hw-ip-tx_intf.tar $(git ls-files ./tx_intf) 91# tar -cvf $dir_save/drv_and_fpga/openwifi-hw-ip-rx_intf.tar $(git ls-files ./rx_intf) 92# tar -cvf $dir_save/drv_and_fpga/openwifi-hw-ip-openofdm_tx.tar $(git ls-files ./openofdm_tx) 93# tar -cvf $dir_save/drv_and_fpga/openwifi-hw-ip-side_ch.tar $(git ls-files ./side_ch) 94 95# cd ../boards 96# tar -cvf $dir_save/drv_and_fpga/openwifi-hw-boards-root.tar $(git ls-files ./ | grep -v "/") 97# cd ./$BOARD_NAME 98# tar -cvf $dir_save/drv_and_fpga/openwifi-hw-boards-$BOARD_NAME-root.tar $(git ls-files ./ | grep -v "/") 99# tar -cvf $dir_save/drv_and_fpga/openwifi-hw-boards-$BOARD_NAME-src.tar $(git ls-files ./src) 100# tar -cvf $dir_save/drv_and_fpga/openwifi-hw-boards-$BOARD_NAME-ip_repo.tar ip_repo 101 102# cd $dir_save 103# # tar -cvf drv_and_fpga.tar system_top.bit.bin tx_intf.ko rx_intf.ko openofdm_tx.ko openofdm_rx.ko xpu.ko sdr.ko git_info.txt 104 105tar -zcvf drv_and_fpga.tar.gz drv_and_fpga 106 107set +x 108