Cameras based on the Digic 6 processor differ significantly from previous generation cameras. CHDK support is for these cameras is a work-in-progress as of late 2016. The page collects information relevant to creating CHDK ports for Digic 6 cameras.

It is likely that some of this applies to Digic 6+ and Digic 7, but only limited analysis has been done.

Significant differences from prior Digic versionsEdit

  • The main CPU is now a Cortex-R4 (armv7 architecture). Digic 7 appears to use a different CPU, possibly Cortex A9.
  • The majority of Canon firmware code is in the Thumb2 instruction set. The varying size of instructions makes disassembly significantly more difficult, and prevents existing CHDK tools from working on these firmwares.
  • Several other CPUs exist, including an Xtensa core.
  • The display is (probably) driven by a TAKUMI GPU, somehow connected to the Xtensa core
  • Viewport and bitmap display frame buffer formats have changed significantly

Digic 6 ProcessorsEdit

As mentioned above, Digic 6 contains multiple different CPUs


The main ARM core where CHDK and the main Canon firmware runs


The Xtensa core responsible for the GPU. Strings like "mzrm" refer to Marius / Zico communication.


Unknown. ARM?


ARM documentationEdit


Known Digic 6 (and later) ports and porting attempts

Working portsEdit

Ports with usable builds available

Partial portsEdit

Other ports that were started but don't yet have published usable builds

Useful forum threadsEdit

General topics related to Digic 6 development