gpu: add build script [1/1]
authorJiyu Yang <Jiyu.Yang@amlogic.com>
Fri, 19 Jun 2020 06:59:12 +0000 (14:59 +0800)
committerSky Zhou <sky.zhou@amlogic.com>
Wed, 29 Jul 2020 11:54:57 +0000 (04:54 -0700)
PD#SWPL-25844

Problem:
no build script for bifrost

Solution:
add it

Verify:
newton
./gpu-build.h -h

Change-Id: I23c4b75247193080b45902965acea6b4a9b64179
Signed-off-by: Jiyu Yang <Jiyu.Yang@amlogic.com>
gpu-build.sh

index c78b57e74d636e15dfad8ce9a3e2d53d6cef9d22..cdce22220e9f6b88c64d822af2f5929370b1dd78 100755 (executable)
@@ -1,25 +1,72 @@
 #!/bin/sh
 
+GPU_TYPE=$1
+echo "GPU_TYPE is ${GPU_TYPE}"
 PRODUCT_OUT=${OUT}
-SOURCE_CODE=utgard/r10p0
 MESON_GPU_DIR=./
 PREFIX_CROSS_COMPILE=/opt/gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
 KERNEL_ARCH=arm64
 GPU_MODS_OUT=obj/lib_vendor/
 
