xref: /openwifi/user_space/prepare_kernel.sh (revision abdb610f56e6ff7bc54e8ad29637bde718951d91)
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*abdb610fSJiao Xianjunif [ "$#" -lt 2 ]; then
9*abdb610fSJiao Xianjun    echo "You must enter at least 2 arguments: \$XILINX_DIR ARCH_BIT(32 or 64)"
10febc5adfSXianjun Jiao    exit 1
11febc5adfSXianjun Jiaofi
12febc5adfSXianjun Jiao
13*abdb610fSJiao XianjunOPENWIFI_DIR=$(pwd)/../
14*abdb610fSJiao XianjunXILINX_DIR=$1
15*abdb610fSJiao XianjunARCH_OPTION=$2
16febc5adfSXianjun Jiao
17febc5adfSXianjun Jiaoif [ -f "$OPENWIFI_DIR/LICENSE" ]; then
18febc5adfSXianjun Jiao    echo "\$OPENWIFI_DIR is found!"
19febc5adfSXianjun Jiaoelse
20febc5adfSXianjun Jiao    echo "\$OPENWIFI_DIR is not correct. Please check!"
21febc5adfSXianjun Jiao    exit 1
22febc5adfSXianjun Jiaofi
23febc5adfSXianjun Jiao
24febc5adfSXianjun Jiaoif [ -d "$XILINX_DIR/SDK" ]; then
25febc5adfSXianjun Jiao    echo "\$XILINX_DIR is found!"
26febc5adfSXianjun Jiaoelse
27febc5adfSXianjun Jiao    echo "\$XILINX_DIR is not correct. Please check!"
28febc5adfSXianjun Jiao    exit 1
29febc5adfSXianjun Jiaofi
30febc5adfSXianjun Jiao
31febc5adfSXianjun Jiaoif [ "$ARCH_OPTION" != "32" ] && [ "$ARCH_OPTION" != "64" ]; then
32febc5adfSXianjun Jiao    echo "\$ARCH_OPTION is not correct. Should be 32 or 64. Please check!"
33febc5adfSXianjun Jiao    exit 1
34febc5adfSXianjun Jiaoelse
35febc5adfSXianjun Jiao    echo "\$ARCH_OPTION is valid!"
36febc5adfSXianjun Jiaofi
37febc5adfSXianjun Jiao
38febc5adfSXianjun Jiaoif [ "$ARCH_OPTION" == "64" ]; then
39febc5adfSXianjun Jiao    LINUX_KERNEL_SRC_DIR_NAME=adi-linux-64
40febc5adfSXianjun Jiao    LINUX_KERNEL_CONFIG_FILE=$OPENWIFI_DIR/kernel_boot/kernel_config_zynqmp
41febc5adfSXianjun Jiao    ARCH_NAME="arm64"
42febc5adfSXianjun Jiao    CROSS_COMPILE_NAME="aarch64-linux-gnu-"
43febc5adfSXianjun Jiao    IMAGE_TYPE=Image
44febc5adfSXianjun Jiaoelse
45febc5adfSXianjun Jiao    LINUX_KERNEL_SRC_DIR_NAME=adi-linux
46febc5adfSXianjun Jiao    LINUX_KERNEL_CONFIG_FILE=$OPENWIFI_DIR/kernel_boot/kernel_config
47febc5adfSXianjun Jiao    ARCH_NAME="arm"
48febc5adfSXianjun Jiao    CROSS_COMPILE_NAME="arm-linux-gnueabihf-"
49febc5adfSXianjun Jiao    IMAGE_TYPE=uImage
50febc5adfSXianjun Jiaofi
51febc5adfSXianjun Jiao
52febc5adfSXianjun Jiaohome_dir=$(pwd)
53febc5adfSXianjun Jiao
54febc5adfSXianjun Jiaoset -x
55febc5adfSXianjun Jiao
56febc5adfSXianjun Jiaocd $OPENWIFI_DIR/
57febc5adfSXianjun Jiaogit submodule init $LINUX_KERNEL_SRC_DIR_NAME
58febc5adfSXianjun Jiaogit submodule update $LINUX_KERNEL_SRC_DIR_NAME
59febc5adfSXianjun Jiaocd $OPENWIFI_DIR/$LINUX_KERNEL_SRC_DIR_NAME
60febc5adfSXianjun Jiaogit checkout 2019_R1
61febc5adfSXianjun Jiaogit pull origin 2019_R1
62*abdb610fSJiao Xianjungit reset --hard
63*abdb610fSJiao Xianjun# git reset --hard 4e81f0927cfb2fada92fc762dbd65d002848405a
64febc5adfSXianjun Jiaocp $LINUX_KERNEL_CONFIG_FILE ./.config
6556fcab20SXianjun Jiaocp $OPENWIFI_DIR/driver/ad9361/ad9361.c $OPENWIFI_DIR/$LINUX_KERNEL_SRC_DIR_NAME/drivers/iio/adc/ad9361.c -rf
6656fcab20SXianjun Jiao
67febc5adfSXianjun Jiaosource $XILINX_DIR/SDK/2018.3/settings64.sh
68febc5adfSXianjun Jiaoexport ARCH=$ARCH_NAME
69febc5adfSXianjun Jiaoexport CROSS_COMPILE=$CROSS_COMPILE_NAME
70febc5adfSXianjun Jiao
71febc5adfSXianjun Jiaomake oldconfig && make prepare && make modules_prepare
72febc5adfSXianjun Jiao
73*abdb610fSJiao Xianjunif [ "$#" -gt 2 ]; then
74*abdb610fSJiao Xianjun    # if [ -f "$OPENWIFI_DIR/$LINUX_KERNEL_SRC_DIR_NAME/arch/$ARCH_NAME/boot/$IMAGE_TYPE" ]; then
75*abdb610fSJiao Xianjun    #     echo "Kernel found! Skip the time costly Linux kernel compiling."
76*abdb610fSJiao Xianjun    # else
77febc5adfSXianjun Jiao        make -j12 $IMAGE_TYPE UIMAGE_LOADADDR=0x8000
78febc5adfSXianjun Jiao        make modules
79*abdb610fSJiao Xianjun    # fi
80febc5adfSXianjun Jiaofi
81febc5adfSXianjun Jiao
82febc5adfSXianjun Jiaocd $home_dir
83