1b73660adSXianjun Jiao#!/bin/bash 2a6085186SLina Ceballos 3596ef126SJiao Xianjun# Author: Xianjun Jiao 4596ef126SJiao Xianjun# SPDX-FileCopyrightText: 2019 UGent 5a6085186SLina Ceballos# SPDX-License-Identifier: AGPL-3.0-or-later 6a6085186SLina Ceballos 7b73660adSXianjun Jiaoif [ "$#" -ne 3 ]; then 86ffca2acSXianjun Jiao echo "You must enter exactly 3 arguments: \$XILINX_DIR \$BOARD_NAME DIR_TO_system_top.xsa" 9b73660adSXianjun Jiao exit 1 10b73660adSXianjun Jiaofi 11b73660adSXianjun Jiao 126ffca2acSXianjun JiaoXILINX_DIR=$1 136ffca2acSXianjun JiaoBOARD_NAME=$2 146ffca2acSXianjun JiaoXSA_FILE=$3 15b73660adSXianjun Jiao 16abdb610fSJiao XianjunOPENWIFI_DIR=$(pwd)/../ 17abdb610fSJiao Xianjun 18abdb610fSJiao Xianjunecho OPENWIFI_DIR $OPENWIFI_DIR 196ffca2acSXianjun Jiaoecho XSA_FILE $XSA_FILE 20abdb610fSJiao Xianjun 21b73660adSXianjun Jiaoif [ -f "$OPENWIFI_DIR/LICENSE" ]; then 22b73660adSXianjun Jiao echo "\$OPENWIFI_DIR is found!" 23b73660adSXianjun Jiaoelse 24b73660adSXianjun Jiao echo "\$OPENWIFI_DIR is not correct. Please check!" 25b73660adSXianjun Jiao exit 1 26b73660adSXianjun Jiaofi 27b73660adSXianjun Jiao 286ffca2acSXianjun Jiaoif [ -d "$XILINX_DIR/Vitis" ]; then 29b73660adSXianjun Jiao echo "\$XILINX_DIR is found!" 30b73660adSXianjun Jiaoelse 31b73660adSXianjun Jiao echo "\$XILINX_DIR is not correct. Please check!" 32b73660adSXianjun Jiao exit 1 33b73660adSXianjun Jiaofi 34b73660adSXianjun Jiao 356ffca2acSXianjun Jiao# if [ "$BOARD_NAME" != "antsdr" ] && [ "$BOARD_NAME" != "zc706_fmcs2" ] && [ "$BOARD_NAME" != "zc702_fmcs2" ] && [ "$BOARD_NAME" != "zed_fmcs2" ] && [ "$BOARD_NAME" != "adrv9361z7035" ] && [ "$BOARD_NAME" != "adrv9364z7020" ]; then 366ffca2acSXianjun Jiao# echo "\$BOARD_NAME is not correct. Please check!" 376ffca2acSXianjun Jiao# exit 1 386ffca2acSXianjun Jiao# else 396ffca2acSXianjun Jiao# echo "\$BOARD_NAME is found!" 406ffca2acSXianjun Jiao# fi 41b73660adSXianjun Jiao 426ffca2acSXianjun Jiaoif [ -f "$XSA_FILE" ]; then 436ffca2acSXianjun Jiao echo "\$XSA_FILE is found!" 44abdb610fSJiao Xianjunelse 456ffca2acSXianjun Jiao echo "\$XSA_FILE is not found. Please check!" 46abdb610fSJiao Xianjun exit 1 47abdb610fSJiao Xianjunfi 48abdb610fSJiao Xianjun 49b73660adSXianjun Jiaohome_dir=$(pwd) 50b73660adSXianjun Jiao 51b73660adSXianjun Jiaoset -ex 52b73660adSXianjun Jiao 536ffca2acSXianjun Jiaosource $XILINX_DIR/Vitis/2021.1/settings64.sh 5494847d80SXianjun Jiao 55b73660adSXianjun Jiaocd $OPENWIFI_DIR/kernel_boot 56b73660adSXianjun Jiao 576ffca2acSXianjun Jiaoif [ "$BOARD_NAME" == "zcu102_fmcs2" ] || [ "$BOARD_NAME" == "zcu102_9371" ]; then 586ffca2acSXianjun Jiao ./build_zynqmp_boot_bin.sh $XSA_FILE boards/$BOARD_NAME/u-boot_xilinx_zynqmp_zcu102_revA.elf boards/$BOARD_NAME/bl31.elf 59914bc0b9SXianjun Jiao ARCH="zynqmp" 60914bc0b9SXianjun Jiao ARCH_BIT=64 61*a47b55e6SJiao Xianjunelif [ "$BOARD_NAME" == "antsdr" ] || [ "$BOARD_NAME" == "antsdr_e200" ] || [ "$BOARD_NAME" == "e310v2" ] || [ "$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 626ffca2acSXianjun Jiao ./build_boot_bin.sh $XSA_FILE boards/$BOARD_NAME/u-boot.elf 63914bc0b9SXianjun Jiao ARCH="zynq" 64914bc0b9SXianjun Jiao ARCH_BIT=32 656ffca2acSXianjun Jiaoelse 666ffca2acSXianjun Jiao echo "\$BOARD_NAME is not correct. Please check!" 676ffca2acSXianjun Jiao cd $home_dir 686ffca2acSXianjun Jiao exit 1 696ffca2acSXianjun Jiaofi 706ffca2acSXianjun Jiao 716ffca2acSXianjun Jiaorm -rf build_boot_bin 726ffca2acSXianjun Jiaorm -rf boards/$BOARD_NAME/output_boot_bin 736ffca2acSXianjun Jiaomv output_boot_bin boards/$BOARD_NAME/ 74b73660adSXianjun Jiao 75b73660adSXianjun Jiaocd $home_dir 76914bc0b9SXianjun Jiao 77914bc0b9SXianjun Jiao# generate system_top.bit.bin for FPGA dynamic loading 78914bc0b9SXianjun Jiaounzip -o $XSA_FILE 79914bc0b9SXianjun Jiaorm -rf ./system_top.bit.bin 80914bc0b9SXianjun Jiaobootgen -image system_top.bif -arch $ARCH -process_bitstream bin -w 81914bc0b9SXianjun Jiaols ./system_top.bit.bin -al 82