xref: /openwifi/user_space/prepare_kernel.sh (revision 855b59fd6a93401097234a1948a6fe61b591cced)
1
2#!/bin/bash
3if [ "$#" -lt 3 ]; then
4    echo "You must enter at least 3 arguments: \$OPENWIFI_DIR \$XILINX_DIR ARCH_BIT(32 or 64)"
5    exit 1
6fi
7
8OPENWIFI_DIR=$1
9XILINX_DIR=$2
10ARCH_OPTION=$3
11
12if [ -f "$OPENWIFI_DIR/LICENSE" ]; then
13    echo "\$OPENWIFI_DIR is found!"
14else
15    echo "\$OPENWIFI_DIR is not correct. Please check!"
16    exit 1
17fi
18
19if [ -d "$XILINX_DIR/SDK" ]; then
20    echo "\$XILINX_DIR is found!"
21else
22    echo "\$XILINX_DIR is not correct. Please check!"
23    exit 1
24fi
25
26if [ "$ARCH_OPTION" != "32" ] && [ "$ARCH_OPTION" != "64" ]; then
27    echo "\$ARCH_OPTION is not correct. Should be 32 or 64. Please check!"
28    exit 1
29else
30    echo "\$ARCH_OPTION is valid!"
31fi
32
33if [ "$ARCH_OPTION" == "64" ]; then
34    LINUX_KERNEL_SRC_DIR_NAME=adi-linux-64
35    LINUX_KERNEL_CONFIG_FILE=$OPENWIFI_DIR/kernel_boot/kernel_config_zynqmp
36    ARCH_NAME="arm64"
37    CROSS_COMPILE_NAME="aarch64-linux-gnu-"
38    IMAGE_TYPE=Image
39else
40    LINUX_KERNEL_SRC_DIR_NAME=adi-linux
41    LINUX_KERNEL_CONFIG_FILE=$OPENWIFI_DIR/kernel_boot/kernel_config
42    ARCH_NAME="arm"
43    CROSS_COMPILE_NAME="arm-linux-gnueabihf-"
44    IMAGE_TYPE=uImage
45fi
46
47home_dir=$(pwd)
48
49set -x
50
51cd $OPENWIFI_DIR/
52git submodule init $LINUX_KERNEL_SRC_DIR_NAME
53git submodule update $LINUX_KERNEL_SRC_DIR_NAME
54cd $OPENWIFI_DIR/$LINUX_KERNEL_SRC_DIR_NAME
55git checkout 2019_R1
56git pull origin 2019_R1
57# git reset --hard 4fea7c5
58cp $OPENWIFI_DIR/driver/xilinx_dma/xilinx_dma.c $OPENWIFI_DIR/$LINUX_KERNEL_SRC_DIR_NAME/drivers/dma/xilinx/xilinx_dma.c
59cp $LINUX_KERNEL_CONFIG_FILE ./.config
60source $XILINX_DIR/SDK/2018.3/settings64.sh
61export ARCH=$ARCH_NAME
62export CROSS_COMPILE=$CROSS_COMPILE_NAME
63
64make oldconfig && make prepare && make modules_prepare
65
66if [ "$#" -gt 3 ]; then
67    if [ -f "$OPENWIFI_DIR/$LINUX_KERNEL_SRC_DIR_NAME/arch/$ARCH_NAME/boot/$IMAGE_TYPE" ]; then
68        echo "Kernel found! Skip the time costly Linux kernel compiling."
69    else
70        make -j12 $IMAGE_TYPE UIMAGE_LOADADDR=0x8000
71        make modules
72    fi
73fi
74
75cd $home_dir
76