view FC-modem-family @ 57:020e6428c248

FC-handset-spec: firmware approach to vibrating alert documented
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 13 Jun 2021 02:22:25 +0000
parents 7aed57fc1928
children
line wrap: on
line source

The very first FreeCalypso hardware product named FCDEV3B was conceived in 2015
and physically produced in the first version in 2017, with the final all-bugs-
fixed version produced in early 2019.  FCDEV3B was conceived to fulfill an
internal project need: to replace no longer available and quite inconvenient
Openmoko hardware, and to provide a platform for empirically learning those
parts of TI's chipset+fw solution which were previously elusive.  The '3B' at
the end of FCDEV3B board name stands for triband, which was a deviation from
the Mother's original desires: ever since I first found TI's Leonardo schematics
back in 2011, I had always wanted to make all of my FreeCalypso hw designs fully
quadband, following TI's original Leonardo+ quadband reference design.  But in
2015 we lacked the necessary know-how to recreate TI's quadband Leonardo from
schematics alone, whereas for Openmoko's triband version we had not only
schematics, but also the complete PCB layout - thus we took the only course of
action that was viable at that time, and produced our FCDEV3B based on
Openmoko's version of the Calypso modem.

At the same time when our first FCDEV3B boards were being produced and debugged,
there was talk about producing a derivative version that would be packaged as a
component to be integrated into other people's systems and projects, as opposed
to a standalone development board for use on a lab bench.  I also did not feel
like staying triband forever, and the thought of a future quadband successor was
on my mind even as FCDEV3B was being designed.  Thus there was an intent to have
a family of FreeCalypso modem products, eventually evolving from triband to
quadband, and being made in different form factors for different use cases.
But none of these ideas ever came to fruition because no one ever funded any of
them.

The situation changed drastically with the discovery of already existing Tango
modem modules, discovery that was made in December of 2019 and fully accepted
as the new reality over the course of 2020.  The newly discovered Tango modem
module is essentially a mass-produced version of TI's Leonardo+ quadband
reference design, and it is a very good module, even more capable than what we
would have produced if someone had funded our ideas in the 2017 to 2019 period.

In this new Tango reality it makes absolutely no business sense to produce any
new FreeCalypso modem modules, so instead we decided on a different and quite
novel course of action: we are officially adopting this already existing Tango
module into our FreeCalypso family by way of rebranding - we are going to resell
these modules as FreeCalypso Tango, flashed with our FreeCalypso firmware and
differentiated from non-FC-sourced modules with a sticker bearing our trademark.
Our rebranded and reflashed FC Tango modules are expected to become available
in December of 2020.

On the FreeCalypso firmware side, our earlier idea of a single fcmodem target
that would cover multiple physical hw products in the FC modem family has been
withdrawn: our existing FCDEV3B hw is covered by firmware build target fcdev3b,
whereas Tango modems are covered by fw build target tangomdm.  Openmoko modems
are covered by fw build target gtamodem.  None of these 3 fw build targets are
interchangeable: each build will only work on its one respective hw target.

In the unlikely event that our recently discovered Tango modules prove
insufficient and someone commissions us to design and build a new Calypso modem
starting from just chips, it will probably make the most sense to design that
new modem in such a way that it would share the same fw build with Tango, rather
than with FCDEV3B: Tango is much more versatile in terms of how the multitude
of Calypso GPIO and multifunction pins may be configured.

FreeCalypso handset idea
========================

I (Mother Mychaela) still desire my own FreeCalypso phone handset that would
replace my current Pirelli DP-L10 - but it is currently unknown whether or not
my personal life circumstances will remain such that this project desire will
remain active, or if changes in my personal life circumstances (such as loss of
GSM service in the area where I live combined with no ability to relocate to a
more GSM-friendly country) will invalidate this project desire.

In the now-seemingly-unlikely event that I live long enough with active GSM
service to where I would get around to doing this FC handset project, it is my
desire to build that handset board starting from just chips, rather than based
on Tango.  A handset is not a modem, thus handsets and modems generally do not
share the same firmware build targets - thus if my dream FC handset board ever
becomes a reality, it will have its own dedicated fw build target, not shared
with any other hw.  I definitely wish to use the same quadband RFFE as Leonardo
and Tango, and my currently envisioned choice of flash chip is S71PL064J.

CONFIG_TARGET_FCFAM C preprocessor symbol
=========================================

As of 2020-09 this C preprocessor symbol (currently defined only for build
target fcdev3b) has only two effects:

1) It changes the src/cs/drivers/drv_app/ffs/board/dev.c table of supported
   flash chips and FFS configurations, as well as a few other FFS config bits
   to support the large 16 MiB flash config used on FCDEV3B.  Targets like Tango
   with S71PL064J or S71PL032J flash will continue to work equally well whether
   or not CONFIG_TARGET_FCFAM is defined because these two flash chips are
   listed in both versions of the table with the same FFS config, but 16 MiB
   flash chips S71PL129J and S71PL129N are supported only with
   CONFIG_TARGET_FCFAM and cannot be otherwise, as their 2nd flash chip select
   wiring is FC-specific.  Yet on the contrary, Samsung K5A32xxCTM with
   Openmoko's FFS config (also used by Huawei) is NOT compatible with
   CONFIG_TARGET_FCFAM.

2) It changes the default compiled-in AFC Psi parameters in L1 from TI's
   Leonardo values to a different set of numbers that match Openmoko/FCDEV3B
   VCXO.  But these compiled-in values are only fallbacks, and are generally
   expected to be overridden by factory calibration written into FFS.

-h fcfam target for fc-loadtool
===============================

The -h fcfam target must be used with FCDEV3B, no other loadtool configs will
work: FCDEV3B has a 16 MiB flash chip that is only supported with -h fcfam.
Either -h fcfam or -h gen8 will work equally well on FC Tango modems (S71PL064J
flash chip), thus you can use whichever config you feel is more philosophically
correct.