FreeCalypso > hg > fc-selenite
view configure-tms470.sh @ 140:2106617f1291
scripts/mk-component*: added cfile_symlink function like in Magnetite
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Wed, 06 Feb 2019 21:17:00 +0000 |
parents | 1f43655bb3e4 |
children | 2c7f62ceb4ac |
line wrap: on
line source
#!/bin/sh set -e if [ ! -f configure-tms470.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 1 ] then echo "usage: $0 [--clean] target [vars]" 1>&2 exit 1 fi TARGET="$1" if [ ! -f "targets/$TARGET.conf" -o ! -f "targets/$TARGET.h" ] then echo "Error: target $TARGET not known" 1>&2 exit 1 fi # target defaults that can be overridden by $TARGET.conf CHIPSET=10 DSP=36 RF=12 DISABLE_SLEEP=0 . "targets/$TARGET.conf" # settings derived from the target-defined DSP version case "$DSP" in 33) AMR=0 L1_DYN_DSP_DWNLD=0 L1_VOICE_MEMO_AMR=0 MELODY_E2=0 SPEECH_RECO=0 ;; 34) AMR=1 L1_DYN_DSP_DWNLD=0 L1_VOICE_MEMO_AMR=0 MELODY_E2=0 SPEECH_RECO=0 ;; 36) AMR=1 L1_DYN_DSP_DWNLD=1 L1_VOICE_MEMO_AMR=1 MELODY_E2=1 SPEECH_RECO=1 ;; *) echo "Error: DSP=$DSP setting not understood" 1>&2 exit 1 esac # miscellaneous configurable feature settings ALLOW_CSIM_GSM=1 MEMSUPER=0 SERIAL_DYNAMIC_SWITCH=0 TRACEMASK_IN_FFS=0 TR_BAUD_CONFIG=TR_BAUD_115200 SUFFIX= # allow the user to override these defaults shift while [ $# != 0 ] do eval "$1" shift done # validate key settings and build configuration name case "$SRVC" in 0) CONFIG_NAME=vo ;; 1) CONFIG_NAME=fd ;; 2) CONFIG_NAME=da ;; *) echo "Error: SRVC=$SRVC setting is invalid" 1>&2 exit 1 esac case "$GPRS" in 0) ;; 1) CONFIG_NAME=gprs ;; *) echo "Error: GPRS=$GPRS setting is invalid" 1>&2 exit 1 esac case "$FCHG_STATE" in 0) ;; 1) CONFIG_NAME="$CONFIG_NAME-chg" ;; *) echo "Error: FCHG_STATE=$FCHG_STATE setting is invalid" 1>&2 exit 1 esac CONFIG_NAME="$CONFIG_NAME$SUFFIX-470" BUILD_DIR="build-$TARGET-$CONFIG_NAME" echo "Building firmware for target $TARGET 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 [ $# != 1 ] then echo "Error: build_lib takes 1 argument" 1>&2 exit 1 fi scripts/mk-component.sh "$1" SUBDIR="$SUBDIR $1" current_lib=$1/$1.lib LIBS="$LIBS $current_lib" } rts_blob_lib() { if [ $# != 1 ] then echo "Error: rts_blob_lib takes 1 argument" 1>&2 exit 1 fi current_lib="../tms470/rts/$1.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 export CHIPSET DSP RF export AMR L1_DYN_DSP_DWNLD L1_VOICE_MEMO_AMR MELODY_E2 SPEECH_RECO export DISABLE_SLEEP export ALLOW_CSIM_GSM MEMSUPER TRACEMASK_IN_FFS export RVTMUX_ON_MODEM SERIAL_DYNAMIC_SWITCH TR_BAUD_CONFIG export GPRS SRVC FCHG_STATE scripts/config-headers.sh SUBDIR= LIBS= SPECIAL_LINK_LIBS= current_lib= build_lib ccddata # ACI libs build_lib aci build_lib aciext build_lib aci_dti_mng build_lib atiext build_lib comlib if [ "$GPRS" = 1 ] then build_lib config_gprs_fl build_lib config_gprs_ir else build_lib config_gsm_fl build_lib config_gsm_ir fi lib_link_magic '(BSS_LIBS (.bss) CONST_LIBS (.text, .const))' # G23M protocol stack libs build_lib alr build_lib cc build_lib dl build_lib dti build_lib l1_pei build_lib mm build_lib rr build_lib sim_b_lib build_lib sms build_lib ss build_lib uart_b_lib # fax and data if [ "$SRVC" != 0 ] then build_lib l2r build_lib ra build_lib rlp fi # fax specific if [ "$SRVC" = 1 ] then build_lib fad build_lib t30 fi # GPRS specific if [ "$GPRS" = 1 ] then build_lib cci build_lib cci_ir lib_link_magic '(BSS_LIBS (.bss) CONST_LIBS (.text, .const))' build_lib cl build_lib gmm build_lib grlc build_lib grlc_ir lib_link_magic '(BSS_LIBS (.bss) CONST_LIBS (.text, .const))' build_lib grr build_lib llc build_lib sm build_lib sndcp build_lib ppp build_lib ppp_ir lib_link_magic '(BSS_LIBS (.bss) CONST_LIBS (.text, .const))' build_lib upm fi # Condat drivers build_lib gdi # GPF build_lib ccd_na7_db build_lib frame_na7_db_fl build_lib frame_na7_db_ir lib_link_magic '(BSS_LIBS (.bss) CONST_LIBS (.text, .const))' build_lib misc_na7_db_fl build_lib misc_na7_db_ir lib_link_magic '(BSS_LIBS (.bss) CONST_LIBS (.text, .const))' build_lib osx_na7_db lib_link_magic '(BSS_LIBS (.bss) CONST_LIBS (.text, .const))' build_lib tif_na7_db_fl build_lib tif_na7_db_ir lib_link_magic '(BSS_LIBS (.bss) CONST_LIBS (.text, .const))' # core drivers build_lib drivers_flash # Layer 1 build_lib tpudrv lib_link_magic '(BSS_LIBS (.bss) CONST_LIBS (.text, .const))' build_lib l1_ext lib_link_magic '(BSS_LIBS (.l1s_global))' build_lib l1_int lib_link_magic '(BSS_LIBS (.bss) CONST_LIBS (.text, .const))' build_lib l1_custom_ext build_lib l1_custom_int lib_link_magic '(BSS_LIBS (.bss) CONST_LIBS (.text, .const))' build_lib riviera_core_flash build_lib riviera_cust_flash # services build_lib audio build_lib audio_bgd build_lib cst build_lib dar build_lib dar_gbl_var lib_link_magic '(BSS_DAR_LIB (.bss))' build_lib etm build_lib lls # app drivers build_lib abb build_lib buzzer if [ "$FCHG_STATE" = 1 ] then build_lib fchg fi build_lib ffs build_lib ffs_drv build_lib ffs_pcm build_lib kpd build_lib power build_lib rtc_drv build_lib sim_drv build_lib spi_drv build_lib uart_drv # system glue build_lib main build_lib bootloader lib_link_magic '(CONST_BOOT_LIB (.const, .text, .text:v$3) BSS_BOOT_LIB (.bss))' # Nucleus build_lib nucleus_flash build_lib nucleus_intram lib_link_magic '(BSS_LIBS (.bss) CONST_LIBS (.text, .const))' # TI's libc/libgcc equivalent rts_blob_lib rts16le_flash rts_blob_lib rts16le_int_ram lib_link_magic '(BSS_LIBS (.bss))' # generate the top level Makefile! helpers/makeline def CONFIG_NAME $CONFIG_NAME > $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 tms470/makefile-frags/first-part >> $BUILD_DIR/Makefile cat tms470/makefile-frags/link-steps >> $BUILD_DIR/Makefile case "$TARGET" in c11x|c139) cat tms470/makefile-frags/m0-to-bin-c139 >> $BUILD_DIR/Makefile ;; c155) cat tms470/makefile-frags/m0-to-bin-c155 >> $BUILD_DIR/Makefile ;; *) cat tms470/makefile-frags/m0-to-bin-std >> $BUILD_DIR/Makefile ;; esac cat tms470/makefile-frags/flash-script-gen >> $BUILD_DIR/Makefile if [ -n "$RAM_LINK_SCRIPT_SRC" ] then cat tms470/makefile-frags/ram-link-steps >> $BUILD_DIR/Makefile fi cat tms470/makefile-frags/clean-always >> $BUILD_DIR/Makefile echo >> $BUILD_DIR/Makefile echo 'FRC:' >> $BUILD_DIR/Makefile # All done! echo "Run make in $BUILD_DIR to compile the firmware"