I'm currently learning about ML with my 6D.
I can compile and do my modifications just fine and now, moving on to trying to dump the 1.1.6 firmware.
From what I've gathered so far, making a FIR file is not possible since source is not provided for the tools (according to
this thread - unless this info is outdated)
Another thread mentions this same process for the 5D and firmware 1.2.3
here. Someone managed to do it with help from a1ex but no one is reporting how they did it.
And then there's the installer.c source file that can be used to generate an autoexec.bin (and thus, allow us to dump the firmware - but looks like we still need to have a FIR file made for 1.1.6, otherwise the 6D won't boot the autoexec.bin we just made)
I also tried using the special updater that coutts is mentioning at the top post but it didn't seem to work (and likely won't, since it was made for 1.1.2 ?)
Anyway, in order to compile installer.c and have it running, it looks like there are a few function stubs (the ones for firmware 1.1.6) we need to find first. Those are (according to stubs.S):
- cstart
- bzero32
- create_init_task
- init_task
and likely, most file IO functions so ML can dump the firmware on the SD card.
There are also a few defines (in config-defines.h) that seem relevant (CONFIG_DUMPER_BOOTFLAG and CONFIG_EARLY_PORT) but they are only used inside boot-hack.c (and not installer.c)
I will continue digging and report what I find later.
EDIT: Also a relevant link on the wiki about packing FIR files (might not be up-to-date)
http://magiclantern.wikia.com/wiki/Packing_FIR_Files