FreeCalypso > hg > fc-selenite
annotate doc/Compiling @ 195:2863e5e4af4f
sim.c: speed enhancement change from Magnetite
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 24 May 2020 19:34:29 +0000 |
parents | 049091077b51 |
children | fdde05764380 |
rev | line source |
---|---|
109
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 Selecting and preparing the compiler environment |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 ================================================ |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 FreeCalypso Selenite firmware can be built with two different compiler |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 toolchains: either with TI's original TMS470 compiler or with gcc. Transition |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 to compiling with gcc is a very bold move with very heavy fallout, and many |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 parts of the fw are still broken or destabilized when built with gcc instead of |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 the original compiler they were developed with, thus for the foreseeable future, |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 anyone who aspires to be a FreeCalypso developer will need to compile our fw in |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 both ways, compare the behaviour of the two versions, and work toward making |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 the gcc-built version perform as well as the TMS470-built one. Thus you need |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 to have both compiler toolchains installed and working - see the |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 Toolchain-setup-470 and Toolchain-setup-gcc articles for the instructions. |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 Compiling the local helper utilities |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 ==================================== |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 (cd helpers; make) |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 Do the above. Most of the build helper scripts used in the FC Selenite build |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 system are written in Bourne shell, but a few were easier to implement in C. |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 You need to compile these C helper utilities before you can run an actual FC |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 Selenite firmware build, but these utilities are totally ad hoc and specific |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 to the needs of our fw build system, hence they are not meant to be installed |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 globally on your system - instead they stay within the fc-selenite tree. You |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 just need to run make in the helpers directory once before any actual firmware |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 builds. |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 Actually building the firmware |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 ============================== |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 To build our FC Selenite firmware for your hw target of interest in the default |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 configuration, run a command like this from the top level of the fc-selenite |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 tree: |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 ./configure-gcc.sh fcdev3b |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 or |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 ./configure-tms470.sh fcdev3b |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 As of this writing, the following hardware targets are supported: |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 c11x Motorola C11x/12x |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 c139 Motorola C139/140 |
124
4238e3220682
doc/Compiling: updated for C155 support, RVTMUX_ON_MODEM config var
Mychaela Falconia <falcon@freecalypso.org>
parents:
109
diff
changeset
|
46 c155 Motorola C155/156 |
109
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 fcdev3b FreeCalypso FCDEV3B |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 gtamodem The Calypso GSM/GPRS modem in Openmoko GTA01/02 smartphones |
188
049091077b51
doc/Compiling: update for gtm900mgc
Mychaela Falconia <falcon@freecalypso.org>
parents:
182
diff
changeset
|
49 gtm900mgc Huawei GTM900, hardware variant MGC1GSMT or MGC2GSMT |
158
8fe0cde2fd79
doc/Compiling: update for SE J100 target and fc-host-tools-r10
Mychaela Falconia <falcon@freecalypso.org>
parents:
133
diff
changeset
|
50 j100 Sony Ericsson J100 |
109
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 pirelli Pirelli DP-L10 |
182
5e1436690fe3
doc/Compiling: tangomdm target added, other minor updates
Mychaela Falconia <falcon@freecalypso.org>
parents:
174
diff
changeset
|
52 tangomdm Tango modem with MCSI |
109
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 Notice the difference from FC Magnetite: there is no "configuration name" |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 argument after the target name. Because FC Selenite does not include any UI |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 code (modem functionality only) and does not offer different versions of |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 various fw components the way Magnetite does, it does not have named |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 configurations in the same sense as Magnetite. Instead any configuration |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 tweaks are done via var=value optional arguments on the configure command line |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 after the required target name argument; the following variables are currently |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 available for tweaking: |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 ALLOW_CSIM_GSM |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 Per TI's original design, the AT+CSIM command does not allow GSM APDUs |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 of class 0xA0. Openmoko found some need for them, and they patched |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 their modem fw to allow these APDUs with AT+CSIM. With our new hybrid |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 modem fw this policy setting is configurable at build time; the default |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 is ALLOW_CSIM_GSM=1 (GSM APDUs allowed). |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 DISABLE_SLEEP |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 The general default is DISABLE_SLEEP=0, and the firmware automatically |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 enables all of the chipset's available sleep modes on boot. Setting |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 DISABLE_SLEEP=1 causes all sleep modes to be disabled by default on |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 boot (they can still be enabled with the AT%SLEEP command); this |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 setting is needed for FCDEV3B V1 boards that have a hardware bug that |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 causes breakage when sleep modes are enabled. |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 FCHG_STATE |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 This setting enables or disables the FCHG battery charging driver. By |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 default it is enabled on targets that have battery charging hardware |
124
4238e3220682
doc/Compiling: updated for C155 support, RVTMUX_ON_MODEM config var
Mychaela Falconia <falcon@freecalypso.org>
parents:
109
diff
changeset
|
84 (c11x, c139, c155, pirelli) and disabled on those that don't have such |
4238e3220682
doc/Compiling: updated for C155 support, RVTMUX_ON_MODEM config var
Mychaela Falconia <falcon@freecalypso.org>
parents:
109
diff
changeset
|
85 hw (fcdev3b, gtamodem). |
109
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 GPRS |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 Self-explanatory: enables or disables GPRS. By default GPRS is enabled |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 on proper modem hw targets (fcdev3b and gtamodem) and disabled on c11x, |
124
4238e3220682
doc/Compiling: updated for C155 support, RVTMUX_ON_MODEM config var
Mychaela Falconia <falcon@freecalypso.org>
parents:
109
diff
changeset
|
91 c139, c155 and pirelli. |
109
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93 L1_DYN_DSP_DWNLD |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 This setting enables TI's dynamic DSP patch download mechanism. When |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 the firmware is built for a Calypso target with DSP ROM version 36 in |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 the silicon (all FreeCalypso-made hw and most of the supported legacy |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 targets), L1_DYN_DSP_DWNLD is enabled by default and needs to be kept |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 enabled for correct operation: the patch code we got from TI for this |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 ROM is the dynamic download version, and the ARM-side L1 code expects |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101 all of these patches to be present, both the static part and the |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102 dynamic parts. However, one can build our fw with L1_DYN_DSP_DWNLD=0 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103 for experimental testing, to see what breaks when the dynamic patches |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104 are omitted. |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106 L1_VOICE_MEMO_AMR |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 This setting enables or disables support in L1 and in the RiViera Audio |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 Service for AMR voice memo recording and playback. This code has not |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 been properly studied yet and no test AT commands are provided for it, |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 but it is enabled by default like in TI's original TCS211 fw. |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113 MELODY_E2 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115 This setting enables or disables support in L1 and in the RiViera Audio |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116 Service for playing E2-format melodies. The default is MELODY_E2=1 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117 like in TI's original TCS211 fw. Note that Melody E1 support is always |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 enabled; setting MELODY_E2=0 disables only Melody E2, but not E1. |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
119 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
120 MEMSUPER |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
121 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
122 This setting enables the memory supervision feature in TI's GPF and in |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
123 the G23M protocol stack built on top of it. This code has not been |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
124 properly studied yet; play with it at your own risk. |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
125 |
124
4238e3220682
doc/Compiling: updated for C155 support, RVTMUX_ON_MODEM config var
Mychaela Falconia <falcon@freecalypso.org>
parents:
109
diff
changeset
|
126 RVTMUX_ON_MODEM |
4238e3220682
doc/Compiling: updated for C155 support, RVTMUX_ON_MODEM config var
Mychaela Falconia <falcon@freecalypso.org>
parents:
109
diff
changeset
|
127 |
4238e3220682
doc/Compiling: updated for C155 support, RVTMUX_ON_MODEM config var
Mychaela Falconia <falcon@freecalypso.org>
parents:
109
diff
changeset
|
128 This setting configures the usage of Calypso UARTs. RVTMUX_ON_MODEM=0 |
4238e3220682
doc/Compiling: updated for C155 support, RVTMUX_ON_MODEM config var
Mychaela Falconia <falcon@freecalypso.org>
parents:
109
diff
changeset
|
129 puts the AT command interface on the MODEM UART and RVTMUX on the IrDA |
4238e3220682
doc/Compiling: updated for C155 support, RVTMUX_ON_MODEM config var
Mychaela Falconia <falcon@freecalypso.org>
parents:
109
diff
changeset
|
130 UART (TI's intended config and the default on sensible hw targets); |
4238e3220682
doc/Compiling: updated for C155 support, RVTMUX_ON_MODEM config var
Mychaela Falconia <falcon@freecalypso.org>
parents:
109
diff
changeset
|
131 RVTMUX_ON_MODEM=1 (default on the crippled C1xx targets) puts RVTMUX on |
4238e3220682
doc/Compiling: updated for C155 support, RVTMUX_ON_MODEM config var
Mychaela Falconia <falcon@freecalypso.org>
parents:
109
diff
changeset
|
132 the MODEM UART, sacrificing the standard AT command interface. |
4238e3220682
doc/Compiling: updated for C155 support, RVTMUX_ON_MODEM config var
Mychaela Falconia <falcon@freecalypso.org>
parents:
109
diff
changeset
|
133 |
109
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
134 SERIAL_DYNAMIC_SWITCH |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
135 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
136 TI's TCS211 fw includes a provision (only for Bluetooth-enabled fw in |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
137 TI's original) to switch one UART between the AT command interface and |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
138 RVTMUX while the other UART is fixed for Bluetooth. In FreeCalypso we |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
139 have changed this code to work without Bluetooth, for the purpose of |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
140 switching the user-facing MODEM UART between AT commands and RVTMUX, |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
141 but the mechanism does not work properly yet and is disabled by default. |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
142 Enable it with SERIAL_DYNAMIC_SWITCH=1 if you would like to play with |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
143 it. |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
144 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
145 SPEECH_RECO |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
146 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
147 This setting enables or disables support in L1 and in the RiViera Audio |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
148 Service for TI's speech recognition mechanism. This code and the |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
149 underlying DSP facility itself have not been properly studied yet and |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
150 no test AT commands are provided for it, but it is enabled by default |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
151 like in TI's original TCS211 fw. |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
152 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
153 SRVC |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
154 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
155 TI's original config variable, selects the presence or absence of data |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
156 services other than GPRS as follows: |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
157 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
158 SRVC=0: voice and SMS only |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
159 SRVC=1: CSD and fax enabled |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
160 SRVC=2: CSD enabled, but not fax |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
161 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
162 The default is SRVC=1 (fax and data enabled) for proper modem hw targets |
124
4238e3220682
doc/Compiling: updated for C155 support, RVTMUX_ON_MODEM config var
Mychaela Falconia <falcon@freecalypso.org>
parents:
109
diff
changeset
|
163 (fcdev3b and gtamodem) and SRVC=0 (voice and SMS only) on c11x, c139, |
4238e3220682
doc/Compiling: updated for C155 support, RVTMUX_ON_MODEM config var
Mychaela Falconia <falcon@freecalypso.org>
parents:
109
diff
changeset
|
164 c155 and pirelli. |
109
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
165 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
166 SUFFIX |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
167 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
168 This setting is solely for configuration management. If you make a |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
169 build with any of the settings described in this document changed from |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
170 the default, you should also pass a SUFFIX=-xxx argument so your special |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
171 build will be appropriately identified in the build directory name and |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
172 in the firmware version ID string compiled into the image. The naming |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
173 of suffixes is up to you, but here are some examples: |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
174 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
175 L1_DYN_DSP_DWNLD=0 SUFFIX=-nodyn |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
176 MELODY_E2=0 SUFFIX=-noe2 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
177 MEMSUPER=2 SUFFIX=-ps |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
178 SERIAL_DYNAMIC_SWITCH=1 SUFFIX=-sds |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
179 SPEECH_RECO=0 SUFFIX=-nosr |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
180 TR_BAUD_CONFIG=TR_BAUD_812500 SUFFIX=-812500 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
181 |
133
118c25581538
doc/Compiling: TRACEMASK_IN_FFS config var addition documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
128
diff
changeset
|
182 TRACEMASK_IN_FFS |
118c25581538
doc/Compiling: TRACEMASK_IN_FFS config var addition documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
128
diff
changeset
|
183 |
118c25581538
doc/Compiling: TRACEMASK_IN_FFS config var addition documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
128
diff
changeset
|
184 TI's Test Interface (TIF) component in the GPF realm includes an |
118c25581538
doc/Compiling: TRACEMASK_IN_FFS config var addition documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
128
diff
changeset
|
185 optional feature for saving trace masks in FFS, but TI's production |
118c25581538
doc/Compiling: TRACEMASK_IN_FFS config var addition documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
128
diff
changeset
|
186 firmwares had it disabled. The component in question is now compiled |
118c25581538
doc/Compiling: TRACEMASK_IN_FFS config var addition documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
128
diff
changeset
|
187 from source like the rest of our fw, but we still keep this |
118c25581538
doc/Compiling: TRACEMASK_IN_FFS config var addition documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
128
diff
changeset
|
188 TRACEMASK_IN_FFS code disabled by default, at least for now. |
118c25581538
doc/Compiling: TRACEMASK_IN_FFS config var addition documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
128
diff
changeset
|
189 Set TRACEMASK_IN_FFS=1 to enable this code in GPF. |
118c25581538
doc/Compiling: TRACEMASK_IN_FFS config var addition documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
128
diff
changeset
|
190 |
109
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
191 TR_BAUD_CONFIG |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
192 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
193 The value of this symbol is an alphanumeric keyword of the form |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
194 TR_BAUD_xxxxxx; the default is TR_BAUD_115200. See |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
195 src/cs/drivers/drv_core/uart/traceswitch.h for the available baud rate |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
196 choices; the most practical use is setting TR_BAUD_CONFIG=TR_BAUD_812500 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
197 when you need to run the RVTMUX serial channel at the maximum possible |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
198 baud rate. |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
199 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
200 Each configuration is built in its own directory; the name of this build |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
201 directory always begins with build- and is constructed to reflect the |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
202 configuration. The auto-generated build directory name includes the name of |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
203 the target, the selection of services to be included based on the GPRS, SRVC |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
204 and FCHG_STATE variables, and a -470 or -gcc suffix indicating the compiler |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
205 toolchain, but if you manually override any of the other config variables |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
206 described above, you should also include a SUFFIX=-xxx argument giving an |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
207 identifying suffix for your own configuration changes. |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
208 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
209 To actually compile the firmware, cd into the created build directory and run |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
210 make there. With gcc the build proceeds very fast because the compiler runs |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
211 natively, but building with the original TMS470 compiler requires going through |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
212 Wine, which is much slower. There is, however, a trick to speed up these |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
213 TMS470 builds: if you run some other Wine program that stays open and does not |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
214 exit on its own (e.g., wine cmd) in another window and leave it open while you |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
215 run your Selenite TMS470 build, the build will proceed much faster - the |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
216 presence of another Wine process using the wineserver environment will keep |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
217 Wine from shutting this environment down and restarting it for every individual |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
218 cl470 run, i.e., for each individual C source file. |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
219 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
220 When the build is done, the flashable firmware image will be in fwimage.bin. |
124
4238e3220682
doc/Compiling: updated for C155 support, RVTMUX_ON_MODEM config var
Mychaela Falconia <falcon@freecalypso.org>
parents:
109
diff
changeset
|
221 This image is to be flashed with fc-loadtool at a target-dependent base address. |
4238e3220682
doc/Compiling: updated for C155 support, RVTMUX_ON_MODEM config var
Mychaela Falconia <falcon@freecalypso.org>
parents:
109
diff
changeset
|
222 The build system also produces a short text file named flash-script which is a |
4238e3220682
doc/Compiling: updated for C155 support, RVTMUX_ON_MODEM config var
Mychaela Falconia <falcon@freecalypso.org>
parents:
109
diff
changeset
|
223 flashing command script for fc-loadtool that erases the correct range of flash |
4238e3220682
doc/Compiling: updated for C155 support, RVTMUX_ON_MODEM config var
Mychaela Falconia <falcon@freecalypso.org>
parents:
109
diff
changeset
|
224 sectors and then programs fwimage.bin at the right address. |
109
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
225 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
226 When building firmware for the FCDEV3B or for the Pirelli, one can build either |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
227 a flashable image or a RAM-loadable one - or both. Because this part of the |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
228 build system is common with other targets for which only flash images can be |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
229 produced, the Makefile always builds the flashable image by default - |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
230 fwimage.bin is always meant for flash and never for RAM. To build a RAM- |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
231 loadable image when the target allows it, run 'make ram' - the image will be in |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
232 ramimage.srec, which you can then load and run on the target with FreeCalypso |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
233 host tool fc-xram. |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
234 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
235 Running on the hardware |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
236 ======================= |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
237 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
238 In order to run the firmware you have built on your FCDEV3B or other Calypso |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
239 device (flash or run in RAM as appropriate), you will need to use FreeCalypso |
182
5e1436690fe3
doc/Compiling: tangomdm target added, other minor updates
Mychaela Falconia <falcon@freecalypso.org>
parents:
174
diff
changeset
|
240 host tools. The current version at any given moment can be found at this URL: |
109
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
241 |
182
5e1436690fe3
doc/Compiling: tangomdm target added, other minor updates
Mychaela Falconia <falcon@freecalypso.org>
parents:
174
diff
changeset
|
242 ftp://ftp.freecalypso.org/pub/GSM/FreeCalypso/fc-host-tools-latest.tar.bz2 |
128
24a161f415f5
doc/Running-on-hw written
Mychaela Falconia <falcon@freecalypso.org>
parents:
124
diff
changeset
|
243 |
24a161f415f5
doc/Running-on-hw written
Mychaela Falconia <falcon@freecalypso.org>
parents:
124
diff
changeset
|
244 Please see the Running-on-hw article for further instructions. |