FreeCalypso > hg > tcs211-fcmodem
annotate README @ 21:0f832c4c3db8 default tip
README for the tcs211-fcmodem tree
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 23 Sep 2016 19:58:17 +0000 |
parents | 3e89489a43b3 |
children |
rev | line source |
---|---|
21
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
1 The intended purpose of this source tree is to serve as the official version of |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
2 the stable TCS211 firmware for FreeCalypso modem products, i.e., for hardware |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
3 devices designed and built under the auspices of the FreeCalypso Project - if |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
4 we ever succeed in actually producing any such hardware. |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
5 |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
6 This tree introduces a few simple hacks which allow us to build slightly |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
7 different firmware images as required for different targets (all supported |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
8 targets must be simple modems close to the original Leonardo, no Compal/Pirelli |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
9 targets!) from the same source - a capability not envisioned at all in TI's |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
10 semi-source delivery scheme. At the present moment only two targets are |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
11 supported: gtamodem and fcdev3b. |
12 | 12 |
21
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
13 VERY IMPORTANT NOTE: As of this writing, the FCDEV3B has not been physically |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
14 built yet (at least not openly - it is possible that some anonymous company may |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
15 have built some in secrecy without our involvement, but naturally we have no |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
16 way of knowing whether or not any such thing happened), thus the preliminary |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
17 support for the fcdev3b target in this source tree is of the "pre-hardware" |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
18 kind. I expect that some additional work will be needed before this code will |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
19 actually be correct for the FCDEV3B, but I don't plan on doing this work until |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
20 we get the boards physically built and I have some real hardware to play with. |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
21 |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
22 The takeaway from this situation is as follows: if anyone attempts to build |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
23 their own FCDEV3B hardware in secrecy, bypassing the FreeCalypso core team, |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
24 don't expect our software to work on such unethically-built hardware: more |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
25 likely than not, it WON'T work. So instead of trying to bypass us, please work |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
26 *with us*. |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
27 |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
28 ===================== |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
29 Building the firmware |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
30 ===================== |
12 | 31 |
21
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
32 Like all TCS211 variants, this firmware builds with TI's proprietary compiler |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
33 which exists only in the form of Windows binaries sans source. However, we |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
34 run TI's Windows-targeted build environment only under Wine under Slackware |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
35 Linux and never under real Windows; furthermore, we have made a few add-ons of |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
36 our own to TI's build system, and these _required_ add-ons are implemented as |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
37 native Unix/Linux Bourne shell scripts, not Windows - hence if you are a Windows |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
38 user, you are on your own. |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
39 |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
40 Therefore, the following instructions assume that your native OS is GNU/Linux |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
41 (preferably Slackware) and that you are using the Wine environment we have |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
42 packaged: |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
43 |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
44 ftp://ftp.freecalypso.org/pub/GSM/TI_src/wine/ |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
45 |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
46 As explained in the README file in the above FTP directory, you will need to |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
47 extract the installed-env.tar.xz tarball into your ~/.wine/drive_c directory. |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
48 You will also need to compile and install the nowhine.c wrapper, or edit |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
49 g23m/winebuild.sh to invoke wine directly instead of nowhine. |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
50 |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
51 You will also need this utility: |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
52 |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
53 ftp://ftp.freecalypso.org/pub/GSM/GTA02/gsm-fw/mokosrec2bin.c |
12 | 54 |
21
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
55 Once you have all necessary tools installed on your build machine, the actual |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
56 build needs to be performed as follows: |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
57 |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
58 cd g23m |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
59 ./select_target.sh gtamodem |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
60 ./winebuild.sh |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
61 ./copyout.sh |
13
3e89489a43b3
using patched version of frame_na7_db_ir.lib:
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
12
diff
changeset
|
62 |
21
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
63 The argument to the select_target.sh script selects the hardware target for |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
64 which the firmware should be built: right now only the gtamodem configuration |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
65 works; once we get the FCDEV3B physically built and make the necessary code |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
66 changes for it, you'll be able to run './select_target.sh fcdev3b' instead and |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
67 build firmware for the FCDEV3B. |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
68 |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
69 The winebuild.sh script performs the actual build once the target selection has |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
70 been set; the build output will be in the __out__/gsm_<blah>/bin directory. |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
71 The copyout.sh script is a workaround for the insanely long file and directory |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
72 names: it copies and renames the final output files from TI's nasty build |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
73 system, giving them shorter names that one can actually remember and type. It |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
74 also converts the firmware image file from TI's m0 format (byte-swapped SREC) |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
75 to straight binary for more convenient flashing with fc-loadtool; this latter |
0f832c4c3db8
README for the tcs211-fcmodem tree
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
76 conversion is what the mokosrec2bin utility is for. |