xref: /openwifi/user_space/prepare_kernel.sh (revision 4443c3061630bea591ae6ae838c8d42e1be9d3cb)
1
2#!/bin/bash
3
4# Author: Xianjun Jiao
5# SPDX-FileCopyrightText: 2019 UGent
6# SPDX-License-Identifier: AGPL-3.0-or-later
7
8# ATTENTION! You need Vitis, NOT Vitis_HLS, installed
9
10# if [ "$#" -ne 1 ]; then
11#     echo "You must enter 1 arguments: ARCH_BIT(32 or 64)"
12#     exit 1
13# fi
14
15# OPENWIFI_DIR=$(pwd)/../
16# ARCH_OPTION=$1
17
18if [ "$#" -ne 2 ]; then
19    echo "You must enter 2 arguments: \$XILINX_DIR ARCH_BIT(32 or 64)"
20    exit 1
21fi
22
23OPENWIFI_DIR=$(pwd)/../
24XILINX_DIR=$1
25ARCH_OPTION=$2
26
27if [ -f "$OPENWIFI_DIR/LICENSE" ]; then
28    echo "\$OPENWIFI_DIR is found!"
29else
30    echo "\$OPENWIFI_DIR is not correct. Please check!"
31    exit 1
32fi
33
34if [ -d "$XILINX_DIR/Vitis" ]; then
35    echo "\$XILINX_DIR is found!"
36else
37    echo "\$XILINX_DIR is not correct. Please check!"
38    exit 1
39fi
40
41if [ "$ARCH_OPTION" != "32" ] && [ "$ARCH_OPTION" != "64" ]; then
42    echo "\$ARCH_OPTION is not correct. Should be 32 or 64. Please check!"
43    exit 1
44else
45    echo "\$ARCH_OPTION is valid!"
46fi
47
48if [ "$ARCH_OPTION" == "64" ]; then
49    LINUX_KERNEL_SRC_DIR_NAME=adi-linux-64
50    LINUX_KERNEL_CONFIG_FILE=$OPENWIFI_DIR/kernel_boot/kernel_config_zynqmp
51    ARCH_NAME="arm64"
52    CROSS_COMPILE_NAME="aarch64-linux-gnu-"
53    IMAGE_TYPE=Image
54else
55    LINUX_KERNEL_SRC_DIR_NAME=adi-linux
56    LINUX_KERNEL_CONFIG_FILE=$OPENWIFI_DIR/kernel_boot/kernel_config
57    ARCH_NAME="arm"
58    CROSS_COMPILE_NAME="arm-linux-gnueabihf-"
59    IMAGE_TYPE=uImage
60fi
61
62home_dir=$(pwd)
63
64set -x
65
66cd $OPENWIFI_DIR/
67git submodule init $LINUX_KERNEL_SRC_DIR_NAME
68cd $OPENWIFI_DIR/$LINUX_KERNEL_SRC_DIR_NAME
69git reset --hard
70cd $OPENWIFI_DIR/
71git submodule update $LINUX_KERNEL_SRC_DIR_NAME
72cd $OPENWIFI_DIR/$LINUX_KERNEL_SRC_DIR_NAME
73git fetch
74git checkout 2021_r1
75git pull origin 2021_r1
76git reset --hard 2021_r1
77
78export ARCH=$ARCH_NAME
79export CROSS_COMPILE=$CROSS_COMPILE_NAME
80source $XILINX_DIR/Vitis/2021.1/settings64.sh
81
82# if [ "$ARCH_OPTION" == "64" ]; then
83  cp $LINUX_KERNEL_CONFIG_FILE ./.config
84  # cp $OPENWIFI_DIR/driver/ad9361/ad9361.c $OPENWIFI_DIR/$LINUX_KERNEL_SRC_DIR_NAME/drivers/iio/adc/ad9361.c -rf
85  # cp $OPENWIFI_DIR/driver/ad9361/ad9361_conv.c $OPENWIFI_DIR/$LINUX_KERNEL_SRC_DIR_NAME/drivers/iio/adc/ad9361_conv.c -rf
86  git apply ../kernel_boot/axi_hdmi_crtc.patch
87  git apply ../kernel_boot/ad9361.patch
88  git apply ../kernel_boot/ad9361_conv.patch
89# else
90  # make zynq_xcomm_adv7511_defconfig
91# fi
92
93make oldconfig
94# make adi_zynqmp_defconfig
95make prepare && make modules_prepare
96
97# if [ "$#" -gt 2 ]; then
98make -j12 $IMAGE_TYPE UIMAGE_LOADADDR=0x8000
99make modules
100# fi
101
102cd $home_dir
103