annotate doc/Compiling @ 112:fdecfb3bd860

.../drv_app/r2d/r2d_*.c: LCD include case fixes from Magnetite R2D is not used in Selenite, but we strive to keep the two source trees in sync as much as possible to reduce the diffs.
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 13 Oct 2018 16:56:22 +0000
parents a68c6c7942d7
children 4238e3220682
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
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46 fcdev3b FreeCalypso FCDEV3B
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47 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
48 pirelli Pirelli DP-L10
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50 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
51 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
52 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
53 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
54 configurations in the same sense as Magnetite. Instead any configuration
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55 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
56 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
57 available for tweaking:
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59 ALLOW_CSIM_GSM
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
60
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
61 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
62 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
63 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
64 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
65 is ALLOW_CSIM_GSM=1 (GSM APDUs allowed).
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
66
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
67 DISABLE_SLEEP
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
68
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
69 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
70 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
71 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
72 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
73 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
74 causes breakage when sleep modes are enabled.
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
75
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
76 FCHG_STATE
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
77
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
78 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
79 default it is enabled on targets that have battery charging hardware
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
80 (c11x, c139, pirelli) and disabled on those that don't have such hw
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
81 (fcdev3b, gtamodem).
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
82
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
83 GPRS
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
84
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
85 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
86 on proper modem hw targets (fcdev3b and gtamodem) and disabled on c11x,
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
87 c139 and pirelli.
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 L1_DYN_DSP_DWNLD
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
90
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
91 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
92 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
93 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
94 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
95 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
96 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
97 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
98 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
99 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
100 are omitted.
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
101
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
102 L1_VOICE_MEMO_AMR
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
103
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
104 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
105 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
106 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
107 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
108
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
109 MELODY_E2
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
110
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
111 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
112 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
113 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
114 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
115
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
116 MEMSUPER
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
117
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
118 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
119 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
120 properly studied yet; play with it at your own risk.
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 SERIAL_DYNAMIC_SWITCH
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
123
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
124 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
125 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
126 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
127 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
128 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
129 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
130 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
131 it.
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 SPEECH_RECO
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
134
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
135 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
136 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
137 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
138 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
139 like in TI's original TCS211 fw.
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
140
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
141 SRVC
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
142
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
143 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
144 services other than GPRS as follows:
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
145
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
146 SRVC=0: voice and SMS only
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
147 SRVC=1: CSD and fax enabled
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
148 SRVC=2: CSD enabled, but not fax
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 The default is SRVC=1 (fax and data enabled) for proper modem hw targets
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
151 (fcdev3b and gtamodem) and SRVC=0 (voice and SMS only) on c11x, c139
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
152 and pirelli.
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
153
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
154 SUFFIX
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
155
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
156 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
157 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
158 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
159 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
160 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
161 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
162
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
163 L1_DYN_DSP_DWNLD=0 SUFFIX=-nodyn
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
164 MELODY_E2=0 SUFFIX=-noe2
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
165 MEMSUPER=2 SUFFIX=-ps
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
166 SERIAL_DYNAMIC_SWITCH=1 SUFFIX=-sds
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
167 SPEECH_RECO=0 SUFFIX=-nosr
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
168 TR_BAUD_CONFIG=TR_BAUD_812500 SUFFIX=-812500
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
169
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
170 TR_BAUD_CONFIG
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 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
173 TR_BAUD_xxxxxx; the default is TR_BAUD_115200. See
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
174 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
175 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
176 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
177 baud rate.
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
178
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
179 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
180 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
181 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
182 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
183 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
184 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
185 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
186 identifying suffix for your own configuration changes.
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
187
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
188 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
189 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
190 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
191 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
192 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
193 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
194 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
195 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
196 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
197 cl470 run, i.e., for each individual C source file.
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
198
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
199 When the build is done, the flashable firmware image will be in fwimage.bin.
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
200 This image is to be flashed with fc-loadtool at address 0x10000 on Mot C11x and
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
201 C139 targets, and at address 0 on the more sensible targets that have the
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
202 Calypso boot ROM enabled. The build system also produces a short text file
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
203 named flash-script which is a flashing command script for fc-loadtool that
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
204 erases the correct range of flash sectors and then programs fwimage.bin at the
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
205 right address.
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
206
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
207 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
208 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
209 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
210 produced, the Makefile always builds the flashable image by default -
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
211 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
212 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
213 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
214 host tool fc-xram.
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
215
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
216 Running on the hardware
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
217 =======================
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
218
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
219 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
220 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
221 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
222
a68c6c7942d7 doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
223 ftp://ftp.freecalypso.org/pub/GSM/FreeCalypso/fc-host-tools-r8.tar.bz2