Add makefile to build r21p0-bifrost module
[GitHub/LineageOS/G12/android_hardware_amlogic_kernel-modules_mali-driver.git] / gpu-build.sh
1 #!/bin/sh
2
3 GPU_TYPE=$1
4 echo "GPU_TYPE is ${GPU_TYPE}"
5 PRODUCT_OUT=${OUT}
6 MESON_GPU_DIR=./
7 PREFIX_CROSS_COMPILE=/opt/gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
8 KERNEL_ARCH=arm64
9 GPU_MODS_OUT=obj/lib_vendor/
10
11 if [ x$2 = x32 ]; then
12 KERNEL_ARCH=arm
13 PREFIX_CROSS_COMPILE=/opt/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
14 fi
15 echo "KERNEL_ARCH=${KERNEL_ARCH}"
16
17 SOURCE_CODE=$3
18 if [ x${SOURCE_CODE} = x ]; then
19 if [ x${GPU_TYPE} = xmali ]; then
20 SOURCE_CODE=utgard/r10p0
21 elif [ x${GPU_TYPE} = xbif ]; then
22 SOURCE_CODE=bifrost/r21p0
23 fi
24 fi
25
26 KDIR=$4
27 if [ x${KDIR} = x ];then
28 if [ x${PRODUCT_OUT} = x ]; then
29 echo "shall set KDIR in 4th para"
30 exit
31 fi
32 KDIR=${PRODUCT_OUT}/obj/KERNEL_OBJ
33 fi
34
35 if [ x${PRODUCT_OUT} = x ]; then
36 if [ x$5 = x ]; then
37 PRODUCT_OUT=${KDIR}/../..
38 else
39 PRODUCT_OUT=$5
40 fi
41 mkdir -p ${PRODUCT_OUT}
42 fi
43
44 echo "module in ${SOURCE_CODE}, KDIR=${KDIR} building"
45
46 PATH=${TARGET_HOST_TOOL_PATH}:$PATH
47
48 usage()
49 {
50 echo "$0 gpu_type [[[[arch] source] KDIR] output]"
51 echo "gpu_type: mali bif"
52 echo "arch: 32 64"
53 echo "source: mali driver path, like bifrost/r21p0"
54 echo "KDIR: linux kernel dir"
55 echo "output: kernel building path"
56 }
57 utgard_build()
58 {
59 rm ${PRODUCT_OUT}/obj/mali -rf
60 mkdir -p ${PRODUCT_OUT}/obj/mali
61 cp ${SOURCE_CODE}/* ${PRODUCT_OUT}/obj/mali -airf
62 cp ${MESON_GPU_DIR}/utgard/platform ${PRODUCT_OUT}/obj/mali/ -airf
63 echo "make mali module MALI_OUT is ${PRODUCT_OUT}/obj/mali ${MALI_OUT}"
64 make -C ${KDIR} M=${PRODUCT_OUT}/obj/mali \
65 ARCH=${KERNEL_ARCH} CROSS_COMPILE=${PREFIX_CROSS_COMPILE} CONFIG_MALI400=m CONFIG_MALI450=m \
66 EXTRA_CFLAGS="-DCONFIG_MALI400=m -DCONFIG_MALI450=m" \
67 EXTRA_LDFLAGS+="--strip-debug" \
68 CONFIG_AM_VDEC_H264_4K2K=y 2>&1 | tee mali.txt
69
70 echo "GPU_MODS_OUT is ${GPU_MODS_OUT}"
71 mkdir -p ${PRODUCT_OUT}/${GPU_MODS_OUT}
72 cp ${PRODUCT_OUT}/obj/mali/mali.ko ${PRODUCT_OUT}/${GPU_MODS_OUT}/mali.ko
73
74 cp ${PRODUCT_OUT}/${GPU_MODS_OUT}/mali.ko ${PRODUCT_OUT}/obj/lib_vendor/mali.ko
75 echo "${GPU_ARCH}.ko build finished"
76 }
77
78 bifrost_build()
79 {
80
81 rm ${PRODUCT_OUT}/obj/bifrost -rf
82 mkdir -p ${PRODUCT_OUT}/obj/bifrost
83 cp ${SOURCE_CODE}/* ${PRODUCT_OUT}/obj/bifrost -airf
84 make -C ${KDIR} M=${PRODUCT_OUT}/obj/bifrost/kernel/drivers/gpu/arm/midgard \
85 ARCH=${KERNEL_ARCH} CROSS_COMPILE=${PREFIX_CROSS_COMPILE} \
86 EXTRA_CFLAGS="-DCONFIG_MALI_PLATFORM_DEVICETREE -DCONFIG_MALI_MIDGARD_DVFS -DCONFIG_MALI_BACKEND=gpu " \
87 EXTRA_CFLAGS+="-I${PRODUCT_OUT}/obj/bifrost/kernel/include " \
88 EXTRA_CFLAGS+="-Wno-error=larger-than=16384 -DCONFIG_MALI_DMA_BUF_MAP_ON_DEMAND=1 -DCONFIG_MALI_DMA_BUF_LEGACY_COMPAT=0" \
89 EXTRA_LDFLAGS+="--strip-debug" \
90 CONFIG_MALI_MIDGARD=m CONFIG_MALI_PLATFORM_DEVICETREE=y CONFIG_MALI_MIDGARD_DVFS=y CONFIG_MALI_BACKEND=gpu
91
92 mkdir -p ${PRODUCT_OUT}/${GPU_MODS_OUT}
93 echo "GPU_MODS_OUT is ${GPU_MODS_OUT}"
94 cp ${PRODUCT_OUT}/obj/bifrost/kernel/drivers/gpu/arm/midgard/mali_kbase.ko ${PRODUCT_OUT}/${GPU_MODS_OUT}/mali.ko
95 }
96
97 echo "args is $#"
98 if [ $# -lt 2 ]; then
99 usage
100 fi
101
102 if [ x${GPU_TYPE} = xmali ]; then
103 utgard_build
104 elif [ x${GPU_TYPE} = xbif ]; then
105 bifrost_build
106 fi
107
108 exit