|  | #!/bin/bash | 
|  |  | 
|  | exec_name=$0 | 
|  |  | 
|  | set -o errtrace | 
|  | trap 'echo Fatal error: script ${exec_name} aborting at line $LINENO, command \"$BASH_COMMAND\" returned $?; exit 1' ERR | 
|  |  | 
|  | KERNEL_ARCH=arm64 | 
|  | LOCAL_PATH=$(pwd) | 
|  | CROSS_COMPILE=${LOCAL_PATH}/../prebuilt/toolchain/aarch64/bin/aarch64-cros-linux-gnu- | 
|  | KDIR=${LOCAL_PATH}/../kernel | 
|  | cpu_num=$(grep -c processor /proc/cpuinfo) | 
|  |  | 
|  | GPU_VERSION_BIFROST=r44p0 | 
|  | GPU_LOW_MEM=0 | 
|  |  | 
|  | EXTRA_INCLUDE=-I${LOCAL_PATH}/bifrost/${GPU_VERSION_BIFROST}/kernel/include | 
|  |  | 
|  | echo "make mali module KERNEL_ARCH is ${KERNEL_ARCH}" | 
|  |  | 
|  | function usage(){ | 
|  | echo "Usage: ${exec_name} <product> [workspace path]" | 
|  | echo "supported products: sabrina" | 
|  | echo "Note: if [workspace path] is not set, it still builds" | 
|  | } | 
|  |  | 
|  | function run_module_make(){ | 
|  | pushd . | 
|  | echo "***** building $1 *****" | 
|  | case $1 in | 
|  | bifrost) | 
|  | make -C ${KDIR} M=${LOCAL_PATH}/bifrost/${GPU_VERSION_BIFROST}/kernel/drivers/gpu/arm/midgard \ | 
|  | ARCH=${KERNEL_ARCH} CROSS_COMPILE=${CROSS_COMPILE} \ | 
|  | EXTRA_CFLAGS="-DCONFIG_MALI_LOW_MEM=${GPU_LOW_MEM} -DCONFIG_MALI_REAL_HW -DCONFIG_MALI_PLATFORM_DEVICETREE -DCONFIG_MALI_MIDGARD_DVFS -DCONFIG_MALI_BACKEND=gpu -DCONFIG_MALI_GATOR_SUPPORT " \ | 
|  | CONFIG_MALI_MIDGARD=m CONFIG_MALI_PLATFORM_DEVICETREE=y CONFIG_MALI_MIDGARD_DVFS=y CONFIG_MALI_BACKEND=gpu  CONFIG_MALI_GATOR_SUPPORT=y CONFIG_MALI_PLATFORM_NAME="devicetree" CONFIG_MALI_REAL_HW=y \ | 
|  | EXTRA_CFLAGS+="-Wno-error=larger-than=16384 -DCONFIG_MALI_DMA_BUF_MAP_ON_DEMAND=1 -DCONFIG_MALI_DMA_BUF_LEGACY_COMPAT=0 ${EXTRA_INCLUDE}" \ | 
|  | EXTRA_LDFLAGS+="--strip-debug" \ | 
|  | -j$cpu_num modules | 
|  | ;; | 
|  | esac | 
|  | echo "***** completed building *****" | 
|  | popd | 
|  | } | 
|  |  | 
|  | if (( $# < 1 )) | 
|  | then | 
|  | usage | 
|  | exit 2 | 
|  | fi | 
|  |  | 
|  | readonly product=$1 | 
|  | readonly workspace_path=$2 | 
|  |  | 
|  | case $product in | 
|  | sabrina) | 
|  | run_module_make bifrost | 
|  | if [ ! -z $workspace_path ]; then | 
|  | prebuilt_path=${workspace_path}/device/google/sabrina-kernel | 
|  | mali_ko_path=${prebuilt_path}/lib/modules | 
|  | mkdir -p ${mali_ko_path} | 
|  | cp -v ${LOCAL_PATH}/bifrost/${GPU_VERSION_BIFROST}/kernel/drivers/gpu/arm/midgard/mali_kbase.ko ${mali_ko_path}/mali.ko | 
|  | fi | 
|  | ;; | 
|  | *) | 
|  | echo "unknown product: $product" | 
|  | exit 1 | 
|  | esac |