annotate fluid-mnf/README @ 363:6cff3ee315e0

fluid-mnf/README: work in progress
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 15 Mar 2020 03:02:13 +0000
parents 1f13f0e43e43
children 37d647dfb920
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
311
9cecc930d78f fluid-mnf: original source from TI,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 In the summer of 2019 we (FreeCalypso) had recovered a copy of TI's original
9cecc930d78f fluid-mnf: original source from TI,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 FLUID package including source, but this TI original FLUID source targets only
9cecc930d78f fluid-mnf: original source from TI,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 Windows, no Unix or Linux support included. Back in 2007 or earlier Openmoko
9cecc930d78f fluid-mnf: original source from TI,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 had made their own port of FLUID to Linux and we have their Linux/ARM binary,
9cecc930d78f fluid-mnf: original source from TI,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 but the source for that Linux port appears to have been lost.
9cecc930d78f fluid-mnf: original source from TI,
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6
359
83aed2355592 fluid-mnf/README: update for the present state
Mychaela Falconia <falcon@freecalypso.org>
parents: 311
diff changeset
7 The present work is an independent (non-Openmoko) port of TI's FLUID to Linux
363
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
8 (can be further ported to other Unixes with some additional work, see below)
359
83aed2355592 fluid-mnf/README: update for the present state
Mychaela Falconia <falcon@freecalypso.org>
parents: 311
diff changeset
9 made by Mother Mychaela N. Falconia of FreeCalypso, named fluid-mnf in order to
83aed2355592 fluid-mnf/README: update for the present state
Mychaela Falconia <falcon@freecalypso.org>
parents: 311
diff changeset
10 distinguish it from any other Unix/Linux ports of FLUID that may have been made
363
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
11 by unknown other parties.
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
12
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
13 Purpose and scope
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
14 =================
359
83aed2355592 fluid-mnf/README: update for the present state
Mychaela Falconia <falcon@freecalypso.org>
parents: 311
diff changeset
15
363
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
16 The present fluid-mnf port has been produced as an act of restorative justice,
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
17 righting the wrong of Closedmoko not releasing theirs when they made it in 2007
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
18 or earlier. The present fluid-mnf port is NOT intended to replace fc-loadtool,
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
19 thus a strict limit was put on the extent of work that was done on fluid-mnf:
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
20 just enough to right Moko's wrong, plus the minimum extra work that was needed
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
21 in order to satisfy my natural curiosity in the area of FLUID working with TI's
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
22 own D-Sample board, but no more.
359
83aed2355592 fluid-mnf/README: update for the present state
Mychaela Falconia <falcon@freecalypso.org>
parents: 311
diff changeset
23
83aed2355592 fluid-mnf/README: update for the present state
Mychaela Falconia <falcon@freecalypso.org>
parents: 311
diff changeset
24 As a result of these strict limits on the scope of the work, neither this
83aed2355592 fluid-mnf/README: update for the present state
Mychaela Falconia <falcon@freecalypso.org>
parents: 311
diff changeset
25 fluid-mnf nor any other known version of FLUID will work on FCDEV3B boards with
83aed2355592 fluid-mnf/README: update for the present state
Mychaela Falconia <falcon@freecalypso.org>
parents: 311
diff changeset
26 Spansion S71PL129N flash - instead our boards with this flash are supported only
83aed2355592 fluid-mnf/README: update for the present state
Mychaela Falconia <falcon@freecalypso.org>
parents: 311
diff changeset
27 by our own fc-loadtool, not FLUID. The ONLY Calypso targets that are expected
83aed2355592 fluid-mnf/README: update for the present state
Mychaela Falconia <falcon@freecalypso.org>
parents: 311
diff changeset
28 to be supported by fluid-mnf (same as TI's original FLUID for Windows) are:
83aed2355592 fluid-mnf/README: update for the present state
Mychaela Falconia <falcon@freecalypso.org>
parents: 311
diff changeset
29
83aed2355592 fluid-mnf/README: update for the present state
Mychaela Falconia <falcon@freecalypso.org>
parents: 311
diff changeset
30 * TI's own D-Sample and Leonardo boards;
83aed2355592 fluid-mnf/README: update for the present state
Mychaela Falconia <falcon@freecalypso.org>
parents: 311
diff changeset
31 * A certain non-TI development board nicknamed Caramel which has a Leonardo
83aed2355592 fluid-mnf/README: update for the present state
Mychaela Falconia <falcon@freecalypso.org>
parents: 311
diff changeset
32 clone as its core but has a D-Sample-like physical form factor;
83aed2355592 fluid-mnf/README: update for the present state
Mychaela Falconia <falcon@freecalypso.org>
parents: 311
diff changeset
33 * Openmoko GTA01 and GTA02 modems.
360
1f13f0e43e43 fluid-mnf: doc update after GTA02 tests
Mychaela Falconia <falcon@freecalypso.org>
parents: 359
diff changeset
34
363
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
35 The present fluid-mnf release has been tested and confirmed to work on the
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
36 Mother's D-Sample C05 and Caramel boards, as well as on Openmoko GTA02. It is
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
37 NOT expected to work on most other Calypso devices out in the wild.
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
38
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
39 What is FLUID
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
40 =============
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
41
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
42 FLUID stands for Flash Loader Utility Independent of Device. It is not totally
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
43 clear to us (FreeCalypso) exactly what the "independent of device" part is
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
44 referring to; it can refer to any or all of the following:
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
45
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
46 * One can run FLUID, often with the exact same command line, against several
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
47 different TI-based GSM device targets, specifically against three different
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
48 DBB chip generations (ancient pre-Calypso chips, our familiar Calypso, and
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
49 Calypso+), using either the boot ROM protocol on Calypso and Calypso+ or
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
50 FLUID's own bootloader (either flash-resident or loaded via JTAG) with its
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
51 own protocol, and FLUID goes out of its way to try to autodetect and
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
52 automagically support all these target chip and boot entry method variations.
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
53
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
54 * The flash chip type is autodetected and does not need to be manually selected
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
55 by the user. If multiple variations exist of a given product where the
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
56 factory has populated different flash chips for whatever part availability
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
57 and pricing reasons, but it is otherwise the same product running the same
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
58 firmware, one can use FLUID to flash fw updates without worrying about the
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
59 flash chip type. Our recent versions of fc-loadtool (since fc-host-tools-r11)
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
60 feature the same quality.
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
61
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
62 * Whenever someone needs to add support for a new flash chip, this addition is
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
63 done by editing an ASCII text configuration file (devices.txt) that is read
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
64 by FLUID at run time, as opposed to needing to edit the source code and
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
65 recompile the program. This distinction was significant in the Windows world,
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
66 a culture of software in binary form, but makes absolutely no practical
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
67 difference for our fluid-mnf port for the Unix/Linux culture, a much healthier
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
68 culture where all software is distributed in source code form and where
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
69 compiling from source is a standard part of end user duties.
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
70
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
71 TI's internal reference platforms on which FLUID was developed and which FLUID
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
72 supports as its most native targets are B-Sample through E-Sample:
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
73
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
74 B-Sample: seems to be Ulysse(s) chipset, very little known
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
75 C-Sample: seems to be early Calypso C05 rev A, little known
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
76 D-Sample: Calypso C05 rev B or Calypso C035, Iota ABB, Clara RF
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
77 E-Sample: Calypso+, apparently existed in both "secure" and "non-secure"
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
78 variants
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
79
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
80 FLUID supports Hercules/Ulysse(s), Calypso and Calypso+ chipsets as follows:
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
81
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
82 * Hercules and Ulysse(s) predate our familiar Calypso and have no boot ROM.
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
83 The standard supported way to recover from blank or bricked flash was to use
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
84 JTAG: TI's original FLUID package (fluid-2.27.zip) contains an ulyboot.out
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
85 COFF image which you load via JTAG using TI's XDS510 or XDS560 hardware and
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
86 CCS software, then FLUID makes its entry via the protocol provided by this
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
87 bootloader. Standard firmwares included a flash-resident version of the same
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
88 bootloader; as long as you don't brick sector 0, you can then reload newer fw
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
89 versions without JTAG.
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
90
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
91 * On our familiar Calypso, both the old way (JTAG for cold loading, flash-
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
92 resident bootloader for warm reloads) and the new way (Calypso boot ROM) are
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
93 supported. However, the old way (FLUID bootloader) is supported ONLY on
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
94 13 MHz platforms like D-Sample (Clara RF), and is NOT supported on the more
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
95 common Calypso+Iota+Rita platforms with 26 MHz clock input to the Calypso.
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
96
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
97 * We know very little about Calypso+, but apparently it does not offer a
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
98 sensible boot ROM protocol like plain Calypso does: instead the choices are
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
99 either anti-user-freedom cryptographically restricted boot ("secure" E-Sample
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
100 boards) or no boot ROM at all, going back to brickable flash and needing JTAG
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
101 for cold loading on "non-secure" E-Sample boards. FLUID (the tool) supports
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
102 the old FLUID bootloader on those "non-secure" E-Sample boards, and that
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
103 Calypso+ version of the JTAG-loadable FLUID bootloader (calpboot.out) includes
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
104 the fix for 26 MHz clock input (E-Sample has Rita RF) - but the plain Calypso
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
105 version (calboot.out) does NOT support 26 MHz platforms.
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
106
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
107 What we have done in fluid-mnf
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
108 ==============================
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
109
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
110 Almost no change in functionality has been made - the objective was to port TI's
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
111 tool from Windows to Linux with as little change as possible, changing only
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
112 those parts where the Unix/Linux way of life is strictly different from the
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
113 Windows way.
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
114
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
115 The most principal change made in fluid-mnf is the way you specify the serial
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
116 port to use to connect to the target. The command line interface design in TI's
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
117 original version was thoroughly tied to the Windows model of numbered COM ports:
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
118 there was a -p option to select the serial port by number (defaulting to COM1),
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
119 but absolutely no provision to specify the serial port by name. Examining
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
120 Closedmoko's sans-source ARM/Linux fluid.exe version through a combination of
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
121 static analysis and running under strace, we see that they did two things:
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
122
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
123 1) They changed the numbered "COM" port name generation from "COM%d" to
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
124 "/dev/ttySAC%d" - but the command line parser still restricts -p numbers to
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
125 the range of [1,24], thus the correct modem tty port /dev/ttySAC0 still
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
126 cannot be specified in this manner. The default with no -p option and no
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
127 FLUID_PORT= environment variable is /dev/ttySAC1, which is garbage because
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
128 that port has the GPS receiver connected to it, not the GSM modem.
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
129
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
130 2) They added a hack whereby if a FLUID_PORT= environment variable is defined,
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
131 its value overrides the sprintf-constructed numbered "COM" port name.
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
132 Setting FLUID_PORT=/dev/ttySAC0 is the only way to select the correct modem
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
133 tty port with their stupid version.
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
134
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
135 The following approach has been implemented in fluid-mnf, seeking to be both
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
136 forward-looking in the Unix/Linux culture way and backward-compatible with OM's
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
137 version:
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
138
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
139 * -p option in fluid-mnf takes a string argument instead of a number, and this
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
140 string argument is the tty port name.
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
141
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
142 * If no -p option is given, the FLUID_PORT= environment variable is consulted.
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
143
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
144 * If both -p and FLUID_PORT= are given, the -p option takes precedence.
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
145
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
146 * If neither -p nor FLUID_PORT= is specified, it is a hard error - there is no
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
147 default tty port.
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
148
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
149 The present port uses Linux-specific tty ioctl calls instead of generic termios
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
150 for serial port control, thus it won't compile or run under any other Unixes
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
151 without further porting. It was done this way because of non-standard baud
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
152 rates: FLUID supports Calypso high baud rates of 203125, 406250 and 812500 bps,
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
153 as well as D-Sample XXO (eXternal Xtal Oscillator) baud rates of 230400, 460800
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
154 and 921600 bps, and because of POSIX stupidity, supporting all of these baud
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
155 rates in a Unix application requires non-portable hacks.
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
156
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
157 All original FLUID code that supports targets other than our familiar Calypso
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
158 (namely, Hercules/Ulysse(s) and Calypso+) has been left completely unchanged;
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
159 while none of this code exhibited any problems compiling for Linux, it is
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
160 completely untested: we have neither the hardware nor any real knowledge of
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
161 what it is and how it is supposed to work. For this reason, Calypso is the
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
162 only target platform which we can really vouch for as being supported by
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
163 fluid-mnf. See below regarding what works on D-Sample and what works on the
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
164 more common Calypso+Iota+Rita platforms.
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
165
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
166 Target-side components of FLUID
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
167 ===============================
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
168
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
169 Like any other tool performing the same function, FLUID consists of not only
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
170 the PC or Unix/Linux application, but also target-side code pieces which are
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
171 fed either to the Calypso boot ROM or to FLUID's other bootloader
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
172 (flash-resident or loaded via JTAG) and which run on the target during the
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
173 flash programming or reading process. In the case of FLUID, these target-side
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
174 components are cmd.m0 and flash "method" drivers (amd.m0, intel.m0 etc),
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
175 performing essentially the same function as loadagent.srec does for our own
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
176 fc-loadtool.
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
177
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
178 TI's original FLUID package fluid-2.27.zip contains both the sources for these
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
179 components and the deployable *.m0 target binaries. Openmoko left these *.m0
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
180 target components of FLUID completely unchanged in their port, and we are doing
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
181 likewise in fluid-mnf: aside from our cmd39.m0 concoction explained further
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
182 below, all *.m0 files in the target-bin subdirectory in this fluid-mnf release
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
183 are unchanged from TI's original delivery. I did not even bother with setting
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
184 up an environment to recompile them from source with TI's TMS470 toolchain.
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
185
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
186 Search path for helper files
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
187 ============================
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
188
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
189 FLUID needs to find the just-mentioned *.m0 target binaries as well as the
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
190 devices.txt file as helper files. TI's original code looks in the current
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
191 directory, and also tries to look in the directory where the fluid.exe binary
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
192 is located by extracting the path from argv[0] - but the latter method works
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
193 only in the Windows culture, not Unix/Linux.
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
194
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
195 Openmoko kept this helper file search logic completely unchanged in their
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
196 version, and they installed both their fluid.exe binary and the helper files in
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
197 /usr/sbin. But simply running OM's fluid.exe (never mind the non-sensical .exe
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
198 suffix on a Linux binary) from whatever current directory relying on the shell's
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
199 PATH search does not work: argv[0] will be equal to just "fluid.exe" without
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
200 any path, and TI's Windows-minded code unchanged by OM won't ever figure out
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
201 that it needs to look in /usr/sbin for the needed helper files. OM's official
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
202 instructions were to cd to /usr/sbin and run fluid.exe from there - unbelievable
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
203 bogosity.
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
204
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
205 The present fluid-mnf port is made more Unix-proper in this regard: we put all
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
206 needed helper files in a designated installation directory
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
207 (/opt/freecalypso/fluid), and the code has been modified to look there instead
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
208 of the usually-null path extracted from argv[0]. The tool still looks in the
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
209 current directory first for every file: changes to TI's FLUID code architecture
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
210 have been kept to a minimum.
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
211
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
212 Calypso C05 vs. C035
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
213 ====================
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
214
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
215 For all of its claims of device-independence and automagically supporting all
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
216 of various targets, TI's original FLUID as we got it in fluid-2.27.zip fails to
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
217 correctly support older Calypso boards with early Calypso C05 chips on them.
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
218 First Calypso generations (C05 rev A and C05 rev B) have a maximum ARM7 clock
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
219 frequency of 39 MHz, while on the later Calypso C035 (found in most mass-
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
220 produced phones and modems) this maximum frequency has been lifted to 52 MHz.
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
221
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
222 In TI's FLUID architecture, the target component 'cmd' (cmd.m0 built from cmd.c)
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
223 configures and enables the Calypso DPLL as soon as the host tool tells it that
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
224 the active target is Calypso rather than Ulysse(s). The responsible function
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
225 hardware_init_calypso() in target/cmd.c originally had code that configured
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
226 this DPLL at 39 MHz - then Calypso C035 came along, and someone at TI merrily
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
227 changed that DPLL setup constant from 39 MHz to 52 MHz. So what happens then
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
228 if someone runs TI's FLUID version 2.27 on an older C-Sample, D-Sample or
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
229 Leonardo board that has a Calypso C05 chip on it? Answer: it will produce an
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
230 overclocked chip with unknown consequences - I am not willing to try it on our
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
231 one and only D-Sample C05 board.
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
232
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
233 Trying to improve the architecture of FLUID is strictly beyond the scope of what
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
234 I set out to do in this fluid-mnf port, instead I just needed a way to safely
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
235 run it on our D-Sample C05 board with minimal changes. So I went for the
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
236 minimally-invasive surgical approach:
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
237
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
238 * cmd39.m0 is a modified version of cmd.m0, produced by copying cmd.m0 and
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
239 manually patching the one offending DPLL setup constant, restoring the older
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
240 39 MHz config.
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
241
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
242 * fluid-mnf has an added option -oC that causes it to use cmd39.m0 instead of
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
243 regular cmd.m0.
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
244
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
245 FLUID operating on D-Sample
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
246 ===========================
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
247
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
248 For anyone lucky to have an original TI D-Sample board (either C05 or C035),
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
249 the way FLUID works on it is really awesome:
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
250
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
251 * Both boot entry methods work: fluid-mnf -oo goes through the Calypso boot ROM
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
252 (the older boot ROM version present in Calypso C05 is good enough), whereas
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
253 fluid-mnf -oO goes through the other FLUID bootloader, either flash-resident
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
254 or loaded via JTAG. (I haven't tried the JTAG way, but fluid-mnf -oO works
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
255 on the D-Sample when the flash contains a build of our FC Magnetite
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
256 l1reconst-bl configuration.) The extra -oC option is needed for D-Sample C05,
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
257 but won't be needed for D-Sample C035, if anyone has one.
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
258
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
259 * FLUID (both TI's original and our fluid-mnf port) supports Calypso high baud
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
260 rates of 203125, 406250 and 812500 bps: just select the desired baud rate with
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
261 the -b option. The baud rate switch is effected when the command interpreter
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
262 ('cmd' target code piece) is running on the target, which is itself loaded at
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
263 115200 baud.
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
264
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
265 * The D-Sample board has an extra 14.745600 MHz crystal oscillator and a special
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
266 circuit (controlled by bits in a register mapped into Calypso nCS3 address
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
267 space) that can switch the Calypso clock input from the regular 13 MHz coming
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
268 from the RF section to this special 14.745600 clock. Of course no GSM
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
269 functions can work in this state, but feeding this special clock to Calypso
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
270 allows its UARTs to produce "standard" baud rates of 230400, 460800 and 921600
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
271 bps! This feature is apparently called XXO for eXternal Xtal Oscillator, and
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
272 is supported by FLUID, including our fluid-mnf port: just select the desired
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
273 baud rate with the -b option, and if the target is D-Sample, it will just
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
274 magically work. (On more "mere mortal" Calypso targets the result will be a
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
275 spectacular failure instead.)
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
276
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
277 * The D-Sample board also has a block of 16 debug LEDs controlled by another
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
278 register mapped into Calypso nCS3 address space, and FLUID's target-side
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
279 component (which we haven't modified except for the 39 MHz fix) displays
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
280 pretty dancing patterns on these LEDs as it does its work.
6cff3ee315e0 fluid-mnf/README: work in progress
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
281