annotate doc/Handset-configs @ 234:b870b6a44d31

l1audio and l1tm reconstructed source imported from tcs211-l1-reconst
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 20 Mar 2017 00:51:20 +0000
parents b05dba024f95
children 5b1358df7e3c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
219
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 Work toward end user libre phone firmware
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 =========================================
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 Phone handset firmware, i.e., fw that makes a phone device work as an untethered
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 phone and not just a serial-cable-controlled pseudo-modem, requires a few
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 additional layers of functionality beyond AT-command-controlled modem fw:
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 * The hardware-specific LCD driver, called R2D in TI's TCS211 program;
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 * The actual phone UI implementation, which the cellular industry calls by the
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 sexist term "MMI" - TI's implementation consists of two components called BMI
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 and MFW;
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 * Battery management (monitoring and charging);
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 * Fairly complex on/off logic to handle all possible combinations of turn-on,
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 turn-off, charging while "on", charging while "off", charging completed or
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 failed but charging power source not unplugged yet.
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 The code we got from TI with the TCS211 delivery by Sotovik includes only a
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 very rudimentary implementation of the above functions that basically amounts
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 to nothing more than a proof of concept, and is absolutely not ready for driving
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 a real end user phone: the UI code contains crashing and other killer bugs, the
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 battery management code doesn't work (fails to even monitor the battery voltage
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 in the discharging state, and I haven't even got to trying to charge), and the
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 on/off logic is broken in several ways.
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 If we desire a libre phone for our pockets and purses (I do desire one for my
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 purse), we will have to bite the bullet and do the necessary work to transform
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 the UI and associated handset code from its current sorry state into something
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 usable, and I have started laying a little bit of the necessary foundation for
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 doing this work in FC Magnetite.
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 There are currently two Magnetite configurations (in the ./configure.sh sense)
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 that include the UI layers: 2092 and 2092-pwr. 2092 is TI's bizarre "product"
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 number for the configuration that is just like the one we got from Sotovik
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 (called pdt_2091), but with BMI enabled. The difference between the plain 2092
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 config and 2092-pwr is that the latter includes TI's battery management code in
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 the form of the old RiViera Software Entity (SWE) called PWR. (I tested the
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 latter on the C139 and found it to be broken.)
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39 If you request the 2092 configuration for a target other than c139, i.e., for
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40 fcdev3b, gtamodem or pirelli, you will get a successful build (to be pedantic,
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41 if you pick gtamodem, you'll get a link failure unless you tweak the linker
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42 script, but it's a minor nit), but if you then run that fw image on the
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43 hardware, it won't do anything good: it will try to display TI's D-Sample UI
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44 (176x220 pixels, color) on the D-Sample LCD attached to Calypso chip select
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45 nCS3, but of course neither Openmoko's modem nor the Pirelli has a D-Sample LCD
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46 on that chip select, thus the LCD output would fall into the aether. (It would
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47 be even worse in the case of the Pirelli which has the 2nd flash bank on nCS3,
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48 thus the D-Sample LCD writes could clash with the FFS code operating on that
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49 flash - so don't do it.) However, because BMI is enabled, the fw will still
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50 automatically bring up the GSM radio and register to the default network
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 immediately upon boot like a typical UI-enabled phone does, even though the
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52 associated LCD output will be invisible. Needless to say, this configuration
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53 is not something I would ever advise actually running.
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55 However, if you build the 2092 config for the c139 target, the Magnetite build
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 system will enable the same hack which was originally implemented in the
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57 tcs211-c139 side project in late 2015. Prior to the D-Sample with its fancy
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58 176x220 pix color LCD, TI's previous development platforms (C-Sample and
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59 earlier) had 84x48 pix black&white (1 bit per pixel) LCDs, and this old C-Sample
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
60 LCD support is still there in TCS211, albeit in a bitrotten form that wouldn't
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
61 even compile without a lot of fixing. In our late-2015 tcs211-c139 side project
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
62 we had resurrected this C-Sample UI configuration, and this work has now been
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
63 integrated into Magnetite. When you build Magnetite in the 2092 configuration
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
64 for the c139, you will get our C139 LCD driver that pretends to be C-Sample to
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
65 the upper layers, and you will get TI's old 84x48 pix B&W UI displayed on the
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
66 phone's 96x64 pixel color LCD. IOW, only 84x48 out of the available 96x64
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
67 pixels are used, and only 2 out of the available 65536 colors. Yes, pretty
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
68 pathetic, I know.
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
69
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
70 My (Mychaela's) plan going forward is to build our own more proper hardware
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
71 before digging any deeper into TI's broken UI code. I am not happy at all
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
72 about having had to disable TI's D-Sample UI (the 176x220 pix color one) and
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
73 resurrect the ancient pathetic C-Sample one instead, and given the long list of
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
74 show-stopping bugs this UI code currently exhibits, I can never be sure which
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
75 of these bugs were already there in the D-Sample config this code was made for,
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
76 vs. which of these bugs could be a result of re-enabling the very bitrotten
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
77 C-Sample UI config - remember, it wouldn't even compile at first.
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
78
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
79 As much as I would love to have a libre phone in my purse, my desire to see
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
80 TI's UI code running in its native 176x220 pix color form is even greater, hence
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
81 I have decided that I shall abstain from doing any further UI work targeting
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
82 the C139 or the Pirelli until *after* we have built my desired HSMBP: Handset
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
83 Motherboard Prototype, a Calypso board with a 176x220 pix color LCD just like
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
84 on TI's D-Sample.
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
85
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
86 However, if anyone else in the community has a different view and sees the
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
87 making of a libre phone based on Mot C1xx or Pirelli hardware as more important
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
88 than building our own hw, please feel free to take a stab at the code yourself:
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
89 the whole point of FLOSS projects is that anyone can do what s/he wants with
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
90 the code and the project without being beholden to the leader's views. At least
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
91 some of the necessary foundation has already been laid for you.
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
92
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
93 Deblobbing status
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
94 =================
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
95
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
96 The current 2092 and 2092-pwr configs are based on the l1reconst modem config
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
97 (see the Modem-configs write-up), i.e., L1 is mostly rebuilt from source, but
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
98 the versions of G23M PS and ACI are the original TCS211 ones, thus the G23M PS
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
99 component is all blobs. In order to build a G23M-deblobbed UI-enabled config,
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
100 we would need to build the UI layers (MFW and BMI) on top of the new TCS3.2
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
101 version of ACI used in the deblobbed hybrid config, and no such feat has been
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
102 attempted yet. I personally plan on tackling this direction only after we have
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
103 built my desired D-Sample-like HSMBP and brought up the original TCS211 UI in
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
104 its original form, but once again, anyone else whose priorities are different
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
105 from mine should feel free to delve into the code themselves.