7D 1.2.3 dumper

1,158 views
Skip to first unread message

indy arm

unread,
Feb 27, 2011, 3:27:27 PM2/27/11
to ml-devel
Hi,

Someone was kind enough to send me his 7D, so I upgraded it to 1.2.3 and ported Trammel's dumper.

See previous version (1.1.0):
http://groups.google.com/group/ml-devel/browse_thread/thread/78c3b8e9fd1130e1/676743fa3846fb46
http://groups.google.com/group/ml-devel/msg/2859f47443c58dec?hl=en

Apply supplied bsdiff patch to current 1.2.3 update and "update". (bsdiff & bspatch for Windows : http://www.pokorra.de/coding/bsdiff.html)
"backup" files will be created and the bootflag enabled, see source code.

The problem with 7D is the 2nd digic: we have to find the way to take control of it.
See http://magiclantern.wikia.com/wiki/7D_internals

the 3rd file produced by the patched .fir is the bootloader (at 0xffff0000) which is very small and contain a lot of interesting code and strings:
- how to reset Digics, setup ARM memory (the digic IS an ARM)
- how the slave Digic (which runs our .fir) talks to the master Digic.
- autotest functions
...

the updaters part of 7d updates (.fir) are xor'ed (like 500d), but signatures are checked and must be recomputed.
if you want to help me with 7d development, contact me.
=> I'll not answer questions like: "when ML will work"

for example this function
 boot:FFFF6468 ipc_send_sstat
is sending commands to the master digic and wait for answer.

the next steps may be:
- find screen address to display debug values
- enable dmlog
- use the autoexec.bin feature to run code and take control of digic1, then digic2.
- observe how the 2 updaters (can be extracted using fir_tool.py) talk together.

to my knowledge, 7d does not support exfat, and not sure about FAT32. well the answer at sub_FFFFC374.

Indy

--------------------------
dumper7.bin: dumper7


PATCH_ADDR=804D68
DUMPER_OFFSET=`echo "ibase=16;$(PATCH_ADDR)-800120;obase=10"|bc`
TOOLSDIR=../dumper
FIRNAME=7d000123.fir
UPDATER1=0250_123_updater1_.bin
PATCH=dumper7.bin
DUMPER_LEN=`stat -c%s $(PATCH)`
dup7.fir: $(PATCH) $(TOOLSDIR)/$(FIRNAME) $(TOOLSDIR)/$(UPDATER1)
    cp -f $(TOOLSDIR)/$(UPDATER1) .
    dd of=$(UPDATER1) if=$(PATCH) bs=1 seek=$(DUMPER_OFFSET) count=$(DUMPER_LEN) conv=notrunc #2>/dev/null
    python ../dumper/build_fir.py $(TOOLSDIR)/$(FIRNAME) $(UPDATER1) $@

dumper7: dumper_entry.o dumper123.o
    $(call build,LD,$(LD) \
        -o $@ \
        -nostdlib \
        -mthumb-interwork \
        -march=armv5te \
        -e _start \
        $^ \
    )

dumper_entry.S
dumper123.c
patch.bsdiff

Pelican

unread,
Feb 27, 2011, 3:53:14 PM2/27/11
to ml-d...@googlegroups.com

That's a great news! A new hope for 7D owners...

 

Thanks to 'someone' and Indy.

--
http://magiclantern.wikia.com/
 
To post to this group, send email to ml-d...@googlegroups.com
To unsubscribe from this group, send email to ml-devel+u...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/ml-devel?hl=en

Reply all
Reply to author
Forward
0 new messages