annotate doc/Compiling @ 1009:009d5bf2ff4c

rvinterf/lowlevel: formatting of FC-specific packet types split off into format_fc.c
author Mychaela Falconia <falcon@ivan.Harhan.ORG>
date Sun, 20 Mar 2016 20:23:54 +0000
parents 2d986b8c0e4e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
463
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
1 There are 3 parts to the complete FreeCalypso software suite which are built
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
2 independently of each other:
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
3
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
4 * The tools that run on a GNU/Linux PC or other host system are the most
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
5 straightforward: there is a top level Makefile (named Makefile.hosttools if
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
6 you looking at a development source snapshot, will be renamed to just
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
7 Makefile in packaged releases of the host tools) that coordinates building
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
8 and installing all of them.
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
9
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
10 * The gsm-fw tree, which will eventually become our main GSM firmware, needs to
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
11 be built with a GNU cross-compiler toolchain for ARM7. This firmware can be
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
12 built for several different target devices and with different feature
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
13 configurations, hence there is no singular build for it - it's more like the
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
14 Linux kernel in terms of its build configuration management.
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
15
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
16 * We also have a few utilities which need to be compiled to run on Calypso
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
17 targets, but which are not part of gsm-fw; they are gathered in the
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
18 target-utils tree. They are built with the same GNU toolchain for ARM7 as
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
19 gsm-fw, but don't have any fancy configuration system.
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
20
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
21 Building and installing FreeCalypso host tools
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
22 ==============================================
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
23
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
24 If you are working with a packaged FC host tools release, just run 'make', then
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
25 'make install' as root. If you are working with a development source snapshot,
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
26 do 'make -f Makefile.hosttools' instead.
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
27
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
28 The "standard" install directories are /usr/local/bin for binaries and
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
29 /usr/local/share/freecalypso for helper files. If you need to change these
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
30 paths to something else, you'll need to edit a bunch of individual component
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
31 Makefiles, and possibly also some source files like loadtools/defpath.c -
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
32 sorry, FreeCalypso is not GNU and does not use autotools.
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
33
968
2d986b8c0e4e doc/Compiling: added explanation of extra host tools with library dependencies
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 864
diff changeset
34 All FreeCalypso host tools are written in plain C, and with the exception of a
2d986b8c0e4e doc/Compiling: added explanation of extra host tools with library dependencies
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 864
diff changeset
35 few utilities in the "special-purpose hacks" category, they have absolutely no
2d986b8c0e4e doc/Compiling: added explanation of extra host tools with library dependencies
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 864
diff changeset
36 library dependencies beyond libc. In other words, they are very friendly to
2d986b8c0e4e doc/Compiling: added explanation of extra host tools with library dependencies
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 864
diff changeset
37 those who like bare bones minimalist systems. The only exceptions are
2d986b8c0e4e doc/Compiling: added explanation of extra host tools with library dependencies
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 864
diff changeset
38 fc-getpirimei and fc-pirhackinit which use libcrypto from OpenSSL for DES
2d986b8c0e4e doc/Compiling: added explanation of extra host tools with library dependencies
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 864
diff changeset
39 functions, and fc-lcdemu which needs libX11 to compile and an X11 display to
2d986b8c0e4e doc/Compiling: added explanation of extra host tools with library dependencies
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 864
diff changeset
40 run. But as you can read in Host-tools-overview, these utilities are not
2d986b8c0e4e doc/Compiling: added explanation of extra host tools with library dependencies
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 864
diff changeset
41 particularly important, so if your system lacks those libraries, just edit the
2d986b8c0e4e doc/Compiling: added explanation of extra host tools with library dependencies
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 864
diff changeset
42 Makefiles to not build these utilities - it is very unlikely that you will miss
2d986b8c0e4e doc/Compiling: added explanation of extra host tools with library dependencies
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 864
diff changeset
43 them.
2d986b8c0e4e doc/Compiling: added explanation of extra host tools with library dependencies
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 864
diff changeset
44
2d986b8c0e4e doc/Compiling: added explanation of extra host tools with library dependencies
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 864
diff changeset
45 To those who are going to build distro packages from these fc-host-tools: it
2d986b8c0e4e doc/Compiling: added explanation of extra host tools with library dependencies
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 864
diff changeset
46 is recommended that you leave fc-getpirimei, fc-pirhackinit and fc-lcdemu out
2d986b8c0e4e doc/Compiling: added explanation of extra host tools with library dependencies
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 864
diff changeset
47 of the basic package - please don't create extra dependencies just to support a
2d986b8c0e4e doc/Compiling: added explanation of extra host tools with library dependencies
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 864
diff changeset
48 few odd hacks which are unlikely to ever be used by anyone other than the
2d986b8c0e4e doc/Compiling: added explanation of extra host tools with library dependencies
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 864
diff changeset
49 developer who needed them at one time and no longer even uses them herself as
2d986b8c0e4e doc/Compiling: added explanation of extra host tools with library dependencies
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 864
diff changeset
50 their original one-time purpose has already been served.
2d986b8c0e4e doc/Compiling: added explanation of extra host tools with library dependencies
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 864
diff changeset
51
463
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
52 Building and installing the ARM7 toolchain
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
53 ==========================================
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
54
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
55 The current "official" GNU ARM toolchain for FreeCalypso consists of
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
56 binutils-2.21.1, gcc-4.5.4 and newlib-2.0.0 with a specific set of patches and
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
57 build configuration options. Build it as follows:
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
58
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
59 1. Download these 3 source tarballs for the standard GNU+newlib components:
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
60
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
61 binutils-2.21.1a.tar.bz2
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
62 gcc-core-4.5.4.tar.bz2
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
63 newlib-2.0.0.tar.gz
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
64
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
65 2. Run the build+install.sh script in the toolchain directory. Read the
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
66 comments in the script first for the usage instructions.
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
67
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
68 The toolchain thus built will need to be in your PATH before you can compile
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
69 gsm-fw or target-utils.
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
70
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
71 Please note: the toolchain that is prescribed for FreeCalypso as above is
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
72 *believed* to be equivalent to the one used by OsmocomBB, but there are no
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
73 guarantees. Use any other toolchain at your own risk.
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
74
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
75 Compiling target-utils
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
76 ======================
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
77
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
78 Running 'make' in the target-utils tree with the ARM7 toolchain present in your
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
79 PATH will result in compalstage and loadagent being built; these are the two
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
80 components needed in order to use FreeCalypso loadtools. Run 'make install' to
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
81 install these target binaries in /usr/local/share/freecalypso, which is where
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
82 loadtools will look for them.
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
83
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
84 Run 'make all' in target-utils to build some other components that aren't
aad742029813 doc/Compiling: everything except gsm-fw
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
85 really needed.
864
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
86
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
87 Compiling FreeCalypso GSM firmware
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
88 ==================================
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
89
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
90 The firmware in our gsm-fw tree can be built in many different configurations,
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
91 hence there is no singular build for it. The configuration choices consist of:
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
92
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
93 * Which target device the firmware should be built for: the target device
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
94 selection is made at compile time; do not attempt to take a firmware image
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
95 built for one target device and flash or fc-xram it into another!
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
96
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
97 * What functionality is to be included. As the FreeCalypso firmware subproject
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
98 moves forward, we gradually add chunks of functionality, slowly approaching
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
99 what each target device is ultimately capable of. However, each time we add
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
100 a new piece of functionality, the ability to build a firmware image that works
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
101 like before, without the newly added functionality, still remains. Each
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
102 feature to be included needs to be explicitly selected.
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
103
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
104 * Miscellaneous configuration: which Calypso UART should be used for what,
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
105 should the firmware use a real FFS (flash file system) in flash or a fake one
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
106 in RAM, etc.
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
107
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
108 The GSM firmware build configuration is set by way of an editable text file
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
109 named build.conf; the configuration and build procedure is as follows:
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
110
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
111 1. Look at the available repertoire of standard configurations under
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
112 gsm-fw/configs and choose which one you would like to use, either as-is or
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
113 as a basis for your own;
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
114
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
115 2. Copy the configuration you selected to build.conf in the gsm-fw directory;
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
116
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
117 3. Optionally edit it to taste - the configuration language is Bourne shell;
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
118
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
119 4. Run 'make' in the gsm-fw directory.
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
120
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
121 Depending on the configuration, either a flashable or a RAM-loadable image will
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
122 be built by default. A flashable image will appear in finlink/flashImage.bin;
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
123 these images are meant to be programmed with fc-loadtool's flash program-bin
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
124 command; the starting flash address at which the image needs to be programmed
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
125 depends on the target device - see target-specific notes. A RAM-loadable image
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
126 will appear in finlink/ramImage.srec; these images are meant to be loaded and
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
127 run with the fc-xram utility.
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
128
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
129 It is possible to build either a flashable or a RAM-loadable image, or both,
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
130 without changing build.conf: run 'make flashImage' or 'make ramImage' as
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
131 desired. (The compilation of each module from source into a .o and all
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
132 intermediate linking steps are agnostic to whether a flashImage or a ramImage
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
133 is being built, only the very final link step differs.) Any otherwise working
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
134 configuration can be built into a flashImage, even if it makes no logical sense
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
135 to do so, but the ability to build a ramImage for a given configuration depends
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
136 on the code image size (which in turn depends on the selected feature set) and
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
137 the amount of RAM available on the target in question: most Calypso GSM devices
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
138 have small RAM, enough to satisfy a GSM firmware's data space requirements, but
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
139 not enough to hold the entire firmware code in RAM as well. Please see target-
4fa939eada22 documentation update: how to compile and flash experimental gsm-fw for gtamodem
Space Falcon <falcon@ivan.Harhan.ORG>
parents: 463
diff changeset
140 specific notes for more details.