FreeCalypso > hg > fc-selenite
view configure-tms470.sh @ 134:7d50d8d13711
FFS code sync with Magnetite + gcc version fix
This change brings the new flash autodetection for FC and Pirelli targets
from Magnetite, and should also fix the gcc version for C1xx and gtamodem
targets, which were previously broken because they used TI's original
flash autodetect code (which operates at address 0) while the boot ROM
is mapped there.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Tue, 11 Dec 2018 08:43:25 +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"