xref: /openwifi/user_space/prepare_kernel.sh (revision 4443c3061630bea591ae6ae838c8d42e1be9d3cb)
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
86a4d7ceaSXianjun Jiao# ATTENTION! You need Vitis, NOT Vitis_HLS, installed
96a4d7ceaSXianjun Jiao
106a4d7ceaSXianjun Jiao# if [ "$#" -ne 1 ]; then
116a4d7ceaSXianjun Jiao#     echo "You must enter 1 arguments: ARCH_BIT(32 or 64)"
126a4d7ceaSXianjun Jiao#     exit 1
136a4d7ceaSXianjun Jiao# fi
146a4d7ceaSXianjun Jiao
156a4d7ceaSXianjun Jiao# OPENWIFI_DIR=$(pwd)/../
166a4d7ceaSXianjun Jiao# ARCH_OPTION=$1
176a4d7ceaSXianjun Jiao
186a4d7ceaSXianjun Jiaoif [ "$#" -ne 2 ]; then
196a4d7ceaSXianjun 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
346a4d7ceaSXianjun 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
686a4d7ceaSXianjun Jiaocd $OPENWIFI_DIR/$LINUX_KERNEL_SRC_DIR_NAME
696a4d7ceaSXianjun Jiaogit reset --hard
706a4d7ceaSXianjun Jiaocd $OPENWIFI_DIR/
71febc5adfSXianjun Jiaogit submodule update $LINUX_KERNEL_SRC_DIR_NAME
72febc5adfSXianjun Jiaocd $OPENWIFI_DIR/$LINUX_KERNEL_SRC_DIR_NAME
7349daf26aSXianjun Jiaogit fetch
746a4d7ceaSXianjun Jiaogit checkout 2021_r1
756a4d7ceaSXianjun Jiaogit pull origin 2021_r1
766a4d7ceaSXianjun Jiaogit reset --hard 2021_r1
7756fcab20SXianjun Jiao
78febc5adfSXianjun Jiaoexport ARCH=$ARCH_NAME
79febc5adfSXianjun Jiaoexport CROSS_COMPILE=$CROSS_COMPILE_NAME
806a4d7ceaSXianjun Jiaosource $XILINX_DIR/Vitis/2021.1/settings64.sh
816a4d7ceaSXianjun Jiao
826a4d7ceaSXianjun Jiao# if [ "$ARCH_OPTION" == "64" ]; then
836a4d7ceaSXianjun Jiao  cp $LINUX_KERNEL_CONFIG_FILE ./.config
846a4d7ceaSXianjun Jiao  # cp $OPENWIFI_DIR/driver/ad9361/ad9361.c $OPENWIFI_DIR/$LINUX_KERNEL_SRC_DIR_NAME/drivers/iio/adc/ad9361.c -rf
856a4d7ceaSXianjun Jiao  # cp $OPENWIFI_DIR/driver/ad9361/ad9361_conv.c $OPENWIFI_DIR/$LINUX_KERNEL_SRC_DIR_NAME/drivers/iio/adc/ad9361_conv.c -rf
866a4d7ceaSXianjun Jiao  git apply ../kernel_boot/axi_hdmi_crtc.patch
876a4d7ceaSXianjun Jiao  git apply ../kernel_boot/ad9361.patch
886a4d7ceaSXianjun Jiao  git apply ../kernel_boot/ad9361_conv.patch
896a4d7ceaSXianjun Jiao# else
906a4d7ceaSXianjun Jiao  # make zynq_xcomm_adv7511_defconfig
916a4d7ceaSXianjun Jiao# fi
92febc5adfSXianjun Jiao
93*4443c306SJiao Xianjunmake oldconfig
946a4d7ceaSXianjun Jiao# make adi_zynqmp_defconfig
956a4d7ceaSXianjun Jiaomake prepare && make modules_prepare
96febc5adfSXianjun Jiao
976a4d7ceaSXianjun 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