comparison FC-modem-family @ 21:69ee60206c53

FC-modem-family article written
author Mychaela Falconia <falcon@freecalypso.org>
date Wed, 23 Oct 2019 00:11:37 +0000
parents
children 1e76655a44bd
comparison
equal deleted inserted replaced
20:3fa4006696d0 21:69ee60206c53
1 I, Mother Mychaela, have a vision for a family of FreeCalypso modem products in
2 different physical form factors, possibly with variations in offered
3 functionality, all sharing the same fcmodem firmware build target - meaning that
4 the same FreeCalypso fw built for the fcmodem target (a proposed successor to
5 the current fcdev3b build target) will run on all FC modem hw products,
6 requiring some commonalities across the entire product family but also
7 supporting some variations. The following design constraints are hereby being
8 laid down in order to make this common fcmodem firmware possible:
9
10 * All FC modem products will be either triband or quadband: triband if the
11 current Openmoko-based RFFE is kept as is (the safer route with less effort
12 and design labor cost) or quadband if the customer commissioning a modem
13 product is more adventurous and willing to pay more and take greater risks in
14 order to get full quadband capability. Please refer to the Quadband-ideas
15 article for further details.
16
17 * Flash chip type autodetection in both fc-loadtool and firmware FFS driver code
18 allows different flash chip types to be used depending on business needs,
19 parts availability and the available physical space on the PCB. Flash
20 capacity can range from 4 MiB (minimum fw requirement) to 16 MiB (maximum
21 Calypso addressing capability); if a 16 MiB flash chip with two 8 MiB chip
22 select banks is used, then the second bank must be on nCS2 (like on FCDEV3B),
23 not on any other Calypso chip select.
24
25 * External RAM (XRAM) capacity can range from 512 KiB (minimum fw requirement)
26 to 8 MiB (maximum Calypso addressing capability), but it will always be on
27 nCS1, not on any other Calypso chip select.
28
29 * The extra logic voltage level translating buffer IC that was introduced on
30 FCDEV3B V2 in order to make flash reset timing compatible with S71PL129N flash
31 may or may not be included. The Mother's preference is to include it when
32 possible in order to increase the repertoire of usable flash chips, but if a
33 given design allows no PCB space for this extra little IC, then it will be
34 acceptable to go back to driving the flash reset line with FDP and require
35 the use of some flash chip other than S71PL129N - if the same footprint needs
36 to be kept and/or maximum flash and RAM capacity is desired, S71PL129J can be
37 used instead.
38
39 MCSI
40 ====
41
42 It is envisioned that most FC modem products will provide a digital voice
43 interface via MCSI as a major feature, but some may not. If a given product
44 does feature MCSI, pull-down resistors for MCSI_CLK and MCSI_FSYNCH will need
45 to be included on the modem module itself, so that the user always sees them as
46 non-floating outputs from the modem. MCSI_RXD will be a pure input without
47 on-board pull-up or pull-down resistors, i.e., the user will be responsible for
48 tying it off or pulling it to a stable logic level if it is unused.
49
50 However, if a given product does not feature MCSI, then it will be an unwelcome
51 burden to require extra pull-down resistors on the PCB, hence a different
52 provision is planned. If and when we ever produce a FreeCalypso modem without
53 MCSI, we will program a /etc/fc-pinmux file in FFS telling our fcmodem firmware
54 to switch the MCSI pins into GPIO mode and to drive all 4 of them as dummy
55 outputs, eliminating floating I/O pins without any effort from the hardware
56 side.
57
58 Why would a FreeCalypso modem product not feature MCSI? Two use cases are
59 envisioned here:
60
61 * The new GTA02-like smartphone motherboard thought experiment - see the
62 corresponding section at the end of this article;
63
64 * If we ever produce a FreeCalypso modem in the form factor of a USB dongle for
65 laptops, it would be very easy to incorporate an FT2232x adapter presenting
66 both Calypso UARTs to the USB host, but adding a USB-to-MCSI bridge would
67 entail much greater complexity, hence it may make sense to omit MCSI for this
68 product and instead provide an analog headset jack for voice calls.
69
70 GPIO
71 ====
72
73 Our firmware configures Calypso GPIO 3 as an input; GPIOs 0-2 and those
74 multifunction pins which are unused and configured as GPIOs (TSPDI/IO4,
75 BCLKX/IO6, MCUEN1/IO8 and MCUEN2/IO13) are configured as outputs. Board wiring
76 must be compatible with these directions: those pins which our fw drives as
77 outputs can be simply left unconnected, while GPIO 3 needs to be sensibly driven
78 or tied off as explained below.
79
80 Openmoko's modem puts out an application processor wakeup signal (asserted by
81 the fw when the modem needs to send something to the host but is blocked by CTS
82 being held high) on GPIO 1. In order to have full feature parity, our FC modems
83 will provide an equivalent signal as well, but we are moving it to GPIO 0
84 because in FreeCalypso GPIO 1 is already taken for the loudspeaker control
85 signal like on TI's D-Sample and Leonardo boards. Our firmware's complete GPIO
86 usage thus becomes:
87
88 GPIO0: application processor wakeup signal
89 GPIO1: loudspeaker amplifier on/off control
90 GPIO2: DCD modem control output
91 GPIO3: DTR modem control input
92 all others: dummy outputs
93
94 Because GPIO3/DTR is an input, it needs to be either sensibly driven or tied
95 off. On our current FCDEV3B this line has a 100 kOhm pull-down resistor to GND,
96 but it is not accessible to the user in any way - this design aspect was copied
97 from TI's Leonardo board before I thought better. Most of our future FC modem
98 products are planned to have DTR as a user input signal (which the user can tie
99 off it is not used or needed in a given application), but if there is no DTR
100 user input signal on a given modem product, then GPIO3 will be grounded inside
101 the modem to keep the firmware happy.
102
103 Calypso's unused DSR_MODEM/LPG pin was left unconnected in Openmoko's version
104 but on our FCDEV3B it is tied to GND on the board. Future FC modem family
105 boards will also need to have this pin tied to GND: our firmware leaves this
106 pin in its default power-up config of DSR_MODEM input and does not change it to
107 LPG output, thus leaving it unconnected would cause it to float.
108
109 Extreme case: a new GTA02-like smartphone motherboard
110 =====================================================
111
112 A rather extreme thought-experiment test case for the FC modem family idea
113 presented in this article is this thought: suppose we wanted to produce a new
114 GTA02-like smartphone motherboard, bringing Openmoko's dream back from the dead.
115 We could try to make a verbatim clone of GTA02-MB-A6 from OM, but for both
116 technical and political reasons it would be desirable to make a few changes:
117
118 * Making a strictly verbatim clone of GTA02-MB-A6 would mean populating a
119 Samsung K5A3281CTM memory chip onto OM's PCB footprint which does not really
120 fit this chip properly. Changing the PCB footprint to fit K5A32xx more
121 properly would not be easy because there are signal traces in the PCB spots
122 where the extra mounting balls for K5A32xx would need to go. The approach
123 that seems most naturally sensible would be to populate a better-fitting
124 memory chip, such as Spansion S71PL129JB0BAW9Z for which that footprint was
125 properly made - but then the result would no longer be a verbatim clone of
126 OM's version, and our gtamodem target configuration would no longer fit. And
127 at that point it would make the most sense to stop following the gtamodem
128 config and to make it an fcmodem family product instead.
129
130 * It would be politically preferable if the new GTA02-like motherboard would run
131 fcmodem firmware rather than gtamodem, making a clean break from those parts
132 of OM's troubled history which caused them to be Closedmoko during certain
133 years.
134
135 Hence the technical challenge: would it be possible to make a GTA02 derivative
136 with absolutely minimal changes that would run fcmodem firmware instead of
137 legacy mokoN or FC fw builds for the gtamodem target? The answer is yes, and
138 here is the recipe - note that *no* new components need to be added to the
139 extremely tight PCB layout:
140
141 * Move the 2nd flash chip select connection from nCS4 to nCS2 on the Calypso;
142
143 * Move the AP wakeup interrupt line from GPIO1 to GPIO0 to match fcmodem
144 firmware GPIO assignments;
145
146 * Take the useless INT0 AP-to-BP connection line present in the GTA02 original
147 and move it to Calypso GPIO3, providing fcmodem firmware with the DTR input
148 it expects;
149
150 * Ground Calypso's unused DSR_MODEM/LPG signal, causing it to not float when
151 our fcmodem firmware keeps the power-up default of DSR_MODEM function;
152
153 * Program /etc/fc-pinmux in FreeCalypso FFS to tell the firmware that there is
154 no MCSI on this board, so that all 4 MCSI signals will become GPIO dummy
155 outputs and won't float.
156
157 Some additional changes which don't affect the firmware one way or the other:
158
159 * Remove R1003 and R1004 0Rs which seem to be the root cause of bug #1024 and
160 replace them with solid PCB traces;
161
162 * Up C1009 from 10 uF to 22 uF as additional guard from bug #1024;
163
164 * Ground Calypso's unused input RXIR_IRDA to keep it from floating - this input
165 cannot be changed to an output under firmware control without breaking other
166 functionality.
167
168 At the same time it would also make a lot of sense to remove the Glamo graphics
169 decelerator from the AP subsystem, connecting the LCD directly to the Samsung AP
170 like it was on GTA01 - thus from the AP software perspective the new motherboard
171 would also become its own new platform just like the modem, very similar to the
172 GTA02 original, but not strictly identical, featuring some improvements instead.
173
174 IP rights and FreeCalypso brand integrity
175 =========================================
176
177 The present vision of having the same fcmodem firmware support all FreeCalypso
178 modem products applies ONLY to those hardware products which are designed and
179 physically produced by Mother Mychaela or one of her business entities. We will
180 NOT provide any support whatsoever for any pirate hardware products that may be
181 produced by any persons or entities who are making, have made or are planning to
182 make inappropriate use of any of our published or unpublished board design
183 files.
184
185 In the event that some third party buys a legitimate license to produce their
186 own derived works based on FreeCalypso hardware designs, we may provide
187 technical support to that specific customer as per our agreement with them, but
188 any such support will be customer-specific: our generic, non-customer-specific
189 public FreeCalypso firmwares will only ever support our own official
190 Falconia/FreeCalypso modem products, and should not be expected to support any
191 customized products made by or at the request of particular third parties.