I've merged the 5Ds_experiments branch into digic6-dumper, to use the same codebase as 80D, 5D4, 7D2 and all other recent models. It appears to work in QEMU, but could only test it to a very limited extent. Also added
initial support for 5DS R; this one was confirmed to work on real hardware by @jcareaux on twitter.
Back then, g3gg0 enabled the boot flag on 5DS without any issue, so... here it goes.
Enabling the boot flag*
BFE_5DSR.FIR (works on
any*) firmware version; confirmed by jcareaux)
*
BFE__5DS.FIR (works on
any*) firmware version; not yet confirmed, but an older version of this code was used by g3gg0)
*
source codeThese will modify your camera.*) The boot flag enabling procedure is firmware-agnostic (it runs from bootloader, so it's compatible with any Canon firmware version). However, what you can do afterwards may be affected by Canon firmware version; read on.To disable the boot flag:
see these notes.
WarrantyIf it breaks, you get to keep both pieces. Sorry.
What to do with it?After enabling the boot flag on your camera, you may run:
a) with any firmware version:- the
portable display test (copy autoexec.bin and make your card
bootable - EosCard/MacBoot/make_bootable.sh)
- the
portable ROM dumper (you need a FAT12/16/32
SD card)
- anything compiled from the
recovery branch, platform/portable.000 (it runs from bootloader context); check Makefile.user.default for options.
b) with 5DS R firmware 1.1.2 only, OR
c) with 5DS firmware 1.1.1 only:- the
digic6-dumper branch (5DS R will run the experiments previously tested on 80D/5D4; 5DS will run g3gg0's experiments)
- example code to get started - a simple intervalometer (
not tested, previous attempts did not work on this model, but worked on 80D, 200D, M50 etc):
/* this goes into dump_task in minimal-d6.c (digic6-dumper branch) */
for (int i = 0; i < 10; i++)
{
call("Release");
msleep(10000);
}
Next stepsRoughly the same as 5D4. The basic functionality should not require any kind of dual core trickery; ML can run on the master core only, similar to 7D (there, the main core is called "slave"). In particular, I don't expect any difficulties in printing Hello World; just don't reuse the 80D addresses, as they won't work.
I'm here to help, if you have questions, but I expect you to read at least the other DIGIC 6/7/8 topics first

That's it for today.