Started 3 yr 10 mo ago
Took 4 min 49 sec

Success Build #65 (Feb 2, 2018 11:24:52 AM)

Build Artifacts
mlv_dump.exe867.44 KB view
mlv_dump.linux631.14 KB view
mlv_dump.osx207.59 KB view
magiclantern-crop_rec_4k.2018Feb02.100D101.zip1.82 MB view
magiclantern-crop_rec_4k.2018Feb02.5D3113.zip1.86 MB view
magiclantern-crop_rec_4k.2018Feb02.5D3123.zip1.86 MB view
magiclantern-crop_rec_4k.2018Feb02.700D115.zip1.82 MB view
magiclantern-crop_rec_4k.2018Feb02.EOSM202.zip1.84 MB view
  1. crop_rec: attempt to move the preview window in x5 mode using the focus box
    (experimental, may result in lost frames if moved while recording) (detail / bitbucket)
  2. crop_rec: updated help for centered x5 zoom (detail / bitbucket)
  3. Merged crop_rec_4k_mlv_lite_snd into crop_rec_4k
    (experimental mlv_snd support for mlv_lite from ErwinH) (detail / bitbucket)
  4. mlv.h: aligned comments (detail / bitbucket)
  5. silent pics: no (more) need to allocate memory for two frames (detail / bitbucket)
  6. 700D: fix white level at ISO 100 with 10/12-bit mode; other models may need this too, please run the tests (detail / bitbucket)
  7. FPS override: added missing 36 fps and a few others (detail / bitbucket)
  8. mlv_lite: fix UI locks when flushing buffers
    (the camera should not allow turning off before the MLV is saved completely; broken in a577371) (detail / bitbucket)
  9. Silent pictures: check for lossless compression errors (detail / bitbucket)
  10. edmac-memcpy: backout d70032d to fix 100D/700D/EOSM issues with recording in crop mode (detail / bitbucket)
  11. mlv_snd: fix queueing on very large buffers
    (should fix sound recording at high resolutions, such as 3K) (detail / bitbucket)
  12. mlv_snd: enabled by default, (detail / bitbucket)
  13. mlv_lite: thread safety workaround in mlv_rec_release_slot
    (todo: try to trigger a race condition) (detail / bitbucket)
  14. mlv_lite: renamed frame_count to video_frame_count
    (Erwin added total_frame_count, which is video_frame_count + number of audio frames) (detail / bitbucket)
  15. mlv_lite: fix premature memory freeing (race condition) before the buffers are flushed
    that was the root cause of the audio not getting saved, but could cause other issues as well (detail / bitbucket)
  16. mlv_lite: reworked WAVI initialization (detail / bitbucket)
  17. mlv_snd: undo mlv_lite-specific tweaks (parts of 5f4ed21); now identical to vanilla crop_rec_4k
    mlv_lite: cleaned up CBRs (detail / bitbucket)
  18. mlv_snd: Turn mlv_rec_queue_block into weak function and add mlv_lite_queue_block. On starting use mlv_lite_queue_block, on started use mlv_rec_queue_block.
    mlv_lite: use memcmp instead of string comparision. Move raw_rec_cbr_started to after RAW_RECORDING is started and only start if the recording_state is RAW_RECORDING.
    Change mlv_rec_queue_block to mlv_lite_queue_block. (detail / bitbucket)
  19. mlv_lite: Only do certain checks on video frames. (detail / bitbucket)
  20. mlv_lite: create wavi header based on samplingRate (rest is fixed) (detail / bitbucket)
  21. Cleanup wavi header bit. Start audio recording earlier.
    Is the location of the wavi block correct? It's in the header now, but mlv_raw seems to place it outside of the header. (detail / bitbucket)
  22. Settings samplerate before first write, so the wavi block is added to the recording. Otherwise it will only alter the block on the second recording.

    I can probably just get the block from the mlv_snd module, but that's for later. (detail / bitbucket)
  23. First part of recording audio with mlv_lite and mlv_snd. (detail / bitbucket)
  24. 70D SRM_BUFFER_SIZE (detail / bitbucket)
  25. Merged 70D_merge_fw112 into crop_rec_4k
    (changes to DryOS hooks) (detail / bitbucket)
  26. Merged 100D_merge_fw101 into crop_rec_4k
    (changes to new DryOS hooks, Q button handling) (detail / bitbucket)
  27. Merged new_dryos_task_hooks into 70D_merge_fw112 (detail / bitbucket)
  28. Merged new_dryos_task_hooks into 100D_merge_fw101 (detail / bitbucket)
  29. Merged lua_fix into crop_rec_4k (detail / bitbucket)
  30. Merged new_dryos_task_hooks into crop_rec_4k (detail / bitbucket)
  31. 100D: cleanup handling of the Q button
    (see b9e0b9e) (detail / bitbucket)
  32. Merged lua_fix into crop_rec_4k (detail / bitbucket)
  33. Merged lua_fix into crop_rec_4k (detail / bitbucket)
  34. Merged new_dryos_task_hooks into lua_fix (detail / bitbucket)
  35. Merged qemu into new_dryos_task_hooks (detail / bitbucket)
  36. fix QEMU_DIR once more (detail / bitbucket)
  37. fix QEMU_DIR (detail / bitbucket)
  38. Fixes black bar at right issue when using the full 2520x1080 zoom image. (detail / bitbucket)
  39. Tests on the 100D show that we need to subtract 1 like the 5D3. A "hiccup" issue shows up in zoom mode when using the exact raw buffer height. Subtracting 1 resolves this issue and doesn't adversely affect the other video modes. (detail / bitbucket)
  40. Adjustments to raw buffer height and skip values for EOSM/100D/700D/650D. This should resolve the "hiccup" issue on the 100D in zoom mode, the no compression corrupt video on the 100D in Movie Crop Mode and restore the full 1080 height in zoom mode for the EOSM/650D/700D cameras.

    Forum discussion starts about here: (detail / bitbucket)
  41. Merged allocate-raw-lv-buffer into lua_fix (detail / bitbucket)
  42. Merged qemu into lua_fix (detail / bitbucket)
  43. Menu: hack to allow browsing ML menu on EOSM and EOSM2
    (requires CONFIG_QEMU=y) (detail / bitbucket)
  44. selftest: EOSM takes the crown for the lowest amount of shoot_memory available
    (fragmented allocation can no longer be tested with hardcoded value) (detail / bitbucket)
  45. Merged makefile-updates into qemu
    (also updated README regarding "make install_qemu" on modules) (detail / bitbucket)
  46. QEMU: moved default installation directory to qemu-eos
    Rationale: user is likely to have another qemu directory, unrelated to ML (such as the vanilla qemu repo)
    Can be changed by setting QEMU_DIR, e.g. "export QEMU_DIR=qemu" before running will install QEMU in the old path
    To be thoroughly tested. (detail / bitbucket)
  47. Makefile: moved default QEMU directory to qemu-eos (detail / bitbucket)
  48. QEMU: trim HTML logs to 10000 lines if higher
    (very slow to render; also, at these sizes, browsing/grepping plain text is way faster) (detail / bitbucket)
  49. Raw backend: 60D appears to allocate 28MB for the raw buffer (detail / bitbucket)
  50. Raw backend: updated 5D3 hypothesis about Canon LV RAW buffer
    (todo: re-check 1.2.3) (detail / bitbucket)
  51. Raw backend: attempt to autodetect Canon's raw buffer size
    - compile with CONFIG_MARK_UNUSED_MEMORY_AT_STARTUP (config-defines.h)
    - open the console (Debug menu) and enable something that uses LiveView RAW features (raw video, raw histogram etc)
    - test by starting the camera in all video modes (photo, 1080p, 720p, crop, x5 etc)
    - take a screenshot or write down the console messages (detail / bitbucket)
  52. Raw backend: fix compilation on very old models
    (without CONFIG_EDMAC_RAW_SLURP) (detail / bitbucket)
  53. 1100D: CONFIG_ALLOCATE_RAW_LV_BUFFER may not be needed, after all (detail / bitbucket)
  54. Free Memory dialog: updated common addresses to allow dynamically allocated buffers (not just hardcoded ones);
    also show current RAW and BMP buffer(s), not just the YUV ones (detail / bitbucket)
  55. Raw backend: 1100D also needs DEFAULT_RAW_BUFFER / DEFAULT_RAW_BUFFER_SIZE (detail / bitbucket)
  56. Raw backend: 1100D needs CONFIG_ALLOCATE_RAW_LV_BUFFER after refactoring (detail / bitbucket)
  57. Raw backend: use dummy DEFAULT_RAW_BUFFER_SIZE until the real size is found
    without this, most builds would be broken
    fixme: old models without CONFIG_EDMAC_RAW_SLURP are still broken (detail / bitbucket)
  58. Raw backend: sync memory allocation routines with crop_rec_4k
    (squashed 8287b4f, 0ff9f1f, 3948408, d55423f, ebf206a, 3bc3637, cad72ea and 2bc5c3a, keeping only changes to raw.c) (detail / bitbucket)
  59. mlv_lite, mlv_rec: dialog_refresh_timer_addr for 1100D
    (to be tested) (detail / bitbucket)
  60. Merged unified into allocate-raw-lv-buffer (detail / bitbucket)
  61. Makefile: also updated QEMU_INSTALLED_DBI_DIR to use QEMU_PATH (detail / bitbucket)
  62. Makefile: fix copy/paste error (detail / bitbucket)
  63. Makefile: fix cleaning up after "make zip"; removed warning (detail / bitbucket)
  64. Makefile: allow changing QEMU installation directory from Makefile.user and/or the environment
    (QEMU_DIR) (detail / bitbucket)
  65. Makefile: zip and install_qemu targets for modules (detail / bitbucket)
  66. Makefile: always clean after running install_check (detail / bitbucket)
  67. Makefile: always rebuild version.o (detail / bitbucket)
  68. Makefile: prevent install_check from running in parallel with building regular ML
    (conflicts while compiling from the same sources - ) (detail / bitbucket)
  69. GUI: removed BGMT_Q_ALT
    to be tested on 1100D, 550D, 600D, 60D
    and also on recent ports (100D, 1200D, 1300D) (detail / bitbucket)
  70. Merged new-dryos-task-hooks into lua_fix (detail / bitbucket)
  71. selftest: reduced memory requirements to allow 1100D to pass the memory tests (detail / bitbucket)
  72. 1100D: raw skip offsets for LiveView (detail / bitbucket)
  73. GDB scripts: logging hook for prop_deliver (detail / bitbucket)
  74. GDB scripts: logging hooks for CreateStateObject
    useful to find all state objects created during the emulation (detail / bitbucket)
  75. QEMU installer: fine-tuned prompt when reinstalling (detail / bitbucket)
  76. QEMU: fix Q button handling on 550D, 600D, 1100D (to be tested) (detail / bitbucket)
  77. QEMU readme: table of contents; minor typos (detail / bitbucket)
  78. QEMU readme: GPIO section update (detail / bitbucket)
  79. 6D: fix task_max (detail / bitbucket)
  80. Merged new-dryos-task-hooks into 70D_merge_fw112
    (enabled CONFIG_NEW_DRYOS_TASK_HOOKS in internals.h; updated task_dispatch_hook comment) (detail / bitbucket)
  81. Merged new-dryos-task-hooks into 100D_merge_fw101
    (enabled CONFIG_NEW_DRYOS_TASK_HOOKS in internals.h; added task_dispatch_hook comment) (detail / bitbucket)
  82. boot-hack: use CONFIG_NEW_DRYOS_TASK_HOOKS to enable new-style DryOS hooks
    (undefining HIJACK_TASK_ADDR was not obvious) (detail / bitbucket)
  83. updated to decode lens firmware updates (*.lfu) (detail / bitbucket)
  84. QEMU readme: misc updates (formatting, rephrasing); GPIO section (detail / bitbucket)
  85. QEMU installer: make it clear the script expects user input when it's asking whether to compile QEMU (detail / bitbucket)
  86. eject removes the disk image completely while unmount doesn't remove the disk image from /dev. (detail / bitbucket)
  87. reworked description of the peripherals (detail / bitbucket)
  88. QEMU install: fix mistakes (detail / bitbucket)
  89. QEMU readme: typos, formatting (detail / bitbucket)
  90. QEMU readme: note for Bitbucket not always rendering the RST
    (reloading the page usually works; apparently it doesn't need javascript, so what's going on?) (detail / bitbucket)
  91. QEMU readme: some basic concepts related to how the DIGIC hardware works
    (some parts adapted from ) (detail / bitbucket)
  92. QEMU readme: misc notes
    - tip to save SD images as qcow2 (they take less disk space)
    - instrumentation tools
    - history updates
    - minor formatting fixes (detail / bitbucket)
  93. QEMU: use 600D MPU messages for 1300D
    fixes toggling drive mode, (detail / bitbucket)
  94. GDB scripts: hide warnings about undefined task addresses when running with patches.gdb
    (when running with debugmsg.gdb, full context info is printed) (detail / bitbucket)
  95. GDB scripts: fix address in log_result
    (LR is no longer valid, as we are no longer at the beginning of a function call) (detail / bitbucket)
  96. QEMU recent git no longer accepts empty identities (detail / bitbucket)
  97. QEMU scripts: removed hardcoded references to ../magic-lantern
    and documented how the directories can be customized (detail / bitbucket)
  98. QEMU readme: documented directory structure (detail / bitbucket)
  99. boot-hack: uninstall cache hacks after booting (to be tested) (detail / bitbucket)
  100. boot-hack: more debug messages regarding memory allocation
    (for HIJACK_CACHE_HACK and RSCMGR_MEMORY_PATCH_END) (detail / bitbucket)
  101. boot-hack: fix CONFIG_HELLO_WORLD & friends when booting with HIJACK_CACHE_HACK
    (task_dispatch_hook should not be set in this case) (detail / bitbucket)
  102. 70D: enabled Sticky half-shutter (unlikely to cause issues) and Sticky DOF preview (to be tested) (detail / bitbucket)
  103. 100D: enabled Sticky half-shutter (unlikely to cause issues) and Sticky DOF preview (to be tested) (detail / bitbucket)
  104. Changed the DoF equations to better handle integer math and used a different source for the equations. (detail / bitbucket)
  105. Menu: added different rounding mode flags: ISO R10", R20", 1-2-5 series, powers of 2 (detail / bitbucket)
  106. Menu: cleaned up edit_mode constants
    (removed unused EM_MANY_VALUES and renamed EM_MANY_VALUES_LV to EM_SHOW_LIVEVIEW) (detail / bitbucket)
  107. Menu: added UNIT_TIME_MS and UNIT_TIME_US with caret editing support; minor refactoring (detail / bitbucket)
  108. silent pictures: options for delayed trigger, to help with IS (detail / bitbucket)
  109. silent pictures: after image review, prefer to return to LiveView, with some exceptions
    - if intervalometer is enabled, prefer to turn off the display to save power
    - if "Turn off LCD" is enabled under "Powersave in LiveView", also prefer to turn off the display (manual override, e.g. for externally triggered timelapse)
    - otherwise, prefer to return to LiveView (credits dfort) (detail / bitbucket)
  110. silent pictures: wait for IS if the switch is enabled on the lens (detail / bitbucket)
  111. 650D, 700D: enabled Sticky half-shutter (unlikely to cause issues) and Sticky DOF preview (to be tested) (detail / bitbucket)
  112. Auto bracketing: fine-tuned highlight and shadow thresholds
    overexposed: if more than 0.02% of all pixels are above 235 in the YUV buffer (preview JPG, picture-style dependent)
    underexposed: if more than 10% of all pixels are below 50
    previous thresholds: 0.15% above 235 for highlights, 2.5% below 20 for shadows

    todo: use raw-based metering? (some models still have problems with raw buffers in photo mode: 70D, 500D in LiveView, maybe others) (detail / bitbucket)
  113. Auto bracketing: do not analyze image borders
    (should prevent unnecessary bright exposures if the image has black corners - happens with certain lenses) (detail / bitbucket)
  114. Bracketing: print debug messages to console; use higher precision for highlight/shadow percentages
    for troubleshooting (detail / bitbucket)
  115. lens.h: mark lens_format_* as not thread-safe; fix return type
    lua: workarounds to ensure thread safety for the above calls (detail / bitbucket)
  116. lens: added lens_format_iso and refactored other code to use it (detail / bitbucket)
  117. Merged in bouncyball/magic-lantern/mlv_dump_cdng (pull request #841) (detail / bitbucket)
  118. fix: honor 'relaxed' mode during DNG export (detail / bitbucket)
  119. mlv_dump: introduced fix_black_white_level() routine, which scales or/and just fixes black and white levels in case of bit depth conversion, this also fixes bug which introduced in b0c6457, result is cleaner code in two places - for DNG and MLV output (detail / bitbucket)
  120. camera_id.h: fixed added comment (detail / bitbucket)
  121. camera_id.h: added comment with steps how to obtain numbers for new cameras (detail / bitbucket)
  122. mlv_dump: fixed 2 comments (detail / bitbucket)
  123. dng.c: and again tiny fixes of comments (detail / bitbucket)
  124. dng.c: fixed comment (detail / bitbucket)
  125. dng.c/h: added/fixed comments (detail / bitbucket)
  126. wav.h: added header file with required stuff for new WAV writer code (detail / bitbucket)
  127. mlv_dump: added new WAV header writer for demanding NLEs, now header includes 'bext' and 'iXML' info, also patched 'if(out_file_wav)' section at the bottom of the file, fixed size and offset to be updated, more comments are in source code (detail / bitbucket)
  128. mlv_dump: fixed comments (detail / bitbucket)
  129. mlv_dump: patched 'if(run_compressor)' section to correctly support compressed DNG buffer, added two 'if(dng_output)' conditions, comments are in a source code, also free DNG buffers at the end of program (detail / bitbucket)
  130. mlv_dump: most important and big change, almost entirely replaced main 'if(dng_output)' section to support 'dng.c' lib, comments are in the source code (detail / bitbucket)
  131. mlv_dump: fixed condition to set black/white level if bit depth's not changed but '--black/white-fix' specified, for both dng and mlv export (detail / bitbucket)
  132. mlv_dump: removed message (interferes with verbose output), patched condition according to '-p' switch (detail / bitbucket)
  133. mlv_dump: preliminary changes to first 'if(dng_output)' part, short explanations are in the source code, there is no need to force bit depth to 14bit any more b/c now any bits are supported by dng exporting routines (detail / bitbucket)
  134. mlv_dump: replaced pass-trough '-c -c' double switch with more elegant '-p', it is more intuitive when using to pass through uncompressed raw (it's now supported) (detail / bitbucket)
  135. mlv_dump: some cli switch incompatibility checks (detail / bitbucket)
  136. dng.h: corrected typos (detail / bitbucket)
  137. mlv_dump: added 2 helper structs for building DNG file (header and image data) and flags to pass the commands from cli to 'dng.c', all is documented in 'dng.h' (detail / bitbucket)
  138. mlv_dump: moved unique_camname handling to 'dng.c' (detail / bitbucket)
  139. mlv_dump: created raw_rec/raw_proc dir with all raw processing source files inside, removed chroma smooth code from 'mlv_dump.c', all raw processing now takes place in 'dng.c' (detail / bitbucket)
  140. camera_id.h updated and moved to raw_rec/dng dir, extended structure and added camera specific matrixes and focal resolutions, added camera_id_get_current_cam() function, removed header from 'mlv_dump.c', it's now included to 'dng.c' (detail / bitbucket)
  141. mlv_dump: 'chdk_dng.c/h' substituted by 'raw_rec/dng' dir with 'dng.c/h' and dng tag header files, made small required changes to makefile and mlv_dump.c (detail / bitbucket)
  142. new branch mlv_dump_cdng (detail / bitbucket)
  143. boot-hack: fix task dispatch hook message missing when booting with HIJACK_CACHE_HACK (detail / bitbucket)
  144. QEMU logging: cleaned up hacks around memory logging options
    (logging tools may require any memory logging backends, but in the logs, only those items specifically requested by user will be printed) (detail / bitbucket)
  145. hide osascript messages on Mac
    (when trying to bring the QEMU window in foreground, but there isn't any) (detail / bitbucket)
  146. QEMU install: keep the 64-bit gdb warning prompt on Mac and WSL (to be tested) (detail / bitbucket)
  147. QEMU install: attempt to fix warnings about 64-bit gdb on Mac and WSL (to be tested)
    the script should print warnings about them, but accept them as valid (detail / bitbucket)
  148. QEMU install: fix path issue after compilation (detail / bitbucket)
  149. QEMU install: fix warning about lsb_release on Mac or other systems without it (detail / bitbucket)
  150. QEMU install: attempt to fix warnings about 64-bit GDB on Mac (to be tested) (detail / bitbucket)
  151. QEMU install: fine-tuned QEMU compilation, to be tested
    (error handling, display the next steps after compilation finished) (detail / bitbucket)
  152. QEMU install: on WSL and Mac, try the latest 64-bit toolchain (to be tested)
    Linux installation still uses the 32-bit one (older version)
    TODO: attempt to compile a 32-bit GDB for Mac
    Reworded warnings, as a 32-bit GDB is now only needed for development;
    it's no longer mandatory for running the examples, since (detail / bitbucket)
  153. QEMU: simplified SFDMA mapping by removing model-specific redirection
    (they are fairly consistent across all models) (detail / bitbucket)
  154. QEMU tests: 40D call trace still not fully deterministic (CF uses some status polling, not just DMA)
    re-applying workaround (only check the "basic" call trace, without function arguments and extra info) (detail / bitbucket)
  155. QEMU: documented SD detect registers on recent DIGIC 5 models
    (non-functional) (detail / bitbucket)
  156. QEMU: refactored CFDMA/UartDMA handling to remove model-specific redirections
    enabled UartDMA on all models (including VxWorks), but it's not working yet
    70D: IFE DMA handling moved from SDDMA to CFDMA (minor, no noticeable side effects other than breaking the tests) (detail / bitbucket)
  157. QEMU: fix 5D3 CF emulation
    (disabled by default; can be enabled from mpu_spells/5D3.h) (detail / bitbucket)
  158. QEMU: documented property groups ("complex" MPU messages)
    including GDB logging hooks to find them (detail / bitbucket)
  159. QEMU tests: relaxed shutdown checks
    (some false positives caused by non-deterministic emulation)
    (note: menu tests are executed non-determinstically, unlike the call trace, so each run is different) (detail / bitbucket)
  160. QEMU: attempt to get deterministic execution on CF models when using -icount
    operations are slowed down to avoid timing variations
    default behavior (without -icount) is not affected
    on main firmware, the call/return trace test is now deterministic on all models!
    fixme: CF emulation in PIO mode is still non-deterministic (detail / bitbucket)
  161. GDB scripts: generic logging hooks (detail / bitbucket)
  162. QEMU readme: example of identifying the location of an assertion using gdb and -d callstack; minor updates (detail / bitbucket)
  163. QEMU: updated 750D/760D GDB scripts and tests; file I/O works!
    (using 750D SFDATA.BIN) (detail / bitbucket)
  164. Merged in t3r4n/magic-lantern/qemu (pull request #894) (detail / bitbucket)
  165. QEMU: fix some MPU spells
    (typos caught by automated checking) (detail / bitbucket)
  166. Added the serial flash line for 750D and 760D into model_list. See (detail / bitbucket)
  167. QEMU readme: minor link updates (detail / bitbucket)
  168. QEMU readme: moved developer and reverse engineering notes to a new file
    (reason: bitbucket seems to have trouble rendering large files) (detail / bitbucket)
  169. QEMU readme, GDB scripts: info on debugging symbols; more symbol-file choices in comments
    (depending on what you are debugging - regular ML, reboot shim or Canon firmware) (detail / bitbucket)
  170. QEMU readme, GDB scripts: recommend '-ex quit' after patches.gdb, but not after debugmsg.gdb

    reason: when running with patches.gdb, you may not want to type "quit" after stopping the emulation
    however, this trick removes the ability to use interactive breakpoints in GDB (it would quit as soon as reaching one), so don't recommend it for debugmsg.gdb (detail / bitbucket)
  171. QEMU readme: fix typos; minor updates (detail / bitbucket)
  172. QEMU: fix serial flash DMA on DIGIC 6 (tested on 80D, 5D4 and 750D with PR #894);
    refactored serial flash to use its own DMA (not shared with SD) (detail / bitbucket)
  173. QEMU: updated 80D test results for actual serial flash contents (detail / bitbucket)
  174. QEMU readme: formatting (detail / bitbucket)
  175. QEMU readme: GDB scripting examples, including callstack (detail / bitbucket)
  176. QEMU readme: use em-dashes instead of simple dashes (detail / bitbucket)
  177. QEMU: changed I/O logging behavior
    - "-d io" implies "-d nochain -singlestep" (this prints correct PC values, but emulation is slower)
    - "-d io_quick" to get the old behavior (faster, with incorrect PC values)
    - "-d io_log" to print mmio_log entries for dm-spy-experiments
    - "-d nochain" always implies "-singlestep" (easier to enable this mode on other kind of logs that may need it)
    - updated README (detail / bitbucket)
  178. QEMU readme: moved the "Incorrect firmware version" section to Hacking
    (it's no longer an issue for regular users) (detail / bitbucket)
  179. QEMU readme: started to document the steps needed to emulate Canon GUI (detail / bitbucket)
  180. QEMU readme: minor updates, corrections (detail / bitbucket)
  181. QEMU tests: updated after changing the SD image
    - format screenshots slightly different at free space (before only)
    - call/return traces are also different (different layout on the SD image) (detail / bitbucket)
  182. QEMU: updated sd.img.xz with latest portable display test
    (main change: fix identification of firmware version - 7889972) (detail / bitbucket)
  183. GDB scripts: fix assert handling on EOS M10 (detail / bitbucket)
  184. QEMU: moved 7D2 patches to GDB scripts;
    initial GDB script for 7D2 slave (detail / bitbucket)
  185. QEMU: defined FPGA memory regions for 5D2 and 50D
    (just to prevent some warnings; nothing changed in functionality) (detail / bitbucket)
  186. QEMU tests: run all cleanups on CTRL-C
    (stop all background tasks, make sure QEMU is no longer running, remove temporary files...) (detail / bitbucket)
  187. QEMU: enabled serial flash emulation on 5D4
    (emulation on main firmware doesn't go that far, but can be tested from bootloader menu) (detail / bitbucket)
  188. QEMU: refactored serial flash CS handling to reduce duplicate code
    (moved CS register and tested value to model_list.c) (detail / bitbucket)
  189. Lua: fixed issue #2824 - decimal number precision when printing
    thanks dmilligan for the hint and aprofiti for the test code

    tested with:

    val = {1.2,1.4,2.8,4.3,4.5,5.6}

    for i = 1, 6 do
      console.write(" ")
      console.write(val[i] - 0.000001)
      console.write(" ")
      console.write(val[i] + 0.000001)


    1.2 1.199999 1.200001
    1.4 1.399999 1.400001
    2.8 2.799999 2.800001
    4.3 4.299999 4.300001
    4.5 4.499999 4.500001
    5.6 5.599999 5.600001


    1.2 1.199999 1.2
    1.399999 1.399999 1.4
    2.799999 2.799999 2.8
    4.3 4.299999 4.300001
    4.5 4.499999 4.5
    5.599999 5.599998 5.6 (detail / bitbucket)
  190. QEMU tests: reworked menu tests (including format)
    - use vncexpect whenever the md5 of the next screen is known (reduces timing sensitivity and also faster overall)
    - no more wait hacks required for format tests
    - use a single vncdotool command whenever possible (faster)
    - removed duplicate code (function for sending a menu sequence)
    - fine-tuned progress indicator (detail / bitbucket)
  191. MPU spells: allow changing various Canon properties that require confirmation from the MPU:
    ISO, shutter, aperture, EC, FEC, metering, drive, AF mode, picture style, WB, ExpSim, ALO, HTP, MLU
    all but WB were broken if changed from ML menu/scripts; they are working now (fixme: not included in tests)
    some of them were working from Canon UI before this patch (picture style, WB, ExpSim, metering and drive mode)
    WB was working before, but uses confirmation in logs; updated for consistency

    could not test on: 5D2, 40D, 50D, 550D, 650D, 700D, EOSM2
    not working: EOSM (breaks previous tests => disabled) (detail / bitbucket)
  192. QEMU: experimental mode dial emulation
    works on most models to some extent, except 40D, could not test on 550D, 650D, 70D, EOSM2 (detail / bitbucket)
  193. MPU spells: comment out possible mode switches
    not required for the GUI, but will interfere later with the mode switching feature
    affected models: 6D (call/return trace changed), 70D, 700D (no side effects noticed) (detail / bitbucket)
  194. Merged in t3r4n/magic-lantern/qemu_installer (pull request #893)

    Further automation in install script to compile directly at the end. (detail / bitbucket)
  195. QEMU: more MPU properties identified by brute-forcing (detail / bitbucket)
  196. QEMU: formatting fixes in / known_spells.h (detail / bitbucket)
  197. QEMU: added property IDs to known MPU spells
    also alternate names as comments (detail / bitbucket)
  198. QEMU: identified more MPU spells, corrected a few others
    - experimentally (playing around in menus)
    - brute-forcing MPU messages to identify properties
    - cross-checked names and IDs in startup logs and ROM strings
    - still, it's impossible not to find a few incorrect ones (detail / bitbucket)
  199. QEMU: experiment - brute-force MPU messages to find out their meaning (detail / bitbucket)
  200. GDB scripts: hooks for logging properties (prop_request_change, MPU property functions)
    (example for 5D3.113 and 550D.109; useful for identifying properties) (detail / bitbucket)
  201. qemu-util: fix compilation in bootloader context;
    sample boot messages in reboot.c, e.g. printing firmware signature or RESTARTSTART address
    (only present in the output binary when compiling with CONFIG_QEMU=y) (detail / bitbucket)
  202. GDB scripts: disable serial flash version check patch on EOS M2
    not really needed (the error message seems harmless and doesn't prevent GUI emulation)
    but changed ML firmware signature checking
    and won't be needed after getting a serial flash dump from a real camera anyway (detail / bitbucket)
  203. QEMU further Ubuntu/WSL cleanups (minor) (detail / bitbucket)
  204. QEMU fine-tuned messages and date format when renaming an older installation (detail / bitbucket)
  205. Merged in t3r4n/magic-lantern/qemu_install_improvement (pull request #892)

    Option to rename or delete existing QEMU directory during installation (detail / bitbucket)
  206. QEMU WSL fixes
    - checking for Ubuntu (uname -a does not report Ubuntu)
    - hide 32-bit toolchain options (detail / bitbucket)
  207. Mac fixes
    - use is_mounted (lsof checks are enough)
    - typo in osascript when trying to bring QEMU window to front (detail / bitbucket)
  208. fine-tuned checking of whether SD/CF image is in use
    - use lsof to detect whether another process opened the SD/CF image for writing
    - only allow multiple instances of QEMU if using -snapshot (read-only access to SD/CF image)
    - check all results returned by losetup (note: lsof does not show whether the image is mounted)
    - use alternate methods (grepping mount output) if losetup is not available
    - to be tested/refined on Mac and Windows 10 WSL (detail / bitbucket)
  209. QEMU: RTC workaround to bring back 400D GUI
    (broken in 0d654a0, not covered by tests as it's very slow) (detail / bitbucket)
  210. 70D: AbortEDmac stub (detail / bitbucket)
  211. Added function for convertion from efic_temp raw units to celsius (detail / bitbucket)
  212. QEMU: 40D GUI working!
    - MPU RX register was read 8 bits at a time (other models so far used 16-bit reads)
    - using 50D MPU spells
    - button codes found with, from existing ML port
    - HotPlug: external monitor, USB, Toe, erase switch
    - CFDMA: new channel, protocol tweaks, enabled interrupts
    - Powersave workaround (GUI locked up after some seconds of inactivity, similar to 1300D) (detail / bitbucket)
  213. QEMU: fix USB CONNECT on 450D/1000D
    (incidentally, this also fixes the card format dialog on these cameras - likely UILock issue) (detail / bitbucket)
  214. QEMU: 1300D GUI works!
    - this camera uses a different DryOS timer (totally unexpected!)
    - removed JPCORE patch (firmware expects this to be initialized properly)
    - generic MPU spells; button codes from 1100D
    - powersave workaround (without it, GUI would lock up after a few seconds of inactivity)
    - no patches required! (detail / bitbucket)
  215. QEMU: cleaned up serial flash handling on models that don't use one
    previously, they were called on unrelated SIO/SDIO channels, with little or no side effects,
    other than breaking a few function call trace tests (detail / bitbucket)
  216. QEMU: updated 80D tests for 1.0.2; DCIM test also works! (detail / bitbucket)
  217. QEMU: 80D file I/O support from main firmware
    (experimental, tested with "dumpf" in the serial console) (detail / bitbucket)
  218. QEMU: enable card support on generic MPU spells
    (experimental, some models work better than others) (detail / bitbucket)
  219. Merged unified into 70D_merge_fw112 (detail / bitbucket)
  220. mlv_dump: fix averaging when bit depth conversion was requested (detail / bitbucket)
  221. mlv_dump: update a comment after removing metadata mode (detail / bitbucket)
  222. GDB scripts: some experimental 80D patches, to be fixed in the emulation (detail / bitbucket)
  223. GDB scripts: log state object transitions
    (stubs for 550D and 80D) (detail / bitbucket)
  224. GDB scripts: 80D logging hooks for semaphores and message queues
    (disabled by default; also updated assert_log for 1.0.2) (detail / bitbucket)
  225. QEMU: RomRead DMA is actually XDMAC
    (up to 4 channels; 80D only uses 2) (detail / bitbucket)
  226. Ghost image: fix crash (issues #2796, #2783) (detail / bitbucket)
  227. gui-common: sync gui_uilock with crop_rec_4k (detail / bitbucket)
  228. QEMU: experimental MPU support for 80D, 750D and 760D
    seems to work with generic spells - at least the emulation goes further
    also minor refactoring / comments on MPU registers for earlier models
    also enabled for 5D4 just to avoid a crash - emulation doesn't reach mpu_send yet, but it calls InitializeIntercom (detail / bitbucket)
  229. QEMU tests: do not start if compilation fails
    (small nitpick that could result in false test results) (detail / bitbucket)
  230. QEMU: updated tests after b75e1342711a
    (context info is now correctly printed when returning from msg_queue_receive, take_semaphore etc) (detail / bitbucket)
  231. QEMU: generic MPU spells compatible with most EOS models (experimental) (detail / bitbucket)
  232. QEMU logging: fix losing track of called functions when DryOS tasks are switched outside interrupts
    see the assertion error on 5D4 callstack consistency test (after 442b691)
    to be tested; there was a similar error was on 80D, non-deterministic
    (encountered when running with -d debugmsg,callstack,tail with all patches enabled) (detail / bitbucket)
  233. QEMU: MPU status doesn't seem to matter much; simplified to prepare for DIGIC 6 compatibility
    todo: cross-check with actual hardware (detail / bitbucket)
  234. QEMU: shared memory initialization for DIGIC 6 (MEMDIV messages)
    to try: SHM_SHOW_INFO / SHM_SHOW_DIST_INFO on serial console (only 80D, 750D and 760D reach this far)
    ( sleep 3; echo "akashimorino";
      sleep 1; echo "SHM_SHOW_INFO";
      sleep 1; echo "SHM_SHOW_DIST_INFO";
    ) | ./ 80D -serial stdio (detail / bitbucket)
  235. QEMU: refactored serial flash SIO handler with io_log (detail / bitbucket)
  236. QEMU: refactored serial flash connections to avoid hardcoding camera model names
    fixme: D3 models and 1300D still hardwired to serial flash handlers to pass the tests (detail / bitbucket)
  237. QEMU: experimental serial flash support for 80D
    using SFDATA.BIN from 70D, patched at 0x10004 from 09 8B C1 20 to 00 00 01 20
    meaning: size of 70D's property block at 0x10000 is 0x12BC98 (data is shifted by 4 bytes)
    but 80D expects a maximum size of 0x12000 in FE47BF40 ("Liar Valid Packages!!" if the size check fails)
    so we trim the property block at the expected size of 0x12000
    this will lose a few properties, but at least the emulation goes further (no SF dumper for D6 yet)
    other 8MB SFDATA.BIN patched in the same way should also work (700D, 650D, EOSM, 6D),
    but their data block at 0x10000 is larger, so more properties will be probably lost (not tested) (detail / bitbucket)
  238. QEMU: RomRead DMA for DIGIC 6, used for initializing property blocks
    (very similar to regular DMA, slightly different register offsets) (detail / bitbucket)
  239. QEMU: slow down UART input to work around race conditions
    (not exactly clean, but at least DryShell tests are now passing on all models) (detail / bitbucket)
  240. QEMU: fixed UART on DIGIC 6 (DryShell works!)
    fixme: tests are failing, but typing on the UI works fine
    note: DIGIC 4/5 emulation changed a bit (0xC0270000 was misinterpreted before) (detail / bitbucket)
  241. QEMU: found out why DIGIC 6 models were getting stuck at startup!
    The firmware was reading the memory layout from CP15 registers;
    most of them were emulated well in QEMU, except ATCM and BTCM, which were implemented as NOP.
    They are still NOP in current QEMU git.

    Patching the memory regions loop is no longer required!
    (keeping empty 80D patch for future use) (detail / bitbucket)
  242. Merged unified into 100D_merge_fw101 (detail / bitbucket)
  243. Merged new-dryos-task-hooks into 100D_merge_fw101 (detail / bitbucket)
  244. 100D: MPU stubs (for dm-spy-experiments) (detail / bitbucket)
  245. MPU spells: some names could not be identified (fixed) (detail / bitbucket)
  246. QEMU tests: call rather than duplicating its work
    (fixes some tests failing if mtools is configured to use lowercase by default) (detail / bitbucket)
  247. on Mac, bring QEMU window to foreground
    (by default, the window is opened behind the terminal, so one may not even notice it) (detail / bitbucket)
  248. print camera name in QEMU window title (detail / bitbucket)
  249. only clear the terminal if running in interactive mode (detail / bitbucket)
  250. QEMU logging: always log unmapped memory regions (detail / bitbucket)
  251. GDB scripts: fix text alignment with "native" logging options (minor) (detail / bitbucket)
  252. QEMU fix null byte warning when parsing model list
    (bash 4.4 and newer? ) (detail / bitbucket)
  253. QEMU install: print fewer help details after installation; link to the online documentation (detail / bitbucket)
  254. QEMU readme: formatting, typos (detail / bitbucket)
  255. QEMU readme: more info regarding custom SD/CF images (detail / bitbucket)
  256. QEMU readme: more ways to install ML to the virtual SD/CF images (detail / bitbucket)
  257. QEMU readme: note about "make install_qemu" not available in all branches (detail / bitbucket)
  258. QEMU readme: note about models using a serial flash (detail / bitbucket)
  259. QEMU README: minor updates to 050a3cc (detail / bitbucket)
  260. Merged unified into qemu (detail / bitbucket)
  261. Merged makefile-updates into qemu (detail / bitbucket)
  262. Makefile: backout 0b9b550
    ?= not needed when overriding from command-line, e.g. make CONFIG_QEMU=y (detail / bitbucket)
  263. Merged makefile-updates into qemu (detail / bitbucket)
  264. Mac compatibility fixes (detail / bitbucket)
  265. QEMU: 5D3 1.2.3 GUI works!
    fixme: not covered by tests (detail / bitbucket)
  266. QEMU: refactored RTC CS
    each model now uses its own GPIO, rather than enabling all possible registers on all models
    70D call trace test: minor change to 0xC02201F8, no impact on functionality (detail / bitbucket)
  267. QEMU: 70D GUI works!
    - GDB patch required (SIO locking up DisplayMgr task, probably touch screen not responding)
    - RTC (similar to 6D, but on different SIO channel)
    - updated tests (menu, format, call trace)
    - minor change to 100D call trace test (0xC022005C = 450D RTC CS; no impact on functionality) (detail / bitbucket)
  268. QEMU: 6D GUI works!
    - MPU log and serial flash from Audionut,
    - RTC (a bit hackish, to be refactored)
    - GPIOs for HDMI and WriteProtect
    - tests (menu, format, call trace)
    - patched MPU spells to avoid an intermittent issue (race condition when setting picture quality?) (detail / bitbucket)
  269. QEMU: fix typo in MPU spells script (broken in a42e55a)
    "Complete WaitID = 0x80020000" should have been commented out
    this disables LiveView "emulation" in 700D/650D and fixes ML menu for nightly tests
    todo: add a test for this (existing tests did not catch this issue) (detail / bitbucket)
  270. QEMU tests: reordered (important, breaks often and/or very fast == runs earlier) (detail / bitbucket)
  271. QEMU tests: run in parallel when it's straightforward to do so (experimental)
    not parallelized: tests requiring custom builds or checking card contents afterwards (detail / bitbucket)
  272. QEMU tests: prepare for parallel execution (3)
    - stop each QEMU instance from the monitor socket
    - two methods: shutdown (clean DryOS shutdown, for GUI tests) and quit (clean QEMU shutdown without turning off the guest OS, for all other tests)
    - check for any stale qemu-system-arm / arm-none-eabi-gdb only after each set of tests (detail / bitbucket)
  273. QEMU tests: prepare for parallel execution (2)
    - unique QEMU_JOB_ID for each job
    - unique GDB port and VNC display, derived from QEMU_JOB_ID (detail / bitbucket)
  274. QEMU tests: prepare for parallel execution (1)
    - allow overriding GDB port for each instance (replaced '-s -S' with '-S -gdb tcp::$GDB_PORT'; gdb receives '-ex "set \$TCP_PORT=$GDB_PORT"')
    - allow overriding VNC display for each instance (replaced ':12345' with '$VNC_DISP')
    - indentation of qemu/gdb commands (detail / bitbucket)
  275. QEMU scripts: rough backend support for parallel execution
    - requires manual resource allocation
    - QEMU_JOB_ID used as prefix for qemu.monitor (each instance would get its own monitor socket)
    - GDB port can be overriden and derived from QEMU_JOB_ID (see README)
    - VNC port can be handled in the same way
    - README updated (detail / bitbucket)
  276. QEMU tests/readme: recent netcat requires -N (detail / bitbucket)
  277. QEMU tests: one more race condition fix (detail / bitbucket)
  278. QEMU tests: speed optimizations
    - only restore SD/CF images if they were actually changed
    - do not wait for gdb if it's not running
    - overhead with no tests running: from ~30 seconds to ~10 seconds (detail / bitbucket)
  279. QEMU tests: more race condition fixes (detail / bitbucket)
  280. QEMU tests: attempt to fix some race conditions (detail / bitbucket)
  281. QEMU tests: minor fixes after refactoring (detail / bitbucket)
  282. QEMU tests: use -snapshot to prevent changing SD and CF images
    (exceptions: tests for ROM dumper and DCIM, where we check card contents to validate the test result) (detail / bitbucket)
  283. QEMU tests: allow selecting only specific tests to run (lowercase arguments)
    Can be mixed freely with camera models (uppercase arguments)
    Default (no arguments): run all tests (detail / bitbucket)
  284. QEMU tests: refactored each test as a bash function
    - top-level continue -> return
    - moved common preparations to run_test
    - each test function uses globals $CAM and $TEST (camera model and test output basename)
    - test outputs named $TEST.whatever or $
    - generic cleanup after each test
    - top-level for loops kept; the loop body calls run_test (detail / bitbucket)
  285. QEMU: make sure mtools prints uppercase filenames by default
    (our tests assume this behavior, but some systems have different defaults) (detail / bitbucket)
  286. Merged makefile-updates into qemu (detail / bitbucket)
  287. QEMU: fix arrow unpress handling on cameras without UDLR (tested on EOSM) (detail / bitbucket)
  288. QEMU tests: replaced two slow grep commands with sed (detail / bitbucket)
  289. QEMU tests: check call/return trace only until the last function from IDC
    (the next 1000 lines can be nondeterministic on digic 6 models) (detail / bitbucket)
  290. QEMU tests: refactored matching heuristic for call/return trace on main firmware
    (rewritten in Python - much faster) (detail / bitbucket)
  291. QEMU install: brew docutils needs additional setup; just use the one from pip (detail / bitbucket)
  292. removed dependency on realpath
    (not available on Mac) (detail / bitbucket)
  293. Makefile: fix compiling tcc (detail / bitbucket)
  294. QEMU install: Mac cleanups, to be tested
    (xcode-select auto-installed by brew, docutils available as package) (detail / bitbucket)
  295. Makefile: moved toolchain setup to Makefile.setup
    (this allows toolchain to be overridden from Makefile.user) (detail / bitbucket)
  296. use ESC c to reset the terminal, instead of "tput reset"
    ("tput reset" may crash when running as background job - bash bug?) (detail / bitbucket)
  297. QEMU install: refuse to overwrite an existing installation (detail / bitbucket)
  298. QEMU install: only apply the gcc 7.x patch if user actually has gcc 7
    also commit the gcc 7.x patch to our local git repo, so it won't affect updates to qemu-2.5.0.patch (detail / bitbucket)
  299. QEMU install: we have gcc-arm-embedded:i386 on the PPA :) (detail / bitbucket)
  300. Makefile: fixes to allow compiling ML with Linaro arm-eabi-gcc; updated toolchain recommendations (detail / bitbucket)
  301. QEMU: patch for building with gcc 7.x (detail / bitbucket)
  302. QEMU install: explicit check for Ubuntu (other systems use apt-get, with different package names); explicit "dpkg --add-architecture i386" if any package needs it
    (should fix installation on newer Ubuntu - to be tested) (detail / bitbucket)
  303. MPU spells: try to use parameters (ARG0, ARG1 etc) in simple cases
    (same-length replies, repeating the arguments in the same position)
    (note: PROP_BURST_COUNT doesn't always work well like this) (detail / bitbucket)
  304. QEMU: typo when loading raw images for capture emulation (detail / bitbucket)
  305. MPU spells: identified some lens properties (PROP_LENS and PROP_LENS_NAME) (detail / bitbucket)
  306. MPU spells: identify property description for Complete WaitID messages (detail / bitbucket)
  307. QEMU: comment out some common MPU spells and use the ones from our headers;
    always include the headers in autogenerated spells
    always disable sensor cleaning
    (some emulation differences in a few models, hopefully non-essential) (detail / bitbucket)
  308. MPU spells: identified PROP_BATTERY_CHECK
    (verified before dialogs such as card format or firmware update) (detail / bitbucket)
  309. QEMU: print names of MPU spells (exported from
    and highlight the ones without name or without known behavior (detail / bitbucket)
  310. MPU spells: documented a bunch of properties and updated their indexing
    (some trial and error, others copied from ) (detail / bitbucket)
  311. QEMU: handle INFO unpress event (for 5D3) (detail / bitbucket)
  312. QEMU: generate valid dark frames if a CR2 isn't available (detail / bitbucket)
  313. QEMU: allow full-res 14-bit data from any format readable by dcraw
    (usually CR2 and DNG; example in README) (detail / bitbucket)
  314. QEMU: use <%d> for EDMAC connections in debug messages
    (e.g. connection <5>, channel #16) (detail / bitbucket)
  315. QEMU: moved image processing engine functions to separate file
    (EDMAC, PREPRO, JPCORE...) (detail / bitbucket)
  316. make install_qemu: check whether sd.img or cf.img is mounted before copying files (detail / bitbucket)
  317. also print the command-line of arm-none-eabi-gdb, if any
    and whether it's running as a background job or not (detail / bitbucket)
  318. QEMU: updated 600D test to include the info screen
    (had to enable it in Canon menu) (detail / bitbucket)
  319. QEMU: disabled sensor cleaning animation on 5D2, 50D, 60D
    (interferes with ML menu; updated tests) (detail / bitbucket)
  320. 70D: update dual iso adresses for 1.1.2 (detail / bitbucket)
  321. Merged new-dryos-task-hooks into 70D_merge_fw112 (detail / bitbucket)
  322. QEMU: warn user when shutdown is not clean (detail / bitbucket)
  323. QEMU: updated 100D menu test to show all menus (including the FlexiZone AF setting) (detail / bitbucket)
  324. QEMU: run 100D with FlexiZone AF enabled (this setting results in ML crashing at startup) (detail / bitbucket)
  325. QEMU tests: declared cameras able to run the FRSP test at the beginning
    (so run_test arguments now apply to this test as well) (detail / bitbucket)
  326. qemu-frsp: updated to operate from PLAY mode
    previously, it was operating on the date/time screen;
    now all models are starting either with Canon's info screen,
    or with display off, or show the sensor cleaning animation (detail / bitbucket)
  327. QEMU install: updated regex for parsing GUI_CAMS from
    (to allow multi-line declaration) (detail / bitbucket)
  328. QEMU tests: 100D typo
    (old file) (detail / bitbucket)
  329. QEMU tests: updated for 5D2/50D without date/time dialog
    note: sensor cleaning animation makes the test nondeterministic - do not check these screens (detail / bitbucket)
  330. QEMU: 5D2/50D RTC patch from g3gg0
    (date/time dialog is history!) (detail / bitbucket)
  331. QEMU: updated README (detail / bitbucket)
  332. QEMU: enabled PROP_MPU_GPS on all DIGIC 5 models (detail / bitbucket)
  333. QEMU: EOS M boots the GUI!
    (it also needs the GPS patch - moved to GPS.h) (detail / bitbucket)
  334. QEMU: updated tests
    (after RTC emulation, I2C and patches cleanup) (detail / bitbucket)
  335. GDB scripts: date/time patches no longer needed! (detail / bitbucket)
  336. QEMU: reworked I2C debug messages (detail / bitbucket)
  337. QEMU: updated MMIO highlighting code
    (module name is now highlighted as well - easier to spot) (detail / bitbucket)
  338. QEMU: moved RTC emulation to its own handler; reworked debug messages (detail / bitbucket)
  339. QEMU: enabled RTC emulation for most models
    exceptions: 5D2 and 50D appear to use a different chip or method (detail / bitbucket)
  340. QEMU: RTC patch from g3gg0
    5D3 and 60D no longer show the date/time screen! (detail / bitbucket)
  341. QEMU: I2C patch from g3gg0 (detail / bitbucket)
  342. QEMU: figured out why 5D3 was locking up at startup and in certain menus - it was waiting for PROP_MPU_GPS!
    (thanks g3gg0) (detail / bitbucket)
  343. QEMU install: don't install two toolchains if user selects 64-bit GDB (detail / bitbucket)
  344. QEMU install: libnewlib-arm-none-eabi is architecture-independent (detail / bitbucket)
  345. QEMU install: download toolchain from launchpad and use as mirror
    ( is currently down, hopefully not from our experiments) (detail / bitbucket)
  346. QEMU install: make it clear that *you* have to run the PATH command (not the script);
    use export (e.g. for shells other than bash) - (detail / bitbucket)
  347. QEMU install: 32-bit Mac toolchain doesn't have gdb... (detail / bitbucket)
  348. QEMU install: wrong quotes (detail / bitbucket)
  349. QEMU install: fix some copy/paste errors (detail / bitbucket)
  350. QEMU install: allow using the current 64-bit toolchain on Ubuntu; minor fixes (detail / bitbucket)
  351. QEMU install: more toolchain options (experimental)
    - Mac: try the toolchain from (not tested)
    - Ubuntu: options to install GCC from Ubuntu repo
      - older version, 32-bit or 64/bit
      - from gcc-arm-embedded PPA (6.x 64-bit)
      - from gcc-arm-embedded (32-bit installed in home directory)
      - use the existing installation if possible
    - Ubuntu: don't install libfdt-dev (not needed?)
    - all: print warnings about 64-bit GDB and allow using it anyway if user says so
    - all: check whether arm-none-eabi-gcc can compile a simple program
    - all: check whether rst2html or vncdotool are installed outside package manager (detail / bitbucket)
  352. Merged in kichetof/magic-lantern-1/kichetof/qemu-install-elegant-way-to-install-pack-1506440503741 (pull request #861)

    QEMU install: elegant way to install packages on macOS (detail / bitbucket)
  353. QEMU install: remove docutils install for macOS (detail / bitbucket)
  354. QEMU install: elegant way to install packages on macOS
    Checks if the package is already installed otherwise install it (detail / bitbucket)
  355. QEMU install: on Ubuntu, gdb-arm-none-eabi:i386 and gcc-arm-none-eabi can be installed with the same command
    (false alarm; let's also check for correct installation) (detail / bitbucket)
  356. QEMU install: pip does not require sudo (detail / bitbucket)
  357. QEMU install: fix for dpkg -l also returning non-installed packages (detail / bitbucket)
  358. QEMU install: on Ubuntu, gdb-arm-none-eabi:i386 and gcc-arm-none-eabi must not be installed with the same command
    (otherwise, we get gcc-arm-none-eabi:i386 which does not include libnewlib-arm-none-eabi...) (detail / bitbucket)
  359. QEMU install: pip recommends sudo -H (detail / bitbucket)
  360. QEMU install: also set up the toolchain for compiling ML (Ubuntu) (detail / bitbucket)
  361. QEMU install: typo (detail / bitbucket)
  362. Makefile: updated toolchain recommendation; minor edits (detail / bitbucket)
  363. QEMU install: 64-bit arm-none-eabi-gdb doesn't work (cannot boot 5D3 GUI),
    no matter where it comes from (Ubuntu repo or gcc-arm-embedded PPA)...
    on 64-bit Ubuntu, gdb-arm-one-eabi:i386 works, but Windows and Mac are out of luck for now (detail / bitbucket)
  364. Makefile: attempt to use any arm-none-eabi-gcc from PATH, if already installed (to be tested)
    By default, it will attempt to use ~/gcc-arm-none-eabi-5_4-2016q3 if installed. (detail / bitbucket)
  365. QEMU install: gcc-arm-embedded try #5 (detail / bitbucket)
  366. QEMU install: gcc-arm-embedded try #4 (detail / bitbucket)
  367. QEMU install: gcc-arm-embedded try #3 (detail / bitbucket)
  368. QEMU install: gcc-arm-embedded try #2 (detail / bitbucket)
  369. QEMU install: let's try gcc-arm-embedded from PPA (detail / bitbucket)
  370. Merged in kichetof/magic-lantern-1/kichetof/qemu-check-if-brew-is-installed-on-macos-1506424463270 (pull request #860)
    also included this suggestion: (detail / bitbucket)
  371. QEMU: check if brew is installed on macOS (detail / bitbucket)
  372. Makefile: use gcc 5.4.1 by default (current version from ) (detail / bitbucket)
  373. QEMU install: more Mac patches (not tested)
    from (detail / bitbucket)
  374. QEMU install: also install docutils and vncdotool (detail / bitbucket)
  375. QEMU install: verbosity fine-tuning (detail / bitbucket)
  376. QEMU: minor README updates (detail / bitbucket)
  377. QEMU: README formatting (detail / bitbucket)
  378. QEMU: README formatting (detail / bitbucket)
  379. QEMU: updated install instructions in README (detail / bitbucket)
  380. QEMU install: arm-none-eabi-gdb requires 32-bit libraries on Ubuntu (detail / bitbucket)
  381. QEMU: set up arm-none-eabi-gdb from the install script (detail / bitbucket)
  382. QEMU: auto-install dependencies if running on Ubuntu-based systems (to be tested) (detail / bitbucket)
  383. QEMU: some Mac patches for install script (not tested) (detail / bitbucket)
  384. QEMU: ggrep patch for Mac from kichetof (detail / bitbucket)
  385. QEMU: supply an email address for git if the default doesn't work (detail / bitbucket)
  386. Merged unified into 70D_merge_fw112 (detail / bitbucket)
  387. QEMU tests: M3 display test, using DISKBOOT.BIN from Ant123
    (also test other PowerShot models to see whether they are loading DISKBOOT.BIN from the card) (detail / bitbucket)
  388. QEMU: EOS M3 display support from Ant123 (using a custom CHDK build) (detail / bitbucket)
  389. QEMU README: Bitbucket doesn't resize the images... (detail / bitbucket)
  390. QEMU README: let's try some screenshots (detail / bitbucket)
  391. QEMU: more README updates
    - shutdown notes (system_powerdown vs quit)
    - rewritten QEMU monitor section
    - how to bypass the date/time dialog (detail / bitbucket)
  392. QEMU: minor improvements to README (detail / bitbucket)
  393. QEMU: README updates
    - shutdown and reboot
    - running from physical card
    - menu navigation (keys)
    - misc notes, minor typos (detail / bitbucket)
  394. QEMU: 1000D GUI works too
    (based on 450D) (detail / bitbucket)
  395. QEMU: stretch display vertically on VxWorks models
    (double all lines to get correct aspect ratio) (detail / bitbucket)
  396. QEMU: emulate JUMP and Direct Print buttons (for VxWorks models) (detail / bitbucket)
  397. Backout 89254290c3f7
    (shutdown only works only when not activating Canon menu, with or without this patch) (detail / bitbucket)
  398. QEMU: 450D GUI working!
    - updated MPU spells, button codes and parsing scripts
    - WriteProtect GPIO
    - SET does not send unpress events
    - menu navigation working, format locks up
    - shutdown working
    - updated tests (detail / bitbucket)
  399. QEMU: print whether available keys are press-only or they also send unpress events (detail / bitbucket)
  400. QEMU: re-created 70D MPU spells; shutdown working (detail / bitbucket)
  401. QEMU: shutdown working on most models able to start the GUI (all but 70D) (detail / bitbucket)
  402. minimal targets: removed old references to qemu-util (detail / bitbucket)
  403. QEMU tests: always stop GDB when QEMU quits (detail / bitbucket)
  404. QEMU tests: updated to handle shutdown and reboot
    (shutdown test after menu navigation, reboot test when formatting card and restoring ML) (detail / bitbucket)
  405. QEMU: handle PROP_ABORT (after opening battery door)
    fixme: it doesn't shutdown, figure out why (detail / bitbucket)
  406. QEMU: handle the powerdown event
    (menu: Machine -> Power Down) (detail / bitbucket)
  407. QEMU: experimental shutdown handling (card door and power switch) (detail / bitbucket)
  408. reloc.c: cleaned up ifdef's (detail / bitbucket)
  409. QEMU: minor README update
    (ML menu now working on all models able to boot the GUI) (detail / bitbucket)
  410. QEMU: 1200D doesn't have a dedicated delete button
    (use the key codes from 1100D - same as 600D, but without the delete button) (detail / bitbucket)
  411. QEMU: experimental Av button handling for Rebel cameras
    (fixme: has some side effects, such as changing the displayed shutter speed) (detail / bitbucket)
  412. QEMU: don't auto-repeat keys, except for scrollwheels (detail / bitbucket)
  413. QEMU: also allow right shift for half-shutter (detail / bitbucket)
  414. QEMU: handle the FUNC button (for 50D menu navigation) (detail / bitbucket)
  415. Merged unified into qemu (detail / bitbucket)
  416. QEMU: updated 700D to 1.1.5 (GDB scripts and menu tests) (detail / bitbucket)
  417. QEMU: README updates (detail / bitbucket)
  418. QEMU: initial README draft (detail / bitbucket)
  419. Makefile: "make install_qemu" for platform targets;
    updated to use it (detail / bitbucket)
  420. qemu-util: qprintf requires stdarg.h (when not included from dryos.h) (detail / bitbucket)
  421. Makefile: allow using CONFIG_QEMU for modules (qprintf and related functions) (detail / bitbucket)
  422. Makefile: allow overriding CONFIG_* options on the command line
    e.g. make CONFIG_QEMU=y
    (suggestion from g3gg0) (detail / bitbucket)
  423. qemu-util: make the QEMU debugging API header-only (detail / bitbucket)
  424. console include qemu-util.h is no longer needed (detail / bitbucket)
  425. menu: removed QEMU workaround (no longer needed - GUI mode switch works on most models) (detail / bitbucket)
  426. QEMU: workaround for invalidating executable code after ROM patches
    fixme: this should be handled internally by QEMU; not sure why it isn't
    to reproduce: register_interrupt hook on dm-spy-experiments branch, with hooks enabled right after Canon's init task
    (the hook will fail on models where this function is in ROM, e.g. 550D, but will succeed if it's in RAM, e.g. 5D3) (detail / bitbucket)
  427. Raw backend: some more debug messages
    (useful for qemu-frsp tests) (detail / bitbucket)
  428. QEMU tests: reworked FA_CaptureTestImage test:
    - enabled debugmsg in the main log; moved UART output to a new file
    - run until FA_CaptureTestImage Fin appears in the UART log
    - also check models with no display (from the UART log) (detail / bitbucket)
  429. qemu-frsp: fix compilation (detail / bitbucket)
  430. Merged unified into qemu (detail / bitbucket)
  431. QEMU tests: FA_CaptureTestImage test also working on 50D, 500D, 550D and - without display - on 1100D (detail / bitbucket)
  432. qemu-frsp: use CONFIG_QEMU to enable debug messages from raw.c (detail / bitbucket)
  433. qemu-util: removed old experiments
    (kept the initial hello world for historical purposes) (detail / bitbucket)
  434. Raw backend: print to QEMU console if compiled with CONFIG_QEMU=y
    (without enabling RAW_DEBUG) (detail / bitbucket)
  435. qemu-frsp: fix compiling on 500D, 5D2 and 50D (detail / bitbucket)
  436. memcheck: check malloc heap in the same way as AllocateMemory (500D only for now) (detail / bitbucket)
  437. memcheck: option to identify uninitialized memory accesses in main firmware
    that could be exploited from bootloader (detail / bitbucket)
  438. memcheck: fix operation on DIGIC 6 (detail / bitbucket)
  439. memcheck: fix operation without ML memcpy (detail / bitbucket)
  440. QEMU: tests for memchk, from minimal ML
    (not all of them are passing) (detail / bitbucket)
  441. qemu-hptimer: CONFIG_INSTALLER no longer needed (detail / bitbucket)
  442. 7D: fix minimal targets (no LEDON/LEDOFF on this model though) (detail / bitbucket)
  443. GDB scripts: register_interrupt on all models (with test) (detail / bitbucket)
  444. GDB scripts: removed duplicate code between */debugmsg.gdb and */patches.gdb
    (if patches.gdb is present, debugmsg.gdb will always include it)
    (also moved 1300D patch to separate file) (detail / bitbucket)
  445. GDB scripts: disabled slow items by default
    (semaphores, message queues, MPU communication, ResLock, EDMAC) (detail / bitbucket)
  446. GDB scripts: symbol-file commands to get debugging symbols from ML (commented out)
    todo: auto-enable when autoexec.bin is executed? (detail / bitbucket)
  447. QEMU: always load camera-specific files from CAM/ or CAM/FW/ (refactored to avoid duplicate code) (detail / bitbucket)
  448. QEMU tests: updated menu test for 70D 1.1.2 (detail / bitbucket)
  449. QEMU tests: updated 70D needles (expected results) for 1.1.2 (detail / bitbucket)
  450. QEMU tests: allow camera models as arguments (detail / bitbucket)
  451. QEMU: with -d exec, make sure the instructions aren't printed twice (detail / bitbucket)

Started by user Alex

Revision: 8717b89f558f753084216f94a62cffa639cd7974