On all EOS models we have tried (including DIGIC 7), we can execute custom code. The question is - can we do anything useful with it?
On
DIGIC 7, for example, we don't even know how to blink a LED (so our code does not have any visible side effects - we only know it runs because it locks up the camera).
On all DIGIC 6 models we have tried, we can display things on the screen from bootloader. Canon firmware is not running in this case, but it's useful to find out stuff about the hardware (find out
what CPU it has,
dump the ROM and so on).
On some DIGIC 6 models (including 80D), we can execute this code alongside Canon firmware (for example, by starting DryOS tasks). This is a huge progress (compared to bootloader stage) and you can already start tweaking various functions in Canon firmware. You cannot print things on screen yet, but you can blink the LED and save files on the SD card.
Right now, you can compile from the
digic6-dumper branch and experiment. You can run these experiments either on camera, or - with some major limitations - in QEMU. I don't have any DIGIC 6 cameras (
sorry, the GAS is over), so please don't wait for me - start experimenting on your own. The codebase is ready for other developers to jump in and start porting. The emulator is also in
pretty good shape these days.
Tip:
5DS experiments are also available, and useful as documentation.
Whetting your appetite: put this in
dump_task:
msleep(5000);
call("Release");
Don't try that with EraseSectorOfRom or other functions you don't know what they do

BTW - if anyone skilled in ARM assembly is reading -
this will be very helpful for understanding how DIGIC 6 works. Code won't run out of the box, but can be debugged in QEMU first.