FreeCalypso > hg > freecalypso-docs
annotate MCSI-apparent-bug @ 19:f68ca40fa5c1
Firmware-deblobbing document written
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 13 Sep 2019 07:28:00 +0000 |
parents | 8a3fd530a647 |
children |
rev | line source |
---|---|
13
8a3fd530a647
MCSI-apparent-bug: added note that this article is outdated
Mychaela Falconia <falcon@freecalypso.org>
parents:
7
diff
changeset
|
1 NOTE: OUTDATED ARTICLE!!! |
8a3fd530a647
MCSI-apparent-bug: added note that this article is outdated
Mychaela Falconia <falcon@freecalypso.org>
parents:
7
diff
changeset
|
2 |
8a3fd530a647
MCSI-apparent-bug: added note that this article is outdated
Mychaela Falconia <falcon@freecalypso.org>
parents:
7
diff
changeset
|
3 The following article was written in 2018-10; it is now 2019-03 and we have got |
8a3fd530a647
MCSI-apparent-bug: added note that this article is outdated
Mychaela Falconia <falcon@freecalypso.org>
parents:
7
diff
changeset
|
4 MCSI working - see the new Calypso-digital-voice article. The original article |
8a3fd530a647
MCSI-apparent-bug: added note that this article is outdated
Mychaela Falconia <falcon@freecalypso.org>
parents:
7
diff
changeset
|
5 below is only for history preservation. |
8a3fd530a647
MCSI-apparent-bug: added note that this article is outdated
Mychaela Falconia <falcon@freecalypso.org>
parents:
7
diff
changeset
|
6 |
8a3fd530a647
MCSI-apparent-bug: added note that this article is outdated
Mychaela Falconia <falcon@freecalypso.org>
parents:
7
diff
changeset
|
7 Original article with outdated info follows |
8a3fd530a647
MCSI-apparent-bug: added note that this article is outdated
Mychaela Falconia <falcon@freecalypso.org>
parents:
7
diff
changeset
|
8 =========================================== |
8a3fd530a647
MCSI-apparent-bug: added note that this article is outdated
Mychaela Falconia <falcon@freecalypso.org>
parents:
7
diff
changeset
|
9 |
7
43829da82312
MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 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
|
11 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
|
12 (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
|
13 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
|
14 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
|
15 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
|
16 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
|
17 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
|
18 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
|
19 GSM modem modules which do provide such digital voice channels. |
43829da82312
MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 |
43829da82312
MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 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
|
22 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
|
23 "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
|
24 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
|
25 modem. However, experiments have revealed the following: |
43829da82312
MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 |
43829da82312
MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 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
|
28 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
|
29 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
|
30 frame sync signal appears on MCSI_FSYNCH. |
43829da82312
MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 |
43829da82312
MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 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
|
33 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
|
34 *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
|
35 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
|
36 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
|
37 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
|
38 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
|
39 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
|
40 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
|
41 *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
|
42 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
|
43 |
43829da82312
MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 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
|
45 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
|
46 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
|
47 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
|
48 said, but got the logic reversed. |
43829da82312
MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 |
43829da82312
MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 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
|
51 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
|
52 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
|
53 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
|
54 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
|
55 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
|
56 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
|
57 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
|
58 voice call is in progress and the clocks are on. |
43829da82312
MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 |
43829da82312
MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 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
|
61 |
43829da82312
MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 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
|
63 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
|
64 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
|
65 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
|
66 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
|
67 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
|
68 behaviour. |
43829da82312
MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 |
43829da82312
MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 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
|
71 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
|
72 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
|
73 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
|
74 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
|
75 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
|
76 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
|
77 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
|
78 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
|
79 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
|
80 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
|
81 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
|
82 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
|
83 before giving it to a reverser. |
43829da82312
MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 |
43829da82312
MCSI-apparent-bug article written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 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
|
86 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
|
87 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
|
88 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
|
89 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
|
90 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
|
91 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
|
92 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
|
93 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
|
94 surprises. |