comparison doc/Leonardo-target @ 626:41238a8e140c

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