FreeCalypso > hg > freecalypso-reveng
view compal/audio/omr-guide @ 392:35009c936a4a
compal/melody-extr: first attempt at actual melody extraction
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 01 Apr 2022 06:03:47 +0000 |
parents | a760a5eeed65 |
children |
line wrap: on
line source
When a C139 phone is booted up with a headset jack serial cable already inserted, it behaves in an interesting manner: if you *don't* perform the **16379# step, rvinterf running on the host won't see any output from the phone beyond a little bit on boot, but if you send an omr command through fc-tmsh, you get a response! The same behaviour occurs if you first boot the phone normally with nothing in the headset jack, then insert the serial cable. It looks like the electrical switch inside the phone is still set to connect the headset jack to the UART, but the firmware suppresses its continuous trace output beyond TM responses. Using this omr method, I was able to read the same DSP API words which we have previously read via tfc139 break-in method; the bytes read via omr out of DSP API memory locations corresponding to FIR coefficients and AEC config match what we got via tfc139 break-in followed by fc-loadtool peeking. Now comes the next ambitious part: we know that oabbr is broken in Compal's fw and thus can't be used to read ABB registers, but at least in TI's reference fw the writes to Iota VBC registers are done via the DSP, rather than via the MCU to ABB interface. Does Compal's fw do likewise? Can we read out DSP API words through which these VBC registers are written? Let's give it a try! We need to begin by calculating the absolute addresses which we will need to read via omr: DSP NDB start address is 0xFFD001A8 d_vbctrl1 addr: 0xFFD001A8 + 0x44 = 0xFFD001EC d_vbctrl2 addr: 0xFFD001A8 + 0x2E = 0xFFD001D6 d_vbuctrl addr: 0xFFD001A8 + 0x34 = 0xFFD001DC d_vbdctrl addr: 0xFFD001A8 + 0x36 = 0xFFD001DE Result: the bytes read out via omr do match what we got earlier by breaking in with tfc139 and reading the ABB registers via abbr in fc-loadtool! This observation gives us hope: if we do build the special hardware hack for connecting to UART signal contact pads without going through the headset jack, then there is a good chance that we will be able to use omr to read out the firmware's audio settings for the handheld mode. Furthermore, if we don't trigger the switch into headset mode and if we don't kill the fw with tfc139, then we may be able to do omr readouts while the fw is running with a SIM, connected to a GSM network, and making a call - a confidence boost for the audio settings, plus we may be able to figure out how volume control works.