FreeCalypso > hg > fc-magnetite
view configure.sh @ 639:026c98f757a6
tpudrv12.h & targets/gtm900.h: our current support is for MGC2GSMT version only
As it turns out, there exist two different Huawei-made hw platforms both
bearing the marketing name GTM900-B: one is MG01GSMT, the other is MGC2GSMT.
The two are NOT fw-compatible: aside from flash chip differences which
should be handled by autodetection, the two hw platforms are already known
to have different RFFEs with different control signals, and there may be
other differences not yet known. Our current gtm900 build target is for
MGC2GSMT only; we do not yet have a specimen of MG01GSMT on hand, hence
no support for that version will be possible until and unless someone
provides one.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 30 Jan 2020 18:19:01 +0000 |
parents | 76f09f1bea5d |
children | 5f00e9afd5d9 |
line wrap: on
line source
#!/bin/sh set -e if [ ! -f configure.sh ] then echo "This script needs to be run from the top of the source tree" 1>&2 exit 1 fi if [ ! -f helpers/makeline ] then echo "Please run make in the helpers directory first" 1>&2 exit 1 fi # start looking at our invokation line if [ "$1" = --clean ] then clean_flag=1 shift else clean_flag=0 fi if [ $# -lt 2 ] then echo "usage: $0 [--clean] target config [vars]" 1>&2 exit 1 fi TARGET_FULL="$1" CONFIG="$2" case "$TARGET_FULL" in *-*) TARGET=`echo $TARGET_FULL | sed -e 's/-.*$//'` CHIP_OVERRIDE=`echo $TARGET_FULL | sed -e 's/^.*-//'` ;; *) TARGET="$TARGET_FULL" CHIP_OVERRIDE= ;; esac if [ ! -f "targets/$TARGET.conf" -o ! -f "targets/$TARGET.h" ] then echo "Error: target $TARGET not known" 1>&2 exit 1 fi if [ ! -f "configs/$CONFIG" ] then echo "Error: configuration $CONFIG not known" 1>&2 exit 1 fi # target defaults that can be overridden by $TARGET.conf CALYPSO_VER=dsp36 RF=12 DISABLE_SLEEP=0 RVTMUX_ON_MODEM=0 UI_CONFIG=bigcolor . "targets/$TARGET.conf" # possible Calypso chip version override if [ -n "$CHIP_OVERRIDE" ] then CALYPSO_VER="$CHIP_OVERRIDE" fi # settings derived from the Calypso chip version case "$CALYPSO_VER" in c05b) CHIPSET=8 DSP=33 AMR=0 L1_DYN_DSP_DWNLD=0 L1_VOICE_MEMO_AMR=0 MELODY_E2=0 SPEECH_RECO=0 ;; dsp34) CHIPSET=10 DSP=34 AMR=1 L1_DYN_DSP_DWNLD=0 L1_VOICE_MEMO_AMR=0 MELODY_E2=0 SPEECH_RECO=0 ;; dsp36) CHIPSET=10 DSP=36 AMR=1 L1_DYN_DSP_DWNLD=1 L1_VOICE_MEMO_AMR=1 MELODY_E2=1 SPEECH_RECO=1 ;; *) echo "Error: CALYPSO_VER=$CALYPSO_VER setting not understood" 1>&2 exit 1 esac # display driver configuration DSAMPLE_FULL_COLOR=1 # miscellaneous configurable feature settings ALLOW_CSIM_GSM=1 SERIAL_DYNAMIC_SWITCH=0 TRACEMASK_IN_FFS=0 TR_BAUD_CONFIG=TR_BAUD_115200 USE_STR2IND=0 SUFFIX= # allow the user to override these defaults shift shift while [ $# != 0 ] do eval "$1" shift done BUILD_DIR="build-$TARGET_FULL-$CONFIG$SUFFIX" echo "Building configuration $CONFIG for target $TARGET_FULL in $BUILD_DIR" if [ "$clean_flag" = 1 ] then rm -rf $BUILD_DIR fi mkdir -p $BUILD_DIR : > $BUILD_DIR/lcfgen # shell functions to be used in the configuration recipe build_lib() { if [ $# -lt 1 -o $# -gt 2 ] then echo "Error: build_lib takes 1 or 2 arguments" 1>&2 exit 1 fi scripts/mk-component.sh "$1" "$2" SUBDIR="$SUBDIR $1" current_lib=$1/$1.lib LIBS="$LIBS $current_lib" } blob_lib_std() { if [ $# != 1 ] then echo "Error: blob_lib_std takes 1 argument" 1>&2 exit 1 fi current_lib="../blobs/libs/$1.lib" LIBS="$LIBS $current_lib" } blob_lib_gpf() { if [ $# != 1 ] then echo "Error: blob_lib_gpf takes 1 argument" 1>&2 exit 1 fi current_lib="../blobs/gpflibs/$1.lib" LIBS="$LIBS $current_lib" } blob_lib_os() { if [ $# != 1 ] then echo "Error: blob_lib_os takes 1 argument" 1>&2 exit 1 fi current_lib="../blobs/oslibs/$1.lib" LIBS="$LIBS $current_lib" } blob_lib_custom() { if [ $# != 2 ] then echo "Error: blob_lib_custom takes 2 arguments" 1>&2 exit 1 fi if [ -z "$1" ] then echo "Error: this config is not supported on this target" 1>&2 exit 1 fi cp $1 $BUILD_DIR/$2.lib current_lib=$2.lib LIBS="$LIBS $current_lib" } lib_link_magic() { if [ $# != 1 ] then echo "Error: lib_link_magic takes 1 argument" 1>&2 exit 1 fi if [ -z "$current_lib" ] then echo "Error: lib_link_magic called before build_lib or blob_lib" 1>&2 exit 1 fi SPECIAL_LINK_LIBS="$SPECIAL_LINK_LIBS $current_lib" echo "$1" >> $BUILD_DIR/lcfgen } # invoke the configuration recipe export BUILD_DIR TARGET USE_STR2IND export CHIPSET DSP RF export AMR L1_DYN_DSP_DWNLD L1_VOICE_MEMO_AMR MELODY_E2 SPEECH_RECO export DISABLE_SLEEP export INIT_blob export DSAMPLE_FULL_COLOR RVTMUX_ON_MODEM UI_CONFIG export ALLOW_CSIM_GSM SERIAL_DYNAMIC_SWITCH TR_BAUD_CONFIG export TRACEMASK_IN_FFS SUBDIR= LIBS= SPECIAL_LINK_LIBS= current_lib= . "configs/$CONFIG" # str2ind magic if [ -z "$str2ind_blobs_used" ] then echo "Error: configs/$CONFIG must set str2ind_blobs_used" 1>&2 exit 1 fi if [ "$str2ind_blobs_used" = 1 ] then cp blobs/str2ind.tab $BUILD_DIR fi if [ "$str2ind_blobs_used" = 0 -a "$USE_STR2IND" = 0 ] then echo 'char *str2ind_version = "&0";' > $BUILD_DIR/str2ind.c fi # generate the top level Makefile! helpers/makeline def CONFIG_NAME "$CONFIG$SUFFIX" > $BUILD_DIR/Makefile echo >> $BUILD_DIR/Makefile helpers/makeline def TARGET $TARGET_FULL >> $BUILD_DIR/Makefile echo >> $BUILD_DIR/Makefile helpers/makeline def SUBDIR $SUBDIR >> $BUILD_DIR/Makefile echo >> $BUILD_DIR/Makefile helpers/makeline def LIBS $LIBS >> $BUILD_DIR/Makefile echo >> $BUILD_DIR/Makefile helpers/makeline def SPECIAL_LINK_LIBS $SPECIAL_LINK_LIBS >> $BUILD_DIR/Makefile echo >> $BUILD_DIR/Makefile helpers/makeline def LINK_SCRIPT_SRC ../$LINK_SCRIPT_SRC >> $BUILD_DIR/Makefile echo >> $BUILD_DIR/Makefile if [ -n "$RAM_LINK_SCRIPT_SRC" ] then helpers/makeline def RAM_LINK_SCRIPT_SRC ../$RAM_LINK_SCRIPT_SRC \ >> $BUILD_DIR/Makefile echo >> $BUILD_DIR/Makefile fi helpers/makeline def FLASH_BASE_ADDR $FLASH_BASE_ADDR >> $BUILD_DIR/Makefile helpers/makeline def FLASH_SECTOR_SIZE $FLASH_SECTOR_SIZE >> $BUILD_DIR/Makefile echo >> $BUILD_DIR/Makefile cat makefile-frags/first-part >> $BUILD_DIR/Makefile if [ "$USE_STR2IND" = 1 ] then cat makefile-frags/str2ind-tab-depend >> $BUILD_DIR/Makefile fi if [ "$str2ind_blobs_used" = 1 -o "$USE_STR2IND" = 1 ] then cat makefile-frags/str2ind-c-gen >> $BUILD_DIR/Makefile fi cat makefile-frags/link-steps >> $BUILD_DIR/Makefile case "$TARGET" in c11x|c139|j100) cat makefile-frags/m0-to-bin-c139 >> $BUILD_DIR/Makefile ;; c155) cat makefile-frags/m0-to-bin-c155 >> $BUILD_DIR/Makefile ;; *) cat makefile-frags/m0-to-bin-std >> $BUILD_DIR/Makefile ;; esac cat makefile-frags/flash-script-gen >> $BUILD_DIR/Makefile if [ -n "$RAM_LINK_SCRIPT_SRC" ] then cat makefile-frags/ram-link-steps >> $BUILD_DIR/Makefile fi cat makefile-frags/clean-always >> $BUILD_DIR/Makefile if [ "$str2ind_blobs_used" = 0 ] then echo ' rm -f str2ind.tab str2ind.log' >> $BUILD_DIR/Makefile fi if [ "$str2ind_blobs_used" = 1 -o "$USE_STR2IND" = 1 ] then echo ' rm -f str2ind.c' >> $BUILD_DIR/Makefile fi echo >> $BUILD_DIR/Makefile echo 'FRC:' >> $BUILD_DIR/Makefile # All done! echo "Run make in $BUILD_DIR to compile the firmware"