view scripts/config-headers.sh @ 275:79cfefc1e2b4

audio mode load: gracefully handle mode files of wrong AEC version Unfortunately our change of enabling L1_NEW_AEC (which is necessary in order to bring our Calypso ARM fw into match with the underlying DSP reality) brings along a change in the audio mode file binary format and file size - all those new tunable AEC parameters do need to be stored somewhere, after all. But we already have existing mode files in the old format, and setting AEC config to garbage when loading old audio modes (which is what would happen without the present change) is not an appealing proposition. The solution implemented in the present change is as follows: the audio mode loading code checks the file size, and if it differs from the active version of T_AUDIO_MODE, the T_AUDIO_AEC_CFG structure is cleared - set to the default (disabled AEC) for the compiled type of AEC. We got lucky in that this varying T_AUDIO_AEC_CFG structure sits at the end of T_AUDIO_MODE!
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 30 Jul 2021 02:55:48 +0000
parents ee04ca45053d
children e17bdedfbf2b
line wrap: on
line source

#!/bin/sh

if [ -z "$TARGET" ]
then
	echo "Error: TARGET= must be passed via environment" 1>&2
	exit 1
fi

if [ -z "$BUILD_DIR" ]
then
	echo "Error: BUILD_DIR= must be passed via environment" 1>&2
	exit 1
fi

# The following vars will already be set when this script is invoked
# from configure.sh in a production build, but the following defaulting logic
# helps with manual invokation during development.

if [ -z "$CHIPSET" ]
then
	CHIPSET=10
fi
export CHIPSET

if [ -z "$DSP" ]
then
	DSP=36
fi
export DSP

if [ -z "$RF" ]
then
	RF=12
fi
export RF

if [ -z "$AMR" ]
then
	AMR=1
fi
export AMR

if [ -z "$L1_DYN_DSP_DWNLD" ]
then
	L1_DYN_DSP_DWNLD=1
fi
export L1_DYN_DSP_DWNLD

if [ -z "$L1_VOICE_MEMO_AMR" ]
then
	L1_VOICE_MEMO_AMR=1
fi
export L1_VOICE_MEMO_AMR

if [ -z "$MELODY_E2" ]
then
	MELODY_E2=1
fi
export MELODY_E2

if [ -z "$SPEECH_RECO" ]
then
	SPEECH_RECO=1
fi
export SPEECH_RECO

if [ -z "$GPRS" ]
then
	GPRS=1
fi
export GPRS

if [ -z "$SRVC" ]
then
	SRVC=1
fi
export SRVC

if [ -z "$ATP_STATE" ]
then
	ATP_STATE=0
fi
export ATP_STATE

if [ -z "$FCHG_STATE" ]
then
	FCHG_STATE=1
fi
export FCHG_STATE

if [ -z "$LCC_STATE" ]
then
	LCC_STATE=0
fi
export LCC_STATE

if [ -z "$MKS_STATE" ]
then
	MKS_STATE=0
fi
export MKS_STATE

if [ -z "$PWR_STATE" ]
then
	PWR_STATE=0
fi
export PWR_STATE

if [ -z "$R2D_STATE" ]
then
	R2D_STATE=1
fi
export R2D_STATE

if [ -z "$R2D_EMBEDDED_LCD" ]
then
	R2D_EMBEDDED_LCD=7
fi
export R2D_EMBEDDED_LCD

if [ -z "$TI_PROFILER" ]
then
	TI_PROFILER=0
fi
export TI_PROFILER

if [ -z "$TR_BAUD_CONFIG" ]
then
	TR_BAUD_CONFIG=TR_BAUD_115200
fi
export TR_BAUD_CONFIG

# FCBM_STATE is a derived setting from $MMI in normal configure.sh operation,
# and it also defaults to 0 (disabled) for manual invokation.

if [ "$MMI" = 2 ]
then
	FCBM_STATE=1
else
	FCBM_STATE=0
fi
export FCBM_STATE

# Derived settings only for the generation of *.cfg headers

case "$RF" in
	10)
		RF_FAM=10
		RF_PA=0
		RF_PG=0
		;;
	12)
		RF_FAM=12
		RF_PA=2
		RF_PG=2
		;;
	*)
		echo "Error: RF=$RF setting not understood" 1>&2
		exit 1
esac
export RF_FAM RF_PA RF_PG

case "$GPRS" in
	0)
		L1_GPRS=0
		PMODE=1
		;;
	1)
		L1_GPRS=1
		PMODE=2
		;;
	*)
		echo "Error: GPRS=$GPRS setting not understood" 1>&2
		exit 1
esac
export L1_GPRS PMODE

if [ "$SRVC" != 0 ]
then
	IDS=1
else
	IDS=0
fi
export IDS

# do it!

set -e

rm -rf $BUILD_DIR/config
mkdir $BUILD_DIR/config
helpers/cfg-hdr-gen scripts/cfg-template $BUILD_DIR/config
scripts/make-rv-swe-hdr.sh > $BUILD_DIR/config/rv_swe.h
cp targets/$TARGET.h $BUILD_DIR/config/fc-target.h