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