view gsm-fw/cfgmagic/post-target @ 217:30a173257f4a

gsm-fw/services/ffs: ffs_target.c generation and compilation
author Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
date Mon, 06 Jan 2014 08:07:36 +0000
parents 47754cdb6248
children 6f4cadd1fd7f
line wrap: on
line source

# This shell script fragment is sourced after the selected target.
# Here we'll put code that logically goes with the target hw-related
# stuff, but which we wish to avoid duplicating in every target.*
# fragment.

# The per-target fragment must have defined CONFIG_IRAM_SIZE, CONFIG_XRAM_SIZE
# and CONFIG_FWFLASH_SIZE.
if [ -z "$CONFIG_IRAM_SIZE" ]
then
	echo "Error: target.$TARGET failed to define CONFIG_IRAM_SIZE" 1>&2
	exit 1
fi

if [ -z "$CONFIG_XRAM_SIZE" ]
then
	echo "Error: target.$TARGET failed to define CONFIG_XRAM_SIZE" 1>&2
	exit 1
fi

if [ -z "$CONFIG_FWFLASH_SIZE" ]
then
	echo "Error: target.$TARGET failed to define CONFIG_FWFLASH_SIZE" 1>&2
	exit 1
fi

# export them to C and to the m4-based ld script generation logic
export_to_c	CONFIG_IRAM_SIZE
export_to_m4	CONFIG_IRAM_SIZE
export_to_c	CONFIG_XRAM_SIZE
export_to_m4	CONFIG_XRAM_SIZE
export_to_c	CONFIG_FWFLASH_SIZE
export_to_m4	CONFIG_FWFLASH_SIZE

# Because we'll be using a lot of TI's code that is very liberally sprinkled
# with conditionals on their voodoo numbers for CHIPSET etc, we really have
# no choice but to continue using these nasty numbers, at least where
# possible.

if [ -z "$DBB_type" ]
then
	echo "Error: target.$TARGET failed to define DBB_type" 1>&2
	exit 1
fi

case "$DBB_type" in
	751992*)
		# This chip is Calypso C035 with DSP version 36 in the ROM
		CHIPSET=10
		DSP=36
		# Thanks to the Sotovik find, we now have authoritative
		# knowledge that these numbers are correct.
		;;
	*)
		echo "Error: unknown DBB_type=$DBB_type" 1>&2
		exit 1
		;;
esac
export_to_c	CHIPSET
export_to_c	DSP

if [ -z "$ABB_type" ]
then
	echo "Error: target.$TARGET failed to define ABB_type" 1>&2
	exit 1
fi

case "$ABB_type" in
	Iota*)
		ANALOG=2
		;;
	Syren*)
		ANALOG=3
		;;
	*)
		echo "Error: unknown ABB_type=$ABB_type" 1>&2
		exit 1
		;;
esac
export_to_c	ANALOG

if [ -z "$RF_type" ]
then
	echo "Error: target.$TARGET failed to define RF_type" 1>&2
	exit 1
fi

case "$RF_type" in
	Rita*)
		RF_FAM=12
		RF_PG=2
		;;
	*)
		echo "Error: unknown RF_type=$RF_type" 1>&2
		exit 1
		;;
esac
export_to_c	RF_FAM
export_to_c	RF_PG

# !!! Dirty hack !!!
#
# All targets which we currently support or have realistic prospects of
# supporting are derived from TI's D-sample and/or Leonardo reference designs.
# TI's voodoo BOARD number for D-sample is 41, and Leonardo apparently
# shared D-sample's number instead of having its own.
# My initial hope was to keep those BOARD conditionals out of our code,
# but they are sprinkled so liberally throughout TI's code that it's
# too much extra work to reshape them into something cleaner.
# So for now let's export a #define BOARD 41 for all targets
# and leave it be.

BOARD=41
export_to_c	BOARD

# Ensure that device_class is set - various feature configurations
# will certainly depend on it.
if [ -z "$device_class" ]
then
	echo "Error: target.$TARGET failed to define device_class" 1>&2
	exit 1
fi