annotate MCSI-apparent-bug @ 7:43829da82312

MCSI-apparent-bug article written
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 11 Oct 2018 18:26:32 +0000
parents
children 8a3fd530a647
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 The Calypso chip provides a little-used auxiliary synchronous serial interface
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 called MCSI. It is an auxiliary interface to the DSP part of the Calypso
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 (controlled solely by the DSP and not directly accessible to the ARM part); it
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 is not clear what other uses TI may have had in mind for this interface, but
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 one advertised feature of TI's TCS211 chipset+firmware solution is Bluetooth
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 support in the form of using MCSI as a digital voice channel to be connected to
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 TI's Bluetooth Island chip. In FreeCalypso we are not interested in Bluetooth
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 per se, but we are interested in getting a digital voice channel out of our
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 modem for GSM voice calls in order to compete with the mainstream proprietary
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 GSM modem modules which do provide such digital voice channels.
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 Our current development board (FCDEV3B) has MCSI brought out on a header for
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 experimentation, and we had high hopes that we could use TI's so-called
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 "Bluetooth headset" mode (the mode in which the voice path is connected between
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 GSM and "Bluetooth" on MCSI) to get a usable digital voice channel out of our
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 modem. However, experiments have revealed the following:
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 1) The good part: when our TCS211-based fw is given a command to switch into
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 the Bluetooth headset mode (auw 0 2 through fc-tmsh or our own added AT@VPATH=2
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 command), MCSI comes alive: a 520 kHz bit clock appears on MCSI_CLK and an 8 kHz
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 frame sync signal appears on MCSI_FSYNCH.
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 2) The bad part: as soon as I dial a voice call after having enabled the
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 Bluetooth headset mode as above, the MCSI clock and frame sync signals
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 *disappear* at some point in the voice call setup process! I can make them
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 reappear by switching to AT@VPATH=0 (the regular GSM-to-ABB voice routing mode)
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 and then back to AT@VPATH=2 (merely repeating AT@VPATH=2 or auw 0 2 is not
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 sufficient, one has to switch to another mode and then back to Bluetooth
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 headset), and then the MCSI clock & frame sync disappearance no longer happens
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 on subsequent calls - they stay on. I can similarly make these MCSI clock &
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 frame sync signals come on and stay on if I issue the initial AT@VPATH=2 command
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 *after* the first voice call has been connected - but it is not clear at all
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 exactly which step in the call setup process one would need to wait for.
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 To me (Mother Mychaela) it would make sense for the DSP to keep MCSI clocks off
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 during idle and only turn them on during active voice calls (doing so would
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 avoid erratic clock output as the modem goes into and out of deep sleep during
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 idle), but the behaviour we are seeing seems like TI tried to do what I just
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39 said, but got the logic reversed.
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41 This erratic behaviour with MCSI clocks getting turned off when they should be
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42 getting turned on makes this interface unusable beyond lab experimentation in
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43 my maternal opinion - dunno about others, but I would not be able to market a
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44 commercial FreeCalypso modem product with a digital voice channel via MCSI if
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45 the behaviour of the interface is clearly buggy and requires hacky workarounds
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46 on the part of the end user. For this reason no further work has been done to
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47 see if the MCSI_TXD line actually puts out sensible voice downlink bits and if
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48 the MCSI_RXD line accepts voice uplink bits in a sensible format when an active
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49 voice call is in progress and the clocks are on.
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 As I see it, there are 3 ways we can solve this digital voice channel problem:
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53 1) The most ideal option would be to convince TI to dig up and release the
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54 source for the Calypso DSP ROM: getting that source and being able to study it
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55 would solve all of our problems at the root. We would then understand exactly
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 what the DSP does with regard to MCSI, and either change its behaviour to a
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57 more desirable one by way of a DSP patch, or adapt our ARM-side fw or even the
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58 external control interface definition to what will then be fully known DSP
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59 behaviour.
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
60
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
61 2) If TI no longer have the source for the Calypso DSP ROM or are unable to
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
62 find it because of the length of time that has passed (about 15 y), or if they
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
63 have it but we are not able to convince them to release it, we could reverse-
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
64 engineer this ROM by disassembling the ROM image that has been read out.
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
65 However, reversing this ROM thoroughly enough to serve as a replacement for the
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
66 lost original source would be an extremely costly undertaking: if I were to do
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
67 it, I would need to be given a full year to work on it on a full-time basis, at
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
68 the cost of about 150 kUSD, and I find it doubtful that any other professional
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
69 reverser of sufficient qualification level would do it for less. Needless to
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
70 say, it is highly unlikely that anyone in our ultra-marginalized FreeCalypso
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
71 community can spare 150 kUSD, and if someone does have that kind of money to
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
72 spend toward the liberation of the Calypso DSP, the sensible course of action
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
73 would be to first offer that money to TI in exchange for the DSP ROM source
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
74 before giving it to a reverser.
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
75
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
76 3) If someone has an actual (as opposed to hypothetical) money-backed business
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
77 need for a Calypso-based modem with a digital voice interface, the fastest and
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
78 cheapest solution would be to forego MCSI and tap into VSP instead, as described
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
79 in the FCDEV3B-repackaging article in the section titled "Tapping VSP for the
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
80 digital voice interface". This option would require designing and building a
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
81 new PCB, which would probably cost some 10 to 15 kUSD, but it is far less than
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
82 the 150 kUSD that would be needed for DSP ROM RE, and the timeline would be
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
83 much shorter too. Unlike MCSI, VSP is used in the regular voice path going
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
84 through the ABB, hence it is *known* to be good with no possibility of nasty
43829da82312 MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
85 surprises.