diff gsm-fw/cfgmagic/post-target @ 143:afceeeb2cba1

Our nuc-fw is destined to become gsm-fw, so I went ahead and did the big hg mv
author Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
date Tue, 12 Nov 2013 05:35:48 +0000
parents nuc-fw/cfgmagic/post-target@1e41550feec5
children 47754cdb6248
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gsm-fw/cfgmagic/post-target	Tue Nov 12 05:35:48 2013 +0000
@@ -0,0 +1,119 @@
+# 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
+		;;
+	*)
+		echo "Error: unknown RF_type=$RF_type" 1>&2
+		exit 1
+		;;
+esac
+export_to_c	RF_FAM
+
+# !!! 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