FreeCalypso > hg > freecalypso-docs
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. |
