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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
da79bf85bd73 README added
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
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
da79bf85bd73 README added
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
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
da79bf85bd73 README added
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
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.