New firmware for FCDEV3B and Openmoko modems

Mychaela Falconia mychaela.falconia at
Mon Jan 28 18:28:42 UTC 2019

Hello FC community,

I just put out yet another fw update for FCDEV3B and Openmoko modems:

The 3 tarballs above are for FCDEV3B V1, FCDEV3B V2 and OM GTA01/02,
respectively.  There are two changes since the previous 2019-01-12/13

1) For politico-psychological reasons it is important to have as much
of our firmware as possible compiling from source, keeping the prebuilt
objects (blobs) portion as small as possible.  Back in November I made
a change in the Magnetite source tree to recompile all of GPF except
OSL and OSX from source instead of using historical prebuilt libs, but
as I was investigating a Mot C1xx SMS issue earlier this month, I
discovered that this deblobbing change from November had an unexpected
fallout: there are many places in TI's GPF code where the C
preprocessor's __FILE__ macro is used, and because of the way our
build system is set up, this macro got expanded into longer pathname
strings compared to TI's historical build.  It also turned out that
these longer __FILE__ strings were causing serious breakage in some
error handling paths, i.e., my deblobbing change from November
inadvertently introduced a functional regression.  That breakage is
now fixed in the 2019-01-28 release: the GPF code in question is still
rebuilt from source (deblobbed), but I've added a few extra hacks to
our build system (symlinks) to produce exactly the same __FILE__
strings as in the historical blob version, i.e., our recompiled
version of GPF now matches the historical blob version bit for bit.

2) The firmware version ID string generated at build time (which can
be queried with AT%VER, is emitted on boot on the RVTMUX debug trace
interface, and can be seen in the fw binary with strings) now includes
the target name (making it immediately visible if someone flashes an
image built for the wrong target) and the corresponding source version
ID (Hg commit number and hash), in addition to the previously included
fw family name (Magnetite), build configuration (currently hybrid) and
the build timestamp.  Because this firmware version ID string is
emitted as a trace on boot, I also had to increase the maximum length
of GPF traces: I increased the partition size from 160 to 220 bytes,
increasing the maximum trace string length from 102 to 162 characters.
The resulting RAM usage increase is only 12000 bytes, and allowing
longer GPF traces will certainly help with protocol stack debugging,
as we are not using str2ind.

I still need to make another build for the Mot C1xx family, which will
involve a few additional source changes which will affect the
hybrid-vpm and hybrid-ui-vo configs used for C1xx, but not the
Standard Modem hybrid config used for FCDEV3B and OM GTA01/02 modems:
I need to increase the trace partition size to 220 bytes in the
GSM-only config, bringing it to matching our current GSM+GPRS config,
and I need to remove the bogon in the MFW (UI) code from TCS3 that
fills the FFS with debug traces.  But the FCDEV3B and Openmoko targets
should be good now with the present 2019-01-28 release, only C1xx
remain to be updated.

Hasta la Victoria, Siempre,
Mychaela aka The Mother

More information about the Community mailing list