comparison pirelli/rfcal @ 183:827b8977d3c2

pirelli/rfcal: found /sys/adccal, no luch with /gsm/rf/afc*
author Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
date Tue, 15 Jul 2014 00:24:40 +0000
parents bf4286245c74
children 30ba25056ecd
comparison
equal deleted inserted replaced
182:c38075b8a625 183:827b8977d3c2
1 The 64 KiB flash sector at 0x027F0000 (the last sector of the 2nd flash bank) 1 The 64 KiB flash sector at 0x027F0000 (the last sector of the 2nd flash bank)
2 contains per-unit factory data, including the IMEI and RF calibration values. 2 contains per-unit factory data, including the IMEI and RF calibration values.
3 The location of the IMEI record (at offset 0x504) was found back in 2013-07 and 3 The location of the IMEI record (at offset 0x504) was found back in 2013-07 and
4 its encryption was figured out in 2013-11, but it took a bit longer to find the 4 its encryption was figured out in 2013-11, but it took a bit longer to find the
5 RF calibration data. But I finally found the latter as well. Here they are: 5 RF calibration data. But I finally found most of the latter as well. Here
6 they are:
6 7
7 Hex offset Corresponding FFS file in TI's canonical version 8 Hex offset Corresponding FFS file in TI's canonical version
8 ---------------------------------------------------------------- 9 ----------------------------------------------------------------
10 06E5 /sys/adccal
11 0709 checksum byte
12
9 072B /gsm/rf/tx/ramps.900 13 072B /gsm/rf/tx/ramps.900
10 092B checksum byte 14 092B checksum byte
11 092C /gsm/rf/tx/levels.900 15 092C /gsm/rf/tx/levels.900
12 09AC checksum byte 16 09AC checksum byte
13 09AD /gsm/rf/tx/calchan.900 17 09AD /gsm/rf/tx/calchan.900
41 Each calibration record is followed by a checksum byte. It is a simple ripple- 45 Each calibration record is followed by a checksum byte. It is a simple ripple-
42 carry sum of all bytes in the preceding record. Note that this checksum byte 46 carry sum of all bytes in the preceding record. Note that this checksum byte
43 is always 0 for the ramps records, as each correctly-formed ramp adds up to 128 47 is always 0 for the ramps records, as each correctly-formed ramp adds up to 128
44 (0x80), and the array has an even number of ramps in total. 48 (0x80), and the array has an even number of ramps in total.
45 49
46 The following still remain to be located: 50 Unfortunately though, I have not been able to locate these two records:
47 51
48 /gsm/rf/afcdac 52 /gsm/rf/afcdac
49 /gsm/rf/afcparams 53 /gsm/rf/afcparams
50 54
51 I don't expect major difficulty in finding them; I just haven't got around to 55 These two files appear in Openmoko's FFS on GTA02 modems, and the byte content
52 studying this part of the calibration system yet. 56 differs for each physical unit, so I assume that these values really do need to
57 be calibrated per unit, but I haven't been able to locate them in Pirelli's
58 factory data block. /gsm/rf/afcdac is only 2 bytes long, thus very hard to
59 spot visually in a hex dump of an unknown larger data structure;
60 /gsm/rf/afcparams is 24 bytes long and has some structure to it, so I was
61 hoping to recognize the latter, but no luck.
62
63 We will have to try running uncalibrated, or perhaps we'll find the code in
64 Pirelli's fw that fills the parts of the T_RF structure that are normally read
65 from these files.