From accce0a3adc60948d216a713d73a31c9e6914a85 Mon Sep 17 00:00:00 2001 From: Jiyu Yang Date: Fri, 19 Jun 2020 14:59:12 +0800 Subject: [PATCH] gpu: add build script [1/1] 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 --- gpu-build.sh | 96 +++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 87 insertions(+), 9 deletions(-) diff --git a/gpu-build.sh b/gpu-build.sh index c78b57e..cdce222 100755 --- a/gpu-build.sh +++ b/gpu-build.sh @@ -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 -- 2.20.1