Using MMU patches, I hooked mpu_send() and mpu_recv(). This allowed me to obtain a nice clean log of early MPU messages from 200D. The same technique will be easy to adapt to all other D7, D8, DX cams.
This should greatly help in improving emulation. So far I've only logged the very early messages, but in theory this can also log MPU traffic while the camera is exercised, to see how different camera functions work. Note that the messages as seen by these functions are missing a container layer, so e.g. these two lines (one from my code, one from Qemu logging) are the equivalent message:
mpu_send: 06 01 27 00 64 00
[MPU] Received: 08 06 01 24 00 01 00 00 (PROP_CARD2_STATUS - spell #7)
Adding this extra layer for Qemu use looks easy.
The build is from this commit:
https://github.com/reticulatedpines/magiclantern_simplified/commit/4d037140ad1c3ea72c16d508de65ddcc13f98a8dLog (after slight manual cleanup, UART log lines get interlaced sometimes):
https://pastebin.com/VmRdvQ9E