FreeCalypso > hg > fc-magnetite
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 |
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. |