comparison 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
comparison
equal deleted inserted replaced
20:a1d085f6d7e9 21:0f832c4c3db8
1 This is a special debug version of leo2moko intended for use by FreeCalypso 1 The intended purpose of this source tree is to serve as the official version of
2 developers only; it does not provide any additional features for Freerunner 2 the stable TCS211 firmware for FreeCalypso modem products, i.e., for hardware
3 users beyond standard leo2moko-r1 aka moko12; non-developer users are advised 3 devices designed and built under the auspices of the FreeCalypso Project - if
4 to stay with the just-mentioned stable release. 4 we ever succeed in actually producing any such hardware.
5 5
6 The primary intended use of this debug fw version is to enable FreeCalypso 6 This tree introduces a few simple hacks which allow us to build slightly
7 developers to troubleshoot misbehavior in our current gcc-built fw version 7 different firmware images as required for different targets (all supported
8 by comparing the operation of the fw against a known working reference; 8 targets must be simple modems close to the original Leonardo, no Compal/Pirelli
9 the debug features added in this version are: 9 targets!) from the same source - a capability not envisioned at all in TI's
10 semi-source delivery scheme. At the present moment only two targets are
11 supported: gtamodem and fcdev3b.
10 12
11 * Same AT-over-RVTMUX mechanism as implemented in FreeCalypso mainline; 13 VERY IMPORTANT NOTE: As of this writing, the FCDEV3B has not been physically
14 built yet (at least not openly - it is possible that some anonymous company may
15 have built some in secrecy without our involvement, but naturally we have no
16 way of knowing whether or not any such thing happened), thus the preliminary
17 support for the fcdev3b target in this source tree is of the "pre-hardware"
18 kind. I expect that some additional work will be needed before this code will
19 actually be correct for the FCDEV3B, but I don't plan on doing this work until
20 we get the boards physically built and I have some real hardware to play with.
12 21
13 * ETM FFS access protocol changed from TMFFS1 (used by some TI Windows tools, 22 The takeaway from this situation is as follows: if anyone attempts to build
14 apparently) to TMFFS2 (the version adopted for FreeCalypso) to allow the 23 their own FCDEV3B hardware in secrecy, bypassing the FreeCalypso core team,
15 flash file system to be manipulated with fc-fsio while this fw is running. 24 don't expect our software to work on such unethically-built hardware: more
25 likely than not, it WON'T work. So instead of trying to bypass us, please work
26 *with us*.
16 27
17 * The pf_TaskEntry() function in the guts of GPF has been patched to not 28 =====================
18 disable system traces. Verbose traces from various entities still need 29 Building the firmware
19 to be enabled explicitly, but the expected responses to sysprim commands 30 =====================
20 are no longer suppressed. 31
32 Like all TCS211 variants, this firmware builds with TI's proprietary compiler
33 which exists only in the form of Windows binaries sans source. However, we
34 run TI's Windows-targeted build environment only under Wine under Slackware
35 Linux and never under real Windows; furthermore, we have made a few add-ons of
36 our own to TI's build system, and these _required_ add-ons are implemented as
37 native Unix/Linux Bourne shell scripts, not Windows - hence if you are a Windows
38 user, you are on your own.
39
40 Therefore, the following instructions assume that your native OS is GNU/Linux
41 (preferably Slackware) and that you are using the Wine environment we have
42 packaged:
43
44 ftp://ftp.freecalypso.org/pub/GSM/TI_src/wine/
45
46 As explained in the README file in the above FTP directory, you will need to
47 extract the installed-env.tar.xz tarball into your ~/.wine/drive_c directory.
48 You will also need to compile and install the nowhine.c wrapper, or edit
49 g23m/winebuild.sh to invoke wine directly instead of nowhine.
50
51 You will also need this utility:
52
53 ftp://ftp.freecalypso.org/pub/GSM/GTA02/gsm-fw/mokosrec2bin.c
54
55 Once you have all necessary tools installed on your build machine, the actual
56 build needs to be performed as follows:
57
58 cd g23m
59 ./select_target.sh gtamodem
60 ./winebuild.sh
61 ./copyout.sh
62
63 The argument to the select_target.sh script selects the hardware target for
64 which the firmware should be built: right now only the gtamodem configuration
65 works; once we get the FCDEV3B physically built and make the necessary code
66 changes for it, you'll be able to run './select_target.sh fcdev3b' instead and
67 build firmware for the FCDEV3B.
68
69 The winebuild.sh script performs the actual build once the target selection has
70 been set; the build output will be in the __out__/gsm_<blah>/bin directory.
71 The copyout.sh script is a workaround for the insanely long file and directory
72 names: it copies and renames the final output files from TI's nasty build
73 system, giving them shorter names that one can actually remember and type. It
74 also converts the firmware image file from TI's m0 format (byte-swapped SREC)
75 to straight binary for more convenient flashing with fc-loadtool; this latter
76 conversion is what the mokosrec2bin utility is for.