annotate doc/Handset-goal @ 516:1ed9de6c90bd

src/g23m-gsm/sms/sms_for.c: bogus malloc removed The new error handling code that was not present in TCS211 blob version contains a malloc call that is bogus for 3 reasons: 1) The memory allocation in question is not needed in the first place; 2) libc malloc is used instead of one of the firmware's proper ways; 3) The memory allocation is made inside a function and then never freed, i.e., a memory leak. This bug was caught in gcc-built FreeCalypso fw projects (Citrine and Selenite) because our gcc environment does not allow any use of libc malloc (any reference to malloc produces a link failure), but this code from TCS3.2 is wrong even for Magnetite: if this code path is executed repeatedly over a long time, the many small allocations made by this malloc call without a subsequent free will eventually exhaust the malloc heap provided by the TMS470 environment, malloc will start returning NULL, and the bogus code will treat it as an error. Because the memory allocation in question is not needed at all, the fix entails simply removing it.
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 22 Jul 2018 06:04:49 +0000
parents 712c5cc0b2a9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
463
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
1 FreeCalypso end user libre phone goals
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
2 ======================================
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
3
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
4 The Mother's primary goal in FreeCalypso is to create (design and build) our
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
5 own FreeCalypso libre phone handset (a Libre Dumbphone) that can replace the
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
6 proprietary Pirelli DP-L10, retaining the following essential qualities of the
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
7 latter:
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
8
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
9 * a "dumbphone" in the most classic "candybar" form factor with traditional
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
10 dial buttons, NOT a smartphone;
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
11 * a color LCD of a decent size (Pirelli's is 128x128 pixels, ours will be
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
12 176x220 pixels);
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
13 * a loudspeaker that works for both hands-free calls and polyphonic ringtone
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
14 melodies;
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
15 * a USB port that combines charging with a built-in serial interface for
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
16 computer interfacing.
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
17
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
18 A secondary goal is to put together a firmware version that can be flashed into
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
19 a surplus Motorola C139 or C140 phone (obscenely cheap hardware) and turn those
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
20 originally-proprietary phones into a sort of Libre Dumbphone Lite - functionally
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
21 inferior to our own FreeCalypso Libre Dumbphone because Mot C139/140 hardware
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
22 is significantly inferior to what I seek to build (no loudspeaker, no USB, much
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
23 smaller LCD), but may be attractive to those cheap souls who are unwilling to
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
24 pay for higher-quality hardware. (Doing a similar feat with Pirelli DP-L10
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
25 hardware - turning it into a Libre Dumbphone by way of aftermarket firmware -
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
26 is not practically feasible: the effort to reverse-eng Pirelli's undocumented
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
27 hardware to the extent necessary for such a feat would cost at least as much
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
28 time and money as designing and building our own Libre Dumbphone hardware,
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
29 hence the latter is clearly preferable.)
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
30
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
31 The primary goal of entirely new FreeCalypso Libre Phone hardware and the
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
32 secondary goal of FC on the C139 are not mutually exclusive: because we are a
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
33 FLOSS project rather than proprietary sw, we do not artificially restrict what
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
34 hardware our fw can run on and what functionality it can provide: while the
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
35 primary target for our Libre Dumbphone firmware will always be our own hw,
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
36 whatever functionality can work on the more limited Mot C139 hw will work there,
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
37 subject to the limitations of the crippled hw platform.
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
38
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
39 However, in terms of timeline sequentiality, the critical point is that I,
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
40 Mychaela Falconia, the Mother of FreeCalypso, am not willing to do any more
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
41 work on the UI firmware (for any target) ahead of designing and building the
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
42 first prototype of the just-outlined FC Libre Dumbphone hardware: when it comes
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
43 to the work that *I* am doing, it has to be hardware first, then UI firmware.
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
44
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
45 But the FreeCalypso codebase is free for everyone, it is free software which
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
46 anyone in the world is free to fork in whatever ways they like, hence for those
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
47 who feel (contrary to my own personal stance) that aftermarket Libre Dumbphone
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
48 firmware for pre-existing hw platforms like Mot C139 is more important than new
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
49 FreeCalypso Libre Dumbphone hardware, the correct solution for those people is
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
50 to get over their fear of programming, roll up their sleeves and do some
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
51 firmware coding of their own.
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
52
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
53 What we got from TI in terms of firmware
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
54 ========================================
219
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 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
57 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
58 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
59
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
60 * 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
61 * 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
62 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
63 and MFW;
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
64 * Battery management (monitoring and charging);
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
65 * 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
66 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
67 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
68
463
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
69 The bulk of the UI code resides in the BMI and MFW layers, which sit on top of
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
70 ACI (Application Control Interface), which is the topmost layer of the
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
71 underlying GSM modem firmware stack. We got two different versions of this
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
72 MFW+BMI code from TI:
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
73
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
74 * The version under src/aci2, used together with the original TCS211 versions
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
75 of G23M PS and ACI components in the legacy 2092 config, has a very unclear
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
76 origin: it came from the internal SVN of an obscure company that made
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
77 AT-command-controlled Calypso modems (*not* complete phones with Calypso UI),
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
78 those people did not use this code themselves at all (their environment was
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
79 not even set up to be able to compile it), and it is totally unclear how they
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
80 came to have that code which they did not use. It *might* correspond to the
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
81 rest of TCS211 fw which we got from the same source, or it might not.
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
82
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
83 * The version under src/ui3, used in our hybrid configs going forward, has a
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
84 much clearer origin: we took it from TCS3.2_N5.24_M18_V1.11_M23BTH_PSL1_src
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
85 reference firmware for TI's later LoCosto chipset, which was published free
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
86 to the world by Peek Inc. as that company was closing shop.
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
87
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
88 We are now able to build UI-enabled firmware configs using both versions of TI's
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
89 MFW+BMI code, and there are no significant differences in the quality of the
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
90 phone UI implementation: in both cases it is only a proof of concept, and is
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
91 absolutely not ready for driving a real end user phone: the UI code contains
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
92 crashing and other killer bugs, the battery management driver officially
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
93 endorsed by TI for TCS211 and later programs (LCC for "low cost" unregulated
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
94 chargers) is not appropriate for phones that use simple charging circuits and
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
95 regulated +5 VDC charging power sources (USB or Motorola's C1xx charging
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
96 adapters), and TI's older PWR battery management driver (TI totally removed it
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
97 from TCS211, but we pulled it from the older MV100 source fragments) is
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
98 bitrotten and just generally broken.
374
3f2dce15278c doc: new Handset-goal write-up replaces old Handset-configs
Mychaela Falconia <falcon@freecalypso.org>
parents: 313
diff changeset
99
3f2dce15278c doc: new Handset-goal write-up replaces old Handset-configs
Mychaela Falconia <falcon@freecalypso.org>
parents: 313
diff changeset
100 In FreeCalypso we have developed our own battery charging and discharge
3f2dce15278c doc: new Handset-goal write-up replaces old Handset-configs
Mychaela Falconia <falcon@freecalypso.org>
parents: 313
diff changeset
101 monitoring driver (FCHG) that works on Mot C1xx and Pirelli DP-L10 phones in
376
3f1a587b3a84 doc/Voice-pseudo-modem written
Mychaela Falconia <falcon@freecalypso.org>
parents: 374
diff changeset
102 the "voice pseudo-modem" configuration (see the Voice-pseudo-modem article),
3f1a587b3a84 doc/Voice-pseudo-modem written
Mychaela Falconia <falcon@freecalypso.org>
parents: 374
diff changeset
103 but we still have the problem of the UI, namely, the lack of one that is
463
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
104 practically usable. Because TI were in the business of making and selling
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
105 chipsets rather than complete phones, proper phone UI development was something
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
106 they left to their customers, and they provided only a very rough proof of
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
107 concept implementation.
374
3f2dce15278c doc: new Handset-goal write-up replaces old Handset-configs
Mychaela Falconia <falcon@freecalypso.org>
parents: 313
diff changeset
108
463
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
109 What we have currently
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
110 ======================
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
111
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
112 If you wish to play with our current work in progress based on TI's PoC UI code,
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
113 you have 3 configurations (in the ./configure.sh sense) to choose from:
374
3f2dce15278c doc: new Handset-goal write-up replaces old Handset-configs
Mychaela Falconia <falcon@freecalypso.org>
parents: 313
diff changeset
114
463
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
115 2092 This is our first UI-enabled configuration; it got its name
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
116 because it is a mostly unchanged replica of TI's pdt_2092
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
117 configuration in the original TCS211 program. This config uses
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
118 the original TCS211 versions of G23M PS (blobs), ACI (source)
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
119 and MFW+BMI (source) components. Data services (FAX_AND_DATA
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
120 and GPRS) are enabled and cannot be disabled because of G23M PS
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
121 blobs.
374
3f2dce15278c doc: new Handset-goal write-up replaces old Handset-configs
Mychaela Falconia <falcon@freecalypso.org>
parents: 313
diff changeset
122
463
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
123 hybrid-ui This config is the TCS2/TCS3 hybrid counterpart to the above,
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
124 using the new full source versions of G23M PS, ACI and MFW+BMI
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
125 from the TCS3.2/LoCosto source. FAX_AND_DATA and GPRS are
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
126 still enabled.
374
3f2dce15278c doc: new Handset-goal write-up replaces old Handset-configs
Mychaela Falconia <falcon@freecalypso.org>
parents: 313
diff changeset
127
463
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
128 hybrid-ui-vo Same as hybrid-ui, but with FAX_AND_DATA and GPRS disabled,
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
129 resulting in a lighter build.
374
3f2dce15278c doc: new Handset-goal write-up replaces old Handset-configs
Mychaela Falconia <falcon@freecalypso.org>
parents: 313
diff changeset
130
463
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
131 All 3 of the above configs can be usefully built for 3 hardware targets:
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
132 dsample, fcdev3b and c139. The resulting firmware will work as follows:
374
3f2dce15278c doc: new Handset-goal write-up replaces old Handset-configs
Mychaela Falconia <falcon@freecalypso.org>
parents: 313
diff changeset
133
463
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
134 * If you have a real TI-made D-Sample board with the attached test handset (the
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
135 platform that TI's own software engineers used when working on this UI code,
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
136 at least before LoCosto), TI's 176x220 pixel color UI will be displayed on
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
137 the LCD in the handset part of the kit, just the way TI meant it. However,
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
138 because we are missing a piece of code for Clara RF, GSM radio won't work,
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
139 and the UI can only be exercised as it would work in the absence of coverage:
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
140 one can step through the menus and read SIM phonebook entries and saved
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
141 messages, but no calls. See the D-Sample article for the details.
374
3f2dce15278c doc: new Handset-goal write-up replaces old Handset-configs
Mychaela Falconia <falcon@freecalypso.org>
parents: 313
diff changeset
142
463
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
143 * You can run a UI-enabled firmware build on our FCDEV3B modem board that has
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
144 no physical LCD or keypad hardware, and display TI's 176x220 pixel color UI
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
145 on a connected external host, sending simulated keypresses from the same -
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
146 look in the freecalypso-ui-dev repository for the necessary tools.
374
3f2dce15278c doc: new Handset-goal write-up replaces old Handset-configs
Mychaela Falconia <falcon@freecalypso.org>
parents: 313
diff changeset
147
463
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
148 * When a UI-enabled firmware config is built for the C139 target, the UI config
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
149 (Bourne shell variable UI_CONFIG in our configuration and Makefile generation
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
150 system) is switched from TI's D-Sample UI (176x220 pix color,
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
151 UI_CONFIG=bigcolor) to their older C-Sample UI: 84x48 pix black & white,
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
152 UI_CONFIG=84x48. This 84x48 pix B&W C-Sample UI is then displayed on the
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
153 96x64 pixel physical LCD on the C139 phone.
374
3f2dce15278c doc: new Handset-goal write-up replaces old Handset-configs
Mychaela Falconia <falcon@freecalypso.org>
parents: 313
diff changeset
154
463
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
155 If you are interested in the Mot C139 hardware target and you are interested in
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
156 turning our current state of affairs into something that would allow you to use
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
157 your C139 as a practically usable libre phone with FreeCalypso, the Mother
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
158 strongly recommends that you use the hybrid-ui-vo configuration as your starting
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
159 point; working on the old src/aci2 UI code that is slated for retirement because
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
160 it is coupled to a G23M PS version that exists only as binary blobs would be a
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
161 total waste. If you try to use our current hybrid-ui-vo firmware on the C139
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
162 as a practical phone, the following problems will be the ones that hit you most
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
163 immediately, and therefore would need to be fixed first:
219
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
164
463
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
165 * The FCHG driver included in the fw build does monitor the battery state of
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
166 charge as it discharges, and you can query it with the standard AT+CBC command
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
167 using the AT-over-RVTMUX channel on the headset jack serial port, but it is
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
168 not connected to the UI, hence the battery icon on the screen shows no useful
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
169 info. Thus with an end user hat on, you would have no way of knowing if your
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
170 battery is full or almost empty and about to die any second or anywhere in
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
171 between.
219
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
172
463
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
173 * The firmware similarly supports battery charging, but once again there is
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
174 absolutely no indication in the UI as to the state of the charging process as
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
175 in progress, completion or errors. Instead you can only observe this
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
176 charging process by watching the debug trace output emitted on the headset
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
177 jack serial port.
219
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
178
463
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
179 * Every standard commercial end user phone implements a special mode of
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
180 operation that is activated if the user plugs in the charging power source
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
181 while the phone is off: the phone firmware boots just enough to manage the
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
182 battery charging process (the LCD shows nothing but this charging process),
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
183 but does not boot all the way to "full on" operation (SIM bring-up and
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
184 network search) until and unless some designated button is pressed to request
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
185 such full boot. The proof-of-concept code we got from TI does not implement
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
186 this special "charging boot" mode; instead if you connect the charging power
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
187 source to a fully-off phone, the result will be a full boot just as if you
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
188 pressed the red power-on button. This lack of the expected "charging boot"
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
189 mode is bad, as one really needs a "charge while off" mode in order to
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
190 properly recover from a fully discharged battery.
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
191
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
192 * Every standard commercial end user phone implements some timer logic for the
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
193 power-on button, such that if the phone is fully off, the power button needs
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
194 to be pressed not just momentarily, but held down for some time in order to
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
195 make the phone turn on and boot. This logic provides necessary protection
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
196 from accidental turn-ons: if you are in some place where your phone needs to
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
197 be off and you have turned it off, you don't want it booting back up on its
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
198 own because the button got pressed momentarily from the phone being in your
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
199 pocket or purse. This logic is currently missing.
219
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
200
463
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
201 * The LCD on Mot C139 phones is already small, only 96x64 pixels, but with the
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
202 current firmware using the UI which TI originally created for their C-Sample
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
203 and earlier development boards, the usable area is reduced even further to
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
204 only 84x48 pixels. Likewise the physical LCD is color, but the UI is only
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
205 black&white because the UI code "thinks" it's running on a C-Sample board
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
206 which only had a black&white LCD. Massively reworking the UI code to make
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
207 use of the full 96x64 pixel LCD real estate, along with some colors, ought to
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
208 be essential before this UI can really become fit for end user operation.
219
b05dba024f95 doc/Handset-configs and doc/Modem-configs written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
209
463
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
210 Some of these just-listed killer bugs are specific to the C139 target, while
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
211 others will still be there when we have our own HSMBP with a 176x220 pix color
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
212 LCD like on the D-Sample. Those bugs which are not C139-specific will be fixed
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
213 in the process of making our own FreeCalypso Libre Dumbphone based on our own
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
214 hardware, and by virtue of the common code the fixes will benefit the C139
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
215 target as well. In the case of C139-specific bugs, i.e., those specific to the
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
216 tiny screen size or to the weird (not TI-canonical) way in which the power
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
217 button is wired on C1xx phones, it is not currently known whether or not I
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
218 (Mychaela aka The Mother) will ever be willing to invest significant work into
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
219 these C139-specific issues. Thus the message is loud and clear: those who
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
220 desire FreeCalypso as aftermarket libre phone fw for Mot C139 or other non-FC
712c5cc0b2a9 doc/Handset-goal: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 376
diff changeset
221 hardware need to roll up their sleeves and start learning the code.