diff doc/Modem-configs @ 219:b05dba024f95

doc/Handset-configs and doc/Modem-configs written
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 15 Oct 2016 22:41:38 +0000
parents
children 828a6898241e
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/Modem-configs	Sat Oct 15 22:41:38 2016 +0000
@@ -0,0 +1,60 @@
+Modem configurations
+====================
+
+If you would like to build our Magnetite firmware in the AT-command-controlled
+modem configuration (not the C-Sample UI demo on the Mot C139), you have 3
+specific configurations to choose from, differing in the level of deblobbing:
+
+classic		This configuration replicates classic TCS211, just like
+		leo2moko from 2013.  Almost all of the original binary blob
+		libraries are used; the only components that are recompiled
+		from source are those which we got in source form with our copy
+		of TCS211 from Sotovik.  This config can only be built for the
+		fcdev3b and gtamodem targets, not for c139 or pirelli.
+
+l1reconst	In this configuration most of L1 (GSM Layer 1) is recompiled
+		from reconstructed source, although this deblobbing of L1 is
+		not 100% complete yet: for some pieces of L1 the original binary
+		object blobs are still used.  Some housekeeping pieces are also
+		recompiled from source that had to be reconstructed.  This
+		config can be built for all targets.
+
+hybrid		This configuration is a TCS2/TCS3 hybrid.  Instead of using the
+		TCS211 version of the G23M protocol stack which we got only as
+		binary blobs, this config uses the G23M PS version from the
+		TCS3.2/LoCosto source, backported to work with L1 and the fw
+		foundation layers from TCS211.  ACI also had to be replaced with
+		the TCS3 version, and a special hybrid version of the cdginc
+		headers had to be constructed.  L1 is also deblobbed to the
+		same extent as in l1reconst.  Like l1reconst, this config can
+		be built for all targets, and it is currently the most deblobbed
+		(closest to full source) Magnetite config.
+
+All 3 of the above configurations have CSD, fax and GPRS enabled, i.e., include
+functionality that will only become exercisable when we build our FCDEV3B and
+is dead weight until then, while we limp along with the currently available
+hardware.  We will need to deblob more of L1 (the l1audio and l1tm modules for
+which we currently still use the original object blobs) before we can try
+building a functionally reduced configuration that would be more appropriate
+for the feeble hardware targets.
+
+The deblobbing of L1 has been done in a very meticulous manner, ensuring that
+each individual reconstructed C module compiles into a strict functional
+equivalent of the original binary blob, sometimes even matching bit for bit -
+thus no regressions are expected with the classic->l1reconst transition, and no
+extensive testing is deemed necessary beyond the basic tests that have already
+been done.  However, the transition from l1reconst to hybrid involves wholesale
+replacement of two major firmware components (G23M PS and ACI) and some
+important associated support pieces with entirely different versions from a
+different TI program, hence extensive testing and debugging will be needed.
+
+So far the most-deblobbed hybrid config looks very promising: after fixing the
+hideous bug resulting from the addition of A5/3 support in TCS3.2 (hardware
+feature available on LoCosto but not on Calypso), voice calls work perfectly,
+both with the legacy codecs and with AMR!  (The same A5/3 bugfix has also been
+applied to our Citrine fw, hence the latter now has working voice calls too.)
+However, it is almost certain that there are a ton of minor bugs which need to
+be shaken out, hence this firmware build config should be treated as
+experimental for the time being, not production.  My plan is to work on shaking
+out the minor bugs and bringing this hybrid fw to production quality after we
+build the proper hardware platform for it, i.e., the FCDEV3B.