annotate doc/Compiling @ 204:027b22814ac4

targets/fcdev3b.h: sync with Magnetite
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 13 Oct 2020 01:04:20 +0000
parents 049091077b51
children fdde05764380
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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.