FreeCalypso update: progress with DSP patches and voice calls

Mychaela Falconia falcon at ivan.Harhan.ORG
Thu Oct 29 07:22:09 CET 2015


Das Signal <das.signal at freecalypso.org> wrote:

> Then I compiled the new gsm-fw and flashed it, then had the phone
> connect to the test network and place a phone call, using Qt's GUI.
> The good news is that everything worked fine! The other phone rang,
> and the audio was of good quality.

At first I was going to say "yay, awesome, it looks like voice calls
do work fine in our gsm-fw when the plain FR codec is used" - until I
tried to reproduce it myself...  I don't have a test network, but I
was wondering if we could make our entroubled gsm-fw usable on real
networks by having it advertise its capabilities as supporting FR
only, and thereby bypass the currently broken AMR support.

TI's protocol stack knows what codec capabilities it should advertise
to the network based on the configuration of the MSCAP record in its
PCM database.  This record will be read from FFS if there is a file
named /pcm/MSCAP, otherwise pcmdata.c gives the compiled-in default.
If you look at pcmdata.c in either leo2moko or gsm-fw (the latter came
from the former), you'll see a preprocessor conditional based on the
DSP ROM version number: older versions of the Calypso chip (like the
one on the D-Sample I got) have ROM versions that don't support AMR
at all, and the MSCAP setting for these older DSP ROM versions has
AMR excluded.

So the first thing I tried was setting this MSCAP record as TI would
set it for older DSP versions sans AMR - I did it in gsm-fw, hoping to
get a libre fw version that can make voice calls successfully.  But no
joy: when I tried dialing a call, the DSP blew up with errors.  (In
contrast, with AMR it doesn't blow up, just puts noise out on the
earpiece, although the voice uplink seems to be fine.)  Then I realized
that the EFR codec is still enabled, and the network probably selects
EFR as the next best choice after AMR.  I also recall reading somewhere
(maybe it was in the DSP patch notes in the TSM30 source) that our
funky DSP ROM version 36 requires some special initialization not only
for AMR, but also for EFR.

Then I tried setting MSCAP to {0x01, 0x00, 0x00, 0x00, 0x00, 0x00} -
enabling only FR and nothing else.  But *still* no joy: this time the
DSP does not blow up, but the earpiece output is very quiet noise,
almost (but not quite) silence.  And furthermore, when I tried calling
my test voice mailbox and speaking, then played it back, only
silence/noise got recorded as well - whereas in my earlier experiments
without disabling any codecs (thus presumably running AMR) I got my
voice into the recording just fine, indicating that the uplink from
the experimental gsm-fw was fine.

Then I thought that perhaps Operator 310260's network might have non-
working FR support, considering that EFR was probably fully rolled out
when this network just started deploying.  But nope, that isn't the
case: I tried setting the same FR-only MSCAP configuration in
leo2moko-debug, and it still worked fine, as in the voice downlink in
the earpiece was fine.  (It sounded a little different, confirming
that a rarely used older codec was in use.)

I've done everything I could think of.  I give up.  How did you make
it work for you?

-- 
Mychaela,
poor t-girl tearing her hair out in frustration - no, not literally
of course, it's too precious for that...


More information about the Community mailing list