annotate Handset-UI-fw @ 23:14391ad53281

FCDEV3B-repackaging article removed for legal reasons The idea expressed in that article, namely the idea that some party other than Mother Mychaela could be permitted to create a derived work based on FCDEV3B board design and have it be accepted into the FreeCalypso family, is no longer allowed by our current stance on the matters of intellectual property, particularly Falconia IP. For technical content, the new FC-modem-family and Quadband-ideas articles should fully supplant this old FCDEV3B-repackaging article.
author Mychaela Falconia <falcon@freecalypso.org>
date Wed, 23 Oct 2019 00:43:21 +0000
parents fcd1cf531017
children 2e9719074e79
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 The present article is a companion to the TCS211 firmware architecture document
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 (TCS211-fw-arch). Those who are interested in the FreeCalypso phone handset
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 goal (which is currently a very distant goal) should read the TCS211-fw-arch
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 document first and then this article, whereas those who are more interested in
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 the rock solid FreeCalypso modem (as opposed to handset) solution which is
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 already available today and would like to understand our modem fw better only
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 need to read the TCS211-fw-arch document and can safely skip this handset UI
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 addendum.
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 TI's offerings for handset UI
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 =============================
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 Unlike their rock solid, full commercial product offering for AT-command-
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 controlled modems, TI never produced a reference phone handset firmware
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 implementation that could be used as-is with minimal or no changes: instead
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 they provided a very rough proof-of-concept implementation which is nowhere
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 close to usable, and left it up to their customers (handset manufacturers) to
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 whip it into even a minimally decent shape. Furthermore, they had several
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 different approaches over the years to what the GSM industry calls by the
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 sexist term "MMI":
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 * They once had something called SMI, for "simple MMI" or "slim MMI". We have
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 what appears to be the complete source for this SMI component as part of the
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 MV100-0.1.rar and 94140216gsm.rar finds, but both of those finds are just
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 broken fragments, not a complete firmware for any target. It might be
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 possible to integrate this unknown-origin SMI source into Magnetite and get
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 it to work with the TCS2 version of ACI, but no such feat has been attempted
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 yet - it would be a mere curiosity, not something for practical use.
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 * SMI later gave way to a successor called BMI for "basic MMI", which is much
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 bigger in terms of code size and complexity and consists of two layers: there
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 is a layer called MFW (mobile framework) that sits on top of ACI, and then
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 BMI proper sits on top of MFW. This incarnation of TI's demo/prototype phone
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 UI is the one which they officially supported in the TCS211 program, and our
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 copy of TCS211 from OM miraculously has these BMI+MFW sources included, even
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 though OM obviously didn't use this code and could not even compile it without
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 doing some surgery on the build system. Our other TCS3.2/LoCosto source also
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 has BMI and MFW matching that newer version of G23M ACI and PS components,
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39 and we use this new TCS3 version of BMI+MFW in our TCS2/TCS3 hybrid config.
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41 * It appears that TI once had or were trying to develop some kind of Riviera-
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42 based "MMI" code as an alternative to the Condat-based SMI and BMI. SMI and
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43 BMI+MFW execute in the same "MMI" GPF task as ACI and communicate with it
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44 through direct function calls; in contrast, the alternative Riviera MMI would
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45 run somewhere in Riviera land and communicate with ACI through ATP and some
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46 kind of ACI adapter. We never got any of this code, and it is not clear if
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47 it was ever a reality beyond just the idea.
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49 In any case, it is clear from the code that TI's SSA group in France who
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50 developed the drivers for various Calypso chipset peripherals including LCDs,
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 keypads and ringing buzzers on their development boards and the Condat UK group
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52 who did SMI and BMI had very different visions and ideas. Some examples:
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54 * The Calypso DSP has a built-in mechanism for playing quite pleasant-sounding
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55 ringtone melodies through a loudspeaker driven by the chipset's ABB, and the
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 SSA group developed their RiViera Audio Service front-end to these L1+DSP
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57 audio services, but Condat's code makes absolutely minimal use of this RV
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58 Audio Service, just enough to be compatible with it, and does not use any of
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59 the melody functions, neither E1 nor E2.
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
60
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
61 * In the original TCS211 architecture before LoCosto changes, the driver for
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
62 the physical LCD was/is R2D in the Riviera/SSA land. R2D provides a very rich
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
63 set of text and graphics drawing primitives, but Condat's display layer does
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
64 not use any of them: instead they obtain the raw framebuffer address from R2D
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
65 and do all drawing operations themselves.
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
66
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
67 * The TCS211 code we got had a jaw-dropping bug in the code path for ringing
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
68 the piezoelectric buzzer: due to a miscommunication between the French folks
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
69 in charge of the actual buzzer driver in chipsetsw and the German or UK folks
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
70 in charge of Condat's audio layer, the buzzer always rang at some 99 Hz (its
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
71 lowest possible frequency, horrible on ears) no matter what tone frequency
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
72 was intended. Given that our copy of TCS211 dates from 2007 and considering
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
73 how old the buzzer function must be, it hurts to think for how many years
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
74 that bug sat there without anyone wondering why ringing sounds so horrible.
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
75
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
76 In terms of the code architecture, none of Condat's UI code ever calls any of
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
77 the actual drivers in the SSA realm directly: instead everything goes through
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
78 the Condat drivers layer in condat/com/src/driver, and that layer provides a
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
79 very poor adaptation as highlighted above.
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
80
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
81 LCD support
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
82 ===========
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
83
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
84 TI's demo/prototype UI code never supported a wide variety of different display
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
85 sizes or keypad layouts - instead they only supported whatever existed on their
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
86 in-house development boards at each given point in their history. TI's C-Sample
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
87 and earlier development boards had 84x48 pixel B&W displays, whereas from
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
88 D-Sample onward they made the big jump to a 176x220 pixel color LCD. Both
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
89 versions of the UI we got (TCS211 targeting D-Sample and TCS3.2 targeting
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
90 I-Sample, TI's LoCosto board) were developed on 176x220 pixel color LCD
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
91 platforms, and that is the only display size which they intended to support.
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
92 There also exists a remnant of support for their earlier 84x48 pixel C-Sample
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
93 LCD, which we resurrected in FreeCalypso to see it run on Mot C139 hardware,
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
94 but that support was broken: it would not even compile without our fixes. In
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
95 our current FC Magnetite firmware we can build this C-Sample UI version for the
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
96 C139 target and it works in the demo / proof-of-concept sense, but it is likely
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
97 to be even more broken than the official 176x220 pixel version.
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
98
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
99 Anyone interested in adding support for a different LCD will need to start with
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
100 the R2D driver under src/cs/drivers/drv_app/r2d. The principal LCD type
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
101 selection is done in r2d_config.h (C-Sample and D-Sample are the only options
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
102 supported by the version we got with TCS211), and this selection affects all of
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
103 R2D and all of its clients. Our change to this r2d_config.h LCD type selection
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
104 logic consists of selecting C-Sample instead of D-Sample when the build target
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
105 is C139. A secondary selection is made in r2d_inits.c and r2d_refresh.c where
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
106 the code snippets for the actual hardware initialization and output are
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
107 included: the way we currently support the C139 hw target is a very thorough
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
108 emulation of the C-Sample including its vertical B&W framebuffer format, all of
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
109 the code in R2D and in Condat's display driver sees a real C-Sample LCD, and
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
110 only the hardware-poking code is substituted.
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
111
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
112 The direct implication of our C-Sample emulation approach for the C139 LCD is
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
113 that the full 96x64 pixel size of Motorola's LCD becomes completely
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
114 inaccessible, and all software sees a 84x48 pixel subset. The same happens
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
115 with color: because TI's C-Sample LCD was B&W, the color capabilities of the
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
116 real C139 LCD become inaccessible. Anyone who wishes to fix this shortcoming
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
117 would need to implement a new bona fide LCD type in R2D, and then adapt
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
118 Condat's display driver accordingly.
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
119
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
120 Condat's display driver (condat/com/src/driver/display.c) is very messy and
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
121 very difficult to understand. The only change we have made to it in FreeCalypso
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
122 was fixing the support for the C-Sample LCD which was bitrotten: the bitrot and
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
123 our fix for it is not specific to the C139, it would affect a real C-Sample
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
124 board just as well. Understanding this code well enough to extend it to other
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
125 LCD geometries and framebuffer formats would be a much greater challenge.
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
126
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
127 Above Condat's display driver lies the actual UI implementation in BMI and MFW.
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
128 This UI code supports only 3 possible configurations:
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
129
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
130 * Both COLOURDISPLAY and LSCREEN defined: the display is 176x220 color;
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
131
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
132 * LSCREEN is defined but not COLOURDISPLAY: the display is 176x220 B&W - TI
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
133 used this config when building "GSM Lite" fw for the D-Sample;
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
134
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
135 * Neither LSCREEN nor COLOURDISPLAY defined: the old 84x48 pixel B&W UI from
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
136 the days of C-Sample and earlier.
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
137
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
138 Note the lack of support for small color displays like the one on the C139.
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
139
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
140 Text fonts
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
141 ----------
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
142
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
143 The SSA group's R2D driver provides text display functions and contains its own
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
144 fonts, but Condat's stuff does not use those display functions or fonts -
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
145 instead BMI and MFW (and presumably SMI too) use a different font/text
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
146 implementation contained in the Condat drivers layer.
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
147
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
148 Keypad support
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
149 ==============
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
150
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
151 The hardware keypad driver is KPD in Riviera/SSA land, residing in
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
152 chipsetsw/drivers/drv_app/kpd in TCS211 or in src/cs/drivers/drv_app/kpd in
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
153 Magnetite and Selenite. Unlike the display driver R2D, KPD is always included
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
154 even in modem firmware builds - but if there is no keypad connected to the
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
155 Calypso, it does nothing. TI's firmware architecture and UI code support only
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
156 traditional numeric keypads - there is no provision for supporting a full QWERTY
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
157 keyboard. However, if the keypad layout on a given phone handset is close
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
158 enough to what TI had on their development boards, modifying KPD for the
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
159 specific wiring is very easy: we have already added proper support for Mot C1xx
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
160 and Pirelli DP-L10 keypads.
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
161
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
162 Battery monitoring and charging
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
163 ===============================
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
164
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
165 TI had two incarnations of their battery charging and monitoring driver: first
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
166 PWR, then LCC. Both were implemented in Riviera/SSA land. LCC was not a good
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
167 fit for our targets of interest (Mot C1xx, Pirelli DP-L10 and our desired
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
168 FreeCalypso Libre Dumbphone hardware) while PWR had other problems, so we
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
169 retired both of them and wrote our own replacement called FCHG.
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
170
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
171 There is a quirk, however: there is no connection in the TCS211 code as
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
172 delivered by TI between their demo/prototype UI (or rather between Condat's
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
173 power driver stub) and either of their battery driver implementations. At the
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
174 time of TCS211-2007 the original PWR driver had already been retired and only
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
175 LCC was supported, but even that LCC driver had no connection to the UI: one
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
176 could remove it from the fw build configuration and the UI code would still
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
177 compile and link just fine, which would not be possible if there were any calls
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
178 to LCC's API functions. The practical effect of this quirk is that there is no
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
179 need to resurrect PWR or LCC in order to run TI's UI code in its pristine
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
180 original form - using our own FCHG or no battery management driver at all is
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
181 just as fine.
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
182
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
183 The proper way to get proper support for Mot C139
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
184 =================================================
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
185
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
186 I (Mother Mychaela) feel very strongly that the best way to produce practically
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
187 usable end user FreeCalypso firmware for the C139 target would be to do it
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
188 together with our own FreeCalypso Libre Dumbphone development, as opposed to
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
189 trying to support the C139 to the exclusion of our own FreeCalypso hardware.
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
190 Specifically, I propose the following order of steps:
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
191
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
192 1) First build our own FreeCalypso UI development board, a derivative of the
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
193 FCDEV3B adding a 176x220 pixel color LCD and other miscellany to serve as a
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
194 replacement for TI's D-Sample.
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
195
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
196 2) Retire the C-Sample UI configuration and our currently implemented C-Sample
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
197 emulation hack on the C139, and start running TI's UI code the way TI's own
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
198 developers ran it on the D-Sample.
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
199
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
200 3) Change the "small screen" UI layout from 84x48 to 96x64 pixels (from 6 rows
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
201 of 14 characters to 8 rows of 16 characters with TI's existing font), and
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
202 fix the bugs related to displaying this "small screen" (!LSCREEN) UI on a
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
203 physically larger LCD - we would like to display it on our 176x220 pixel UI
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
204 development board.
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
205
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
206 4) Extend the UI code to allow the possibility of COLOURDISPLAY && !LSCREEN,
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
207 i.e., a small (96x64 pixels) color display like on the C139. Have this
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
208 96x64 pixel color UI displayed on our 176x220 pixel UI development board.
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
209
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
210 5) Work on getting the actual UI into shape, keeping the two configurations of
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
211 176x220 pixel color (future FreeCalypso Libre Dumbphone) and 96x64 pixel
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
212 color (Mot C139) as actively supported ones. Do all development on our
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
213 176x220 pixel UI development board.
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
214
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
215 6) Once the UI-enabled firmware works decently on our development board in both
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
216 176x220 and 96x64 configurations, add native C139 LCD support (not C-Sample
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
217 emulation) to R2D, adapt Condat's display driver as necessary if we are still
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
218 using it (if we don't find a way to get rid of it by this point), and run
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
219 our 96x64 pixel color UI config on real C139 hardware. At this point we
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
220 should have practically usable end user FreeCalypso fw on the C139.
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
221
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
222 7) While the less demanding and more casual phone users will be happy with the
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
223 feeble C139 if it runs our FreeCalypso fw, those of us who desire the
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
224 Ultimate Awesome Libre Dumbphone will be able to take our 176x220 pixel UI
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
225 development board and start turning it into an actual FreeCalypso Libre
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
226 Dumbphone handset. This will be the point when we can move the ringtone
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
227 output from the piezo buzzer to the loudspeaker (Melody E1) and start making
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
228 other changes for better-than-C139 hardware.
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
229
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
230 Of course the biggest difficulty with the above plan is that it requires
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
231 designing and building a new piece of hardware as its very first critical step.
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
232 My personal plan is to kill two birds with one stone: design the board in such
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
233 a way that it can be used both as a development board for the above plan and as
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
234 a close-to-final prototype for my desired FC Libre Dumbphone handset - although
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
235 not completely final, as this board would absolutely need to be usable in its
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
236 bare form on a lab bench without plastics, which calls for a somewhat different
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
237 design than a final handset product.
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
238
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
239 Anyone who disagrees with my approach, anyone who is against designing and
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
240 building new custom hardware at high cost and who is instead interested first
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
241 and foremost in pre-existing hardware targets like Mot C139 is more than welcome
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
242 to delve into the code themselves and try their own hand at fixing the code to
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
243 make it practically usable on the C139. However, I have to warn you: if you
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
244 spend a significant amount of time working with TI's code and develop an
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
245 affection for it, it is quite possible that you will start to feel the way I do
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
246 in terms of desiring a D-Sample-like platform for development.
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
247
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
248 Why Mot C139?
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
249 =============
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
250
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
251 Out of the known repertoire of pre-existing Calypso-based phones whose existence
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
252 has been discovered by OsmocomBB and for which we already have some foundations
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
253 of support in FreeCalypso, Mot C139 is the most suitable one for the purpose of
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
254 turning it into a Libre Dumbphone by way of aftermarket firmware. Here are the
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
255 problems with the other ones:
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
256
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
257 * Pirelli DP-L10 is my absolute favourite with an end user hat on, but the
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
258 unwanted extra chips for the unwanted-for-us WLAN and camera functionality
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
259 are a killer. There are no schematics for the phone and no documentation for
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
260 any of these chips, and we don't know how to power them down. In a fully
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
261 quiescent state with all Calypso sleep modes enabled and with both LCD and
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
262 keypad backlights off, the board still draws about 87 mA from the battery,
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
263 which will kill a fully charged battery in about 10 hours of complete idle.
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
264 Furthermore, it is not possible to turn on the loudspeaker without going
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
265 through the W56940 ringtone chip, and the reset line for this chip comes from
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
266 a GPIO on the completely undocumented camera chip - thus without a way to
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
267 control this reset line we may not be able to program the W56940, and without
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
268 that programming we may not be able to turn on the loudspeaker, ruining all
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
269 usefulness of this phone.
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
270
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
271 * Mot C11x/12x family is good in terms of not having any undocumented hardware,
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
272 but the tiny RAM capacity is a bummer. These lowest-end phones have only
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
273 256 KiB of IRAM (Calypso internal RAM) and 256 KiB of XRAM (board-level RAM),
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
274 whereas the next-step-up C139/140 has 512 KiB of XRAM. It is a significant
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
275 difference for us: while we fit into C139's 512 KiB with no sweat, it would
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
276 require some very unpleasant and unrewarding work to trim the fat and
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
277 reshuffle our memory usage to fit into the 256+256 arrangement on C11x.
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
278 Furthermore, most C11x/12x phones have only 2 MiB of flash, which would again
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
279 require major contortions to fit into, whereas all C139/140 phones have 4 MiB.
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
280
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
281 * Mot C155/156 seem nice, but there is a problem: these phones ring with a
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
282 loudspeaker driven by a ringtone generator chip instead of a piezo buzzer
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
283 driven by the Calypso, and their ringtone generator chip is Sunplus SPMA100B.
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
284 No documentation could be found for that chip, and if we can't program it, we
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
285 won't be able to make the phone ring or operate its loudspeaker in any other
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
286 way. Furthermore, the LCD controller in these phones is much less obvious
fcd1cf531017 TCS211-fw-arch masterpiece written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
287 than the one in the C139/140.