Ah. So no one actually saw DSP code. Well, that changes the situation a bit.
DSP processors have one important characteristic. The manufacturers often write the library right into ROM without possibility to overwrite it. So assumption that there is DSP code somewhere in firmware updater might be false.
Next, according to datasheet document of CX64(
link, page 18), that DSP have capability to map external DDR2 memory to isolated address space. This means two things:
1) DSP's ROM data is completely isolated from ARM's address space
2) DSP and ARM can communicate through DDR2 memory.
Also DSP and ARM can communicate through IRQ interrupts. So I'm not sure what type of synchronization they use(IRQ or specific address in DDR2 memory). And since CHDK can retrieve raw sensor data the algorithm might be this like:
1) ARM retrieve raw data
2) ARM prepares buffer for encoded jpeg
3) ARM passes addresses for raw data and jpeg buffer to DSP
4) ARM signals somehow to DSP(either IRQ or "magic memory address")
5) ARM receives signal of the completed operation through IRQ.
There is only question, that is still unclear to me. What happens when camera enters "Movie mode"? There are two possibilities, that I see:
1) ARM continue to be in charge of receiving RAW data and passing it to DSP
2) DSP enters the mode, when it can receive RAW data without the help of ARM, and it only pass encoded data back to ARM.
What do you think about this?