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