1febc5adfSXianjun Jiao 2febc5adfSXianjun Jiao#!/bin/bash 3*a6085186SLina Ceballos 4*a6085186SLina Ceballos# SPDX-FileCopyrightText: 2019 Jiao Xianjun <[email protected]> 5*a6085186SLina Ceballos# SPDX-License-Identifier: AGPL-3.0-or-later 6*a6085186SLina Ceballos 7febc5adfSXianjun Jiaoif [ "$#" -lt 3 ]; then 8febc5adfSXianjun Jiao echo "You must enter at least 3 arguments: \$OPENWIFI_DIR \$XILINX_DIR ARCH_BIT(32 or 64)" 9febc5adfSXianjun Jiao exit 1 10febc5adfSXianjun Jiaofi 11febc5adfSXianjun Jiao 12febc5adfSXianjun JiaoOPENWIFI_DIR=$1 13febc5adfSXianjun JiaoXILINX_DIR=$2 14febc5adfSXianjun JiaoARCH_OPTION=$3 15febc5adfSXianjun Jiao 16febc5adfSXianjun Jiaoif [ -f "$OPENWIFI_DIR/LICENSE" ]; then 17febc5adfSXianjun Jiao echo "\$OPENWIFI_DIR is found!" 18febc5adfSXianjun Jiaoelse 19febc5adfSXianjun Jiao echo "\$OPENWIFI_DIR is not correct. Please check!" 20febc5adfSXianjun Jiao exit 1 21febc5adfSXianjun Jiaofi 22febc5adfSXianjun Jiao 23febc5adfSXianjun Jiaoif [ -d "$XILINX_DIR/SDK" ]; then 24febc5adfSXianjun Jiao echo "\$XILINX_DIR is found!" 25febc5adfSXianjun Jiaoelse 26febc5adfSXianjun Jiao echo "\$XILINX_DIR is not correct. Please check!" 27febc5adfSXianjun Jiao exit 1 28febc5adfSXianjun Jiaofi 29febc5adfSXianjun Jiao 30febc5adfSXianjun Jiaoif [ "$ARCH_OPTION" != "32" ] && [ "$ARCH_OPTION" != "64" ]; then 31febc5adfSXianjun Jiao echo "\$ARCH_OPTION is not correct. Should be 32 or 64. Please check!" 32febc5adfSXianjun Jiao exit 1 33febc5adfSXianjun Jiaoelse 34febc5adfSXianjun Jiao echo "\$ARCH_OPTION is valid!" 35febc5adfSXianjun Jiaofi 36febc5adfSXianjun Jiao 37febc5adfSXianjun Jiaoif [ "$ARCH_OPTION" == "64" ]; then 38febc5adfSXianjun Jiao LINUX_KERNEL_SRC_DIR_NAME=adi-linux-64 39febc5adfSXianjun Jiao LINUX_KERNEL_CONFIG_FILE=$OPENWIFI_DIR/kernel_boot/kernel_config_zynqmp 40febc5adfSXianjun Jiao ARCH_NAME="arm64" 41febc5adfSXianjun Jiao CROSS_COMPILE_NAME="aarch64-linux-gnu-" 42febc5adfSXianjun Jiao IMAGE_TYPE=Image 43febc5adfSXianjun Jiaoelse 44febc5adfSXianjun Jiao LINUX_KERNEL_SRC_DIR_NAME=adi-linux 45febc5adfSXianjun Jiao LINUX_KERNEL_CONFIG_FILE=$OPENWIFI_DIR/kernel_boot/kernel_config 46febc5adfSXianjun Jiao ARCH_NAME="arm" 47febc5adfSXianjun Jiao CROSS_COMPILE_NAME="arm-linux-gnueabihf-" 48febc5adfSXianjun Jiao IMAGE_TYPE=uImage 49febc5adfSXianjun Jiaofi 50febc5adfSXianjun Jiao 51febc5adfSXianjun Jiaohome_dir=$(pwd) 52febc5adfSXianjun Jiao 53febc5adfSXianjun Jiaoset -x 54febc5adfSXianjun Jiao 55febc5adfSXianjun Jiaocd $OPENWIFI_DIR/ 56febc5adfSXianjun Jiaogit submodule init $LINUX_KERNEL_SRC_DIR_NAME 57febc5adfSXianjun Jiaogit submodule update $LINUX_KERNEL_SRC_DIR_NAME 58febc5adfSXianjun Jiaocd $OPENWIFI_DIR/$LINUX_KERNEL_SRC_DIR_NAME 59febc5adfSXianjun Jiaogit checkout 2019_R1 60febc5adfSXianjun Jiaogit pull origin 2019_R1 615deb8d18SXianjun Jiao# git reset --hard 4fea7c5 62febc5adfSXianjun Jiaocp $OPENWIFI_DIR/driver/xilinx_dma/xilinx_dma.c $OPENWIFI_DIR/$LINUX_KERNEL_SRC_DIR_NAME/drivers/dma/xilinx/xilinx_dma.c 63febc5adfSXianjun Jiaocp $LINUX_KERNEL_CONFIG_FILE ./.config 64febc5adfSXianjun Jiaosource $XILINX_DIR/SDK/2018.3/settings64.sh 65febc5adfSXianjun Jiaoexport ARCH=$ARCH_NAME 66febc5adfSXianjun Jiaoexport CROSS_COMPILE=$CROSS_COMPILE_NAME 67febc5adfSXianjun Jiao 68febc5adfSXianjun Jiaomake oldconfig && make prepare && make modules_prepare 69febc5adfSXianjun Jiao 70febc5adfSXianjun Jiaoif [ "$#" -gt 3 ]; then 71febc5adfSXianjun Jiao if [ -f "$OPENWIFI_DIR/$LINUX_KERNEL_SRC_DIR_NAME/arch/$ARCH_NAME/boot/$IMAGE_TYPE" ]; then 72febc5adfSXianjun Jiao echo "Kernel found! Skip the time costly Linux kernel compiling." 73febc5adfSXianjun Jiao else 74febc5adfSXianjun Jiao make -j12 $IMAGE_TYPE UIMAGE_LOADADDR=0x8000 75febc5adfSXianjun Jiao make modules 76febc5adfSXianjun Jiao fi 77febc5adfSXianjun Jiaofi 78febc5adfSXianjun Jiao 79febc5adfSXianjun Jiaocd $home_dir 80