1#!/bin/bash 2 3# Author: Xianjun Jiao 4# SPDX-FileCopyrightText: 2019 UGent 5# SPDX-License-Identifier: AGPL-3.0-or-later 6 7if [ "$#" -ne 3 ]; then 8 echo "You must enter exactly 3 arguments: \$XILINX_DIR \$BOARD_NAME DIR_TO_system_top.xsa" 9 exit 1 10fi 11 12XILINX_DIR=$1 13BOARD_NAME=$2 14XSA_FILE=$3 15 16OPENWIFI_DIR=$(pwd)/../ 17 18echo OPENWIFI_DIR $OPENWIFI_DIR 19echo XSA_FILE $XSA_FILE 20 21if [ -f "$OPENWIFI_DIR/LICENSE" ]; then 22 echo "\$OPENWIFI_DIR is found!" 23else 24 echo "\$OPENWIFI_DIR is not correct. Please check!" 25 exit 1 26fi 27 28if [ -d "$XILINX_DIR/Vitis" ]; then 29 echo "\$XILINX_DIR is found!" 30else 31 echo "\$XILINX_DIR is not correct. Please check!" 32 exit 1 33fi 34 35# if [ "$BOARD_NAME" != "antsdr" ] && [ "$BOARD_NAME" != "zc706_fmcs2" ] && [ "$BOARD_NAME" != "zc702_fmcs2" ] && [ "$BOARD_NAME" != "zed_fmcs2" ] && [ "$BOARD_NAME" != "adrv9361z7035" ] && [ "$BOARD_NAME" != "adrv9364z7020" ]; then 36# echo "\$BOARD_NAME is not correct. Please check!" 37# exit 1 38# else 39# echo "\$BOARD_NAME is found!" 40# fi 41 42if [ -f "$XSA_FILE" ]; then 43 echo "\$XSA_FILE is found!" 44else 45 echo "\$XSA_FILE is not found. Please check!" 46 exit 1 47fi 48 49home_dir=$(pwd) 50 51set -ex 52 53source $XILINX_DIR/Vitis/2021.1/settings64.sh 54 55cd $OPENWIFI_DIR/kernel_boot 56 57if [ "$BOARD_NAME" == "zcu102_fmcs2" ] || [ "$BOARD_NAME" == "zcu102_9371" ]; then 58 ./build_zynqmp_boot_bin.sh $XSA_FILE boards/$BOARD_NAME/u-boot_xilinx_zynqmp_zcu102_revA.elf boards/$BOARD_NAME/bl31.elf 59 ARCH="zynqmp" 60 ARCH_BIT=64 61elif [ "$BOARD_NAME" == "antsdr" ] || [ "$BOARD_NAME" == "antsdr_e200" ] || [ "$BOARD_NAME" == "sdrpi" ] || [ "$BOARD_NAME" == "neptunesdr" ] || [ "$BOARD_NAME" == "zc706_fmcs2" ] || [ "$BOARD_NAME" == "zc702_fmcs2" ] || [ "$BOARD_NAME" == "zed_fmcs2" ] || [ "$BOARD_NAME" == "adrv9361z7035" ] || [ "$BOARD_NAME" == "adrv9364z7020" ]; then 62 ./build_boot_bin.sh $XSA_FILE boards/$BOARD_NAME/u-boot.elf 63 ARCH="zynq" 64 ARCH_BIT=32 65else 66 echo "\$BOARD_NAME is not correct. Please check!" 67 cd $home_dir 68 exit 1 69fi 70 71rm -rf build_boot_bin 72rm -rf boards/$BOARD_NAME/output_boot_bin 73mv output_boot_bin boards/$BOARD_NAME/ 74 75cd $home_dir 76 77# generate system_top.bit.bin for FPGA dynamic loading 78unzip -o $XSA_FILE 79rm -rf ./system_top.bit.bin 80bootgen -image system_top.bif -arch $ARCH -process_bitstream bin -w 81ls ./system_top.bit.bin -al 82