annotate README @ 176:3979a1edb59e

l2r.lib compiles
author Mychaela Falconia <falcon@freecalypso.org>
date Wed, 12 Oct 2016 17:42:39 +0000
parents 9fb9f896bd77
children 75ea63a3fce5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
94
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 FreeCalypso Magnetite firmware project
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 ======================================
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 This source tree contains yet another firmware offering created under the
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 FreeCalypso umbrella. The key qualities of this firmware offering are:
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 Negatives:
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 * Builds with TI's proprietary TMS470 compiler and thus requires Wine;
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 * Some of the fw components are still in the form of binary blobs -
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 but see below on the deblobbing progress.
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 Positives:
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 * Can be built to run on Motorola C139, Openmoko GTA02 and Pirelli DP-L10
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 targets, as well as the to-be-built FCDEV3B, all from the same source tree;
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 * Works as solidly as the TCS211 "golden" reference from TI, on all of the
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 supported targets - deep sleep works, voice calls work in all codec modes
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 including AMR, the DSP dynamic download mechanism does its magic, the call
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 audio passes reliably in both directions.
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 The present FC Magnetite firmware is built on the principle of starting with
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 the known working TCS211 code base, without any major restructuring, and making
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 small incremental evolutionary changes, testing at every step to ensure that
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 nothing breaks. It is the direct opposite of the "rebuild from the ground up"
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 approach taken with our previous Citrine firmware (aka "gsm-fw"), the approach
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 that produced very disappointing results.
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 Functionality
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 =============
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 TI's GSM mobile station firmware architecture supports two ways in which the
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 GSM device may be controlled: via AT commands from an external host and/or via
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 a local UI on devices with LCD & keypad hardware. (I said "and/or" because the
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 two mechanisms can coexist.) At the present time, however, only the AT command
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 mode of operation is supported in FreeCalypso Magnetite. The effect of this
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 limitation is that if you run this fw on a Motorola C139 or a Pirelli DP-L10,
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39 the phone's LCD will stay dark, the buttons won't do anything, and the
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40 phone-turned-modem can only be operated via AT commands sent via FreeCalypso
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41 host utility fc-shell.
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43 The demo/prototype phone UI code in TI's reference fw delivery is written for
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44 a 176x220 pixel 16-bit color LCD (such an LCD was used on TI's official
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45 development platform called D-Sample), whereas our available Mot C139 and
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46 Pirelli targets have significantly smaller LCDs: 96x64 and 128x128 pixels,
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47 respectively. Prior to the D-Sample, TI had used 84x48 pixel black&white
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48 (1 bit per pixel) LCDs, and this old C-Sample LCD code is still there, albeit
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49 bitrotten. In late 2015 this author made a very dirty hack to resurrect TI's
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50 old C-Sample UI code and get it to display on the C139 phone LCD (84x48 is a
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 proper subset of 96x64) - you can find this hack in the tcs211-c139 Hg tree.
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53 The upshot of this LCD situation is that porting TI's phone UI code to run on
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54 Mot C139 or Pirelli DP-L10 will require major rework of the affected parts of
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55 the firmware. While I would like to do it eventually, I am not willing to do
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 it right now - I would like to get this code running in its pristine state on
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57 its native 176x220 pix LCD *before* I hack the holy **** out of it for the
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58 C139/Pirelli port. I do have a real TI-made D-Sample kit with the right LCD,
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59 but unfortunately the main board has an older version of the core chipset for
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
60 which we lack the necessary fw support, hence it doesn't help. Therefore, we
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
61 will need to build our own Calypso board with a 176x220 pix 16-bit color LCD,
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
62 get the UI-enabled GSM firmware running on that board, and only then proceed
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
63 with C139 and/or Pirelli ports if such are still desired.
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
64
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
65 For now, modem or pseudo-modem operation with control via AT commands is all
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
66 we have.
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
67
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
68 Build system
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
69 ============
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
70
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
71 Even though FC Magnetite is essentially unchanged TCS211 code base and builds
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
72 using TI's proprietary TMS470 compiler under Wine, the build system is entirely
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
73 new. TI's TCS211 build system, called BuSyB, works by way of a Java tool
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
74 generating a customized makefile for each desired build configuration, based on
96
9fb9f896bd77 README: grammar fix
Mychaela Falconia <falcon@freecalypso.org>
parents: 94
diff changeset
75 lots of magic contained in a big repository of XML files. There are a bunch of
9fb9f896bd77 README: grammar fix
Mychaela Falconia <falcon@freecalypso.org>
parents: 94
diff changeset
76 Perl scripts involved as well. The Java tool that does the heavy lifting exists
94
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
77 only as compiled Java bytecode sans source, and the surrounding Perl scripts
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
78 aren't very understandable either. And the whole thing thoroughly assumes a
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
79 Windows environment (drive letters, backslashes, case-insensitive file system)
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
80 throughout. As a result, when working with TCS211 fw with its original build
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
81 system, we had to treat these BuSyB-generated makefiles almost as being blobs in
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
82 themselves: regenerating a makefile from XML magic required major effort, there
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
83 were some bugs in the makefile generation which we couldn't fix and thus we had
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
84 to edit the makefiles manually after each regeneration - it was an utter mess,
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
85 and absolutely not an acceptable way to build a forward-looking, community-
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
86 serving project.
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
87
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
88 In FC Magnetite I have recreated the relevant parts of the TCS211 build system,
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
89 using Bourne shell magic instead of Java and XML. Just like TI's BuSyB, ours
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
90 is a makefile generation system: in order to compile the firmware in a
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
91 particular desired configuration, you run a shell script to select the config
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
92 you would like. This shell script will create a dedicated build directory tree
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
93 to fully contain this build, and populate it with generated Makefiles and some
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
94 other bits - then you go into the just-created build directory and run make
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
95 there. The source and build trees are thus cleanly separated. See
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
96 doc/Compiling for detailed instructions.
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
97
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
98 Another key difference from our previous TCS211-based firmware offerings is that
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
99 even though we still have to run TI's compiler binaries under Wine, the Wine
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
100 invokation has been moved from the top (root) of the build process to the
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
101 bottom leaves. With our previous TCS211-based works you would run Wine at the
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
102 top, and then the entire build process would proceed in the Windows environment,
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
103 using Windows versions of make and other nonsense. Not so in FC Magnetite:
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
104 in this firmware project all shell scripts, Makefiles, Perl scripts and other
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
105 build system accessories run at the native Unix level, and Wine is only invoked
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
106 at the lowest level by individual tool wrappers: for example, TI's compiler
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
107 binary cl470.exe is encapsulated in a Unix shell script called cl470 that
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
108 invokes Wine to run the Windows binary, presenting the illusion of a native
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
109 Unix tool to all upper levels.
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
110
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
111 As yet another defenestration measure, all source files are checked into this
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
112 tree with Unix line endings.
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
113
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
114 Blob status
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
115 ===========
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
116
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
117 A long-term FreeCalypso goal is to have our phone/modem firmware rebuild fully
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
118 from source without any blobs, but this goal has not been achieved yet. While
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
119 we do have what *seems* to be a suitable replacement source (or feasible ability
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
120 to reconstruct such) for every piece of TCS211 fw that came in binary-only form,
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
121 actually making this replacement without breaking functionality is a very
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
122 non-trivial endeavor. Our previous attempt to rebuild the firmware from the
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
123 ground up, using source pieces lifted from different available leaks and
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
124 building with gcc so that no TMS470 COFF blobs could be used, produced very
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
125 disappointing results.
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
126
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
127 Instead the new FreeCalypso firmware approach implemented in FC Magnetite is to
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
128 approach the blob-free goal incrementally. The new Magnetite build system is
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
129 specifically designed to enable the transition from the use of blobs to
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
130 recompilation from source to be made with very fine granularity, down to the
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
131 level of individual object modules within libs if necessary. We tackle one
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
132 binary-only component at a time, either reconstructing the missing source from
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
133 disassembly or adapting the source from a different version as works best in
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
134 each individual case, and we make a test build of the firmware using the
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
135 reconstructed or fitted component instead of the original blob. If the firmware
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
136 still works (doesn't break), we make this deblobbing transition permanent and
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
137 move on to the next component.
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
138
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
139 As of this writing, most of Layer 1 and a few housekeeping parts of the fw have
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
140 already been deblobbed, i.e., are now recompiled from source. The G23M protocol
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
141 stack is our next deblobbing target - we have a newer version of it in full
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
142 source form, and we are hoping to be able to retrofit this newer G23M version
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
143 into the TCS211 environment in order to replace the binary blob version we are
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
144 using currently.
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
145
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
146 Further reading
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
147 ===============
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
148
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
149 For various instructions and notes specific to this FreeCalypso Magnetite
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
150 firmware, look in the doc directory. For more information about the overall
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
151 FreeCalypso project and our hardware building aspirations, go to our website:
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
152
596d86109e44 initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
153 https://www.freecalypso.org/