| #!/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- |
| COMPILE_PATH=${LOCAL_PATH}/../prebuilt/toolchain/aarch64/bin/ |
| cc_clang=${LOCAL_PATH}/../prebuilt/toolchain/aarch64/bin/aarch64-cros-linux-gnu-clang |
| KDIR=${LOCAL_PATH}/../kernel |
| cpu_num=$(grep -c processor /proc/cpuinfo) |
| |
| GPU_VERSION_UTGARD=r7p0 |
| GPU_VERSION_BIFROST=r19p0 |
| |
| BIFROST_PATH="${LOCAL_PATH}/bifrost/${GPU_VERSION_BIFROST}" |
| |
| echo "make mali module KERNEL_ARCH is ${KERNEL_ARCH}" |
| |
| function usage(){ |
| echo "Usage: ${exec_name} <board> [workspace path]" |
| echo "supported boards: elaine-(p0 , p1)" |
| echo " estelle-(p1, p2, b1, b3, b4)" |
| echo " lucy-(p0)" |
| echo " newman-(p1, p2, p2_1, b1, b3, b4)" |
| echo " puddy-(p0, pdfc, p1)" |
| } |
| |
| function run_module_make(){ |
| pushd . |
| echo "***** building $1 *****" |
| case $1 in |
| utgard) |
| echo "GPU_DRV_VERSION is ${GPU_VERSION_UTGARD}" |
| make -C ${LOCAL_PATH}/utgard KDIR=${KDIR} \ |
| ARCH=${KERNEL_ARCH} CROSS_COMPILE=${CROSS_COMPILE} \ |
| GPU_DRV_VERSION=${GPU_VERSION_UTGARD} -j$cpu_num gpu |
| ;; |
| bifrost) |
| echo "GPU_DRV_VERSION is ${GPU_VERSION_BIFROST}" |
| make CC=${cc_clang} LD=${CROSS_COMPILE}ld.lld NM=${COMPILE_PATH}llvm-nm OBJCOPY=${COMPILE_PATH}llvm-objcopy -C ${KDIR} \ |
| ARCH=${KERNEL_ARCH} M=${BIFROST_PATH}/kernel/drivers/gpu/arm/midgard \ |
| EXTRA_CFLAGS="-DCONFIG_MALI_PLATFORM_DEVICETREE -DCONFIG_MALI_MIDGARD_DVFS -DCONFIG_MALI_BACKEND=gpu -I${BIFROST_PATH}/kernel/include \ |
| -DCONFIG_MALI_DMA_BUF_MAP_ON_DEMAND=1 -DCONFIG_MALI_DMA_BUF_LEGACY_COMPAT=0 -Wno-error" \ |
| CONFIG_MALI_MIDGARD=m CONFIG_MALI_PLATFORM_DEVICETREE=y CONFIG_MALI_MIDGARD_DVFS=y CONFIG_MALI_BACKEND=gpu \ |
| -j$cpu_num modules |
| ;; |
| esac |
| echo "***** completed building *****" |
| popd |
| } |
| |
| if (( $# < 1 )) |
| then |
| usage |
| exit 2 |
| fi |
| |
| readonly board=$1 |
| readonly workspace_path=$2 |
| readonly product=`echo ${board} | cut -d "-" -f1` |
| |
| case $product in |
| elaine|estelle|lucy|newman|puddy) |
| run_module_make bifrost |
| if [ ! -z $workspace_path ]; then |
| prebuilt_path=${workspace_path}/vendor/amlogic/${product}/prebuilt |
| mali_ko_path=${prebuilt_path}/kernel/modules |
| fct_mali_ko_path=${prebuilt_path}/factory/kernel/modules |
| mkdir -p ${mali_ko_path} |
| mkdir -p ${fct_mali_ko_path} |
| cp ${BIFROST_PATH}/kernel/drivers/gpu/arm/midgard/mali_kbase.ko ${mali_ko_path}/mali.${board}.ko |
| cp ${BIFROST_PATH}/kernel/drivers/gpu/arm/midgard/mali_kbase.ko ${fct_mali_ko_path}/mali.${board}.ko |
| fi |
| ;; |
| *) |
| echo "unknown product: $product" |
| exit 1 |
| esac |