Started 1 yr 2 mo ago
Took 1 min 18 sec

Success Build #21 (Aug 21, 2018 8:48:25 AM)

Build Artifacts
magiclantern-Nightly.2018Aug21.1200D102.zip1.78 MB view
Changes
  1. Merged qemu into 1200D (detail / bitbucket)
  2. 1200D: removed old minimal target to fix "make zip" (detail / bitbucket)
  3. Minimal targets: only compile subdirectories with a valid Makefile (detail / bitbucket)
  4. QEMU tests: FA_CaptureTestImage works on 1300D
    (prints "Image Power Failure", but the fix is not straightforward) (detail / bitbucket)
  5. Merged qemu into 1200D (detail / bitbucket)
  6. Merged lua_fix into 1200D (detail / bitbucket)
  7. fw-signature.h: fix bad merge (detail / bitbucket)
  8. Makefile: when running "make install", copy ML-SETUP.FIR only for the generic profile
    (not for minimal or other targets) (detail / bitbucket)
  9. Makefile: always check all minimal targets when running "make zip"
    (only check whether they compile without errors, just like with the installer) (detail / bitbucket)
  10. Minimal target: moved the Hello World example into its own directory and removed old platform folders (detail / bitbucket)
  11. Minimal targets: 5D3 1.1.3 hacks no longer needed (detail / bitbucket)
  12. GDB scripts: fix IDC names containing spaces (detail / bitbucket)
  13. QEMU: fix timeout in ImgPowDet emulation
    (there were nondeterministic errors in the FRSP test) (detail / bitbucket)
  14. QEMU: emulate ADTGDMA interrupt (used on 100D and EOS M2)

    - fixes FA_CaptureTestImage on 100D
    - some LiveView screenshots changed on 100D
    - color palette in LiveView changed on M2; can be worked around by pressing L (updated menu tests) (detail / bitbucket)
  15. QEMU tests: ignore nondeterministic screenshot on 6D
    (may appear with or without free space) (detail / bitbucket)
  16. GDB scripts: moved try_expand_ram_struct at the top (detail / bitbucket)
  17. GDB scripts: minor whitespace fix (detail / bitbucket)
  18. QEMU: ensure valid RAM address before executing EDMAC transfers
    (EOS M fails here when running FA_CaptureTestImage) (detail / bitbucket)
  19. QEMU: image sensor power emulation
    (fixes FA_CaptureTestImage on 5D2; tested on all other models able to run the FRSP test) (detail / bitbucket)
  20. QEMU: output dummy data (zeros) on read EDMAC connections

    Fixes FA_CaptureTestImage on 700D and 650D. (detail / bitbucket)
  21. qemu-frsp: fix compiling for 70D (detail / bitbucket)
  22. QEMU: allow reads to EDMAC CHSW registers
    (required for FA_CaptureTestImage emulation on 6D and others) (detail / bitbucket)
  23. qemu-frsp: ensure valid exposure settings before the test
    (exposure time not too long, ISO other than Auto; required on 600D and others) (detail / bitbucket)
  24. QEMU: fix YUV vertical scaling for 1100D
    (only the FRSP test uses it for now) (detail / bitbucket)
  25. qemu-frsp: allocate a YUV buffer if there isn't one already set up (only with CONFIG_QEMU)

    Fixes preview on 5D3 and 1100D, where Canon firmware does not allocate one at startup. (detail / bitbucket)
  26. QEMU tests: all models able to navigate Canon menu should pass the FRSP (FA_CaptureTestImage) test

    Most of them will fail; to be fixed. (detail / bitbucket)
  27. QEMU tests: handle models not yet in mainline
    (FRSP and HPTimer tests are using this for now) (detail / bitbucket)
  28. QEMU: updated gcc 7/8 patch for systems using virtio-9p (detail / bitbucket)
  29. QEMU: updated gcc 7.x patch to also work with gcc 8.x (detail / bitbucket)
  30. eos.c: fix gcc8 warnings (detail / bitbucket)
  31. Makefile: allow "make install*" without a FIR file
    (for minimal targets and new platforms) (detail / bitbucket)
  32. QEMU logging: attempt to identify tail calls by default
    (-d calls,notail to disable) (detail / bitbucket)
  33. QEMU tests: updated for 200D 1.0.1 (detail / bitbucket)
  34. QEMU logging: moved IDC files into model subdirectories
    (for consistency with romcpy shell files) (detail / bitbucket)
  35. QEMU logging: fix typo when using -d romcpy
    (output file path was not printed correctly) (detail / bitbucket)
  36. QEMU tests: initial support for 800D
    (fixme: call trace not deterministic, same as 77D) (detail / bitbucket)
  37. 800D: minor stub fixes in GDB script (detail / bitbucket)
  38. qemu: add 800D to model_list.c, and add 800D/debugmsg.gdb (detail / bitbucket)
  39. Config options: fix issue #2892
    (custom presets not appearing in menu) (detail / bitbucket)
  40. Merged config_var_refactor into lua_fix (detail / bitbucket)
  41. Merged unified into lua_fix (detail / bitbucket)
  42. Menu: fix config var incorrectly changed during fast toggles
    (e.g. 36 -> 35 without calling the CBR) (detail / bitbucket)
  43. Config variables: declare all internal structures static
    (minor refactor) (detail / bitbucket)
  44. Config variables: include the forward declaration in the CONFIG_INT_EX definition
    (no longer needed to declare CONFIG_VAR_CHANGE_FUNC's twice) (detail / bitbucket)
  45. Config variables: use CONFIG_VAR_CHANGE_FUNC (similar to MENU_SELECT_FUNC); minor renames (detail / bitbucket)
  46. Merged unified into config_var_refactor (detail / bitbucket)
  47. audio-ak: fix compiling for 500D (detail / bitbucket)
  48. menu: short joystick clicks should not be interpreted as SET outside ML menu
    (fixes incorrect trigger of Auto ETTR from joystick, for example) (detail / bitbucket)
  49. rename  xxx_update functions for config_vars to xxx_on_change (detail / bitbucket)
  50. rename CONFIG_INT_UPDATE to CONFIG_INT_EX and .update to .on_change to avoid confusion and name conflicts with MENU_UPDATE_FUNCs (detail / bitbucket)
  51. Merge (detail / bitbucket)
  52. config var: refactor audio-lapis to use new config var CBR (not tested -> I have none of these cameras) (detail / bitbucket)
  53. config var: refactor audio-ak and audio-common to use new config var CBR (TODO: audio-lapis) (detail / bitbucket)
  54. Ghost image: further cleanups and fixes (detail / bitbucket)
  55. Ghost image: fix crash (issues #2796, #2783, #2878, #2885) (detail / bitbucket)
  56. features.tmpl edited online with Bitbucket: use id in th section heading to allow for direct linking via anchor (detail / bitbucket)
  57. Merged in edmac (pull request #886)

    EDMAC module: fixes for DIGIC 4, connection map (detail / bitbucket)
  58. Merged in adv_int (pull request #907)

    Advanced intervalometer updates (detail / bitbucket)
  59. Merged in memory-backend (pull request #906)

    Memory backend improvements (detail / bitbucket)
  60. Makefile: fix "make install_qemu CONFIG_QEMU=y" for minimal targets (detail / bitbucket)
  61. QEMU: experimental support for gdb-multiarch
    (latest Ubuntu no longer has gdb-arm-none-eabi...) (detail / bitbucket)
  62. QEMU install: minor fixes (detail / bitbucket)
  63. QEMU install: on some systems, building GDB requires makeinfo; skip it
    https://sourceware.org/bugzilla/show_bug.cgi?id=18113
    Also show the last few lines from the compilation logs if there's an error. (detail / bitbucket)
  64. QEMU install: on older Ubuntu, gcc/gdb installation without package manager may be required (detail / bitbucket)
  65. QEMU install: minor fix for 32-bit Ubuntu
    (option 3: no 64-bit gcc available) (detail / bitbucket)
  66. QEMU installer: removed option to allow old 64-bit GDB
    (hopefully no longer needed) (detail / bitbucket)
  67. QEMU installer: minor fix regarding GDB installation
    (force compiling from source if a valid 64-bit gdb is already installed) (detail / bitbucket)
  68. QEMU installer: attempt to compile gdb 8.1 from source if a 32-bit version is not available (in particular, Mac and WSL)

    https://www.magiclantern.fm/forum/index.php?topic=2864.msg200954#msg200954 (thanks t3r4n) (detail / bitbucket)
  69. QEMU install: there's no DISPLAY variable on Mac (detail / bitbucket)
  70. QEMU: better emulation for cache patches

    (uninstalling works, at least for dm-spy-experiments) (detail / bitbucket)
  71. QEMU: fix CPU0 labels incorrectly appearing in DIGIC 6 logs
    (only DIGIC 7 should display these) (detail / bitbucket)
  72. QEMU: moved ARM946EOS-specific functions (cache lockdown and WFI) from cpu.c to helper.c (detail / bitbucket)
  73. Minimal targets: CONFIG_QEMU no longer hardcoded in Makefile
    (should be specified on the command line if desired) (detail / bitbucket)
  74. Makefile: allow CONFIG_QEMU to work on all ML profiles, including minimal and installer

    By default, CONFIG options are only used for the generic profile.
    This enables qprintf for debugging DIGIC 6/7 ports using the minimal profile. (detail / bitbucket)
  75. QEMU: fix printing callstack from GDB scripts
    (broken in 1834cd8) (detail / bitbucket)
  76. GDB scripts: workaround for a crash occuring with 5D
    (possibly GDB bug; can't explain why it works) (detail / bitbucket)
  77. qemu-frsp: fix compiling on lua_fix codebase
    (1200D and soon all others) (detail / bitbucket)
  78. QEMU: updated expected test results for 1200D 1.0.2
    (no stubs changed in debugmsg.gdb) (detail / bitbucket)
  79. QEMU: removed bogus/unused BGMT_ISO (detail / bitbucket)
  80. QEMU: fix Q button code for 1200D

    - https://www.magiclantern.fm/forum/index.php?topic=12627.msg200889#msg200889
    - assuming the same applies to 1300D; unsure about 600D/1100D (detail / bitbucket)
  81. QEMU: fix compiling on 32-bit x86 hosts

    Caveat: -d romcpy not working on x86 (requires int128_t) (detail / bitbucket)
  82. QEMU README: initial notes on DIGIC 7 (detail / bitbucket)
  83. QEMU: initial support for DIGIC 7 EOS (200D, 77D, 6D2)
    - added ROMID; updated MemDiv, XDMAC, SDIO
    - emulation starts many tasks, talks to MPU, initializes SD, creates the DCIM directory on the virtual card
    - fails with ERROR WaitPU1 TimeOut
    - dumpf does not save any logs (figure out why)
    - note: M5 ROM should now be loaded as ROM0 (detail / bitbucket)
  84. QEMU logging: initial support for DIGIC 7
    (CPU0 only; exception vectors at nonzero address) (detail / bitbucket)
  85. QEMU tests: ROM dumper needs larger timeout on slower computers; undo unwanted changes from cb93334 (detail / bitbucket)
  86. QEMU tests: fix expected results for restore after format after updating SD image (detail / bitbucket)
  87. QEMU tests: reworked ROM dump test to wait as much or as little as each camera needs
    (fixme: 70D waits for some CFDMA messages that are for some other device) (detail / bitbucket)
  88. QEMU: usleep patching no longer required on M3 (detail / bitbucket)
  89. QEMU: updated ROM dump tests to check SFDATA.BIN too
    (currently only applies to DIGIC 6) (detail / bitbucket)
  90. QEMU: updated SD image with latest display test
    (changeset 9b37638) (detail / bitbucket)
  91. QEMU: experimental UTimer emulation
    - these look pretty much like regular timers (same offsets), but behave like HPTimers!
    - UTimer patches from DIGIC 6 no longer needed!
    - fine-tuned HPTimer messages (detail / bitbucket)
  92. QEMU: fix logging of MMIO registers from the same range as MREQ
    (eos_handle_mreq also receives a few other registers, unknown yet) (detail / bitbucket)
  93. QEMU: specify actual RAM size for each model, rather than using generic values
    (emulating with larger size usually works, but doesn't catch some edge cases) (detail / bitbucket)
  94. QEMU: reordered model definitions in model_list.c
    (grouped by DIGIC version and similarity) (detail / bitbucket)
  95. QEMU: renamed IO_MEM_START/SIZE to MMIO_ADDR/SIZE for consistency;
    added MMIO_ADDR to model_list.c (possibly needed for future models) (detail / bitbucket)
  96. QEMU: removed unused entries; moved ML helpers to a different GPIO range.

    Old range was not accessible on certain models, such as PowerShots and DIGIC 7.
    Old GPIOs are still accepted (debugging existing code from experimental branches is still possible without merging latest qemu). (detail / bitbucket)
  97. QEMU logging: -d romcpy now output a shell script for extracting the copied blocks (detail / bitbucket)
  98. QEMU: memfd patch to fix compilation with glibc 2.27
    https://patchwork.openembedded.org/patch/147682/ (detail / bitbucket)
  99. QEMU installer: minor updates
    - option to "make clean" before renaming the old folder (to save disk space)
    - exit if QEMU fails to compile
    - check for a valid DISPLAY (important for WSL)
    - updated help links (detail / bitbucket)
  100. QEMU: updated CPU definition for DIGIC 7; renamed for older models and reverted the HIVECS property back to false (detail / bitbucket)
  101. QEMU tests: updated checksums for EOS M/M2 screenshots displaying date/time
    (fix commit 8c575ef99b7f) (detail / bitbucket)
  102. QEMU tests: updated checksum for a screenshot affected by transparency - commit 5b274e3
    (Canon quirk - it's not even a LiveView screenshot) (detail / bitbucket)
  103. annotate_mpu_log.py: allow incomplete mpu_send/recv lines
    (such as the ones from 80D logs) (detail / bitbucket)
  104. MPU spells: documented some AF-related properties (detail / bitbucket)
  105. GDB scripts: also identify and name PTP handlers (detail / bitbucket)
  106. GDB scripts: identify named functions during execution and export as IDC

    Named functions identified from: task_create, register_func, register_interrupt, CreateStateObject
    Tested on 5D3 1.1.3, EOSM2 1.0.3 and 80D 1.0.2 (missing stubs added). (detail / bitbucket)
  107. QEMU: check whether the ROM contents are mirrored (whether dumped size is larger than actual ROM size)

    ```
    [EOS] loading './50D/ROM0.BIN' to 0xF0000000-0xF0FFFFFF
    [EOS] mirrored data; unique 0x400000 bytes repeated 0x4 times
    [EOS] loading './50D/ROM1.BIN' to 0xF8000000-0xF8FFFFFF
    [EOS] mirrored data; unique 0x800000 bytes repeated 0x2 times
    ```

    https://www.magiclantern.fm/forum/index.php?topic=2864.msg199837#msg199837 (detail / bitbucket)
  108. QEMU: SRM_SetBusy/ClearBusy emulation for 5D3/6D/70D (detail / bitbucket)
  109. annotate_mpu_log.py: mark unknown MPU messages with ???

    (this ensures all MPU messages are displayed to the terminal, including unknown ones) (detail / bitbucket)
  110. Menu: QEMU hack 90f702c no longer needed for EOS M/M2
    (keeping changes to gui.h and button_codes.h) (detail / bitbucket)
  111. run_canon_fw.sh: fix printing GDB command line on systems where process name is limited to 15 chars;
    only look at processes started by the same parent as this script (to avoid false positives)
    to be tested on Mac and WSL (detail / bitbucket)
  112. QEMU: EOS M and M2 appear to handle the Q/SET button just like 100D
    https://www.magiclantern.fm/forum/index.php?topic=21765.msg198769#msg198769 (detail / bitbucket)
  113. QEMU: enabled MPU properties for EOS M (no more issues after LiveView emulation) (detail / bitbucket)
  114. QEMU: allow any argument for PROP_LEO_LENSID (EOSM); documented PROP_LEO_LENS*

    Should fix emulation with ROMs saved with a different lens (apparently lens ID goes into ROM - property 0xC000004)
    https://www.magiclantern.fm/forum/index.php?topic=9741.msg198847#msg198847 (detail / bitbucket)
  115. QEMU: send PROP_LV_LENS message at initialization (5D3 1.1.3; 1.2.3 commented; the message is model-specific)

    Useful for LiveView emulation (display focal length, focus distance etc)
    Message sent in a different place (not as in the logs), as it interferes with our (broken) LiveView emulation (detail / bitbucket)
  116. QEMU: experimental bitmap transparency support
    (doesn't match the hardware exactly, but it's better than nothing) (detail / bitbucket)
  117. QEMU: experimental movie mode switch (V key)
    Some cameras have dedicated movie mode on the dial, others use a switch and can record video in any mode dial position. (detail / bitbucket)
  118. QEMU: key mapping for Zoom In / Zoom Out (they don't do anything interesing yet);
    allow defining different keybindings on the same physical key (5D3/6D: only one zoom button, unlike most others)
    cleaned up zoom button handling on 5D3 and 6D (unpress zoom out should not be sent from keyboard, for example) (detail / bitbucket)
  119. QEMU: fix copy/paste error in HPTimer emulation
    (no side effects) (detail / bitbucket)
  120. QEMU tests: large timeouts appear to help in some tricky cases
    (such as mode switches, which may be slower than usual) (detail / bitbucket)
  121. QEMU: updated GUI tests for LiveView.

    EOS M/M2: no more reason to start with the date/time dialog.
    Still some color palette issues; usually can be worked around by switching to other video mode and back.
    Minor call trace differences for 650D and 700D (missed from previous commit) (detail / bitbucket)
  122. QEMU: LiveView works!!! (GUI elements only, no image)
    Credits go to Greg for the first PoC https://www.magiclantern.fm/forum/index.php?topic=2864.msg179867#msg179867

    Tests not yet updated, just to check whether the implementation is really without side effects outside LV.
    Only one screenshot changed - on EOS M (that screenshot was already in LiveView).
    Note: 70D uses more EDMAC connections; increased number from 48 to 64. (detail / bitbucket)
  123. MPU spells: identified some more properties while looking into the EOSM shutter bug
    https://www.magiclantern.fm/forum/index.php?topic=21728.0 (detail / bitbucket)
  124. QEMU: validate calls to eos_trigger_int
    allow missing UART RX/TX interrupt and just print a warning
    (affected: Eeko and EOS M5; fix not obvious) (detail / bitbucket)
  125. QEMU: removed unnecessary assertion in interrupt controller
    (triggered very rarely under "normal" conditions, but happens very often with io_trace) (detail / bitbucket)
  126. QEMU tests: run the GDB test for 10 seconds
    (these logs will be used for building the interrupt map) (detail / bitbucket)
  127. QEMU: fix alignment of MMIO messages before starting tasks (-d io) (detail / bitbucket)
  128. QEMU: fix HPTimer handling of periodic triggers
    (VxWorks models use a HPTimer as heartbeat, unlike DryOS)

    No visible differences on the UI, but heartbeat is now triggering on all VxWorks models.

    Minor emulation differences on 60D, 600D, 650D, 700D, 100D, EOSM, 6D (besides VxWorks models). (detail / bitbucket)
  129. GDB scripts: EOSM.202 stubs for logging properties
    (related: af43d85) (detail / bitbucket)
  130. annotate_mpu_log.py: fix handling logs with Windows newlines
    https://www.magiclantern.fm/forum/index.php?topic=21728.msg198330#msg198330 (detail / bitbucket)
  131. QEMU: delay EDMAC reads by one timer step (apparently reads are supposed to finish after writes)

    Change required to pass the memory benchmark on 5D3 and 6D.
    700D gives the same error if writes are delayed.

    Minor changes to call/return trace on 60D, 600D, 1200D and 1300D (no visible effects). (detail / bitbucket)
  132. QEMU tests: updated EOSM2 call/return trace for latest SFDATA.BIN from dfort
    (previously, SFDATA.BIN for 100D was assumed; no visible changes) (detail / bitbucket)
  133. QEMU: declared silent control events for 5D3
    (not used; only for annotations) (detail / bitbucket)
  134. MPU spells: found PROP_LV_APERTURE and PROP_SILENT_CONTROL_STATUS (detail / bitbucket)
  135. QEMU: declared internal zoom in/out events for 5D3
    (they are sent by the MPU during GUI mode switches) (detail / bitbucket)
  136. QEMU: fix LV button code for 5D3 (detail / bitbucket)
  137. annotate_mpu_log.py: more output options (to stdout, to file, auto rename) (detail / bitbucket)
  138. MPU spells: script to annotate logs with mpu_send/recv events
    (known MPU messages moved to known_spells.py) (detail / bitbucket)
  139. Makefile: fix "make install_qemu CONFIG_QEMU=y" for minimal targets (detail / bitbucket)
  140. adv_int: ignore empty lines when loading keyframes (detail / bitbucket)
  141. adv_int: use strstr instead of my_strstr (fixes slow load) (detail / bitbucket)
  142. Include strstr in ML core (detail / bitbucket)
  143. adv_int: refactor keyframe time formatting (detail / bitbucket)
  144. adv_int: auto-load the saved sequence at startup (detail / bitbucket)
  145. adv_int: renamed menu entry to "Ramping options" (detail / bitbucket)
  146. QEMU: workaround to emulate io_trace
    (without it, many MMIO events are missed, apparently because of QEMU's TLB cache) (detail / bitbucket)
  147. NotifyBox: log messages to QEMU console (detail / bitbucket)
  148. GDB scripts: replaced *(int*)(x) with MEM(x)
    (for consistency with other ML code, and maybe slightly easier to read) (detail / bitbucket)
  149. QEMU: experimental Q button emulation for 100D
    (not 100% sure about it, but seems to emulate the long Q/SET press correctly) (detail / bitbucket)

Started by user Alex

Revision: 19b5e5e039942bc419f3d3622fc0009fd3b8fe60