view configure.sh @ 624:012028896cfb

FFS dev.c, Leonardo target: Fujitsu MB84VF5F5F4J2 #if 0'ed out The FFS code we got from TI/Openmoko had a stanza for "Fujitsu MB84VF5F5F4J2 stacked device", using a fake device ID code that would need to be patched manually into cfgffs.c (suppressing and overriding autodetection) and using an FFS base address in the nCS2 bank, indicating that this FFS config was probably meant for the MCP version of Leonardo which allows for 16 MiB flash with a second bank on nCS2. We previously had this FFS config stanza conditionalized under CONFIG_TARGET_LEONARDO because the base address contained therein is invalid for other targets, but now that we actually have a Leonardo build target in FC Magnetite, I realize that the better approach is to #if 0 out this stanza altogether: it is already non-functional because it uses a fake device ID code, thus it is does not add support for more Leonardo board variants, instead it is just noise.
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 22 Dec 2019 21:24:29 +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"