FreeCalypso > hg > freecalypso-sw
annotate doc/Compiling @ 992:a7b0b426f9ca
target-utils: boot ROM UART autodetection revamped
The new implementation should work with both the familiar Calypso C035
boot ROM version found in our regular targets as well as the older
Calypso F741979B version found on the vintage D-Sample board.
author | Mychaela Falconia <falcon@ivan.Harhan.ORG> |
---|---|
date | Wed, 30 Dec 2015 21:28:41 +0000 |
parents | 2d986b8c0e4e |
children |
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. |