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=enApply 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=804D68DUMPER_OFFSET=`echo "ibase=16;$(PATCH_ADDR)-800120;obase=10"|bc`
TOOLSDIR=../dumperFIRNAME=7d000123.fir
UPDATER1=0250_123_updater1_.binPATCH=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 \ $^ \
)