comparison doc/RF_tables @ 148:0e7a85356130

doc/RF_tables write-up added
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 27 Feb 2017 08:34:31 +0000
parents
children 158fef5f4b82
comparison
equal deleted inserted replaced
147:d2a79b68789b 148:0e7a85356130
1 TI's TCS211 firmware for the Calypso+Iota+Rita chipset maintains a number of
2 tables for RF calibration and configuration. These tables can be saved in the
3 non-volatile flash file system (FFS), as normally required for per-unit RF
4 calibration; tables that are saved in FFS will be automatically read when the
5 firmware boots and whenever it switches between 900+1800 and 850+1900 MHz band
6 pairs. There is also a compiled-in default for each of the tables built into
7 the firmware image; these defaults are used whenever a given table is not found
8 in FFS.
9
10 The firmware also provides Test Mode commands (accessed via the RVTMUX binary
11 packet interface) through which an external host can read and write the in-RAM
12 working copies of these RF calibration and configuration tables; the standard
13 expected workflow is as follows:
14
15 * When the firmware first boots on a freshly manufactured board with a blank
16 FFS, the in-RAM working tables are loaded from the compiled-in defaults.
17
18 * The factory production test and RF calibration station connects to the
19 running firmware via RVTMUX, and as it goes through the requisite calibration
20 steps, properly adjusted RF tables are formed in the firmware's working in-RAM
21 locations.
22
23 * The production test and calibration station sends some special command packets
24 (encoded via the MISC_ENABLE opcode) to the firmware; these commands tell the
25 firmware to take the in-RAM RF tables and save them in the non-volatile FFS.
26 There are separate me commands for saving different groups of RF tables,
27 divided into RF calibration, RF config, Tx calibration, Tx config,
28 Rx calibration and Rx config. The tables in the Tx config and Rx config
29 groups are never modified in practice, hence they are usually not written
30 into FFS and the fw uses the compiled-in versions instead.
31
32 * In normal operation the GSM device firmware reads the RF calibration and
33 configuration tables that have been written into FFS on the production line
34 and subsequently persist for the lifetime of the device.
35
36 FreeCalypso tools provide the following support for working with these tables:
37
38 * We have defined our own ASCII text-based format in which each of the RF tables
39 implemented by TCS211 fw can be represented. This text format is both human-
40 and machine-readable.
41
42 * Our fc-tmsh utility (the tool that exchanges Test Mode command packets with
43 running firmwares) supports rftw and rftr commands for reading and writing
44 the fw's in-RAM RF tables via RF_TABLE_WRITE and RF_TABLE_READ command
45 packets. Our implementation of the rftw command takes the table data input
46 in the form of ASCII text files in our format, and the tables read back from
47 the fw via the rftr command can be written out into host files in the same
48 format.
49
50 * RF tables that have been saved in the non-volatile FFS can be read out
51 "in vivo" via fc-fsio or "in vitro" from a raw flash dump via tiffs. They
52 are in the firmware's native binary format. Our fc-cal2text utility can be
53 used to convert these binary files into our adopted text format for easier
54 analysis. The conversion is lossless, but we do not currently have a utility
55 to perform the opposite conversion, as there does not appear to be a use case
56 for it. If such a use case does arise, it will be easy to construct the
57 appropriate tool(s).
58
59 In the case of two particular RF tables there is a slight difference between
60 the way they are stored in FFS and the way they are read and written via Test
61 Mode commands:
62
63 * The firmware maintains 3 separate tables for il2agc (input level to AGC)
64 conversion, to be used in different circumstances. As it happens, the
65 compiled-in default is the same for all 3 tables and these tables are never
66 changed in practice, but "by the book" they are still 3 separate tables.
67 In FFS all 3 tables are concatenated together in a single file
68 /gsm/rf/rx/il2agc, but for the rftw and rftr command packet exchanges they
69 are 3 separate tables.
70
71 * For each supported frequency band there is a table of Tx power ramp-up and
72 ramp-down profiles. Each single ramp is 16 bytes, each ramp-up & ramp-down
73 pair is 32 bytes, and the firmware allows for 16 of these stored templates.
74 The complete table is stored in FFS as a single file of 512 bytes, but it is
75 too big for the TM3 protocol. Instead the Test Mode protocol provides
76 dedicated TX_TEMPLATE_WRITE (ttw) and TX_TEMPLATE_READ (ttr) commands which
77 write or read one 32-byte template at a time.
78
79 The ASCII text file representation of the RF tables adopted in FreeCalypso
80 follows the Test Mode protocol model where it deviates from the FFS model:
81 fc-cal2text turns the /gsm/rf/tx/ramps.* file for each band into 16 individual
82 ramp files, and if there is a /gsm/rf/rx/il2agc file, it will be turned into
83 three separate il2agc-av, il2agc-max and il2agc-pwr table files.