+if [ x$2 = x32 ]; then
+       KERNEL_ARCH=arm
+       PREFIX_CROSS_COMPILE=/opt/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
+fi
+echo "KERNEL_ARCH=${KERNEL_ARCH}"
+
+SOURCE_CODE=$3
+if [ x${SOURCE_CODE} = x ]; then
+       if [ x${GPU_TYPE} = xmali ]; then
+               SOURCE_CODE=utgard/r10p0
+       elif [ x${GPU_TYPE} = xbif ]; then
+               SOURCE_CODE=bifrost/r21p0
+       fi
+fi
+
+KDIR=$4
+if [ x${KDIR} = x ];then
+       if [ x${PRODUCT_OUT} = x ]; then
+               echo "shall set KDIR in 4th para"
+               exit
+       fi
+       KDIR=${PRODUCT_OUT}/obj/KERNEL_OBJ
+fi
+
+if [ x${PRODUCT_OUT} = x ]; then
+       if [ x$5 = x ]; then
+               PRODUCT_OUT=${KDIR}/../..
+       else
+               PRODUCT_OUT=$5
+       fi
+       mkdir -p ${PRODUCT_OUT}
+fi
+
+echo "module in ${SOURCE_CODE}, KDIR=${KDIR} building"
+
+PATH=${TARGET_HOST_TOOL_PATH}:$PATH
+
+usage()
+{
+       echo "$0 gpu_type [[[[arch] source] KDIR] output]"
+       echo "gpu_type: mali bif"
+       echo "arch:     32 64"
+       echo "source:   mali driver path, like bifrost/r21p0"
+       echo "KDIR:     linux kernel dir"
+       echo "output:   kernel building path"
+}
+utgard_build()
+{
        rm ${PRODUCT_OUT}/obj/mali -rf
        mkdir -p ${PRODUCT_OUT}/obj/mali
        cp ${SOURCE_CODE}/*  ${PRODUCT_OUT}/obj/mali -airf
        cp ${MESON_GPU_DIR}/utgard/platform  ${PRODUCT_OUT}/obj/mali/ -airf
-       echo "make mali module KERNEL_ARCH is ${KERNEL_ARCH}"
        echo "make mali module MALI_OUT is ${PRODUCT_OUT}/obj/mali ${MALI_OUT}"
-       PATH=${TARGET_HOST_TOOL_PATH}:$PATH
-       make -C ${PRODUCT_OUT}/obj/KERNEL_OBJ M=${PRODUCT_OUT}/obj/mali  \
-       ARCH=${KERNEL_ARCH} CROSS_COMPILE=${PREFIX_CROSS_COMPILE} CONFIG_MALI400=m  CONFIG_MALI450=m    \
-       CONFIG_MALI_DMA_BUF_LAZY_MAP=y \
-       EXTRA_CFLAGS="-DCONFIG_MALI400=m -DCONFIG_MALI450=m -DCONFIG_MALI_DMA_BUF_LAZY_MAP=y" \
-       EXTRA_LDFLAGS+="--strip-debug" \
-       CONFIG_AM_VDEC_H264_4K2K=y 2>&1 | tee mali.txt
+       make -C ${KDIR} M=${PRODUCT_OUT}/obj/mali  \
+               ARCH=${KERNEL_ARCH} CROSS_COMPILE=${PREFIX_CROSS_COMPILE} CONFIG_MALI400=m  CONFIG_MALI450=m    \
+               CONFIG_MALI_DMA_BUF_LAZY_MAP=y \
+               EXTRA_CFLAGS="-DCONFIG_MALI400=m -DCONFIG_MALI450=m -DCONFIG_MALI_DMA_BUF_LAZY_MAP=y" \
+               EXTRA_LDFLAGS+="--strip-debug" \
+               CONFIG_AM_VDEC_H264_4K2K=y 2>&1 | tee mali.txt
 
        echo "GPU_MODS_OUT is ${GPU_MODS_OUT}"
        mkdir -p ${PRODUCT_OUT}/${GPU_MODS_OUT}
@@ -27,5 +74,36 @@ GPU_MODS_OUT=obj/lib_vendor/
 
        cp  ${PRODUCT_OUT}/${GPU_MODS_OUT}/mali.ko ${PRODUCT_OUT}/obj/lib_vendor/mali.ko
        echo "${GPU_ARCH}.ko build finished"
+}
+
+bifrost_build()
+{
+
+       rm ${PRODUCT_OUT}/obj/bifrost -rf
+       mkdir -p ${PRODUCT_OUT}/obj/bifrost
+       cp ${SOURCE_CODE}/*  ${PRODUCT_OUT}/obj/bifrost -airf
+       make -C ${KDIR} M=${PRODUCT_OUT}/obj/bifrost/kernel/drivers/gpu/arm/midgard \
+               ARCH=${KERNEL_ARCH} CROSS_COMPILE=${PREFIX_CROSS_COMPILE} \
+               EXTRA_CFLAGS="-DCONFIG_MALI_PLATFORM_DEVICETREE -DCONFIG_MALI_MIDGARD_DVFS -DCONFIG_MALI_BACKEND=gpu " \
+               EXTRA_CFLAGS+="-I${PRODUCT_OUT}/obj/bifrost/kernel/include " \
+               EXTRA_CFLAGS+="-Wno-error=larger-than=16384  -DCONFIG_MALI_DMA_BUF_MAP_ON_DEMAND=1 -DCONFIG_MALI_DMA_BUF_LEGACY_COMPAT=0" \
+               EXTRA_LDFLAGS+="--strip-debug" \
+               CONFIG_MALI_MIDGARD=m CONFIG_MALI_PLATFORM_DEVICETREE=y CONFIG_MALI_MIDGARD_DVFS=y CONFIG_MALI_BACKEND=gpu
+
+       mkdir -p ${PRODUCT_OUT}/${GPU_MODS_OUT}
+       echo "GPU_MODS_OUT is ${GPU_MODS_OUT}"
+       cp  ${PRODUCT_OUT}/obj/bifrost/kernel/drivers/gpu/arm/midgard/mali_kbase.ko ${PRODUCT_OUT}/${GPU_MODS_OUT}/mali.ko
+}
+
+echo "args is $#"
+if [ $# -lt 2 ]; then
+       usage
+fi
+
+if [ x${GPU_TYPE} = xmali ]; then
+       utgard_build
+elif [ x${GPU_TYPE} = xbif ]; then
+       bifrost_build
+fi
 
 exit