view gsm-fw/cfgmagic/post-target @ 619:10a1a99de746

L1 standalone: gsm-fw/L1/stand should be complete
author Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
date Sun, 31 Aug 2014 00:13:01 +0000
parents 2c9c2b95ddec
children 631fb20ff8d4
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.
		;;
	751749*)
		# Calypso Lite appears to be exactly the same as Calypso C035,
		# but has only 256 KiB of IRAM instead of 512 KiB.  Yet TI's
		# firmware sources give it a different CHIPSET number.
		# Let's try playing along...
		CHIPSET=11
		DSP=36
		;;
	*)
		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

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

# !!! 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