blob: 63eaf1a7c342b2c60b912fcaf66d0740e3aa0887 [file] [log] [blame]
#!/bin/bash
# Builds the media driver and updates the workspace path with output files
exec_name=$0
cpu_num=$(grep -c processor /proc/cpuinfo)
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
CROSS_COMPILE=$DIR/../prebuilt/toolchain/aarch64/bin/aarch64-cros-linux-gnu-
KERNEL_ARCH=arm64
KDIR=$DIR/../kernel
INCLUDE=$DIR/drivers/include
MEDIA_MODULES=$DIR/drivers
CONFIGS="CONFIG_AMLOGIC_MEDIA_VDEC_MPEG12=m \
CONFIG_AMLOGIC_MEDIA_VDEC_MPEG2_MULTI=m \
CONFIG_AMLOGIC_MEDIA_VDEC_MPEG4=m \
CONFIG_AMLOGIC_MEDIA_VDEC_MPEG4_MULTI=m \
CONFIG_AMLOGIC_MEDIA_VDEC_VC1=m \
CONFIG_AMLOGIC_MEDIA_VDEC_H264=m \
CONFIG_AMLOGIC_MEDIA_VDEC_H264_MULTI=m \
CONFIG_AMLOGIC_MEDIA_VDEC_H264_MVC=m \
CONFIG_AMLOGIC_MEDIA_VDEC_H265=m \
CONFIG_AMLOGIC_MEDIA_VDEC_VP9=m \
CONFIG_AMLOGIC_MEDIA_VDEC_MJPEG=m \
CONFIG_AMLOGIC_MEDIA_VDEC_MJPEG_MULTI=m \
CONFIG_AMLOGIC_MEDIA_VDEC_REAL=m \
CONFIG_AMLOGIC_MEDIA_VDEC_AVS=m \
CONFIG_AMLOGIC_MEDIA_VDEC_AVS_MULTI=m \
CONFIG_AMLOGIC_MEDIA_VDEC_AVS2=m \
CONFIG_AMLOGIC_MEDIA_VENC_H264=m \
CONFIG_AMLOGIC_MEDIA_VENC_H265=m \
CONFIG_FRAME_WARN=4096"
set -o errtrace
trap 'echo Fatal error: script ${exec_name} aborting at line $LINENO, command \"$BASH_COMMAND\" returned $?; exit 1' ERR
function usage(){
echo "Usage: ${exec_name} <product> [workspace path]"
echo "supported products: sabrina"
echo "Note: if [workspace path] is not set, it still builds"
}
if (( $# < 1 ))
then
usage
exit 2
fi
readonly product=$1
readonly workspace_path=$2
pushd $DIR
make -C $KDIR M=$MEDIA_MODULES ARCH=$KERNEL_ARCH \
CROSS_COMPILE=$CROSS_COMPILE $CONFIGS \
EXTRA_CFLAGS+=-I$INCLUDE modules -j64
case $product in
sabrina*)
;;
*)
echo "unknown product: $product"
exit 1
esac
popd
if [ ! -z $workspace_path ]; then
media_out_dir=${workspace_path}/device/google/${product}-kernel/lib/modules
mkdir -p ${media_out_dir}
for ko in aml_hardware_dmx.ko \
amvdec_avs2.ko \
amvdec_avs.ko \
amvdec_h264.ko \
amvdec_h264mvc.ko \
amvdec_h265.ko \
amvdec_mh264.ko \
amvdec_mjpeg.ko \
amvdec_mmjpeg.ko \
amvdec_mmpeg12.ko \
amvdec_mmpeg4.ko \
amvdec_mpeg12.ko \
amvdec_mpeg4.ko \
amvdec_real.ko \
amvdec_vc1.ko \
amvdec_vp9.ko \
decoder_common.ko \
encoder.ko \
firmware.ko \
media_clock.ko \
stream_input.ko \
vpu.ko \
amvdec_ports.ko \
video_framerate_adapter.ko \
media_sync.ko
do
find $MEDIA_MODULES -name $ko | xargs -i cp {} $media_out_dir
done
media_fw_out_dir=${workspace_path}/device/google/${product}-kernel/lib/firmware/video/
mkdir -p $media_fw_out_dir
cp -r firmware/* $media_fw_out_dir
fi