FreeCalypso > hg > freecalypso-tools
comparison doc/Compal-calibration @ 300:0cfb2e3aeda4
started documenting c1xx-calextr
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 19 Nov 2017 21:45:12 +0000 |
parents | |
children | e05563f0dfcf |
comparison
equal
deleted
inserted
replaced
299:7fefa4f73c6a | 300:0cfb2e3aeda4 |
---|---|
1 Reading factory RF calibration values out of Mot C1xx phones | |
2 ============================================================ | |
3 | |
4 Motorola C1xx phones are based on the Calypso+Iota+Rita chipset from TI and | |
5 their firmware is also loosely based on TI's reference, but Compal (Motorola's | |
6 ODM and the maker of these phones) have made lots and lots of changes moving | |
7 away from TI's canonical way of doing things. When it comes to RF calibration, | |
8 Mot/Compal have performed it on each individual unit on their factory production | |
9 line just like all other GSM phone and modem manufacturers, but instead of | |
10 storing the results of this calibration in TI's flash file system, Mot/Compal | |
11 have put these calibration values into a completely different flash data | |
12 structure of their own invention. | |
13 | |
14 We don't know the proper name for Mot/Compal's flash data structure that has no | |
15 counterpart in TI's canonical solution, but we know its location in the flash: | |
16 | |
17 * On C1xx phones with 2 MiB flash (most C11x/12x variants), it is the 8 KiB | |
18 flash sector at 0x1FC000; | |
19 | |
20 * On C139/140 phones and the rare C11x/12x variants with 4 MiB flash, it is the | |
21 8 KiB flash sector at 0x3FC000; | |
22 | |
23 * On C155/156 phones with 8 MiB flash, the data structure in question is | |
24 contained in the first 8 KiB of the 64 KiB physical flash sector at 0x7E0000. | |
25 | |
26 The flash sector in question contains record-structured data; we don't know the | |
27 meaning of most of these records, but we have been able to find the RF | |
28 calibration records among them and locate the actual calibration values of | |
29 interest inside those records. | |
30 | |
31 In order to extract the RF calibration values from your C1xx phone for use with | |
32 FreeCalypso, you will need a dump of your phone's flash, or at least a dump of | |
33 the specific 8 KiB sector at the model-dependent offset given above. As a | |
34 specific example, if your phone is a C139/140 or a C11x/12x variant with 4 MiB | |
35 flash and you have a complete dump of that flash, execute a command like the | |
36 following: | |
37 | |
38 c1xx-calextr -b rfbin flashdump.bin 0x3FC000 | |
39 | |
40 The c1xx-calextr utility locates the RF calibration records in the flash dump | |
41 binary, extracts the specific calibration values of primary importance (Rx | |
42 "magic gain" and Tx APC DAC values), and converts them to TI's canonical format | |
43 for use with FreeCalypso firmware. The numeric argument after the flash image | |
44 filename is the offset within that image file where the magic sector should be | |
45 sought, and the -b option directs the tool to save the converted RF calibration | |
46 tables in binary format (the alternative is -a for ASCII format) in the | |
47 directory named after the option, named rfbin in this example. | |
48 | |
49 If you use the binary output option as recommended here, the resulting output | |
50 directory will have two subdirectories in it, named rx and tx. The rx | |
51 subdirectory will have two files named agcparams.BAND where BAND is 900 and 1800 | |
52 for EU-band phones or 850 and 1900 for US-band ones, and the tx subdirectory | |
53 will have two files named levels.BAND. This directory structure and these | |
54 names for the binary files correspond directly to the /gsm/rf directory subtree | |
55 in the flash file system (FFS) of TI's canonical solution, hence once the C1xx | |
56 phone in question is converted to FreeCalypso (i.e., runs FreeCalypso fw with | |
57 an aftermarket FFS created for it), you can upload the extracted and converted | |
58 RF calibration values into it like this: | |
59 | |
60 fc-fsio upload-subtree rfbin /gsm/rf | |
61 | |
62 Limitations | |
63 =========== | |
64 | |
65 In the traditional RF calibration procedure performed by most GSM phone and | |
66 modem manufacturers including Motorola, the Rx "magic gain" and the Tx APC DAC | |
67 values (Tx power levels) are calibrated for the center frequency of each band | |
68 at first, and then additional measurements are performed at other frequencies | |
69 within the band to arrive at channel-dependent corrections for both Rx and Tx. | |
70 On devices that follow TI's canonical way of doing things, you can find these | |
71 channel correction tables in /gsm/rf/rx/calchan.* and /gsm/rf/tx/calchan.* | |
72 files in the FFS. | |
73 | |
74 However, in the case of C1xx phones, Mot/Compal have changed the way in which | |
75 they do these channel corrections (both Rx and Tx) from TI's canon, and the | |
76 channel correction values stored in their factory calibration records do not | |
77 naturally translate to TI's Rx calchan and Tx calchan tables. | |
78 | |
79 In the case of Rx calibration, Mot/Compal have calibrated the channel | |
80 corrections with much finer granularity than is called for in TI's canonical | |
81 version. In TI's canon each band is divided into up to 10 subbands for the | |
82 purpose of Rx channel compensation, but Mot/Compal used much narrower subbands | |
83 of only 6 ARFCNs each, resulting in 21 subbands in the narrowest GSM850 band | |
84 and 63 subbands in the widest DCS (1800 MHz) band. We can see where the | |
85 channel correction values for each of these tiny subbands are stored, but | |
86 making use of them in FreeCalypso is not easy. |