annotate doc/Compiling @ 134:7d50d8d13711

FFS code sync with Magnetite + gcc version fix This change brings the new flash autodetection for FC and Pirelli targets from Magnetite, and should also fix the gcc version for C1xx and gtamodem targets, which were previously broken because they used TI's original flash autodetect code (which operates at address 0) while the boot ROM is mapped there.
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 11 Dec 2018 08:43:25 +0000
parents 118c25581538
children 8fe0cde2fd79
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
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49 pirelli Pirelli DP-L10
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 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
52 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
53 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
54 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
55 configurations in the same sense as Magnetite. Instead any configuration
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 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
57 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
58 available for tweaking:
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
60 ALLOW_CSIM_GSM
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
61
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
62 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
63 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
64 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
65 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
66 is ALLOW_CSIM_GSM=1 (GSM APDUs allowed).
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
67
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
68 DISABLE_SLEEP
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
69
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
70 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
71 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
72 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
73 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
74 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
75 causes breakage when sleep modes are enabled.
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
76
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
77 FCHG_STATE
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
78
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
79 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
80 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
81 (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
82 hw (fcdev3b, gtamodem).
109
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
83
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
84 GPRS
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
85
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
86 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
87 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
88 c139, c155 and pirelli.
109
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
89
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
90 L1_DYN_DSP_DWNLD
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
91
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
92 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
93 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
94 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
95 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
96 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
97 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
98 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
99 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
100 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
101 are omitted.
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
102
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
103 L1_VOICE_MEMO_AMR
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
104
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
105 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
106 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
107 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
108 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
109
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
110 MELODY_E2
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
111
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
112 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
113 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
114 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
115 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
116
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
117 MEMSUPER
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
118
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
119 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
120 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
121 properly studied yet; play with it at your own risk.
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
122
124
4238e3220682 doc/Compiling: updated for C155 support, RVTMUX_ON_MODEM config var
Mychaela Falconia <falcon@freecalypso.org>
parents: 109
diff changeset
123 RVTMUX_ON_MODEM
4238e3220682 doc/Compiling: updated for C155 support, RVTMUX_ON_MODEM config var
Mychaela Falconia <falcon@freecalypso.org>
parents: 109
diff changeset
124
4238e3220682 doc/Compiling: updated for C155 support, RVTMUX_ON_MODEM config var
Mychaela Falconia <falcon@freecalypso.org>
parents: 109
diff changeset
125 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
126 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
127 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
128 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
129 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
130
109
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
131 SERIAL_DYNAMIC_SWITCH
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
132
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
133 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
134 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
135 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
136 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
137 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
138 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
139 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
140 it.
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
141
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
142 SPEECH_RECO
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
143
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
144 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
145 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
146 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
147 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
148 like in TI's original TCS211 fw.
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
149
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
150 SRVC
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
151
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
152 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
153 services other than GPRS as follows:
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 SRVC=0: voice and SMS only
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
156 SRVC=1: CSD and fax enabled
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
157 SRVC=2: CSD enabled, but not fax
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
158
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
159 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
160 (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
161 c155 and pirelli.
109
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
162
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
163 SUFFIX
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
164
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
165 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
166 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
167 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
168 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
169 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
170 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
171
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
172 L1_DYN_DSP_DWNLD=0 SUFFIX=-nodyn
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
173 MELODY_E2=0 SUFFIX=-noe2
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
174 MEMSUPER=2 SUFFIX=-ps
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
175 SERIAL_DYNAMIC_SWITCH=1 SUFFIX=-sds
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
176 SPEECH_RECO=0 SUFFIX=-nosr
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
177 TR_BAUD_CONFIG=TR_BAUD_812500 SUFFIX=-812500
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
178
133
118c25581538 doc/Compiling: TRACEMASK_IN_FFS config var addition documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 128
diff changeset
179 TRACEMASK_IN_FFS
118c25581538 doc/Compiling: TRACEMASK_IN_FFS config var addition documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 128
diff changeset
180
118c25581538 doc/Compiling: TRACEMASK_IN_FFS config var addition documented
Mychaela Falconia <falcon@freecalypso.org>
parents: 128
diff changeset
181 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
182 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
183 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
184 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
185 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
186 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
187
109
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
188 TR_BAUD_CONFIG
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
189
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
190 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
191 TR_BAUD_xxxxxx; the default is TR_BAUD_115200. See
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
192 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
193 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
194 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
195 baud rate.
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
196
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
197 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
198 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
199 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
200 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
201 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
202 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
203 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
204 identifying suffix for your own configuration changes.
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
205
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
206 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
207 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
208 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
209 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
210 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
211 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
212 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
213 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
214 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
215 cl470 run, i.e., for each individual C source file.
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
216
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
217 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
218 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
219 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
220 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
221 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
222
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
223 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
224 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
225 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
226 produced, the Makefile always builds the flashable image by default -
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
227 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
228 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
229 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
230 host tool fc-xram.
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
231
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
232 Running on the hardware
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
233 =======================
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 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
236 device (flash or run in RAM as appropriate), you will need to use FreeCalypso
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
237 host tools. As of this writing, the latest packaged release is this one:
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
238
124
4238e3220682 doc/Compiling: updated for C155 support, RVTMUX_ON_MODEM config var
Mychaela Falconia <falcon@freecalypso.org>
parents: 109
diff changeset
239 ftp://ftp.freecalypso.org/pub/GSM/FreeCalypso/fc-host-tools-r9a.tar.bz2
128
24a161f415f5 doc/Running-on-hw written
Mychaela Falconia <falcon@freecalypso.org>
parents: 124
diff changeset
240
24a161f415f5 doc/Running-on-hw written
Mychaela Falconia <falcon@freecalypso.org>
parents: 124
diff changeset
241 Please see the Running-on-hw article for further instructions.