annotate Speech-codec-selection @ 98:915ff61137ee

Speech-codec-selection: document MSCAP
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 06 Jun 2023 01:47:36 +0000
parents
children c28a1518d268
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
98
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 There exist a total of 5 speech TCH modes in classic GSM, outside of exotic
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 additions (did anyone ever implement them?) of AMR-WB and TCH-8PSK; these
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 classic 5 speech TCH modes are:
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 TCH/FS (FRv1 codec)
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 TCH/HS (HRv1 codec)
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 TCH/EFS (EFR codec)
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 TCH/AFS (AMR-FR)
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 TCH/AHS (AMR-HR)
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 The selection of TCH type (full-rate or half-rate) and speech version (specific
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 codec) assigned to each voice call is always done by the GSM network - the MS
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 has no direct control over these decisions. However, the MS tells the network
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 which codecs it supports by way of Bearer capability IE (information element)
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 in CC (call control) Layer 3 messages, and networks that are designed to support
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 a wide range of GSM MS technology generations (as opposed to, for example,
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 operating with a policy that excludes non-AMR-capable MS) heed these MS-declared
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 speech codec capabilities when deciding which codec and TCH type to use.
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 Per the specs, every type-approved GSM MS is required to support FRv1 codec,
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 but support for all other speech codecs is optional in any combination.
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 In TI's GSM MS firmware architecture there is a configuration record in the
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 Condat PCM layer that tells the protocol stack's CC component which speech
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 versions it should list as supported in the Bearer capability IE. This PCM
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 configuration record is called EF_MSCAP; normally the firmware runs with its
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 compiled-in default for this record, and that default is crafted to match the
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 capabilities of Calypso L1. However, if there is a file named /pcm/MSCAP in
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 FFS, that FFS file overrides the compiled-in default for EF_MSCAP; this MSCAP
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 override mechanism can be used to artificially restrict which codecs the MS
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 will declare to the network as supported, thereby influencing the actual codec
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 selection by the network.
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 As of 2023-06-05 FreeCalypso Tourmaline firmware offers 3 different methods for
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 manipulating the speech version list sent to the network in the Bearer
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 capability IE for voice calls:
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 * Writing /pcm/MSCAP with fc-fsio;
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39 * Writing to EF_MSCAP more conveniently with AT%MSCAP;
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40 * Setting the speech version list directly with AT%SPVER.
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42 MSCAP record manipulation
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43 =========================
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45 Writing /pcm/MSCAP with fc-fsio is the oldest method for artificially
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46 restricting the selection of speech codec for voice calls - this method has been
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47 available since the earliest FreeCalypso firmware versions. However, this
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48 method is very inconvenient: the firmware checks FFS for the presence of
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49 /pcm/MSCAP only once on boot, when the Condat PCM layer is initialized, and
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50 this file is never re-read afterward. Therefore, if you create or modify or
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 delete this file with fc-fsio, your change won't have any effect whatsoever on
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52 the already-booted firmware session, instead it will only take effect on the
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53 next firmware boot cycle.
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55 The addition of AT%MSCAP private AT command solves this problem: this command
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 updates the EF_MSCAP record through the firmware's pcm_WriteFile() API, which
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57 not only writes to FFS, but also updates the in-RAM copy in the PCM layer which
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58 takes effect on the next voice call. This command supports both set and query
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59 forms:
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
60
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
61 AT%MSCAP=byte1,byte2,byte3[,byte4,byte5,byte6] -- set form
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
62 AT%MSCAP? -- query form
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
63
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
64 This private AT command is unusual (differs from 3GPP standard commands) in that
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
65 each of the byte arguments is hexadecimal. The hexadecimal form is "raw", i.e.,
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
66 just the two hexadecimal digits without any prefix or suffix. For example, the
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
67 following command restores the standard EF_MSCAP setting for CSD-enabled
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
68 firmware builds on Calypso C035 platfotms with AMR-capable DSP ROM versions:
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
69
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
70 AT%MSCAP=B7,C7,00
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
71
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
72 The full EF_MSCAP record consists of 6 bytes, but only the first 3 bytes contain
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
73 defined bits; the last 3 bytes are unused and should be set to 0. The set form
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
74 of AT%MSCAP command requires the first 3 bytes to be fully specified (there is
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
75 no default), but the last 3 unused bytes default to 0 if left unspecified.
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
76
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
77 The first byte of EF_MSCAP indicates supported speech codec versions, and the
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
78 following two bytes specify CSD capabilities. The firmware's compiled-in MSCAP
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
79 standard configurations are:
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
80
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
81 Firmware build w/o CSD Firmware build with CSD
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
82 Early Calypso silicon w/o AMR 07,00,00 87,C7,00
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
83 Final Calypso silicon with AMR 37,00,00 B7,C7,00
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
84
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
85 The first byte of EF_MSCAP is called chnMode and has the following bit
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
86 definitions (ASCII art diagrams copied from TI's source comments):
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
87
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
88 _______________________________________________________
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
89 |8 |7 |6 |5 |4 |3 |2 |1 |
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
90 |------|------|------|------|------|------|------|------|
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
91 |L1 |Tm |afs |ahs |spV3 |efrV2 |hr |spV1 |
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
92 -------------------------------------------------------
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
93
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
94 (Note the same bit numbering convention as is used in the GSM 11.11 spec for
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
95 EFs in the SIM file system.)
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
96
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
97 Bit 1: indicates support for FRv1, must always be set
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
98 Bit 2: indicates support for HRv1
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
99 Bit 3: indicates support for EFR
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
100 Bit 4: defined as indicating support for "EFR v3", but there is no such thing
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
101 Bit 5: indicates support for AMR-HR
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
102 Bit 6: indicates support for AMR-FR
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
103 Bit 7: defined as meaning "Test Mobile", not actually used
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
104 Bit 8: defined as meaning "L1 Version", not actually used
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
105
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
106 The second byte is called datCap1 and has the following bit definitions:
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
107
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
108 _______________________________________________________
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
109 |8 |7 |6 |5 |4 |3 |2 |1 |
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
110 |------|------|------|------|------|------|------|------|
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
111 |14.4 |tfax |ntfax |tsyn |syn |asyn |rlp |ds |
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
112 -------------------------------------------------------
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
113
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
114 Specific bit meanings per TI's source comments:
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
115
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
116 Bit 1: Data support
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
117 Bit 2: RLP data (NT Async)
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
118 Bit 3: T Async data support
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
119 Bit 4: NT Sync data support
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
120 Bit 5: T Sync data support
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
121 Bit 6: NT Fax support
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
122 Bit 7: T Fax support
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
123 Bit 8: Data rate 14.4 support
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
124
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
125 The third byte is called datCap2 and has the following bit definitions:
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
126
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
127 _______________________________________________________
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
128 |8 |7 |6 |5 |4 |3 |2 |1 |
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
129 |------|------|------|------|------|------|------|------|
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
130 |DHR | | |NAS |TPD |NTPD |TP |NTP |
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
131 -------------------------------------------------------
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
132
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
133 Specific bit meanings per TI's source comments:
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
134
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
135 Bit 1: NT Packet Service
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
136 Bit 2: T Packet Service
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
137 Bit 3: NT PAD Access Service
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
138 Bit 4: T PAD Access Service
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
139 Bit 5: No Alternate Services
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
140 Bit 8: Data Halfrate support
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
141
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
142 Note that Calypso Layer1 as delivered by TI does not support CSD on TCH/H, only
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
143 on TCH/F, and this lack of CSD half-rate support is reflected in the compiled-in
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
144 EF_MSCAP configuration. However, the DSP does have channel mode definitions for
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
145 TCH/H4.8 and TCH/H2.4, suggesting at least partial support for half-rate CSD -
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
146 perhaps this support is incomplete and/or non-functional. ARM L1 support for
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
147 half-rate CSD (called IDS in the code) is very obviously missing, though. But
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
148 on TCH/F our TI-inherited GSM MS solution does support CSD modes from F2.4
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
149 through F14.4 inclusive, with bearer services of transparent async,
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
150 non-transparent RLP and fax.
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
151
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
152 Playing with AT%MSCAP and cleaning up afterward
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
153 -----------------------------------------------
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
154
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
155 The set form of AT%MSCAP command issues a pcm_WriteFile() internal API call,
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
156 and that operation writes /pcm/MSCAP into FFS in addition to updating the record
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
157 inside the PCM layer. Therefore, MSCAP changes made with this command persist
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
158 across firmware boot cycles. There is no way to delete /pcm/MSCAP via AT%MSCAP,
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
159 and thus no way to return to the standard system design state where the active
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
160 MSCAP record depends on the firmware build variant on development boards where
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
161 different fw build configurations are often being run. Therefore, the following
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
162 clean-up procedure is recommended:
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
163
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
164 Step 1: set AT%MSCAP to the standard config for your currently running firmware
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
165 version, usually AT%MSCAP=37,00,00 or AT%MSCAP=B7,C7,00.
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
166
915ff61137ee Speech-codec-selection: document MSCAP
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
167 Step 2: execute 'rm /pcm/MSCAP' in fc-fsio, deleting the file from FFS.