comparison compal/audio/omr-guide @ 379:a760a5eeed65

compal/audio/omr-guide: another avenue of investigation
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 10 Oct 2021 19:53:35 +0000
parents
children
comparison
equal deleted inserted replaced
378:82fb5a70c9fd 379:a760a5eeed65
1 When a C139 phone is booted up with a headset jack serial cable already
2 inserted, it behaves in an interesting manner: if you *don't* perform the
3 **16379# step, rvinterf running on the host won't see any output from the phone
4 beyond a little bit on boot, but if you send an omr command through fc-tmsh,
5 you get a response! The same behaviour occurs if you first boot the phone
6 normally with nothing in the headset jack, then insert the serial cable. It
7 looks like the electrical switch inside the phone is still set to connect the
8 headset jack to the UART, but the firmware suppresses its continuous trace
9 output beyond TM responses.
10
11 Using this omr method, I was able to read the same DSP API words which we have
12 previously read via tfc139 break-in method; the bytes read via omr out of DSP
13 API memory locations corresponding to FIR coefficients and AEC config match what
14 we got via tfc139 break-in followed by fc-loadtool peeking.
15
16 Now comes the next ambitious part: we know that oabbr is broken in Compal's fw
17 and thus can't be used to read ABB registers, but at least in TI's reference fw
18 the writes to Iota VBC registers are done via the DSP, rather than via the MCU
19 to ABB interface. Does Compal's fw do likewise? Can we read out DSP API words
20 through which these VBC registers are written? Let's give it a try! We need
21 to begin by calculating the absolute addresses which we will need to read via
22 omr:
23
24 DSP NDB start address is 0xFFD001A8
25
26 d_vbctrl1 addr: 0xFFD001A8 + 0x44 = 0xFFD001EC
27 d_vbctrl2 addr: 0xFFD001A8 + 0x2E = 0xFFD001D6
28 d_vbuctrl addr: 0xFFD001A8 + 0x34 = 0xFFD001DC
29 d_vbdctrl addr: 0xFFD001A8 + 0x36 = 0xFFD001DE
30
31 Result: the bytes read out via omr do match what we got earlier by breaking in
32 with tfc139 and reading the ABB registers via abbr in fc-loadtool! This
33 observation gives us hope: if we do build the special hardware hack for
34 connecting to UART signal contact pads without going through the headset jack,
35 then there is a good chance that we will be able to use omr to read out the
36 firmware's audio settings for the handheld mode. Furthermore, if we don't
37 trigger the switch into headset mode and if we don't kill the fw with tfc139,
38 then we may be able to do omr readouts while the fw is running with a SIM,
39 connected to a GSM network, and making a call - a confidence boost for the
40 audio settings, plus we may be able to figure out how volume control works.