MTK and Infineon-based phones

Martin Hinner martin at hinner.info
Sun Nov 27 04:44:08 UTC 2011


Hi Marcin,

On Sun, Nov 27, 2011 at 1:17 AM, Marcin Mielczarczyk
<marcin.mielczarczyk at gmail.com> wrote:
> Note, that on the market there is much more Mediatek phones based on ARM7
> (MT622x) than on ARM9 (MT623x).

You are right, it makes sense. My mistake. I was only working with
flash dumps so far...

I have spent some time analyzing mtk-phone project. There is a lot of
files missing, but the situation is not so bad. My feeling is that
some of the files were simply deleted from the project... (interrupted
upload?)

I made a list of all files needed to link binary image (from .lis file).
Then I did: find . -name '*.c'
Then I ran ar l on al mtk-lib .lib files (these can be quite easily
disassembled).
And finally diff helped to find what is missing...


We're missing only these files (no .obj in .lib or .c is present in
the project):

-lic.c
-drvflash.c
-l1c_trace.c
-l1d2_trace.c
-l1d3_trace.c
-l1d_edge_trace.c
-l1d_trace.c
-l1sc_trace.c
-l1trc.c
-l4drv.c
-sst_decrypt.c
-sst_intrctrl.c
-sst_secure.c
-trcmod.c

I think none of these are needed for our stuff.

Then we are missing .c files, but have .obj in .lib (only important files)

dp_engine.lib: awb_bitstream.c (unknown for what is this)

dsp_ram.lib: ddload.c
dsp_ram.lib: dsp_ptch_6223.c (we can get this from binary)
dsp_ram.lib: idma.c

l1.lib: l1csm.c
l1.lib: l1dsm.c
l1.lib: m*.c (it's a lot of files !!!!!!!!!!!!)

In fact this is end of all important routines...

Tracing functions:
l1.lib: l1i_amr_trace.c
l1.lib: l1i_cs_trace.c
l1.lib: l1sc_trace.c
l1.lib: l1t_amr_trace.c
l1.lib: l1c3_trace.c
l1.lib: l1c4_trace.c
l1.lib: l1c_csd_trace.c
l1.lib: l1c_trace.c
l1.lib: l1d2_trace.c
l1.lib: l1d3_trace.c
l1.lib: l1d_edge_trace.c
l1.lib: l1d_trace.c

l1.lib: rftool_gsm.c (shows how to call various functions)

Only for testing:
l1.lib: l1tst_afc.c
l1.lib: l1tst_agc.c
l1.lib: l1tst_cfg.c
l1.lib: l1tst_cont.c
l1.lib: l1tst_fcb.c
l1.lib: l1tst_fhc.c
l1.lib: l1tst_nbtx.c
l1.lib: l1tst_pm.c
l1.lib: l1tst_ul.c

I have already tried to disassemble some of them and it all makes
sense, most of functions are very simple and some files are not even
needed. My feeling is that we have all needed to understand the DSP
functionality / L1 part of the ARM code! The biggest problem is that
m*.c files depend on hardware (a lot of #ifdefs), so this needs to be
analyzed on firmware downloaded from hardware. [ Question: why such
cryptic names such as m12170.c ? ]

I also have list of functions in those files, if anyone's interested
in helping me with locating what is important and what is not... (34
kB).

Martin




More information about the baseband-devel mailing list