xref: /openwifi/user_space/prepare_kernel.sh (revision a6085186d94dfe08b0e09c18c8d4b1b4fe38ea35)
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