comparison README @ 29:132b3e230631

README written for tcs211-c139
author Mychaela Falconia <falcon@ivan.Harhan.ORG>
date Sun, 01 Nov 2015 19:39:44 +0000
parents 3e89489a43b3
children 52325cb524a8
comparison
equal deleted inserted replaced
28:fcaacf995636 29:132b3e230631
1 This is a special debug version of leo2moko intended for use by FreeCalypso 1 This semi-source tree contains a hacked version of TI's TCS211 firmware that
2 developers only; it does not provide any additional features for Freerunner 2 has been made to run on the Motorola C139. The UI part of TI's reference fw
3 users beyond standard leo2moko-r1 aka moko12; non-developer users are advised 3 has not been ported over yet, hence the version presented here currently builds
4 to stay with the just-mentioned stable release. 4 and works only in the modem-like ACI configuration, i.e., control via AT
5 commands only.
5 6
6 The primary intended use of this debug fw version is to enable FreeCalypso 7 TI's original fw was/is designed to make use of two UARTs, one for the classic
7 developers to troubleshoot misbehavior in our current gcc-built fw version 8 AT command interface and the other for their RVTMUX debug/calibration/etc
8 by comparing the operation of the fw against a known working reference; 9 interface. Unfortunately though, our present target hw has only one UART
9 the debug features added in this version are: 10 practically accessible (Calypso's MODEM UART brought out on the headset jack),
11 thus the classic AT command interface had to be sacrificed. Instead the AT
12 command interface (which is currently the only way to control the GSM
13 functionality in the absence of a UI ported to the present target) needs to be
14 accessed through the RVTMUX binary packet interface using FreeCalypso host
15 tools rvinterf and fc-shell.
10 16
11 * Same AT-over-RVTMUX mechanism as implemented in FreeCalypso mainline; 17 The present fw has been built from a semi-src (half source, half binary objects)
18 TI firmware release which was made for some manufacturer that made GSM/GPRS
19 modems, rather than voice handsets, hence the present configuration is
20 unfortunately highly suboptimal for our use case. The entire mass of code
21 supporting CSD, fax and GPRS data services is included and cannot be removed
22 because that part of the fw is in binary blobs, but all this code is pure dead
23 weight in the present configuration: the phone UI layer (when we get around to
24 porting it) won't make any use of data functionality (nowhere near enough
25 resources on this hw to implement a WAP browser or MMS), and because we had to
26 give up the standard AT command channel, the option of having the phone dual-
27 function as a laptop-tethered modem is not available either.
12 28
13 * ETM FFS access protocol changed from TMFFS1 (used by some TI Windows tools, 29 Building the present firmware from semi-source requires using a Wine environment
14 apparently) to TMFFS2 (the version adopted for FreeCalypso) to allow the 30 to run TI's proprietary compiler toolchain and other build tools which exist
15 flash file system to be manipulated with fc-fsio while this fw is running. 31 only as M$ Windows binaries. The necessary environment can be downloaded here:
16 32
17 * The pf_TaskEntry() function in the guts of GPF has been patched to not 33 ftp://ftp.freecalypso.org/pub/GSM/TI_src/wine/
18 disable system traces. Verbose traces from various entities still need 34
19 to be enabled explicitly, but the expected responses to sysprim commands 35 You will also need the mokosrec2bin utility, which is needed for one of the
20 are no longer suppressed. 36 finishing steps in generating an image that can be usefully flashed into a C139:
37
38 ftp://ftp.freecalypso.org/pub/GSM/GTA02/gsm-fw/mokosrec2bin.c
39
40 Once you have the necessary build tools installed, you should be able to
41 compile the present fw by running first winebuild.sh, then copyout.sh in the
42 g23m subdirectory. Then you can flash this firmware you just built into an
43 actual C139 phone with FreeCalypso host tool fc-loadtool. Flash sector 0 (the
44 brickable boot sector) needs to contain our patched bootloader version
45 compal-flash-boot-for-fc.bin (this brickable sector only needs to be rewritten
46 once when first installing some FreeCalypso fw on the phone; no need to touch
47 this dangerous sector on subsequent updates from one FC fw version to another),
48 and the main fw image needs to be flashed starting at 0x10000. The image to
49 flash is aci-build.progbin - it has TI's bootloader code stripped off, as we
50 are using compal-flash-boot-for-fc instead.
51
52 The phones in question have a data structure in flash at 0x3FC000 (in an 8 KiB
53 short sector) that must contain factory programming, including each phone's
54 unique IMEI and RF calibration values. However, we don't understand how to
55 grok this data structure. Therefore, our firmware features the following
56 points of inconvenience:
57
58 * You have to set your own IMEI. It's entirely up to you whether you set the
59 same IMEI as the phone had originally or a different one, but our fw has no
60 way of reading the original from Mot/Compal's factory flash programming.
61 You probably won't be able to connect to a live commercial GSM network until
62 you set some IMEISV which the network will accept as valid.
63
64 * Because Mot/Compal stored their RF calibration values in some format
65 (different from TI's) which we can't grok, a phone running our aftermarket fw
66 will run UNCALIBRATED. It may have difficulty connecting to networks if it
67 can't acquire the frequency burst lacking VCXO calibration, and the Tx power
68 levels are almost certainly wrong (out of spec) - BEWARE!
69
70 * Our fw does not even know whether your C139 is the 900+1800 MHz version or
71 850+1900 MHz. You will need to set the correct rfcap configuration at the
72 same time when you set your IMEISV.
73
74 Flashing and usage instructions
75 ===============================
76
77 If you are not scared off by all of the above and you still wish to try this
78 experimental fw on your C139, you can install it as follows:
79
80 1. Connect to the phone with fc-loadtool, preceded by tfc139 if necessary -
81 see loadtools documentation.
82
83 2. If the C139 in question does not already have some other FreeCalypso fw
84 version in its flash, replace the bootloader:
85
86 loadtool> flash erase-program-boot compal-flash-boot-for-fc.bin
87
88 3. Flash the main fw image:
89
90 loadtool> flash erase 10000 220000
91 loadtool> flash program-bin 10000 aci-build.progbin
92
93 (If your serial cable setup supports the special GSM high baud rates,
94 you can speed the process up by issuing a baud 406250 or baud 812500
95 command first.)
96
97 4. Erase the sectors where our firmware's non-volatile flash file system
98 (aftermarket FFS configuration) will reside:
99
100 loadtool> flash erase 3C0000 30000
101
102 5. Cleanly end your fc-loadtool session, which will power the phone off:
103
104 loadtool> exit
105
106 Now your phone has FreeCalypso firmware in its flash, but it no longer works
107 as a "normal" phone. Gotchas to be aware of:
108
109 * Mot/Compal's original firmwares (like all other production phone fws)
110 implement on a guard on the power-on button: you have to hold it down for a
111 little while to confirm that you really mean to power the phone on; a
112 momentary press of the power-on button is interpreted as spurious by standard
113 fws, and they power the phone back off. However, the present hack-fw has no
114 such guard, hence even a momentary press of the power-on button will launch
115 the firmware into full boot.
116
117 * Because our present fw has no UI, the LCD will remain dark and the buttons
118 won't do anything. A momentary press of the power button will turn the phone
119 on, but you won't know that it's on - it will just silently and invisibly eat
120 the battery. Furthermore, the only way to power it off (aside from yanking
121 the battery) is to connect a serial cable and send a poweroff command via
122 fc-shell - there is no way to command a power-off from the keypad. (Pressing
123 and holding the power button produces some kind of hang or crash - to be
124 investigated - instead of a proper power-off.)
125
126 * The present fw includes TI's LCC (low-cost charger) code that came with
127 TCS211, but it is not clear whether or not this code drives the charging
128 circuitry correctly for Mot/Compal's hardware. Therefore, plan on having
129 the phone with FC firmware draining batteries only, and have another phone
130 running official fw (or a standalone charger) to charge them back up.
131
132 What all of these gotchas practically mean is that the phone with FC fw in it
133 should not have a battery inserted on a regular basis; instead you should use
134 it as follows:
135
136 1. Begin each FC hacking session by inserting the SIM you wish to use, then
137 inserting the battery - but don't touch the power button yet.
138
139 2. Connect the serial cable and run rvinterf on your host.
140
141 3. Press the power button, and see the firmware boot output in the rvinterf
142 window.
143
144 4. Run fc-shell, fc-fsio, fc-tmsh etc as desired during your hacking session.
145
146 5. End the session by yanking the battery, killing rvinterf and stowing away
147 your serial cable.
148
149 First session
150 =============
151
152 Remember the notes above regarding this fw not being able to read the factory
153 IMEI record? That's right, you'll need to set your own IMEISV. Furthermore,
154 because we are using our own "aftermarket" FFS configuration for non-volatile
155 data storage (you erased the flash sectors to be used for this FFS when you
156 flashed the fw with fc-loadtool, or at least you should have), this FFS needs
157 to be initialized before the fw can function correctly.
158
159 Initialize your FFS as follows:
160
161 1. Connect the serial cable, run rvinterf and boot the fw as above.
162
163 2. Before you try issuing any AT commands via fc-shell, run fc-fsio first.
164
165 3. Initialize the FFS via fc-fsio as follows:
166
167 fsio> format /
168 fsio> mk-std-dirs
169 fsio> set-imeisv fc XXXXXXXX-YYYYYY-ZZ (punctuation optional, place anywhere)
170 fsio> set-rfcap dual-eu (if you have 900+1800 MHz hardware)
171 or
172 fsio> set-rfcap dual-us (if you have 850+1900 MHz hardware)
173
174 After the above steps, you can exit fc-fsio (or leave it running), run fc-shell
175 and exercise the GSM MS via AT commands - try connecting to a network! With my
176 US band C139 (former Tracfone, now a Crackfone) on Operator 310260's network,
177 both voice calls and SMS work like a charm. YMMV.