annotate doc/Leonardo-target @ 629:3231dd9b38c1

armio.c: make GPIOs 8 & 13 outputs driving 1 on all "classic" targets Calypso GPIOs 8 & 13 are pinmuxed with MCUEN1 & MCUEN2, respectively, and on powerup these pins are MCUEN, i.e., outputs driving 1. TI's code for C-Sample and earlier turns them into GPIOs configured as outputs also driving 1 - so far, so good - but TI's code for BOARD 41 (which covers D-Sample, Leonardo and all real world Calypso devices derived from the latter) switches them from MCUEN to GPIOs, but then leaves them as inputs. Given that the hardware powerup state of these two pins is outputs driving 1, every Calypso board design MUST be compatible with such driving; typically these GPIO signals will be either unused and unconnected or connected as outputs driving some peripheral. Turning these pins into GPIO inputs will result in floating inputs on every reasonably-wired board, thus I am convinced that this configuration is nothing but a bug on the part of whoever wrote this code at TI. This floating input bug had already been fixed earlier for GTA modem and FCDEV3B targets; the present change makes the fix unconditional for all "classic" targets. The newly affected targets are D-Sample, Leonardo, Tango and GTM900.
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 02 Jan 2020 05:38:26 +0000
parents 41238a8e140c
children b639f7ab0007
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
626
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 TI's primary development platform for TCS211 firmware was D-Sample - see our
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 D-Sample article for explanation of our current limited support for that target
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 in FC Magnetite - but they also had another platform called Leonardo. The
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 primary difference is the RF section: D-Sample had Clara RF (the one for which
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 we lack support), whereas Leonardo was TI's reference platform for Rita RF and
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 for the complete Calypso+Iota+Rita chipset. Another major difference is that
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 D-Sample was a single stable platform, whereas Leonardo was made in a
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 bewildering assortment of different variants.
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 We (FreeCalypso core team) never succeeded in getting our hands on a real
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 TI-made Leonardo board of any variant, but we do have a Leonardo build target
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 in FC Magnetite for two reasons:
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 1) Adding this build target was trivial: our starting hw target for which we
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 got our original starting-point fw was Openmoko's embedded GSM/GPRS modem,
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 and that modem is a very close derivative of Leonardo. The only firmware-
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 affecting diff between Leonardo and OM's modem is FIC/OM's reshuffling of
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 TSPACT control lines for their triband RFFE; producing a build configuration
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 with these TSPACT control signals put back into their original Leonardo
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 arrangement became trivial once our reconstruction of tpudrv12.c from
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 disassembly of tpudrv12.obj reached production quality.
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 2) We are currently evaluating a certain third-party (non-TI) development board
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 which strongly appears to be a very close derivative of Leonardo, even closer
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 than Openmoko. We are hoping to get one of these boards into Mother
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 Mychaela's lab some time in 2020-01, at which time we will try running our
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 Magnetite-Leonardo fw on it.
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 Supported Leonardo variants
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 ===========================
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 RF bands: there were several Leonardo variants with full quadband RF using Epcos
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 M034F FEM, and there were several more variants with artifically restricted RF,
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 using a dual-band/single-region FEM and supporting only the two EU bands. The
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 two versions should be firmware-compatible according to our available schematics
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 (the same TSPACT signals are used for Tx control), thus our Magnetite-Leonardo
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 fw should run on any Leonardo variant that matches any of our known schematic
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 versions at least in the principal aspects.
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40 Flash memory: our Magnetite-Leonardo fw supports the following flash chips for
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41 FFS:
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43 4 MiB: Fujitsu MBM29DL320FB or MBM29DL320FT
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44 8 MiB: Am29DL640G or its Fujitsu equivalent, or any MCP containing this flash
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45 16 MiB: Spansion PL129J or its AMD predecessor, second bank on nCS2
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47 If anyone finds a Leonardo variant with some other flash, it may not be
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48 supported out of the box - but our included FFS configs for the Leonardo target
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49 come directly from TI's original TCS211 version (it is highly unlikely that OM
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50 changed anything other than adding their Samsung flash), thus we support
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 everything that TI's own TCS211 supported out of the box.
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53 Memory size limits
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54 ==================
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 The linker script template we use for target leonardo has memory region size
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57 limits set as follows: 8 MiB of flash, 2 MiB of XRAM and 512 KiB of IRAM. If
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58 you are working with a Leonardo or Leonardo-compatible board that has smaller
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59 flash or XRAM, or has a Calypso Lite chip with only 256 KiB of IRAM, then you
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
60 have to manually ensure that you stay within your actual memory limits, as you
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
61 won't get a failing link unless you exceed the larger linker script limits.
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
62
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
63 If you are building a modem-only fw configuration (l1reconst or hybrid), it
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
64 will fit into under 3 MiB of flash (fitting into a 4 MiB flash chip together
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
65 with FFS), 512 KiB of XRAM and 256 KiB of IRAM, so you are safe unless you are
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
66 going to add a lot of your own code or data space. But if you are going to
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
67 build a UI-enabled fw config (2092 or hybrid-ui), then you will need at least
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
68 an 8 MiB flash chip (won't fit into a 4 MiB chip together with FFS) and at least
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
69 1 MiB of XRAM. So far all of our configs fit into 256 KiB of IRAM.
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
70
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
71 Different Calypso chip versions
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
72 ===============================
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
73
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
74 If you specify the build target as just leonardo, your fw will be configured
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
75 and built for the leonardo-dsp36 target. If you actually need leonardo-c05b or
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
76 leonardo-dsp34 because your board has an older Calypso chip version on it, then
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
77 you will need to specify the build target as just stated - see the
41238a8e140c Leonardo target documented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
78 Calypso-version-override article.