Build stability: No recent builds failed.100
Build History


#185 (Jan 1, 2021 3:47:38 PM)

  1. Merge branch 'topic/Ant/correct-uart_rx_interrupt-number-for-eos-1588612772652/bitbucket-pr-963' into 'branch/qemu'

    correct uart_rx_interrupt number for EOS M3

    See merge request magic-lantern/magic-lantern!963 — Alex _a1ex@magiclantern.fm_ / hgweb
  2. QEMU docs: fixed broken links — alex@thinkpad / hgweb
  3. QEMU: replaced Bitbucket links with Heptapod ones — alex@thinkpad / hgweb
  4. QEMU install: option to compile any GDB version from source; GDB 8.1.1 also buggy...

    Usage: COMPILE_GDB=8.1 ./install.sh — alex@thinkpad / hgweb
  5. QEMU install: fix precompiled toolchain dependencies on recent Ubuntu
    (todo: test on recent WSL) — alex@thinkpad / hgweb
  6. QEMU install: experimental support for Debian
    (same packages as Ubuntu) — alex@thinkpad / hgweb
  7. QEMU install: fix checking for python/python2 on Ubuntu — alex@thinkpad / hgweb
  8. QEMU install: minor fixes for Mac

    - audio driver fails to compile at least on Big Sur with gcc-10; disabling everywhere (unused)
    - typo when checking for gcc being actually clang — alex@thinkpad / hgweb
  9. QEMU patches: backported sys/sysmacros.h fix from qemu 4.x
    (should compile cleanly on Mac)

    Related discussion: https://patchwork.kernel.org/project/qemu-devel/patch/20161228145344.30819-1-cov@codeaurora.org/ — alex@thinkpad / hgweb
  10. QEMU install: python2 still required for compiling QEMU

    Ubuntu: available as "python2" on newer distros, or "python" on older ones...
    Mac: not available in Brew, but already installed by Apple
    Some systems no longer have "python" pointing to "python2" (fixed in configure_eos.sh) — alex@thinkpad / hgweb
  11. QEMU install: only GDB 8.1 is known to work correctly as 64-bit binary

    Tested all pre-built versions from 2017-q4 to 2020-q4 on macOS Big Sur

    Only gdb 8.1 worked correctly with our scripts... — alex@thinkpad / hgweb
  12. QEMU install: dropped python2 packages - no longer available on latest Mac and Ubuntu

    TODO: completely get rid of python2 dependencies. — alex@thinkpad / hgweb
  13. QEMU install: updated command for installing Brew on Mac — alex@thinkpad / hgweb
  14. QEMU patches: fixes for recent compilers

    - "bitwise" fix: https://patchwork.kernel.org/project/qemu-devel/patch/20170308124955.35623-1-aik@ozlabs.ru/
    - moved memfd from qemu-2.5.0-eos.patch to qemu-2.5.0-recent-gcc.patch

    QEMU now compiles cleanly with recent-gcc patches, with and without EOS patches. — alex@thinkpad / hgweb
  15. QEMU install: configure_eos updated for gcc 9.x and 10.x (to be tested) — alex@thinkpad / hgweb
  16. QEMU: renamed EOS patches to qemu-2.5.0-eos.patch — alex@thinkpad / hgweb
  17. QEMU install: always apply the patch for recent GCC

    - required for any gcc 7.x and newer (tested up to 10.x)
    - doesn't break gcc 5.x
    - it also helps some recent clang versions
    - renamed qemu-2.5.0-gcc78.patch to qemu-2.5.0-recent-gcc.patch — alex@thinkpad / hgweb
  18. correct uart_rx_interrupt number for EOS M3 — Ant _a5856@ya.ru_ / hgweb

#183 (Apr 16, 2019 5:39:39 PM)

  1. QEMU tests: updated IDC "needle" for 200D
    (should have been done in 2aacd2a) — alex@thinkpad / hgweb
  2. QEMU tests: updates for limiting CPU load
    - counting active processes returns 1 when the system is idle (not 3)
    - even if the system has only one CPU core, it needs to be able to start a new job
    - poll the CPU load 10 times over a period of 0.5 seconds before making a decision — alex@thinkpad / hgweb

#182 (Apr 16, 2019 12:31:50 AM)

  1. QEMU install: also install python3 and use it by default for additional packages
    (todo: update all our python scripts) — alex@thinkpad / hgweb
  2. QEMU: updated some test scripts for Python 3 — alex@thinkpad / hgweb
  3. QEMU: script for reverting changes made in qemu-eos
    (i.e. go back to some vanilla version without full reinstallation)

    Usage: ./sure_copy_from_contrib.sh [-q]  (from qemu-eos directory)

    Name starts with different letter to avoid typing ./copy_back_to_contrib.sh by mistake. — alex@thinkpad / hgweb
  4. QEMU tests: updated IDC "needles" for DIGIC 7
    (minor changes after e1c6fd6) — alex@thinkpad / hgweb

#181 (Apr 12, 2019 2:45:48 AM)

  1. QEMU install: reworked toolchain options

    - on all x86_64 Linux systems, user can choose between 32-bit and 64-bit toolchain
    - on all Intel systems, user can choose to override the existing ARM toolchain (and install a precompiled version that's known to work)
    - on x86 Linux systems, the script should install a 32-bit toolchain without asking
    - on all systems, user may keep the existing ARM compiler (arm-none-eabi-gdb) and compile gdb 8.1 from source
    - on non-Intel systems, the script should just check for a valid toolchain, and ask the user to install it manually (not tested) — alex@thinkpad / hgweb
  2. QEMU install: dropped support for arm-none-eabi-gdb installed from Ubuntu package manager

    Too much of a moving target, e.g. working on Xenial and Bionic (with different packages!) but broken on Cosmic.

    Keeping arm-none-eabi-gcc from package manager as an option.

    For gdb, we'll use either a precompiled toolchain (64-bit 7-2018-q2, or any 32-bit version), or compile gdb 8.1 from source. — alex@thinkpad / hgweb
  3. QEMU install: minor cleanups — alex@thinkpad / hgweb
  4. QEMU install: on WSL, do not execute anything when user selects invalid options
    (32-bit binaries are not going to work anyway) — alex@thinkpad / hgweb
  5. QEMU install: on Ubuntu/WSL, install the precompiled toolchain even if another (valid) gcc version is present

    (option #2 in the Ubuntu/WSL menu) — alex@thinkpad / hgweb
  6. QEMU install: GDB 8.2.x does not work :(

    - back to GDB 8.1
    - GDB 8.2.x is no longer accepted
    - using precompiled toolchain 7-2018-q2-update for both Mac and WSL (with GDB 8.1.x) — alex@thinkpad / hgweb
  7. QEMU install: use gdb 8.2.1 when compiling from source
    (8.1 still accepted as valid) — alex@thinkpad / hgweb
  8. QEMU install: gdb-multiarch 8.1 or newer may be available on recent WSL
    (use the same heuristics as with plain Ubuntu) — alex@thinkpad / hgweb

#180 (Apr 9, 2019 8:05:41 PM)

  1. QEMU: various fixes regarding Thumb disassembly

    Quirk: if CPU is in ARM mode, the disassembler looks at the Thumb bit of the requested address.
    If CPU is in Thumb mode, the disassembler ignores the Thumb bit from the address, and always disassembles as Thumb.
    This inconsistency is also present in latest QEMU from git. Why?

    IDC scripts: comments containing disassembled Thumb code were updated (DIGIC 6/7/8 and 1300D). — alex@thinkpad / hgweb
  2. GDB scripts: removed NULL_STR definition from 5D4
    (was breaking the tests; not required on this camera anyway) — alex@thinkpad / hgweb
  3. QEMU logging: in icount mode, print instruction count for every single function call

    Instruction count is printed when returning from the function.
    Instructions executed by other tasks/interrupts (i.e. outside the tested function) are not included in the printed value.
    This feature is very useful for optimizing code.
    Example: -d debugmsg,calls -icount 5 — alex@thinkpad / hgweb
  4. QEMU logging: updated DryOS and VxWorks task switch handling

    It was quite hard to pass the test suite, as there were lots of edge cases:

    - context switch may happen either in a timer interrupt, or in a regular task (e.g. msleep, sempahores and so on)
    - context switch is not atomic - it happens a few instructions (or function calls!) afterh updating the current task pointer
    - until the registers are swapped for the new task, we are still on the stack of the previous task
    - there may be dummy task switches (i.e. from one task to the same task)
    - an interrupt can occur in the middle of a (non-atomic) context switch (!)
    - VxWorks models do not even use a unique task ID (!)

    Result: QEMU no longer crashes during logging tests!

    Issue: these cameras do not appear to use an unique task ID. Workaround: assign our own task IDs. — alex@thinkpad / hgweb
  5. QEMU test suite: only use 2/3 of available CPU cores. It appears to improve the repeatability of results in some CPU- and IO-intensive tests.

    In other words, don't believe the Hyper-Threading hype :) — alex@thinkpad / hgweb
  6. QEMU logging: removed magic stack ID values for interrupt and invalid task — alex@thinkpad / hgweb
  7. QEMU: refactored with eos_get_mem_w

    Before: uint32_t x; cpu_physical_memory_read(addr, &x, 4)
    After: uint32_t x = eos_get_mem_w(s, addr);

    Also, minor cleanups to eos_get_current_task_* (not expected to make a difference) — alex@thinkpad / hgweb

#178 (Mar 27, 2019 1:05:32 PM)

  1. qemu-fio: burn-in test for FindClose
    (FindFirst/FindClose/FindNext repeated many times) — alex@thinkpad / hgweb
  2. qemu-fio: minimal test code for file I/O routines in QEMU

    Only FindFirst/FindNext test for now; others to be added later.

    Compile with e.g.:

       cd minimal/qemu-fio
       make MODEL=60D clean
       make MODEL=60D install_qemu CONFIG_QEMU=y

    FIXME: works on DIGIC 4/5, fails on DIGIC >= 6, not tested on DIGIC 2/3. — alex@thinkpad / hgweb
  3. QEMU tests: minor fix for HPTimer test
    (slightly faster, no longer times out) — alex@thinkpad / hgweb
  4. 5D4: sync debugmsg.gdb to the one from chris_overseas
    (a8bdfa9) — alex@thinkpad / hgweb

#177 (Mar 26, 2019 12:28:35 AM)

  1. QEMU: 32-bit DIGIC timer support (DIGIC 6 and newer) — alex@thinkpad / hgweb

#176 (Mar 25, 2019 7:58:12 PM)

  1. QEMU: updated emulation for 7D2 1.0.4 (ROM from real hardware; no longer using 80D bootloader).

    Some workarounds were required to emulate the bootloader. Communication between the two cores is not yet handled. — alex@thinkpad / hgweb
  2. QEMU: renamed 7D2M to 7D2
    (slave core is still 7D2S) — alex@thinkpad / hgweb
  3. QEMU: updated tests for 5D 1.1.1 and 400D 1.1.1, both ROMs from real hardware
    (previously, it was a mix between an incomplete 5D firmware and 1000D bootloader) — alex@thinkpad / hgweb
  4. QEMU: imported scnprintf/vscnprintf from Linux kernel and fixed incorrect usage in previous code
    (adapted commit e8bb011b) — alex@thinkpad / hgweb

#175 (Mar 4, 2019 11:48:20 PM)

  1. QEMU: imported scnprintf/vscnprintf from Linux kernel and fixed incorrect usage in previous code
    (adapted commit e8bb011b) — alex@thinkpad / hgweb
  2. QEMU: fixed indentation of multiline debug strings (-d debugmsg) — alex@thinkpad / hgweb
  3. QEMU: fixed Thumb code disassembly with qdisas

    This used to work in earlier versions, but target_disas changed its syntax in 2.5.0.
    Useful for debugging io_trace on DIGIC 6 (with CONFIG_QEMU=y). — alex@thinkpad / hgweb
  4. QEMU: fixed TCM size info (broken in df56963);
    simplified condition for 946_PRBS size info — alex@thinkpad / hgweb
  5. QEMU: better description for DRSR, useful for emulating io_trace on DIGIC 6:

    - enable bit (similar to PRBS on DIGIC 5 and earlier)
    - consistency check for base address and size (base address must be multiple of size - Cortex R4 TRM p.178)
    - subregion disable bits (if used)

    Useful for emulating io_trace.

    Note: QEMU already calls tlb_flush when writing to DRSR, DRBAR or DRACR. No need to apply e4fd44e on DIGIC 6. — alex@thinkpad / hgweb
  6. QEMU: print PC when taking an exception — alex@thinkpad / hgweb

#174 (Mar 4, 2019 11:52:25 AM)

  1. QEMU install: option to to keep or replace existing sd.img and cf.img, if any — alex@thinkpad / hgweb
  2. QEMU install: always use qemu-eos as username — alex@thinkpad / hgweb
  3. QEMU: updated SD/CF image with the latest portable display test
    (19f18f0 from recovery branch) — alex@thinkpad / hgweb
  4. QEMU test suite: updated for latest ROM dumper

    - now working on all EOS models
    - always update to latest version
    - allow RESCUE.LOG alongside with the ROM dumps
    - report extra files on the SD card, if any — alex@thinkpad / hgweb
  5. QEMU: make sure all models have correct ROM sizes defined

    - do not allow ROM files with duplicate data
    - most models do not have ROM0; only define where it is actually used
    - ROM0/1, where present, should be defined with the right size (too low - won't boot; too high - will fail the duplication test)
    - test results: context changed in some models without ROM0 (noise from the ROM dump was sometimes pointing to strings in ROM1)

    https://www.magiclantern.fm/forum/index.php?topic=5601.msg212692#msg212692 — alex@thinkpad / hgweb
  6. GDB scripts: workaround to prevent GDB from crashing on 5D

    It appears to be a bug in GDB, e.g. trying to access guest memory when setting a convenience variable.
    Reprogramming the MPU to allow memory access where GDB expects it appears to do the trick for now. — alex@thinkpad / hgweb
  7. GDB scripts: fixed CURRENT_ISR on A1100 — alex@thinkpad / hgweb
  8. QEMU: defined CURRENT_ISR on VxWorks models
    (5D, 40D, 400D, 450D, 1000D)

    The interrupt ID is only stored the stack, but the address appears to be repeatable for the first nesting level. Better than nothing. — alex@thinkpad / hgweb
  9. QEMU: fixed CURRENT_TASK for 5D (both GDB script and model_list.c) — alex@thinkpad / hgweb
  10. QEMU: updated CURRENT_ISR for EOS M5; workaround for current_task_addr — alex@thinkpad / hgweb
  11. GDB scripts: updated formatting of CURRENT_ISR on 200D, 800D, 77D, 6D2, 750D
    (non-functional) — alex@thinkpad / hgweb
  12. GDB scripts: updated CURRENT_ISR for 100D and 1300D to use the latest hypothesis
    (right before the interrupt ID, there is a counter telling whether we are running from interrupt or not, on all models so far) — alex@thinkpad / hgweb
  13. MPU spells: fix possible buffer overflow when interpreting messages — alex@thinkpad / hgweb

#172 (Mar 3, 2019 9:55:35 AM)

  1. QEMU test suite: use larger GUI timeouts for 70D, 1100D, 1200D, 1300D, EOSM and EOSM2, alongside 100D

    Fixes some intermittent failures in GUI tests, narrowed down to first button press being sent before starting Canon's GuiMainTask. — alex@thinkpad / hgweb
  2. QEMU test suite: minor fix
    (colors incorrect if QEMU was already running) — alex@thinkpad / hgweb
  3. QEMU: experimental SD/CF clock tests (some DIGIC 3/4 models; working only in bootloader context; disabled by default)

    These were used to fix/test the portable ROM dumper on old models.

    FIXME: with these changes, main firmware does not boot, so they were disabled. — alex@thinkpad / hgweb
  4. QEMU: log all unhandled MMIO events, even if they repeat
    (this "feature" interferes with debugging; was present since the first commit, in 2013) — alex@thinkpad / hgweb
  5. QEMU: fix overflow in eos_ml_helpers.c (qprintf) — alex@thinkpad / hgweb

#171 (Jan 12, 2019 2:48:14 AM)

  1. QEMU: fixed shift warning in logging.c
    (found with UBSan) — alex@thinkpad / hgweb
  2. QEMU: fixed shift warnings in disas.c
    (found with UBSan) — alex@thinkpad / hgweb
  3. QEMU: fixed buffer overflow warning in serial_flash.c
    (found with ASan; not affecting well-behaved code) — alex@thinkpad / hgweb
  4. QEMU: fixed underflow in logging.c
    (found with ASan) — alex@thinkpad / hgweb
  5. QEMU: fixed underflow in debugmsg.c
    (found with ASan) — alex@thinkpad / hgweb
  6. QEMU: fixed shift warnings in logging.c
    (found with UBSan) — alex@thinkpad / hgweb
  7. QEMU: fixed shift warnings in eos.c
    (found with UBSan) — alex@thinkpad / hgweb
  8. QEMU: workaround for compiling with -fsanitize=undefined in digic.c
    (possibly gcc bug) — alex@thinkpad / hgweb
  9. QEMU: imported https://github.com/qemu/qemu/commit/30628cb12de

    Fixes compilation with -fsanitize=undefined — alex@thinkpad / hgweb
  10. QEMU: imported https://github.com/qemu/qemu/commit/9005774b27b

    Fixes crash with long GDB requests on Mac - https://www.magiclantern.fm/forum/index.php?topic=2864.msg210189#msg210189 — alex@thinkpad / hgweb
  11. configure_eos.sh: fix passing arguments containing spaces — alex@thinkpad / hgweb

#169 (Dec 31, 2018 3:50:37 AM)

  1. QEMU: debug message for sd_blk_write, similar to sd_blk_read
    (not compiled by default; uncomment DEBUG_SD in sd.c to enable) — alex@thinkpad / hgweb
  2. QEMU: fixed some CPU ID registers to match CPUINFO logs on DIGIC 2..5

    D5: https://www.magiclantern.fm/forum/index.php?topic=17714.msg170948#msg170948 (70D)
    D4: https://www.magiclantern.fm/forum/index.php?topic=17714.msg171742#msg171742 (1200D)
    D2/3: https://chdk.setepontos.com/index.php?topic=2139.0 (mostly identical to D4, except for slightly different MPU configurations)

    - removed the XSCALE hack to emulate DTCM/ITCM properly
    - using "arm946-eos5" to model the differences between DIGIC 5 and earlier models — alex@thinkpad / hgweb
  3. QEMU: fixed some CPU ID registers to match CPUINFO logs on DIGIC 6 and 7

    - D6: https://www.magiclantern.fm/forum/index.php?topic=17714.0, https://www.magiclantern.fm/forum/index.php?topic=17360.msg202322#msg202322
    - D7: https://www.magiclantern.fm/forum/index.php?topic=19737.msg200737#msg200737, https://chdk.setepontos.com/index.php?topic=13014.msg131109#msg131109 — alex@thinkpad / hgweb
  4. annotate_mpu_log: allow operation with button codes from another camera model — alex@thinkpad / hgweb
  5. annotate_mpu_log: also label unknown GUI events — alex@thinkpad / hgweb
  6. QEMU: unified EOSM and EOSM2 button definitions

    Differences on previous definitions:
    - zoom events are internal; they should be enabled on both models
    - delete button should be checked in Canon menu with a MPU log, https://www.magiclantern.fm/forum/index.php?topic=2864.msg206275#msg206275
    - no Av button — alex@thinkpad / hgweb
  7. QEMU: unified 650D and 700D button definitions — alex@thinkpad / hgweb
  8. QEMU: removed rear scrollwheel emulation from Rebel models
    (they were auto-generated) — alex@thinkpad / hgweb
    (common to all models; definitions only for now) — alex@thinkpad / hgweb
  10. QEMU: comments for Q button on 60D, 600D, 1100D, 550D
    (600D/1100D use a different button code in LiveView; emulation is not fully correct) — alex@thinkpad / hgweb
  11. QEMU: enabled old-style zoom button events for 5D3 and 6D
    (apparently still used internally, during GUI mode changes) — alex@thinkpad / hgweb
  12. QEMU: Delete button emulation for 1100D/1200D

    This button code appears to be used only in Canon menu.
    Outside menus, i.e. in photo mode and LiveView, it works as Av.

    This change allows one to toggle the low-level format option in Canon menu. — alex@thinkpad / hgweb
  13. QEMU: fix RATE and PicStyle buttons for 5D3 — alex@thinkpad / hgweb
  14. GDB scripts: log calls to named functions
    (useful for initial porting experiments; stubs for 5D3, 5D4, 80D, 200D) — alex@thinkpad / hgweb
  15. GDB scripts: misc cosmetic tweaks — alex@thinkpad / hgweb
  16. GDB scripts: silence all tbreak messages
    (with helpers to silence any other messages) — alex@thinkpad / hgweb
  17. GDB scripts: export state object definitions as Python code
    (useful to create state machine diagrams and other automated analysis) — alex@thinkpad / hgweb
  18. GDB scripts: documented every single user command in debug-logging.gdb

    From GDB prompt, run "help user-defined" to see these commands.
    Also included a test to make sure no other undocumented commands will be added in future. — alex@thinkpad / hgweb
  19. GDB scripts: xxd wrapper
    https://stackoverflow.com/questions/9233095/memory-dump-formatted-like-xxd-from-gdb — alex@thinkpad / hgweb
  20. GDB scripts: ADTG/CMOS/ENGIO logging helpers
    (stubs for 60D and EOSM2) — alex@thinkpad / hgweb
  21. GDB scripts: moved whitespace placeholder to a function; fixed alignment on multi-core models — alex@thinkpad / hgweb
  22. GDB scripts: updated register_func to handle model-specific quirks
    - D4 and newer: some functions are registered indirectly, using a wrapper
    - VxWorks models, except 400D: register_func takes only 2 arguments
    - fixed stub address on 77D and 5D3 113
    - this change fixes auto-generated names (rather than naming the wrapper, it now identifies the right function) — alex@thinkpad / hgweb
  23. QEMU: CF bit in ClockEnable register — alex@thinkpad / hgweb
  24. backtrace: redirect debug messages to QEMU console, rather than discarding them — alex@thinkpad / hgweb

#168 (Sep 11, 2018 11:05:31 PM)

  1. QEMU: fix handling replies of duplicate MPU messages
    (encountered in 80D, maybe others) — alex@thinkpad / hgweb
  2. MPU spells: comment out photo capture from startup logs
    (affects 450D and 1000D) — alex@thinkpad / hgweb

#167 (Sep 11, 2018 8:54:18 PM)

  1. MPU spells: documented PROP_BOARD_TEMP and renamed PROP_AF_DURING_RECORD/PROP_MOVIE_REC_AF to PROP_SHUTTER_AF_DURING_RECORD — alex@thinkpad / hgweb
  2. QEMU tests: retry screenshots if there apparently was a successful match
    followed by a (possibly transient) difference — alex@thinkpad / hgweb
  3. QEMU tests: fixed some transient screenshots
    (optional double-checking code to autodetect them) — alex@thinkpad / hgweb
  4. GDB scripts: register_cmd (for DryOS shell functions)

    Useful for naming a few more functions, but requires entering the DryOS shell to trigger them. Stubs for 5D3. — alex@thinkpad / hgweb
  5. GDB scripts: make sure all EOS models have CreateStateObject defined
    (only test models with this string present in the ROM) — alex@thinkpad / hgweb
  6. GDB scripts: make sure all models have register_func (RegisterEventProcedure) defined

    Exception: Eeko. — alex@thinkpad / hgweb
  7. QEMU: workaround for running GDB tests on 7D — alex@thinkpad / hgweb
  8. QEMU: fix 7D LED assertion — alex@thinkpad / hgweb
  9. QEMU tests: fix race condition when checking GDB scripts
    (shared file) — alex@thinkpad / hgweb
  10. GDB scripts: 800D comments, for consistency with other platforms — alex@thinkpad / hgweb
  11. GDB scripts: print "(null)" in other places where string arguments might be optional — alex@thinkpad / hgweb

#166 (Sep 10, 2018 10:46:56 PM)

  1. GDB scripts: 5D4 uses a new syntax for create_semaphore
    (name is the third argument) — alex@thinkpad / hgweb
  2. QEMU: 5D4 emulation updated for firmware 1.1.2

    - updated test results and GDB script
    - fixed serial flash read interrupt; file I/O working! — alex@thinkpad / hgweb
  3. GDB scripts: print "(null)" for empty semaphore / message queue names
    (auto-search the ROM for this string constant, as otherwise we'd need to define a malloc symbol for each camera model)

    If the "(null)" string is not found in the firmware, the GDB tests will fail with timeout. — alex@thinkpad / hgweb
  4. QEMU: disabled eos_handle_rom MMIO handlers
    (unused, only triggered incorrectly on Eeko, where they caused a crash) — alex@thinkpad / hgweb
  5. GDB scripts: fix pausing prompt on short terminals — alex@thinkpad / hgweb
  6. Removed some CONFIG_QEMU entries that are no longer needed
    - cache_hacks.h: these are now emulated reasonably well
    - 5D2: old leftover in gui.c — alex@thinkpad / hgweb

#165 (Aug 25, 2018 3:09:54 PM)

  1. Minimal targets: only compile subdirectories with a valid Makefile — alex@thinkpad / hgweb

#164 (Aug 20, 2018 10:59:46 PM)

  1. QEMU tests: FA_CaptureTestImage works on 1300D
    (prints "Image Power Failure", but the fix is not straightforward) — alex@thinkpad / hgweb
  2. Makefile: when running "make install", copy ML-SETUP.FIR only for the generic profile
    (not for minimal or other targets) — alex@thinkpad / hgweb
  3. Makefile: always check all minimal targets when running "make zip"
    (only check whether they compile without errors, just like with the installer) — alex@thinkpad / hgweb
  4. Minimal target: moved the Hello World example into its own directory and removed old platform folders — alex@thinkpad / hgweb
  5. Minimal targets: 5D3 1.1.3 hacks no longer needed — alex@thinkpad / hgweb
  6. GDB scripts: fix IDC names containing spaces — alex@thinkpad / hgweb
  7. QEMU: fix timeout in ImgPowDet emulation
    (there were nondeterministic errors in the FRSP test) — alex@thinkpad / hgweb
  8. 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) — alex@thinkpad / hgweb

#163 (Aug 2, 2018 9:40:28 PM)

  1. QEMU tests: ignore nondeterministic screenshot on 6D
    (may appear with or without free space) — alex@thinkpad / hgweb
  2. GDB scripts: moved try_expand_ram_struct at the top — alex@thinkpad / hgweb
  3. GDB scripts: minor whitespace fix — alex@thinkpad / hgweb
  4. QEMU: ensure valid RAM address before executing EDMAC transfers
    (EOS M fails here when running FA_CaptureTestImage) — alex@thinkpad / hgweb
  5. QEMU: image sensor power emulation
    (fixes FA_CaptureTestImage on 5D2; tested on all other models able to run the FRSP test) — alex@thinkpad / hgweb
  6. QEMU: output dummy data (zeros) on read EDMAC connections

    Fixes FA_CaptureTestImage on 700D and 650D. — alex@thinkpad / hgweb
  7. qemu-frsp: fix compiling for 70D — alex@thinkpad / hgweb
  8. QEMU: allow reads to EDMAC CHSW registers
    (required for FA_CaptureTestImage emulation on 6D and others) — alex@thinkpad / hgweb
  9. qemu-frsp: ensure valid exposure settings before the test
    (exposure time not too long, ISO other than Auto; required on 600D and others) — alex@thinkpad / hgweb
  10. QEMU: fix YUV vertical scaling for 1100D
    (only the FRSP test uses it for now) — alex@thinkpad / hgweb
  11. 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. — alex@thinkpad / hgweb
  12. QEMU tests: all models able to navigate Canon menu should pass the FRSP (FA_CaptureTestImage) test

    Most of them will fail; to be fixed. — alex@thinkpad / hgweb
  13. QEMU tests: handle models not yet in mainline
    (FRSP and HPTimer tests are using this for now) — alex@thinkpad / hgweb
  14. QEMU: updated gcc 7/8 patch for systems using virtio-9p — alex@thinkpad / hgweb

#162 (Jul 30, 2018 11:22:49 AM)

  1. QEMU: updated gcc 7.x patch to also work with gcc 8.x — alex@thinkpad / hgweb
  2. eos.c: fix gcc8 warnings — alex@thinkpad / hgweb
  3. Makefile: allow "make install*" without a FIR file
    (for minimal targets and new platforms) — alex@thinkpad / hgweb

#161 (Jul 21, 2018 4:46:21 PM)

  1. QEMU logging: attempt to identify tail calls by default
    (-d calls,notail to disable) — alex@thinkpad / hgweb
  2. QEMU tests: updated for 200D 1.0.1 — alex@thinkpad / hgweb
  3. QEMU logging: moved IDC files into model subdirectories
    (for consistency with romcpy shell files) — alex@thinkpad / hgweb
  4. QEMU logging: fix typo when using -d romcpy
    (output file path was not printed correctly) — alex@thinkpad / hgweb

#160 (Jul 20, 2018 11:05:37 PM)

  1. QEMU tests: initial support for 800D
    (fixme: call trace not deterministic, same as 77D) — alex@thinkpad / hgweb
  2. 800D: minor stub fixes in GDB script — alex@thinkpad / hgweb
  3. qemu: add 800D to model_list.c, and add 800D/debugmsg.gdb — ian douglas scott _ian@iandouglasscott.com_ / hgweb

#159 (Jun 26, 2018 1:14:56 AM)

  1. QEMU: experimental support for gdb-multiarch
    (latest Ubuntu no longer has gdb-arm-none-eabi...) — alex@thinkpad / hgweb
  2. QEMU install: minor fixes — alex@thinkpad / hgweb
  3. QEMU install: on some systems, building GDB requires makeinfo; skip it
    Also show the last few lines from the compilation logs if there's an error. — alex@thinkpad / hgweb
  4. QEMU install: on older Ubuntu, gcc/gdb installation without package manager may be required — alex@thinkpad / hgweb
  5. QEMU install: minor fix for 32-bit Ubuntu
    (option 3: no 64-bit gcc available) — alex@thinkpad / hgweb
  6. QEMU installer: removed option to allow old 64-bit GDB
    (hopefully no longer needed) — alex@thinkpad / hgweb
  7. QEMU installer: minor fix regarding GDB installation
    (force compiling from source if a valid 64-bit gdb is already installed) — alex@thinkpad / hgweb
  8. 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) — alex@thinkpad / hgweb
  9. QEMU install: there's no DISPLAY variable on Mac — alex@thinkpad / hgweb
  10. QEMU: better emulation for cache patches

    (uninstalling works, at least for dm-spy-experiments) — alex@thinkpad / hgweb
  11. QEMU: fix CPU0 labels incorrectly appearing in DIGIC 6 logs
    (only DIGIC 7 should display these) — alex@thinkpad / hgweb
  12. QEMU: moved ARM946EOS-specific functions (cache lockdown and WFI) from cpu.c to helper.c — alex@thinkpad / hgweb

#158 (May 21, 2018 1:22:35 AM)

  1. Minimal targets: CONFIG_QEMU no longer hardcoded in Makefile
    (should be specified on the command line if desired) — alex@thinkpad / hgweb
  2. 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. — alex@thinkpad / hgweb
  3. QEMU: fix printing callstack from GDB scripts
    (broken in 1834cd8) — alex@thinkpad / hgweb
  4. GDB scripts: workaround for a crash occuring with 5D
    (possibly GDB bug; can't explain why it works) — alex@thinkpad / hgweb

#157 (May 4, 2018 1:09:13 AM)

  1. qemu-frsp: fix compiling on lua_fix codebase
    (1200D and soon all others) — alex@thinkpad / hgweb
  2. QEMU: updated expected test results for 1200D 1.0.2
    (no stubs changed in debugmsg.gdb) — alex@thinkpad / hgweb
  3. QEMU: removed bogus/unused BGMT_ISO — alex@thinkpad / hgweb
  4. 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 — alex@thinkpad / hgweb
  5. QEMU: fix compiling on 32-bit x86 hosts

    Caveat: -d romcpy not working on x86 (requires int128_t) — alex@thinkpad / hgweb
  6. QEMU README: initial notes on DIGIC 7 — alex@thinkpad / hgweb

#156 (Apr 30, 2018 10:47:59 AM)

  1. 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 — alex@thinkpad / hgweb
  2. QEMU logging: initial support for DIGIC 7
    (CPU0 only; exception vectors at nonzero address) — alex@thinkpad / hgweb
  3. QEMU tests: ROM dumper needs larger timeout on slower computers; undo unwanted changes from cb93334 — alex@thinkpad / hgweb

#155 (Apr 30, 2018 12:24:32 AM)

  1. QEMU tests: fix expected results for restore after format after updating SD image — alex@thinkpad / hgweb
  2. 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) — alex@thinkpad / hgweb
  3. QEMU: usleep patching no longer required on M3 — alex@thinkpad / hgweb

#154 (Apr 29, 2018 1:31:34 AM)

  1. QEMU: updated ROM dump tests to check SFDATA.BIN too
    (currently only applies to DIGIC 6) — alex@thinkpad / hgweb
  2. QEMU: updated SD image with latest display test
    (changeset 9b37638) — alex@thinkpad / hgweb

#153 (Apr 28, 2018 11:29:42 PM)

  1. 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 — alex@thinkpad / hgweb
  2. QEMU: fix logging of MMIO registers from the same range as MREQ
    (eos_handle_mreq also receives a few other registers, unknown yet) — alex@thinkpad / hgweb

#152 (Apr 28, 2018 2:53:18 PM)

  1. 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) — alex@thinkpad / hgweb
  2. QEMU: reordered model definitions in model_list.c
    (grouped by DIGIC version and similarity) — alex@thinkpad / hgweb
  3. QEMU: renamed IO_MEM_START/SIZE to MMIO_ADDR/SIZE for consistency;
    added MMIO_ADDR to model_list.c (possibly needed for future models) — alex@thinkpad / hgweb
  4. 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). — alex@thinkpad / hgweb
  5. QEMU logging: -d romcpy now output a shell script for extracting the copied blocks — alex@thinkpad / hgweb
  6. QEMU: memfd patch to fix compilation with glibc 2.27
    https://patchwork.openembedded.org/patch/147682/ — alex@thinkpad / hgweb
  7. 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 — alex@thinkpad / hgweb

#151 (Apr 21, 2018 11:03:11 PM)

  1. QEMU: updated CPU definition for DIGIC 7; renamed for older models and reverted the HIVECS property back to false — alex@thinkpad / hgweb
  2. QEMU tests: updated checksums for EOS M/M2 screenshots displaying date/time
    (fix commit 8c575ef99b7f) — alex@thinkpad / hgweb
  3. QEMU tests: updated checksum for a screenshot affected by transparency - commit 5b274e3
    (Canon quirk - it's not even a LiveView screenshot) — alex@thinkpad / hgweb
  4. annotate_mpu_log.py: allow incomplete mpu_send/recv lines
    (such as the ones from 80D logs) — alex@thinkpad / hgweb
  5. MPU spells: documented some AF-related properties — alex@thinkpad / hgweb
  6. GDB scripts: also identify and name PTP handlers — alex@thinkpad / hgweb
  7. 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). — alex@thinkpad / hgweb
  8. 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 — alex@thinkpad / hgweb
  9. QEMU: SRM_SetBusy/ClearBusy emulation for 5D3/6D/70D — alex@thinkpad / hgweb
  10. annotate_mpu_log.py: mark unknown MPU messages with ???

    (this ensures all MPU messages are displayed to the terminal, including unknown ones) — alex@thinkpad / hgweb

#150 (Mar 24, 2018 3:30:06 PM)

  1. Menu: QEMU hack 90f702c no longer needed for EOS M/M2
    (keeping changes to gui.h and button_codes.h) — alex@thinkpad / hgweb
  2. 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 — alex@thinkpad / hgweb
  3. 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 — alex@thinkpad / hgweb
  4. QEMU: enabled MPU properties for EOS M (no more issues after LiveView emulation) — alex@thinkpad / hgweb
  5. 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 — alex@thinkpad / hgweb

#149 (Mar 18, 2018 8:59:25 PM)

  1. 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 — alex@thinkpad / hgweb
  2. QEMU: experimental bitmap transparency support
    (doesn't match the hardware exactly, but it's better than nothing) — alex@thinkpad / hgweb
  3. 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. — alex@thinkpad / hgweb
  4. 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) — alex@thinkpad / hgweb
  5. QEMU: fix copy/paste error in HPTimer emulation
    (no side effects) — alex@thinkpad / hgweb

#148 (Mar 13, 2018 9:06:57 PM)

  1. QEMU tests: large timeouts appear to help in some tricky cases
    (such as mode switches, which may be slower than usual) — alex@thinkpad / hgweb
  2. 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) — alex@thinkpad / hgweb

#147 (Mar 13, 2018 7:42:37 PM)

  1. 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. — alex@thinkpad / hgweb

#146 (Mar 13, 2018 6:26:15 PM)

  1. MPU spells: identified some more properties while looking into the EOSM shutter bug
    https://www.magiclantern.fm/forum/index.php?topic=21728.0 — alex@thinkpad / hgweb
  2. 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) — alex@thinkpad / hgweb
  3. QEMU: removed unnecessary assertion in interrupt controller
    (triggered very rarely under "normal" conditions, but happens very often with io_trace) — alex@thinkpad / hgweb
  4. QEMU tests: run the GDB test for 10 seconds
    (these logs will be used for building the interrupt map) — alex@thinkpad / hgweb
  5. QEMU: fix alignment of MMIO messages before starting tasks (-d io) — alex@thinkpad / hgweb
  6. 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). — alex@thinkpad / hgweb
  7. GDB scripts: EOSM.202 stubs for logging properties
    (related: af43d85) — alex@thinkpad / hgweb
  8. annotate_mpu_log.py: fix handling logs with Windows newlines
    https://www.magiclantern.fm/forum/index.php?topic=21728.msg198330#msg198330 — alex@thinkpad / hgweb

#145 (Mar 13, 2018 4:37:37 PM)

  1. 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). — alex@thinkpad / hgweb
  2. QEMU tests: updated EOSM2 call/return trace for latest SFDATA.BIN from dfort
    (previously, SFDATA.BIN for 100D was assumed; no visible changes) — alex@thinkpad / hgweb

#142 (Mar 11, 2018 1:05:36 PM)

  1. QEMU: declared silent control events for 5D3
    (not used; only for annotations) — alex@thinkpad / hgweb
  2. MPU spells: found PROP_LV_APERTURE and PROP_SILENT_CONTROL_STATUS — alex@thinkpad / hgweb
  3. QEMU: declared internal zoom in/out events for 5D3
    (they are sent by the MPU during GUI mode switches) — alex@thinkpad / hgweb
  4. QEMU: fix LV button code for 5D3 — alex@thinkpad / hgweb
  5. annotate_mpu_log.py: more output options (to stdout, to file, auto rename) — alex@thinkpad / hgweb
  6. MPU spells: script to annotate logs with mpu_send/recv events
    (known MPU messages moved to known_spells.py) — alex@thinkpad / hgweb
  7. Makefile: fix "make install_qemu CONFIG_QEMU=y" for minimal targets — alex@thinkpad / hgweb

#141 (Feb 17, 2018 1:57:19 AM)

  1. QEMU: workaround to emulate io_trace
    (without it, many MMIO events are missed, apparently because of QEMU's TLB cache) — alex@thinkpad / hgweb
  2. NotifyBox: log messages to QEMU console — alex@thinkpad / hgweb
  3. GDB scripts: replaced *(int*)(x) with MEM(x)
    (for consistency with other ML code, and maybe slightly easier to read) — alex@thinkpad / hgweb
  4. QEMU: experimental Q button emulation for 100D
    (not 100% sure about it, but seems to emulate the long Q/SET press correctly) — alex@thinkpad / hgweb

#140 (Feb 2, 2018 3:33:25 AM)

  1. run_ml_all_cams.sh: fix QEMU_DIR once more — alex@thinkpad / hgweb

#139 (Feb 2, 2018 2:09:03 AM)

  1. run_ml_all_cams.sh: fix QEMU_DIR — alex@thinkpad / hgweb

#138 (Feb 1, 2018 9:11:35 PM)

  1. Menu: hack to allow browsing ML menu on EOSM and EOSM2
    (requires CONFIG_QEMU=y) — alex@thinkpad / hgweb
  2. Merged makefile-updates into qemu
    (also updated README regarding "make install_qemu" on modules) — alex@thinkpad / hgweb
  3. 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 install.sh will install QEMU in the old path
    To be thoroughly tested. — alex@thinkpad / hgweb
  4. Makefile: moved default QEMU directory to qemu-eos — alex@thinkpad / hgweb
  5. QEMU: trim HTML logs to 10000 lines if higher
    (very slow to render; also, at these sizes, browsing/grepping plain text is way faster) — alex@thinkpad / hgweb
  6. Makefile: also updated QEMU_INSTALLED_DBI_DIR to use QEMU_PATH — alex@thinkpad / hgweb
  7. Makefile: fix copy/paste error — alex@thinkpad / hgweb
  8. Makefile: fix cleaning up after "make zip"; removed warning — alex@thinkpad / hgweb
  9. Makefile: allow changing QEMU installation directory from Makefile.user and/or the environment
    (QEMU_DIR) — alex@thinkpad / hgweb
  10. Makefile: zip and install_qemu targets for modules — alex@thinkpad / hgweb
  11. Makefile: always clean after running install_check
    http://www.magiclantern.fm/forum/index.php?topic=991.msg194444#msg194444 — alex@thinkpad / hgweb
  12. Makefile: always rebuild version.o — alex@thinkpad / hgweb
  13. Makefile: prevent install_check from running in parallel with building regular ML
    (conflicts while compiling from the same sources - http://www.magiclantern.fm/forum/index.php?topic=991.msg194315#msg194315 ) — alex@thinkpad / hgweb
  14. GDB scripts: logging hook for prop_deliver — alex@thinkpad / hgweb
  15. GDB scripts: logging hooks for CreateStateObject
    useful to find all state objects created during the emulation
    http://www.magiclantern.fm/forum/index.php?topic=17969.msg196010#msg196010 — alex@thinkpad / hgweb
  16. QEMU installer: fine-tuned prompt when reinstalling — alex@thinkpad / hgweb
  17. QEMU: fix Q button handling on 550D, 600D, 1100D (to be tested) — alex@thinkpad / hgweb
  18. QEMU readme: table of contents; minor typos — alex@thinkpad / hgweb
  19. QEMU readme: GPIO section update — g3gg0 / hgweb
  20. dump_srec.py: updated to decode lens firmware updates (*.lfu)
    http://www.magiclantern.fm/forum/index.php?topic=20969 — alex@thinkpad / hgweb
  21. QEMU readme: misc updates (formatting, rephrasing); GPIO section — alex@thinkpad / hgweb
  22. QEMU installer: make it clear the script expects user input when it's asking whether to compile QEMU — alex@thinkpad / hgweb
  23. eject removes the disk image completely while unmount doesn't remove the disk image from /dev. — daniel fort _dan@digiola.com_ / hgweb

#137 (Jan 22, 2018 12:33:35 AM)

  1. reworked description of the peripherals — g3gg0 _g3gg0.de@gmail.com_ / hgweb
  2. QEMU install: fix mistakes — alex@thinkpad / hgweb
  3. QEMU readme: typos, formatting — alex@thinkpad / hgweb
  4. 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?) — alex@thinkpad / hgweb
  5. QEMU readme: some basic concepts related to how the DIGIC hardware works
    (some parts adapted from https://jsandler18.github.io/ ) — alex@thinkpad / hgweb
  6. QEMU readme: misc notes
    - tip to save SD images as qcow2 (they take less disk space)
    - instrumentation tools
    - history updates
    - minor formatting fixes — alex@thinkpad / hgweb
  7. QEMU: use 600D MPU messages for 1300D
    fixes toggling drive mode, http://www.magiclantern.fm/forum/index.php?topic=17969.msg196013#msg196013 — alex@thinkpad / hgweb
  8. GDB scripts: hide warnings about undefined task addresses when running with patches.gdb
    (when running with debugmsg.gdb, full context info is printed) — alex@thinkpad / hgweb
  9. GDB scripts: fix address in log_result
    (LR is no longer valid, as we are no longer at the beginning of a function call) — alex@thinkpad / hgweb
  10. QEMU install.sh: recent git no longer accepts empty identities
    http://www.magiclantern.fm/forum/index.php?topic=20214.msg195892#msg195892 — alex@thinkpad / hgweb
  11. QEMU scripts: removed hardcoded references to ../magic-lantern
    and documented how the directories can be customized — alex@thinkpad / hgweb
  12. QEMU readme: documented directory structure — alex@thinkpad / hgweb

#134 (Jan 7, 2018 5:49:18 PM)

  1. run_canon_fw.sh: hide osascript messages on Mac
    (when trying to bring the QEMU window in foreground, but there isn't any) — alex@thinkpad / hgweb
  2. QEMU install: keep the 64-bit gdb warning prompt on Mac and WSL (to be tested) — alex@thinkpad / hgweb
  3. 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 — alex@thinkpad / hgweb
  4. QEMU install: fix path issue after compilation — alex@thinkpad / hgweb
  5. QEMU install: fix warning about lsb_release on Mac or other systems without it — alex@thinkpad / hgweb
  6. QEMU install: attempt to fix warnings about 64-bit GDB on Mac (to be tested) — alex@thinkpad / hgweb
  7. QEMU install: fine-tuned QEMU compilation, to be tested
    (error handling, display the next steps after compilation finished) — alex@thinkpad / hgweb
  8. 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 http://www.magiclantern.fm/forum/index.php?topic=2864.msg190823#msg190823 — alex@thinkpad / hgweb

#133 (Jan 7, 2018 12:28:04 PM)

  1. 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 http://www.magiclantern.fm/forum/index.php?topic=2864.msg190823#msg190823 — alex@thinkpad / hgweb
  2. QEMU: simplified SFDMA mapping by removing model-specific redirection
    (they are fairly consistent across all models) — alex@thinkpad / hgweb
  3. 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) — alex@thinkpad / hgweb
  4. QEMU: documented SD detect registers on recent DIGIC 5 models
    (non-functional) — alex@thinkpad / hgweb
  5. 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) — alex@thinkpad / hgweb

#132 (Jan 7, 2018 1:58:40 AM)

  1. QEMU: fix 5D3 CF emulation
    (disabled by default; can be enabled from mpu_spells/5D3.h) — alex@thinkpad / hgweb
  2. QEMU: documented property groups ("complex" MPU messages)
    including GDB logging hooks to find them — alex@thinkpad / hgweb
  3. 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) — alex@thinkpad / hgweb
  4. 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 — alex@thinkpad / hgweb
  5. GDB scripts: generic logging hooks — alex@thinkpad / hgweb
  6. QEMU readme: example of identifying the location of an assertion using gdb and -d callstack; minor updates — alex@thinkpad / hgweb

#131 (Jan 5, 2018 8:20:49 PM)

  1. QEMU: updated 750D/760D GDB scripts and tests; file I/O works!
    (using 750D SFDATA.BIN) — alex@thinkpad / hgweb
  2. Merged in t3r4n/magic-lantern/qemu (pull request #894) — alex@thinkpad / hgweb
  3. QEMU: fix some MPU spells
    (typos caught by automated checking) — alex@thinkpad / hgweb
  4. Added the serial flash line for 750D and 760D into model_list. See https://www.magiclantern.fm/forum/index.php?topic=17627.msg195357#msg195357 — t3ra4n _24naret@gmail.com_ / hgweb
  5. QEMU readme: minor link updates — alex@thinkpad / hgweb
  6. QEMU readme: moved developer and reverse engineering notes to a new file
    (reason: bitbucket seems to have trouble rendering large files) — alex@thinkpad / hgweb
  7. 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) — alex@thinkpad / hgweb
  8. 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 — alex@thinkpad / hgweb
  9. QEMU readme: fix typos; minor updates — alex@thinkpad / hgweb

#130 (Jan 3, 2018 1:46:16 PM)

  1. 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) — alex@thinkpad / hgweb
  2. QEMU: updated 80D test results for actual serial flash contents
    http://www.magiclantern.fm/forum/index.php?topic=17360.msg195519#msg195519 — alex@thinkpad / hgweb

#129 (Jan 2, 2018 11:44:05 PM)

  1. QEMU readme: formatting — alex@thinkpad / hgweb
  2. QEMU readme: GDB scripting examples, including callstack — alex@thinkpad / hgweb
  3. QEMU readme: use em-dashes instead of simple dashes — alex@thinkpad / hgweb
  4. 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 — alex@thinkpad / hgweb
  5. QEMU readme: moved the "Incorrect firmware version" section to Hacking
    (it's no longer an issue for regular users) — alex@thinkpad / hgweb
  6. QEMU readme: started to document the steps needed to emulate Canon GUI — alex@thinkpad / hgweb
  7. QEMU readme: minor updates, corrections — alex@thinkpad / hgweb
  8. 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) — alex@thinkpad / hgweb
  9. QEMU: updated sd.img.xz with latest portable display test
    (main change: fix identification of firmware version - 7889972) — alex@thinkpad / hgweb
  10. GDB scripts: fix assert handling on EOS M10 — alex@thinkpad / hgweb
  11. QEMU: moved 7D2 patches to GDB scripts;
    initial GDB script for 7D2 slave — alex@thinkpad / hgweb

#128 (Jan 1, 2018 10:36:25 PM)

  1. QEMU: defined FPGA memory regions for 5D2 and 50D
    (just to prevent some warnings; nothing changed in functionality) — alex@thinkpad / hgweb
  2. QEMU tests: run all cleanups on CTRL-C
    (stop all background tasks, make sure QEMU is no longer running, remove temporary files...) — alex@thinkpad / hgweb
  3. QEMU: enabled serial flash emulation on 5D4
    (emulation on main firmware doesn't go that far, but can be tested from bootloader menu) — alex@thinkpad / hgweb
  4. QEMU: refactored serial flash CS handling to reduce duplicate code
    (moved CS register and tested value to model_list.c) — alex@thinkpad / hgweb

#126 (Dec 30, 2017 11:18:13 PM)

  1. 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 — alex@thinkpad / hgweb

#125 (Dec 30, 2017 3:01:09 AM)

  1. 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) — alex@thinkpad / hgweb

#124 (Dec 30, 2017 12:38:10 AM)

  1. QEMU: experimental mode dial emulation
    works on most models to some extent, except 40D, could not test on 550D, 650D, 70D, EOSM2 — alex@thinkpad / hgweb
  2. 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) — alex@thinkpad / hgweb
  3. Merged in t3r4n/magic-lantern/qemu_installer (pull request #893)

    Further automation in install script to compile directly at the end. — alex _broscutamaker@gmail.com_ / hgweb

#123 (Dec 29, 2017 2:35:33 AM)

  1. QEMU: more MPU properties identified by brute-forcing — alex@thinkpad / hgweb
  2. QEMU: formatting fixes in extract_init_spells.py / known_spells.h — alex@thinkpad / hgweb

#122 (Dec 28, 2017 11:30:08 PM)

  1. QEMU: added property IDs to known MPU spells
    also alternate names as comments — alex@thinkpad / hgweb
  2. 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 — alex@thinkpad / hgweb
  3. QEMU: experiment - brute-force MPU messages to find out their meaning — alex@thinkpad / hgweb
  4. GDB scripts: hooks for logging properties (prop_request_change, MPU property functions)
    (example for 5D3.113 and 550D.109; useful for identifying properties) — alex@thinkpad / hgweb
  5. 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) — alex@thinkpad / hgweb
  6. 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 — alex@thinkpad / hgweb
  7. QEMU install.sh: further Ubuntu/WSL cleanups (minor) — alex@thinkpad / hgweb
  8. QEMU install.sh: fine-tuned messages and date format when renaming an older installation — alex@thinkpad / hgweb
  9. Merged in t3r4n/magic-lantern/qemu_install_improvement (pull request #892)

    Option to rename or delete existing QEMU directory during installation — alex _broscutamaker@gmail.com_ / hgweb
  10. QEMU install.sh: WSL fixes
    - checking for Ubuntu (uname -a does not report Ubuntu)
    - hide 32-bit toolchain options — alex@thinkpad / hgweb
  11. run_canon_fw.sh: Mac fixes
    - use is_mounted (lsof checks are enough)
    - typo in osascript when trying to bring QEMU window to front — alex@thinkpad / hgweb

#121 (Dec 24, 2017 1:11:25 AM)

  1. run_canon_fw.sh: 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 — alex@thinkpad / hgweb
  2. QEMU: RTC workaround to bring back 400D GUI
    (broken in 0d654a0, not covered by tests as it's very slow) — alex@thinkpad / hgweb

#120 (Dec 23, 2017 10:55:44 AM)

  1. 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 extract_button_codes.py, 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) — alex@thinkpad / hgweb
  2. QEMU: fix USB CONNECT on 450D/1000D
    (incidentally, this also fixes the card format dialog on these cameras - likely UILock issue) — alex@thinkpad / hgweb

#119 (Dec 23, 2017 1:12:50 AM)

  1. 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! — alex@thinkpad / hgweb
  2. 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 — alex@thinkpad / hgweb

#118 (Dec 22, 2017 2:16:52 AM)

  1. QEMU: updated 80D tests for 1.0.2; DCIM test also works! — alex@thinkpad / hgweb
  2. QEMU: 80D file I/O support from main firmware
    (experimental, tested with "dumpf" in the serial console) — alex@thinkpad / hgweb
  3. QEMU: enable card support on generic MPU spells
    (experimental, some models work better than others) — alex@thinkpad / hgweb

#116 (Dec 20, 2017 2:22:28 AM)

  1. GDB scripts: some experimental 80D patches, to be fixed in the emulation — alex@thinkpad / hgweb
  2. GDB scripts: log state object transitions
    (stubs for 550D and 80D) — alex@thinkpad / hgweb
  3. GDB scripts: 80D logging hooks for semaphores and message queues
    (disabled by default; also updated assert_log for 1.0.2) — alex@thinkpad / hgweb
  4. QEMU: RomRead DMA is actually XDMAC
    (up to 4 channels; 80D only uses 2) — alex@thinkpad / hgweb

#114 (Dec 19, 2017 2:08:08 AM)

  1. 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 — alex@thinkpad / hgweb
  2. QEMU tests: do not start if compilation fails
    (small nitpick that could result in false test results) — alex@thinkpad / hgweb
  3. QEMU: updated tests after b75e1342711a
    (context info is now correctly printed when returning from msg_queue_receive, take_semaphore etc) — alex@thinkpad / hgweb
  4. QEMU: generic MPU spells compatible with most EOS models (experimental) — alex@thinkpad / hgweb
  5. 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) — alex@thinkpad / hgweb

#113 (Dec 18, 2017 4:14:25 AM)

  1. QEMU: MPU status doesn't seem to matter much; simplified to prepare for DIGIC 6 compatibility
    todo: cross-check with actual hardware — alex@thinkpad / hgweb

#112 (Dec 17, 2017 3:12:06 AM)

  1. 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";
    ) | ./run_canon_fw.sh 80D -serial stdio — alex@thinkpad / hgweb
  2. QEMU: refactored serial flash SIO handler with io_log — alex@thinkpad / hgweb
  3. 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 — alex@thinkpad / hgweb
  4. 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) — alex@thinkpad / hgweb
  5. QEMU: RomRead DMA for DIGIC 6, used for initializing property blocks
    (very similar to regular DMA, slightly different register offsets) — alex@thinkpad / hgweb
  6. QEMU: slow down UART input to work around race conditions
    (not exactly clean, but at least DryShell tests are now passing on all models) — alex@thinkpad / hgweb
  7. 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) — alex@thinkpad / hgweb
  8. 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) — alex@thinkpad / hgweb

#111 (Dec 7, 2017 2:05:37 AM)

  1. MPU spells: some names could not be identified (fixed) — alex@thinkpad / hgweb
  2. QEMU tests: call mtools_setup.sh rather than duplicating its work
    (fixes some tests failing if mtools is configured to use lowercase by default) — alex@thinkpad / hgweb
  3. run_canon_fw.sh: on Mac, bring QEMU window to foreground
    (by default, the window is opened behind the terminal, so one may not even notice it) — alex@thinkpad / hgweb
  4. run_canon_fw.sh: print camera name in QEMU window title — alex@thinkpad / hgweb
  5. run_canon_fw.sh: only clear the terminal if running in interactive mode
    https://serverfault.com/questions/146745/how-can-i-check-in-bash-if-a-shell-is-running-in-interactive-mode — alex@thinkpad / hgweb
  6. QEMU logging: always log unmapped memory regions — alex@thinkpad / hgweb
  7. GDB scripts: fix text alignment with "native" logging options (minor) — alex@thinkpad / hgweb
  8. QEMU install.sh: fix null byte warning when parsing model list
    (bash 4.4 and newer? http://www.magiclantern.fm/forum/index.php?topic=2864.msg193118#msg193118 ) — alex@thinkpad / hgweb
  9. QEMU install: print fewer help details after installation; link to the online documentation — alex@thinkpad / hgweb
  10. QEMU readme: formatting, typos — alex@thinkpad / hgweb
  11. QEMU readme: more info regarding custom SD/CF images — alex@thinkpad / hgweb
  12. QEMU readme: more ways to install ML to the virtual SD/CF images — alex@thinkpad / hgweb
  13. QEMU readme: note about "make install_qemu" not available in all branches — alex@thinkpad / hgweb
  14. QEMU readme: note about models using a serial flash — alex@thinkpad / hgweb
  15. QEMU README: minor updates to 050a3cc — alex@thinkpad / hgweb
  16. Merged unified into qemu — alex@thinkpad / hgweb
  17. Merged in makefile-updates (pull request #873)

    Makefile updates to use any valid ARM toolchain — alex@thinkpad / hgweb
  18. Makefile: fix 7D build_fir — alex@thinkpad / hgweb
  19. Makefile: fix building Lua with gcc 4.7.3 — alex@thinkpad / hgweb
  20. Makefile: only attempt to build/install/check ML-SETUP.FIR if there is a valid installer directory
    (some platforms may not have have one - 7D_MASTER, new ports) — alex@thinkpad / hgweb
  21. Card LED: always use CARD_LED_ADDRESS, LEDON and LEDOFF
    (backed out 5bfab05 to fix installer on 7D - 0x800c00 not mandatory?) — alex@thinkpad / hgweb
  22. Makefile: moved 7D-specific tweaks (FIR etc) into main target (7D.203)
    for consistency with other platforms, including 7D2
    to build the regular FIR: make build_fir
    to build the installer FIR: make ML-SETUP.FIR -B — alex@thinkpad / hgweb
  23. Makefile: FIR building updates
    - always install ML-SETUP.FIR (zip, install, install_qemu)
    - build_fir for regular ML (not installer) now gives AUTOEXEC.FIR
    - to recompile ML-SETUP.FIR: "make ML-SETUP.FIR -B" from platform directory
    - "make zip" will also compile the installer from source, without replacing the precompiled ML-SETUP.FIR
      (just to make sure the source code changes do not interfere with building the installer) — alex@thinkpad / hgweb
  24. Makefile: fix building xor_chk from its own directory — alex@thinkpad / hgweb
  25. Makefile: more .NOTPARALLEL fixes — alex@thinkpad / hgweb
  26. Makefile: fix 7D FIR path
    (just for consistency) — alex@thinkpad / hgweb
  27. Makefile: use .NOTPARALLEL in top-level Makefiles, rather than double-colon rules
    ML platforms/modules are built sequentially, but within each platform/module, parallel build is used
    to be tested on Mac with -j8
    (on Make 3.81, double-colon are executed in parallel, while in 4.2.1 they are sequential) — alex@thinkpad / hgweb
  28. Makefile: fix README.rst generation with POSIX shells
    to reproduce: cd modules/filepref; make clean; rm -f README.rst; make SHELL=dash — alex@thinkpad / hgweb
  29. Makefile: serialize "make install", fix some related dependencies
    parallel copying could lock up WIFI_SD cards
    to reproduce: "WIFI_SD=y make install ML_MODULES=" from platform/CAM directory — alex@thinkpad / hgweb
  30. Makefile: monitor wifi connection when using WIFI_SD=y
    (experimental, helps troubleshooting connectivity issues) — alex@thinkpad / hgweb
  31. Makefile: minor refactors for WIFI_SD (coding style)
    also fixed a typo — alex@thinkpad / hgweb
  32. Modules: better error handling for missing rst2html
    http://www.magiclantern.fm/forum/index.php?topic=17099 — alex@thinkpad / hgweb
  33. Makefile: speed optimizations
    - helper to evaluate only once, only if used
    - modules hgstamp: only evaluate if used
    - CF_CARD, VERSION: only evaluate once if used
    - PWD is special? renamed to avoid unneeded shell calls
    Profiling tips:
    - perf record make; perf report --sort comm
    - make SHELL="sh -x"
    - make clean SHELL="sh -x" |& grep "^+" | sort | uniq -c — alex@thinkpad / hgweb
  34. Makefile: enable parallel compilation for modules, but compile them sequentially
    huge modules like Lua will compile much faster
    compiling everything in parallel is not 100% safe (some dependency checks may fail) — alex@thinkpad / hgweb
  35. Makefile: do not print toolchain info on recursive calls — alex@thinkpad / hgweb
  36. Makefile: reworked global targets
    install: doesn't make sense, as we no longer have a "one size fits all" build capable of running on all models
             (alternative: 5D3.113_install, 60D_install etc)
    zip: build zip for each camera model, sequentially (parallel build still used within each zip)
    all: similar to zip (build camera models sequentially, but use parallel compilation within each platform)
    clean, check: these can run in parallel (no restrictions) — alex@thinkpad / hgweb
  37. Makefile: fix module dependency checking on "make zip"
    by default, a module succeeds if it can be loaded on any camera model, from those compiled (doesn't matter which one)
    when using "make zip", we only want to include the modules compatible with current camera model, without considering other models
    (fixme: not the cleanest way to implement this) — alex@thinkpad / hgweb
  38. Makefile: fix module_strings dependency rule
    (previously, there was an error with make -j) — alex@thinkpad / hgweb
  39. Makefile: dropped ML_MODULES_STATIC (unused) and renamed ML_MODULES_DYNAMIC to ML_MODULES
    note: if you have customized the module list in Makefile.modules.user, just rename ML_MODULES_DYNAMIC to ML_MODULES
    to compile without modules: make 5D3 ML_MODULES= — alex@thinkpad / hgweb
  40. Makefile: fix "make clean" from modules directory with stale modules from other branches
    https://bitbucket.org/hudson/magic-lantern/pull-requests/873/makefile-updates-to-use-any-valid-arm/diff#comment-48250675 — alex@thinkpad / hgweb
  41. Makefile: fix running from other directory
    e.g. from qemu: make -C ../magic-lantern/ 500D_install_qemu — alex@thinkpad / hgweb
  42. Makefile: model-specific install targets for the root directory
    examples: make 500D_install; make 500D_install_qemu — alex@thinkpad / hgweb
  43. 7D: fix compiling with FEATURE_VIDEO_HACKS — alex@thinkpad / hgweb
  44. Makefile: fix building 7D_MASTER — alex@thinkpad / hgweb
  45. disable ASSERT for 7D_MASTER — g3gg0 / hgweb
  46. Feature matrix: updated links — alex@thinkpad / hgweb
  47. Merged in daniel_fort/magic-lantern/unified-6D-sf_dump (pull request #876)

    Add 6D.116 to sf_dump module — alex _broscutamaker@gmail.com_ / hgweb
  48. Added 6D.116 to sf_dump module. — daniel fort _dan@digiola.com_ / hgweb
  49. Merged in daniel_fort/magic-lantern/unified-600D-audio_meters_fix (pull request #877)

    600D audio meters fix — alex _broscutamaker@gmail.com_ / hgweb
  50. 600D also needs Audio IC turned on at boot. — daniel fort _dan@digiola.com_ / hgweb

#109 (Dec 1, 2017 10:18:52 PM)

  1. Merged makefile-updates into qemu — alex@thinkpad / hgweb
  2. Makefile: minor cleanups from 0b9b550 — alex@thinkpad / hgweb
  3. Makefile: backout 0b9b550
    ?= not needed when overriding from command-line, e.g. make CONFIG_QEMU=y — alex@thinkpad / hgweb
  4. Makefile: always define CONFIG_$(MODEL)_$(FW_VERSION)
    e.g. CONFIG_5D3_113, CONIFG_7D_203 and so on — alex@thinkpad / hgweb
  5. Makefile: fix for GNU make 3.8.1
    (thanks g3gg0) — alex@thinkpad / hgweb
  6. Makefile: fix newline issue with WIFI_SD=y — alex@thinkpad / hgweb

#108 (Nov 11, 2017 1:00:48 PM)

  1. Merged makefile-updates into qemu — alex@thinkpad / hgweb
  2. Makefile: fix Mac issue (undefine not supported)
    http://www.magiclantern.fm/forum/index.php?topic=2864.msg192847#msg192847 — alex@thinkpad / hgweb
  3. fixed late evaluation issue in rule builder — g3gg0 / hgweb
  4. Makefile.platform.map: fix indentation — alex@thinkpad / hgweb
  5. run_canon_fw.sh: Mac compatibility fixes — alex@thinkpad / hgweb
  6. Makefile: rules for "make install_qemu"
    (to use them, qemu has to be installed first) — alex@thinkpad / hgweb

#107 (Nov 11, 2017 4:02:20 AM)

  1. QEMU: 5D3 1.2.3 GUI works!
    fixme: not covered by tests — alex@thinkpad / hgweb
  2. 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 — alex@thinkpad / hgweb
  3. 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) — alex@thinkpad / hgweb
  4. QEMU: 6D GUI works!
    - MPU log and serial flash from Audionut, https://bitbucket.org/hudson/magic-lantern/issues/1974/#comment-40853231
    - 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?) — alex@thinkpad / hgweb
  5. 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) — alex@thinkpad / hgweb
  6. QEMU tests: reordered (important, breaks often and/or very fast == runs earlier) — alex@thinkpad / hgweb
  7. QEMU tests: run in parallel when it's straightforward to do so (experimental)
    not parallelized: tests requiring custom builds or checking card contents afterwards — alex@thinkpad / hgweb

#105 (Nov 9, 2017 5:25:55 PM)

  1. 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 — alex@thinkpad / hgweb

#104 (Nov 9, 2017 4:14:12 AM)

  1. 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 — alex@thinkpad / hgweb
  2. 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 — alex@thinkpad / hgweb
  3. 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 — alex@thinkpad / hgweb

#103 (Nov 8, 2017 6:41:02 PM)

  1. QEMU tests/readme: recent netcat requires -N — alex@thinkpad / hgweb
  2. QEMU tests: one more race condition fix — alex@thinkpad / hgweb

#102 (Nov 8, 2017 5:41:41 AM)

  1. 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 — alex@thinkpad / hgweb
  2. QEMU tests: more race condition fixes — alex@thinkpad / hgweb
  3. QEMU tests: attempt to fix some race conditions — alex@thinkpad / hgweb
  4. QEMU tests: minor fixes after refactoring — alex@thinkpad / hgweb

#101 (Nov 7, 2017 2:49:00 AM)

  1. 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) — alex@thinkpad / hgweb
  2. 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 — alex@thinkpad / hgweb

#100 (Nov 6, 2017 3:31:26 AM)

  1. 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 $TEST-foo.bar
    - generic cleanup after each test
    - top-level for loops kept; the loop body calls run_test — alex@thinkpad / hgweb
  2. QEMU: make sure mtools prints uppercase filenames by default
    (our tests assume this behavior, but some systems have different defaults) — alex@thinkpad / hgweb
  3. Merged makefile-updates into qemu — alex@thinkpad / hgweb
  4. Makefile: with WIFI_SD=y, ping the card until it comes online (useful for router connections) — alex@thinkpad / hgweb
  5. Makefile: portable way to get number of processors — alex@thinkpad / hgweb
  6. further makefile cleanup, added make check to show which models were built and their memory usage — g3gg0 / hgweb
  7. fix 'all' target for models — g3gg0 / hgweb
  8. removed explicit make executable definition. allows to run e.g. 'remake' to debug make rules — g3gg0 / hgweb
  9. reworked model make rules to support different firmware versions for a model [to be thoroughly tested] — g3gg0 / hgweb
  10. disable ASSERT for 7D_MASTER — g3gg0 / hgweb
  11. Makefile: also print CONFIG overrides from command-line
    (alongside the ones from Makefile.user) — alex@thinkpad / hgweb
  12. Makefile: print tips for using make -j
    (how to set it by default in Makefiles?) — alex@thinkpad / hgweb
  13. Makefile: silence warning about CONFIG_SITE
    (some recent Linux distros use it) — alex@thinkpad / hgweb
  14. Makefile: portable way to get libgcc.a's path — alex@thinkpad / hgweb
  15. Makefile: removed old dropbox target — alex@thinkpad / hgweb
  16. Makefile: print build info after "make zip"; skip EXIDX line — alex@thinkpad / hgweb
  17. Makefile: fix CONFIG_CCACHE — alex@thinkpad / hgweb
  18. Makefile: use "gio mount" rather than "gvfs-mount"
    (they are interchangeable; older systems may require gvfs-mount, newer systems will print warnings) — alex@thinkpad / hgweb
  19. Makefile: if no valid ARM GCC is found in PATH, try to find one in the home directory — alex@thinkpad / hgweb
  20. Makefile: fix compiling tcc — alex@thinkpad / hgweb
  21. Makefile: moved toolchain setup to Makefile.setup
    (this allows toolchain to be overridden from Makefile.user) — alex@thinkpad / hgweb
  22. Makefile: fixes to allow compiling ML with Linaro arm-eabi-gcc; updated toolchain recommendations — alex@thinkpad / hgweb
  23. Makefile: updated toolchain recommendation; minor edits — alex@thinkpad / hgweb
  24. 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. — alex@thinkpad / hgweb
  25. Makefile: use gcc 5.4.1 by default (current version from https://launchpad.net/gcc-arm-embedded ) — alex@thinkpad / hgweb
  26. QEMU: fix arrow unpress handling on cameras without UDLR (tested on EOSM) — alex@thinkpad / hgweb
  27. Merged in daniel_fort/magic-lantern/unified_650D_audio_meters_fix (pull request #870)

    650D audio meters fix — alex _broscutamaker@gmail.com_ / hgweb
  28. 650D has the same audio meters issue as the 700D -- needs the same fix. — daniel fort _dan@digiola.com_ / hgweb
  29. Merged in daniel_fort/magic-lantern/unified_700D_audio_meters_fix_1 (pull request #866)

    Audio meters fix for 700D

    Approved-by: Daniel Fort <dan@digiola.com> — alex _broscutamaker@gmail.com_ / hgweb
  30. Audio meters stop functioning after recording the first clip when using mlv_snd. Easy fix suggested by a1ex. — daniel fort _dan@digiola.com_ / hgweb

#99 (Oct 24, 2017 12:40:38 AM)

  1. QEMU tests: replaced two slow grep commands with sed — alex@thinkpad / hgweb
  2. QEMU tests: check call/return trace only until the last function from IDC
    (the next 1000 lines can be nondeterministic on digic 6 models) — alex@thinkpad / hgweb
  3. QEMU tests: refactored matching heuristic for call/return trace on main firmware
    (rewritten in Python - much faster) — alex@thinkpad / hgweb

#98 (Oct 16, 2017 3:15:47 AM)

  1. QEMU install: brew docutils needs additional setup; just use the one from pip — alex@thinkpad / hgweb
  2. mtools_copy_ml.sh: removed dependency on realpath
    (not available on Mac) — alex@thinkpad / hgweb
  3. Makefile: fix compiling tcc — alex@thinkpad / hgweb
  4. QEMU install: Mac cleanups, to be tested
    (xcode-select auto-installed by brew, docutils available as package) — alex@thinkpad / hgweb
  5. Makefile: moved toolchain setup to Makefile.setup
    (this allows toolchain to be overridden from Makefile.user) — alex@thinkpad / hgweb
  6. run_canon_fw.sh: use ESC c to reset the terminal, instead of "tput reset"
    ("tput reset" may crash when running as background job - bash bug?) — alex@thinkpad / hgweb
  7. QEMU install: refuse to overwrite an existing installation — alex@thinkpad / hgweb
  8. 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 — alex@thinkpad / hgweb

#97 (Oct 15, 2017 4:33:19 AM)

  1. QEMU install: we have gcc-arm-embedded:i386 on the PPA :) — alex@thinkpad / hgweb
  2. Makefile: fixes to allow compiling ML with Linaro arm-eabi-gcc; updated toolchain recommendations — alex@thinkpad / hgweb
  3. QEMU: patch for building with gcc 7.x — alex@thinkpad / hgweb
  4. 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) — alex@thinkpad / hgweb

#96 (Oct 9, 2017 5:10:46 AM)

  1. 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) — alex@thinkpad / hgweb
  2. QEMU: typo when loading raw images for capture emulation — alex@thinkpad / hgweb
  3. MPU spells: identified some lens properties (PROP_LENS and PROP_LENS_NAME) — alex@thinkpad / hgweb
  4. MPU spells: identify property description for Complete WaitID messages — alex@thinkpad / hgweb
  5. 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) — alex@thinkpad / hgweb
  6. MPU spells: identified PROP_BATTERY_CHECK
    (verified before dialogs such as card format or firmware update) — alex@thinkpad / hgweb
  7. QEMU: print names of MPU spells (exported from extract_init_spells.py)
    and highlight the ones without name or without known behavior — alex@thinkpad / hgweb
  8. MPU spells: documented a bunch of properties and updated their indexing
    (some trial and error, others copied from http://www.magiclantern.fm/forum/index.php?topic=17596.0 ) — alex@thinkpad / hgweb
  9. QEMU: handle INFO unpress event (for 5D3) — alex@thinkpad / hgweb
  10. QEMU: generate valid dark frames if a CR2 isn't available — alex@thinkpad / hgweb
  11. QEMU: allow full-res 14-bit data from any format readable by dcraw
    (usually CR2 and DNG; example in README) — alex@thinkpad / hgweb
  12. QEMU: use <%d> for EDMAC connections in debug messages
    (e.g. connection <5>, channel #16) — alex@thinkpad / hgweb
  13. QEMU: moved image processing engine functions to separate file
    (EDMAC, PREPRO, JPCORE...) — alex@thinkpad / hgweb
  14. make install_qemu: check whether sd.img or cf.img is mounted before copying files — alex@thinkpad / hgweb
  15. run_canon_fw.sh: also print the command-line of arm-none-eabi-gdb, if any
    and whether it's running as a background job or not — alex@thinkpad / hgweb

#95 (Oct 3, 2017 2:15:35 AM)

  1. QEMU: updated 600D test to include the info screen
    (had to enable it in Canon menu) — alex@thinkpad / hgweb
  2. QEMU: disabled sensor cleaning animation on 5D2, 50D, 60D
    (interferes with ML menu; updated tests) — alex@thinkpad / hgweb
  3. QEMU: warn user when shutdown is not clean — alex@thinkpad / hgweb
  4. QEMU: updated 100D menu test to show all menus (including the FlexiZone AF setting) — alex@thinkpad / hgweb
  5. QEMU: run 100D with FlexiZone AF enabled (this setting results in ML crashing at startup)
    http://www.magiclantern.fm/forum/index.php?topic=16040.msg190934#msg190934 — alex@thinkpad / hgweb
  6. QEMU tests: declared cameras able to run the FRSP test at the beginning
    (so run_test arguments now apply to this test as well) — alex@thinkpad / hgweb

#94 (Oct 1, 2017 1:02:06 PM)

  1. 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 — alex@thinkpad / hgweb
  2. QEMU install: updated regex for parsing GUI_CAMS from run_tests.sh
    (to allow multi-line declaration) — alex@thinkpad / hgweb

#93 (Oct 1, 2017 3:14:43 AM)

  1. QEMU tests: 100D typo
    (old file) — alex@thinkpad / hgweb
  2. QEMU tests: updated for 5D2/50D without date/time dialog
    note: sensor cleaning animation makes the test nondeterministic - do not check these screens — alex@thinkpad / hgweb
  3. QEMU: 5D2/50D RTC patch from g3gg0
    (date/time dialog is history!) — alex@thinkpad / hgweb
  4. QEMU: updated README — alex@thinkpad / hgweb
  5. QEMU: enabled PROP_MPU_GPS on all DIGIC 5 models — alex@thinkpad / hgweb
  6. QEMU: EOS M boots the GUI!
    (it also needs the GPS patch - moved to GPS.h) — alex@thinkpad / hgweb
  7. QEMU: updated tests
    (after RTC emulation, I2C and patches cleanup) — alex@thinkpad / hgweb
  8. GDB scripts: date/time patches no longer needed! — alex@thinkpad / hgweb
  9. QEMU: reworked I2C debug messages — alex@thinkpad / hgweb
  10. QEMU: updated MMIO highlighting code
    (module name is now highlighted as well - easier to spot) — alex@thinkpad / hgweb
  11. QEMU: moved RTC emulation to its own handler; reworked debug messages — alex@thinkpad / hgweb
  12. QEMU: enabled RTC emulation for most models
    exceptions: 5D2 and 50D appear to use a different chip or method — alex@thinkpad / hgweb
  13. QEMU: RTC patch from g3gg0
    5D3 and 60D no longer show the date/time screen! — alex@thinkpad / hgweb
  14. QEMU: I2C patch from g3gg0 — alex@thinkpad / hgweb
  15. QEMU: figured out why 5D3 was locking up at startup and in certain menus - it was waiting for PROP_MPU_GPS!
    (thanks g3gg0) — alex@thinkpad / hgweb

#92 (Sep 30, 2017 2:00:20 AM)

  1. QEMU install: don't install two toolchains if user selects 64-bit GDB — alex@thinkpad / hgweb

#91 (Sep 29, 2017 6:41:43 PM)

  1. QEMU install: libnewlib-arm-none-eabi is architecture-independent — alex@thinkpad / hgweb
  2. QEMU install: download toolchain from launchpad and use developer.arm.com as mirror
    (developer.arm.com is currently down, hopefully not from our experiments) — alex@thinkpad / hgweb
  3. 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) - https://unix.stackexchange.com/questions/26047/how-to-correctly-add-a-path-to-path — alex@thinkpad / hgweb
  4. QEMU install: 32-bit Mac toolchain doesn't have gdb... — alex@thinkpad / hgweb
  5. QEMU install: wrong quotes — alex@thinkpad / hgweb
  6. QEMU install: fix some copy/paste errors — alex@thinkpad / hgweb
  7. QEMU install: allow using the current 64-bit toolchain on Ubuntu; minor fixes — alex@thinkpad / hgweb
  8. QEMU install: more toolchain options (experimental)
    - Mac: try the toolchain from https://acroname.com/software/arm-eabi-gcc-toolchain-mac-osx-macos-x-32bit (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 — alex@thinkpad / hgweb
  9. 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 — alex _broscutamaker@gmail.com_ / hgweb
  10. QEMU install: remove docutils install for macOS — christophe francey _kichetof@gmail.com_ / hgweb
  11. QEMU install: elegant way to install packages on macOS
    Checks if the package is already installed otherwise install it — christophe francey _kichetof@gmail.com_ / hgweb
  12. 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) — alex@thinkpad / hgweb
  13. QEMU install: pip does not require sudo — alex@thinkpad / hgweb
  14. QEMU install: fix for dpkg -l also returning non-installed packages
    https://wiki.debian.org/ListInstalledPackages — alex@thinkpad / hgweb
  15. 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...) — alex@thinkpad / hgweb
  16. QEMU install: pip recommends sudo -H
    https://stackoverflow.com/questions/27870003/pip-install-please-check-the-permissions-and-owner-of-that-directory — alex@thinkpad / hgweb
  17. QEMU install: also set up the toolchain for compiling ML (Ubuntu) — alex@thinkpad / hgweb
  18. QEMU install: typo — alex@thinkpad / hgweb
  19. Makefile: updated toolchain recommendation; minor edits — alex@thinkpad / hgweb
  20. 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 — alex@thinkpad / hgweb
  21. 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. — alex@thinkpad / hgweb
  22. QEMU install: gcc-arm-embedded try #5 — alex@thinkpad / hgweb
  23. QEMU install: gcc-arm-embedded try #4 — alex@thinkpad / hgweb
  24. QEMU install: gcc-arm-embedded try #3 — alex@thinkpad / hgweb
  25. QEMU install: gcc-arm-embedded try #2 — alex@thinkpad / hgweb
  26. QEMU install: let's try gcc-arm-embedded from PPA — alex@thinkpad / hgweb
  27. Merged in kichetof/magic-lantern-1/kichetof/qemu-check-if-brew-is-installed-on-macos-1506424463270 (pull request #860)
    also included this suggestion: https://bitbucket.org/hudson/magic-lantern/commits/a24f36e36ea4b27a3c86b8e77e70b49cf4e04fea#comment-5261641 — alex@thinkpad / hgweb
  28. QEMU: check if brew is installed on macOS — christophe francey _kichetof@gmail.com_ / hgweb
  29. Makefile: use gcc 5.4.1 by default (current version from https://launchpad.net/gcc-arm-embedded ) — alex@thinkpad / hgweb
  30. QEMU install: more Mac patches (not tested)
    from http://www.magiclantern.fm/forum/index.php?topic=16012.msg190369#msg190369 — alex@thinkpad / hgweb
  31. QEMU install: also install docutils and vncdotool — alex@thinkpad / hgweb
  32. QEMU install: verbosity fine-tuning — alex@thinkpad / hgweb
  33. QEMU: minor README updates — alex@thinkpad / hgweb
  34. QEMU: README formatting — alex@thinkpad / hgweb
  35. QEMU: README formatting — alex@thinkpad / hgweb
  36. QEMU: updated install instructions in README — alex@thinkpad / hgweb
  37. QEMU install: arm-none-eabi-gdb requires 32-bit libraries on Ubuntu — alex@thinkpad / hgweb
  38. QEMU: set up arm-none-eabi-gdb from the install script — alex@thinkpad / hgweb
  39. QEMU: auto-install dependencies if running on Ubuntu-based systems (to be tested) — alex@thinkpad / hgweb
  40. QEMU: some Mac patches for install script (not tested)
    http://www.magiclantern.fm/forum/index.php?topic=16012.msg190369#msg190369 — alex@thinkpad / hgweb
  41. QEMU: ggrep patch for Mac from kichetof
    http://www.magiclantern.fm/forum/index.php?topic=16012.msg190396#msg190396 — alex@thinkpad / hgweb
  42. QEMU: supply an email address for git if the default doesn't work
    http://www.magiclantern.fm/forum/index.php?topic=16012.msg190409#msg190409 — alex@thinkpad / hgweb

#90 (Sep 24, 2017 4:34:11 AM)

  1. 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) — alex@thinkpad / hgweb
  2. QEMU: EOS M3 display support from Ant123 (using a custom CHDK build) — alex@thinkpad / hgweb
  3. QEMU README: Bitbucket doesn't resize the images... — alex@thinkpad / hgweb
  4. QEMU README: let's try some screenshots — alex@thinkpad / hgweb
  5. QEMU: more README updates
    - shutdown notes (system_powerdown vs quit)
    - rewritten QEMU monitor section
    - how to bypass the date/time dialog — alex@thinkpad / hgweb
  6. QEMU: minor improvements to README — chris miller _chris.nz@gmail.com_ / hgweb
  7. QEMU: README updates
    - shutdown and reboot
    - running from physical card
    - menu navigation (keys)
    - misc notes, minor typos — alex@thinkpad / hgweb

#89 (Sep 22, 2017 7:40:12 PM)

  1. QEMU: 1000D GUI works too
    (based on 450D) — alex@thinkpad / hgweb
  2. QEMU: stretch display vertically on VxWorks models
    (double all lines to get correct aspect ratio) — alex@thinkpad / hgweb
  3. QEMU: emulate JUMP and Direct Print buttons (for VxWorks models) — alex@thinkpad / hgweb
  4. Backout 89254290c3f7
    (shutdown only works only when not activating Canon menu, with or without this patch) — alex@thinkpad / hgweb

#88 (Sep 22, 2017 12:47:39 PM)

  1. 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 — alex@thinkpad / hgweb
  2. QEMU: print whether available keys are press-only or they also send unpress events — alex@thinkpad / hgweb
  3. QEMU: re-created 70D MPU spells; shutdown working — alex@thinkpad / hgweb
  4. QEMU: shutdown working on most models able to start the GUI (all but 70D) — alex@thinkpad / hgweb
  5. minimal targets: removed old references to qemu-util — alex@thinkpad / hgweb
  6. QEMU tests: always stop GDB when QEMU quits — alex@thinkpad / hgweb
  7. QEMU tests: updated to handle shutdown and reboot
    (shutdown test after menu navigation, reboot test when formatting card and restoring ML) — alex@thinkpad / hgweb
  8. QEMU: handle PROP_ABORT (after opening battery door)
    fixme: it doesn't shutdown, figure out why — alex@thinkpad / hgweb
  9. QEMU: handle the powerdown event
    (menu: Machine -> Power Down) — alex@thinkpad / hgweb
  10. QEMU: experimental shutdown handling (card door and power switch) — alex@thinkpad / hgweb
  11. reloc.c: cleaned up ifdef's — alex@thinkpad / hgweb
  12. QEMU: minor README update
    (ML menu now working on all models able to boot the GUI) — alex@thinkpad / hgweb
  13. QEMU: 1200D doesn't have a dedicated delete button
    (use the key codes from 1100D - same as 600D, but without the delete button) — alex@thinkpad / hgweb
  14. QEMU: experimental Av button handling for Rebel cameras
    (fixme: has some side effects, such as changing the displayed shutter speed) — alex@thinkpad / hgweb
  15. QEMU: don't auto-repeat keys, except for scrollwheels — alex@thinkpad / hgweb
  16. QEMU: also allow right shift for half-shutter — alex@thinkpad / hgweb
  17. QEMU: handle the FUNC button (for 50D menu navigation) — alex@thinkpad / hgweb
  18. Merged unified into qemu — alex@thinkpad / hgweb
  19. QEMU: updated 700D to 1.1.5 (GDB scripts and menu tests) — alex@thinkpad / hgweb
  20. QEMU: README updates — alex@thinkpad / hgweb
  21. installer: fix compilation — alex@thinkpad / hgweb
  22. Merged in daniel_fort/magic-lantern/update-to-700D.115 (pull request #813)

    Update to 700D.115 — alex@thinkpad / hgweb
  23. 700D: fix AbortEDmac — alex@thinkpad / hgweb
  24. Dummy merge with dfort's unified — alex@thinkpad / hgweb
  25. 700D, 6D, 7D: fix AbortEDmac — alex@thinkpad / hgweb
  26. 700D: undo dialog_refresh_timer change in mlv_rec/mlv_lite
    (this address is the same in 1.1.4 and 1.1.5) — alex@thinkpad / hgweb
  27. Update sf_dump module to 700D.115 — daniel fort _dan@digiola.com_ / hgweb
  28. Fixed is_taskid_valid stub. — daniel fort _dan@digiola.com_ / hgweb
  29. Merged unified into update-to-700D.115 — daniel fort _dan@digiola.com_ / hgweb
  30. Added minimal autoexec.bin for 700D — daniel fort _dan@digiola.com_ / hgweb
  31. Merged unified into update-to-700D.115 — daniel fort _dan@digiola.com_ / hgweb
  32. Merged unified into update-to-700D.115 — daniel fort _dan@digiola.com_ / hgweb
  33. Incorporated pull request #842 to fix Autoexposure module — daniel fort _dan@digiola.com_ / hgweb
  34. Merged unified into update-to-700D.115 — daniel fort _dan@digiola.com_ / hgweb
  35. Resolve conflicts with changes to Task info in stubs.S — daniel fort _dan@digiola.com_ / hgweb
  36. Merged unified into update-to-700D.115 — daniel fort _dan@digiola.com_ / hgweb
  37. Added new ML-SETUP.FIR created by a1ex — daniel fort _dan@digiola.com_ / hgweb
  38. update to firmware revision 700D.115 — daniel fort _dan@digiola.com_ / hgweb
  39. hg rename 700D.114 700D.115 — daniel fort _dan@digiola.com_ / hgweb
  40. Merged hudson/unified into unified to prevent new remote heads. — daniel fort _dan@digiola.com_ / hgweb
  41. Update to latest exiftool — daniel fort _dan@digiola.com_ / hgweb

#87 (Sep 14, 2017 2:54:39 AM)

  1. QEMU: initial README draft — alex@thinkpad / hgweb
  2. Makefile: "make install_qemu" for platform targets;
    updated run_ml_all_cams.sh to use it — alex@thinkpad / hgweb
  3. qemu-util: qprintf requires stdarg.h (when not included from dryos.h) — alex@thinkpad / hgweb

#86 (Sep 13, 2017 6:52:28 PM)

  1. Makefile: allow using CONFIG_QEMU for modules (qprintf and related functions) — alex@thinkpad / hgweb
  2. Makefile: allow overriding CONFIG_* options on the command line
    e.g. make CONFIG_QEMU=y
    (suggestion from g3gg0) — alex@thinkpad / hgweb
  3. qemu-util: make the QEMU debugging API header-only — alex@thinkpad / hgweb
  4. console include qemu-util.h is no longer needed — alex@thinkpad / hgweb
  5. menu: removed QEMU workaround (no longer needed - GUI mode switch works on most models) — alex@thinkpad / hgweb
  6. 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) — alex@thinkpad / hgweb

#84 (Sep 12, 2017 9:33:44 PM)

  1. Raw backend: some more debug messages
    (useful for qemu-frsp tests) — alex@thinkpad / hgweb
  2. 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) — alex@thinkpad / hgweb

#83 (Sep 12, 2017 3:32:52 AM)

  1. qemu-frsp: fix compilation — alex@thinkpad / hgweb
  2. Merged unified into qemu — alex@thinkpad / hgweb
  3. QEMU tests: FA_CaptureTestImage test also working on 50D, 500D, 550D and - without display - on 1100D — alex@thinkpad / hgweb
  4. qemu-frsp: use CONFIG_QEMU to enable debug messages from raw.c — alex@thinkpad / hgweb
  5. qemu-util: removed old experiments
    (kept the initial hello world for historical purposes) — alex@thinkpad / hgweb
  6. Raw backend: print to QEMU console if compiled with CONFIG_QEMU=y
    (without enabling RAW_DEBUG) — alex@thinkpad / hgweb
  7. qemu-frsp: fix compiling on 500D, 5D2 and 50D — alex@thinkpad / hgweb
  8. memcheck: check malloc heap in the same way as AllocateMemory (500D only for now) — alex@thinkpad / hgweb
  9. memcheck: option to identify uninitialized memory accesses in main firmware
    that could be exploited from bootloader — alex@thinkpad / hgweb
  10. memcheck: fix operation on DIGIC 6 — alex@thinkpad / hgweb
  11. memcheck: fix operation without ML memcpy — alex@thinkpad / hgweb
  12. QEMU: tests for memchk, from minimal ML
    (not all of them are passing) — alex@thinkpad / hgweb
  13. qemu-hptimer: CONFIG_INSTALLER no longer needed — alex@thinkpad / hgweb
  14. 7D: fix minimal targets (no LEDON/LEDOFF on this model though) — alex@thinkpad / hgweb
  15. Merged in daniel_fort/magic-lantern/unified_silent_module_fix (pull request #854)

    modify silent.c to work with commit f404e5f — alex@thinkpad / hgweb
  16. TCC Makefile: fix minor typo — alex@thinkpad / hgweb
  17. silent.c: there are no info bars in paused LiveView mode — alex@thinkpad / hgweb
  18. modify silent.c to work with commit f404e5f
    Raw backend: allow displaying raw previews without conflicting with LiveView info bars — daniel fort _dan@digiola.com_ / hgweb
  19. GDB scripts: register_interrupt on all models (with test) — alex@thinkpad / hgweb
  20. 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) — alex@thinkpad / hgweb
  21. GDB scripts: disabled slow items by default
    (semaphores, message queues, MPU communication, ResLock, EDMAC) — alex@thinkpad / hgweb
  22. GDB scripts: symbol-file commands to get debugging symbols from ML (commented out)
    todo: auto-enable when autoexec.bin is executed? — alex@thinkpad / hgweb
  23. Merged in raw_fixes (pull request #828)

    Raw fixes part 5 — alex _broscutamaker@gmail.com_ / hgweb
  24. fio-ml: added get_dcim_dir_suffix(); moved get_dcim_dir() from dryos.h — alex@thinkpad / hgweb
  25. mlv_rec/mlv_lite: moved write_mlv_vers_blocks to mlv.c/h
    (avoids duplicate code) — alex@thinkpad / hgweb
  26. mlv_play: fix a fio_malloc issue (not tested, might fix issue #2766) — alex@thinkpad / hgweb
  27. Merged in raw_capture_info (pull request #827) — alex@thinkpad / hgweb
  28. mlv_dump: fix compilation after rawc header update — alex@thinkpad / hgweb
  29. 5D3 1.2.3: fix CARD_A_MAKER (off by one) — alex@thinkpad / hgweb
  30. mlv_lite: always override (toggle) the preview mode on *long* half-shutter press, when not autofocusing
    (avoids transient screen changes on quick half-shutter presses) — alex@thinkpad / hgweb
  31. mlv_lite: preview both full-size buffers while recording
    (to catch future bugs that might cause the raw buffer to update every other frame) — alex@thinkpad / hgweb
  32. Raw backend: exact height autodetection for 5D3
    (lossless 8-12 bit compression works!) — alex@thinkpad / hgweb
  33. mlv_lite: fix shutter button remaining locked after recording with Frozen LV
    (problem from exmem backend; not sure how to do a proper fix) — alex@thinkpad / hgweb
  34. mlv_lite: slow down color preview to let lower-priority tasks run (such as histogram) — alex@thinkpad / hgweb
  35. FPS override: disable in x10 mode when half-shutter is pressed, to help with focusing
    (example setup: full-res LiveView, FPS override at 4 FPS for continuous recording, zoom on half-shutter) — alex@thinkpad / hgweb
  36. FPS override: display rolling shutter in the main menu when available
    (either when raw recording is enabled or while recording H.264)
    (useful for diagnosing the new crop modes) — alex@thinkpad / hgweb
  37. FPS override: also display rolling shutter as percentage of frame duration — alex@thinkpad / hgweb
  38. mlv_lite: do not print debug info when freezing LiveView
    (seems to help with corrupted frames in modes with resolution pushed to limit, e.g. 1080p48) — alex@thinkpad / hgweb
  39. Include strstr in ML core — alex@thinkpad / hgweb
  40. mlv_lite: fix squeeze info in menu for 50/60p modes — alex@thinkpad / hgweb
  41. mlv_lite: display actual aspect ratio in menu, if different from selection — alex@thinkpad / hgweb
  42. raw_rec: fix some resolution inconsistencies — alex@thinkpad / hgweb
  43. mlv_lite: fine-tuned menu for Frozen LV mode
    (previously known as Hacked Preview) — alex@thinkpad / hgweb
  44. mlv_lite: reworked preview options with (hopefully) a lot more reasonable defaults
    - color preview with correct framing whenever plain LiveView is not accurate (crop/zoom modes etc)
    - only use grayscale preview when recording speed is critical
    - renamed the preview options
    - half-shutter to override the automatic preview choice
    (note: slot_count is valid_slot_count in compressed_raw) — alex@thinkpad / hgweb
  45. Raw backend: allow displaying raw previews without conflicting with LiveView info bars;
    updated mlv_rec and mlv_lite to use this capability — alex@thinkpad / hgweb
  46. mlv_rec, mlv_lite: fix rawc saving after structure update in mlv.h — alex@thinkpad / hgweb
  47. Fix c6f92ee — alex@thinkpad / hgweb
  48. mlv_rec, mlv_lite: save RAWC (raw_capture_info) — alex@thinkpad / hgweb
  49. Raw backend: fix raw_capture_info.skipping_y for EOS M
    (720p unless recording H.264) — alex@thinkpad / hgweb
  50. mlv.h: replaced struct raw_capture_info with individual fields
    (binary compatible with previous version) — alex@thinkpad / hgweb
  51. raw_capture_info: redefined offset_x and offset_y to refer to first (top-left) *active* pixel
    that way, optical black variations between formats (e.g. CR2 vs FRSP) are no longer relevant — alex@thinkpad / hgweb
  52. mlv_dump: show the meaning of sensor crop factor — alex@thinkpad / hgweb
  53. mlv_rec, mlv_lite: fix minor crop factor display issue
    (division by 0 in photo mode) — alex@thinkpad / hgweb
  54. mlv_rec, mlv_lite: save RAWC (raw_capture_info) — alex@thinkpad / hgweb
  55. mlv_dump: print RAWC (raw_capture_info) — alex@thinkpad / hgweb
  56. mlv.h: RAWC block (struct raw_capture_info) — alex@thinkpad / hgweb
  57. Raw backend: new CBR for modules (CBR_RAW_INFO_UPDATE) — alex@thinkpad / hgweb
  58. Raw backend: new structure about image capture parameters (resolution, pixel binning modes)
    (also updated mlv_lite and mlv_rec)
    (can you suggest a better name?) — alex@thinkpad / hgweb
  59. get_current_dialog_handler: fix return value when no dialogs are present — alex@thinkpad / hgweb
  60. fix rules to allow "make -j" — g3gg0 / hgweb
  61. Merged in edmac (pull request #811)

    EDMAC module + fixes — alex _broscutamaker@gmail.com_ / hgweb
  62. edmac-memcpy: fix compilation — alex@thinkpad / hgweb
  63. Merged unified into edmac — alex@thinkpad / hgweb
  64. edmac.mo: fine-tuned transfer size info — alex@thinkpad / hgweb
  65. selftest: AbortEDmac test — alex@thinkpad / hgweb
  66. selftest: edmac_memcpy test — alex@thinkpad / hgweb
  67. edmac.mo: transfer size test — alex@thinkpad / hgweb
  68. edmac-memcpy: use and decode transfer size from flags (to be tested) — alex@thinkpad / hgweb
  69. edmac_test: proper memory allocation — alex@thinkpad / hgweb
  70. edmac-memcpy: updated edmac_find_divider for latest hypothesis — alex@thinkpad / hgweb
  71. edmac_memcpy: looks like we can use widths that are not modulo 8 bytes — alex@thinkpad / hgweb
  72. edmac-memcpy: refactored edmac_memcpy to avoid duplicate code — alex@thinkpad / hgweb
  73. AbortEDmac stub for 500D, 550D, 5D2, 50D, 7D (not tested) — alex@thinkpad / hgweb
  74. edmac.mo: fix model-specific differences — alex@thinkpad / hgweb
  75. edmac.mo: in EDMAC model tests, print a summary of copying activity
    (how many bytes were copied, how many were skipped and so on)
    (this test outputs the raw logs used to find the EDMAC model - http://www.magiclantern.fm/forum/index.php?topic=18315.0 ) — alex@thinkpad / hgweb
  76. edmac.mo: tests for EDMAC model (to be included in QEMU) — alex@thinkpad / hgweb
  77. AbortEDmac stub for 5D3 1.2.3 — alex@thinkpad / hgweb
  78. edmac.c: fix typo — alex@thinkpad / hgweb
  79. Merged unified into edmac — alex@thinkpad / hgweb
  80. EDMAC: fix signed off2 on DIGIC 4 — alex@thinkpad / hgweb
  81. Merged in backtrace (pull request #849)

    Stack trace (aka backtrace) in crash logs — alex _broscutamaker@gmail.com_ / hgweb
  82. Close branch backtrace — alex _broscutamaker@gmail.com_ / hgweb
  83. selftest: fix incorrect strings (AllocateMemory != system memory) — alex@thinkpad / hgweb
  84. edmac.mo: experiment - log all EDMAC channels every 0.1ms — alex@thinkpad / hgweb
  85. edmac.mo: show offset 0x40 on the info screen — alex@thinkpad / hgweb
  86. edmac: edmac_get_channel — alex@thinkpad / hgweb
  87. edmac: there are more than 48 connections (not sure how many) — alex@thinkpad / hgweb
  88. Modules: allow including module.h in multiple source files
    (fixes compilation of edmac.mo) — alex@thinkpad / hgweb
  89. Modules: removed some unused definitions — alex@thinkpad / hgweb
  90. edmac.h: allow edmac_format_size to be called from core (of course, if the edmac module is loaded) — alex@thinkpad / hgweb
  91. bench.mo: use microsecond timer for memory benchmarks — alex@thinkpad / hgweb
  92. bench.mo: verify memcpy-like functions when running memory benchmark — alex@thinkpad / hgweb
  93. edmac-memcpy.c: refactored to avoid static struct edmac_info — alex@thinkpad / hgweb
  94. Rewritten find_free_edmac_channels so it no longer requires user input — alex@thinkpad / hgweb
  95. Moved find_free_edmac_channels to the edmac module — alex@thinkpad / hgweb
  96. Moved EDMAC info screen and pretty-printing function to a module — alex@thinkpad / hgweb
  97. edmac: pretty-printing function for size configuration (edmac_format_size)
    auxiliary functions: edmac_get_info, edmac_fix_off1
    also updated debug edmac info with the new function — alex@thinkpad / hgweb
  98. edmac: edmac_get_pointer; comments — alex@thinkpad / hgweb
  99. edmac: experimental model for total data transfer size — alex@thinkpad / hgweb
  100. Enabled AbortEDmac stub (most models; not tested) — alex@thinkpad / hgweb
  101. stub-cleanup.py: support for uncommenting unused stubs; minor refactors — alex@thinkpad / hgweb
  102. Stubs format — alex@thinkpad / hgweb

#82 (Sep 10, 2017 3:30:59 PM)

  1. QEMU: always load camera-specific files from CAM/ or CAM/FW/ (refactored to avoid duplicate code) — alex@thinkpad / hgweb
  2. QEMU tests: updated menu test for 70D 1.1.2 — alex@thinkpad / hgweb

#79 (Sep 10, 2017 2:09:19 AM)

  1. QEMU tests: updated 70D needles (expected results) for 1.1.2 — alex@thinkpad / hgweb
  2. QEMU tests: allow camera models as arguments — alex@thinkpad / hgweb
  3. QEMU: with -d exec, make sure the instructions aren't printed twice — alex@thinkpad / hgweb

#78 (Aug 8, 2017 2:50:53 AM)

  1. QEMU tests: very basic Dry-shell test — alex@thinkpad / hgweb
  2. QEMU: experimental UART support in main firmware
    (Dry-shell working on all DIGIC 4 and 5 models) — alex@thinkpad / hgweb
  3. QEMU: option to highlight certain MMIO registers
    (requires editing the source code) — alex@thinkpad / hgweb
  4. QEMU: option to export MMIO reads as dm-spy entries (dm-spy-experiments branch)
    this allows cross-checking the values with the ones from actual hardware
    - ./run_canon_fw.sh 5D3 [...] -d io,nochain -singlestep
    - copy/paste some entries into dm-spy-extra.c (grep for mmio_log to find them)
    - get logs from both camera and QEMU (dm-spy-experiments branch, CONFIG_DEBUG_INTERCEPT_STARTUP=y, maybe also CONFIG_QEMU=y)
    - adjust the emulation until the logs match — alex@thinkpad / hgweb

#77 (Aug 6, 2017 11:12:16 AM)

  1. QEMU: require verbose (e.g. -d io,int,verbose) to show DryOS timer interrupts and DIGIC timer — alex@thinkpad / hgweb
  2. QEMU: incomplete 5D3 1.2.3 GUI (boots with black screen, no menus) — alex@thinkpad / hgweb

#76 (Aug 6, 2017 3:47:59 AM)

  1. QEMU logging: option to identify tail function calls (heuristic) — alex@thinkpad / hgweb
  2. QEMU tests: trimming should work now — alex@thinkpad / hgweb
  3. QEMU tests: trimming must be done on useful lines, not on raw input lines
    (otherwise the test will be sensitive to any additional info in the raw log) — alex@thinkpad / hgweb
  4. QEMU tests: call/return trace tests first
    (they are more likely to fail or require frequent updates) — alex@thinkpad / hgweb
  5. QEMU tests: include interrupts in main firmware call/return test
    (this allows counting related stats from the filtered log - smaller) — alex@thinkpad / hgweb
  6. QEMU tests: use ansi2txt only once in the main firmware call/return test (speed optimization) — alex@thinkpad / hgweb

#75 (Aug 5, 2017 6:55:15 PM)

  1. QEMU tests: IDC needs trimming as well in order to get deterministic results — alex@thinkpad / hgweb
  2. QEMU tests: trim calls-main-basic.idc until matching the "needle" md5
    (hopefully this trick will get repeatable results on faster PCs) — alex@thinkpad / hgweb
  3. QEMU tests: 5D2 IDC test not deterministic (functions are the same, but comments are not) — alex@thinkpad / hgweb
  4. QEMU: do not use non-printable task names
    (VxWorks: current_task is set before it has a valid name) — alex@thinkpad / hgweb
  5. QEMU: backout parts of 8e29c15
    large timeout didn't solve the repeatability issue - results are still sensitive to processing speed
    some models keep running in a loop, and after 10-20 seconds, they "discover" a new function and so on — alex@thinkpad / hgweb

#74 (Jul 31, 2017 3:51:38 AM)

  1. QEMU tests: let's try a larger timeout; minor fine-tunings — alex@thinkpad / hgweb

#73 (Jul 30, 2017 7:36:18 AM)

  1. QEMU tests: found a way to get deterministic execution (icount option)
    - reworked the call/return trace tests to also run on main firmware (with -icount)
    - fixme: CF models do not have deterministic execution, even with -icount
    - fromutility tests also enabled on CF models (IDC only)
    - "first interrupt" test replaced with full call/return trace on main firmware
    - removed "sorted IDC" tests (the regular IDC + call/return trace tests are much stronger) — alex@thinkpad / hgweb
  2. wait_log.sh: script to wait for a string to appear in a log file, with timeout since last update of the log file — alex@thinkpad / hgweb

#72 (Jul 30, 2017 12:15:12 AM)

  1. remove_end_loop.py: minor fixes — alex@thinkpad / hgweb

#71 (Jul 26, 2017 5:46:53 PM)

  1. Moved my_fprintf to fio-ml.c (fixes compilation of minimal/qemu-frsp) — alex@thinkpad / hgweb
  2. QEMU logging: always name DebugMsg, even if no symbols are loaded — alex@thinkpad / hgweb
  3. QEMU logging: fix loading symbol names on Thumb code — alex@thinkpad / hgweb
  4. QEMU: fix off by one error when loading ML stub names — alex@thinkpad / hgweb
  5. boot-hack: check whether we can reach anything in the ROM with relative jumps — alex@thinkpad / hgweb
  6. boot-hack: self-check for ARMLIB_OVERFLOWING_BUFFER — alex@thinkpad / hgweb

#70 (Jul 25, 2017 9:58:21 AM)

  1. boot-hack: fix wrong comments (AllocateMemory != system memory) — alex@thinkpad / hgweb

#69 (Jul 15, 2017 6:41:51 PM)

  1. Merged backtrace into qemu — alex@thinkpad / hgweb
  2. Makefile: minor fine-tuning; updated comments — alex@thinkpad / hgweb
  3. Makefile: fix compiling backtrace on fresh clone — alex@thinkpad / hgweb
  4. selftest: fine-tuned comments and strings — alex@thinkpad / hgweb
  5. selftest: re-enabled fault emulations
    (some of them are useful for testing the stack trace, as they will trigger ERR70) — alex@thinkpad / hgweb
  6. backtrace: sync with qemu (e4376a1) — alex@thinkpad / hgweb
  7. GDB scripts: comment out DebugMsg (prefer -d debugmsg instead) — alex@thinkpad / hgweb
  8. run_canon_fw.sh: identify DebugMsg from GDB script if not set
    (moved from run_tests.sh)
    also print command-line after clearing the screen — alex@thinkpad / hgweb
  9. QEMU: GDB scripts for 50D and 6D — alex@thinkpad / hgweb

#68 (Jul 15, 2017 11:02:15 AM)

  1. backtrace: moved sources to src/ to avoid symlinking (cross-platform issues)
    and let the install script figure it out — alex@thinkpad / hgweb
  2. Merged backtrace into qemu — alex@thinkpad / hgweb
  3. Merged unified into qemu — alex@thinkpad / hgweb
  4. Makefile: workaround to unbreak the builds
    (how to fix it properly?) — alex@thinkpad / hgweb
  5. Makefile: mark $(QEMU_INSTALLED_DBI_DIR)/backtrace.% as optional dependency
    todo: any way to do the same without .SECONDEXPANSION ? — alex@thinkpad / hgweb
  6. Makefile: moved backtrace.o at the top to fix first-time compilation
    this makes sure backtrace.h is created before any other files that may use it (currently boot-hack.c)
    also remove the symlinks on "make clean" — alex@thinkpad / hgweb
  7. backtrace: sync with qemu (3db5423, fbb532b, ab6d33c, 115fe25) — alex@thinkpad / hgweb
  8. backtrace: brute force stack scanning as backup strategy (idea from g3gg0: gdb.c, gdb_get_callstack) — alex@thinkpad / hgweb
  9. backtrace: fix BKT_RANDOM_BRANCHES experiment — alex@thinkpad / hgweb
  10. backtrace: BX LR is never encountered during tests — alex@thinkpad / hgweb
  11. backtrace: fix stack overflow — alex@thinkpad / hgweb
  12. Stack traces for crash and assert logs, using the backtrace backend — alex@thinkpad / hgweb
  13. Updated backtrace.c to work on the camera as well
    (same source file for both QEMU and ML) — alex@thinkpad / hgweb
  14. arm-mcr.h: fixed read_lr (not sure what the problem was) and added read_sp — a1ex / hgweb
  15. Imported backtrace code from 29f6edc — alex@thinkpad / hgweb
  16. Ghost image: fixed issue #2749 — alex@thinkpad / hgweb
  17. Merged in daniel_fort/magic-lantern/find_fnt.py-update (pull request #844)

    find_fnt.py update — alex _broscutamaker@gmail.com_ / hgweb
  18. Added suggestion by @a1ex to guess the ROM[0,1] load address. — daniel fort _dan@digiola.com_ / hgweb
  19. Changed "base" to the address used when dumping the ROM — daniel fort _dan@digiola.com_ / hgweb
  20. Merged in daniel_fort/magic-lantern/unified-multiple-FW_VERSION-minimal-ML (pull request #846)

    Multiple firmware versions for minimal ML — alex _broscutamaker@gmail.com_ / hgweb
  21. Makefile.platform.base error trap for multiple firmware versions — daniel fort _dan@digiola.com_ / hgweb
  22. dual_iso: change cr2hdr to use the same wrapper for module_strings like mlv_dump, also fixes compile error caused by a module.h change from static to global
    (module_strings_wrapper.h from 0c1c8b3) — g3gg0 / hgweb
  23. Modules: allow including module.h in multiple source files
    (b0574dd) — alex@thinkpad / hgweb
  24. Undo 4126b56 (to allow merging with crop_rec_4k) — alex@thinkpad / hgweb
  25. Update to latest exiftool — daniel fort _dan@digiola.com_ / hgweb
  26. mlv_rec: reduce chunk count to keep room for other files to create (and circumvent mlv_play failing playback) — g3gg0 / hgweb
  27. mlv_rec: insert alignment NULL block before writers start to write aligned sizes — g3gg0 / hgweb
  28. mlv_rec: ensure 32 bit alignment for VERS block sizes. just because. — g3gg0 / hgweb
  29. Merged in daniel_fort/magic-lantern/700D_AE_fix (pull request #842)

    Fixed 700D AE constants (for autoexpo.mo)

    Approved-by: Daniel Fort <dan@digiola.com> — alex _broscutamaker@gmail.com_ / hgweb
  30. Fixed AE constants — daniel fort _dan@digiola.com_ / hgweb
  31. fio-ml: workaround for existing code using FIO_ReadFile incorrectly (such as mlv_play)
    selftest included — alex@thinkpad / hgweb
  32. Merged in cache-fixes (pull request #838)

    Cache coherence fixes (clean_d_cache, FIO, EDMAC)

    Approved-by: Alex <broscutamaker@gmail.com>
    Approved-by: g3gg0 <g3gg0.de@gmail.com> — alex _broscutamaker@gmail.com_ / hgweb
  33. Close branch cache-fixes — alex _broscutamaker@gmail.com_ / hgweb
  34. fio-ml: updated comment on FIO_WriteFile — alex@thinkpad / hgweb
  35. selftest: check whether cache cleaning causes any performance regressions
    (result: no significant difference on file I/O) — alex@thinkpad / hgweb
  36. Merged in daniel_fort/magic-lantern/EOSM_stubs_tweaks (pull request #839)
    Display filters working (anamorphic preview, fisheye correction, raw video preview and others)

    EOSM stubs tweaks

    Approved-by: Alex <broscutamaker@gmail.com> — alex _broscutamaker@gmail.com_ / hgweb
  37. Corrected YUV422_LV_BUFFER_DISPLAY_ADDR value and enabled display filters: http://www.magiclantern.fm/forum/index.php?topic=9741.msg186289#msg186289 — daniel fort _dan@digiola.com_ / hgweb
  38. Updated post_isr_hook/pre_isr_hook stubs — daniel fort _dan@digiola.com_ / hgweb
  39. Changed for consistency of stubs across all models. — daniel fort _dan@digiola.com_ / hgweb
  40. my_fprintf: fix warning — alex@thinkpad / hgweb
  41. edmac-memcpy: use cache handling similar to FIO;
    updated selftest and bench modules for the new restriction — alex@thinkpad / hgweb
  42. selftest: make sure the FIO cache coherence test fails without the FIO_WriteFile wrapper — alex@thinkpad / hgweb
  43. selftest: test for FIO_WriteFile with cacheable buffer
    if you comment out clean_d_cache() from the FIO_WriteFile wrapper, this test will fail — alex@thinkpad / hgweb
  44. selftest: save log after each sub-test
    (so one can interrupt the test suite and still see the log for the tests completed so far) — alex@thinkpad / hgweb
  45. selftest: fine-tuned DMA cacheable buffer test — alex@thinkpad / hgweb
  46. fio-ml: FIO_ReadFile wrapper to warn about caching issues
    not sure how to handle it automatically - clean_d_cache before is not enough
    adding another clean_d_cache afterwards appears to fix it, but it's risky
    sed -i.bak '/ FIO_ReadFile/_FIO_ReadFile/' */stubs.S — alex@thinkpad / hgweb
  47. Refactored without fio_malloc in a few places
    (todo: find a way to reproduce caching issues on file I/O and add it to selftest.mo) — alex@thinkpad / hgweb
  48. fio-ml: FIO_WriteFile wrapper to handle caching issues automatically
    sed -i.bak '/ FIO_WriteFile/_FIO_WriteFile/' */stubs.S — alex@thinkpad / hgweb
  49. selftest: test for clean_d_cache
    interrupts disabled, using edmac_memcpy to copy between display buffers
    this test will fail without previous commit — alex@thinkpad / hgweb
  50. fix index size in clean_d_cache
    (todo: test in selftest.mo) — alex@thinkpad / hgweb
  51. removed unnecessary declaration of mlv_snd_is_enabled — g3gg0 / hgweb
  52. mlv_snd: report back using ml-cbr when recording audio — g3gg0 / hgweb
  53. added ml-cbr to modules using MODULE_NAMED_CBR() — g3gg0 / hgweb
  54. audio uses ml-cbr to ask for recording — g3gg0 / hgweb
  55. ml-cbr: use strcmp to stay on safe side (caller might pass arbitrary length) — g3gg0 / hgweb
  56. ml-cbr: update header with more information — g3gg0 / hgweb
  57. fix ml-cbr locking issues — g3gg0 / hgweb
  58. dual_iso: temporary patch for module_get_string API change - probably needs a revert before merging crop_rec_4k into unified — g3gg0 / hgweb
  59. Deal with Windows line ending in grep 3.0, changed multi-line grep command to single line extended regular expression and remove localsyms file with make clean. — daniel fort _dan@digiola.com_ / hgweb
  60. mlv_rec: embed VERS blocks into MLV file so there is no uncertainity about the modules used for a given recording — g3gg0 / hgweb
  61. mlv_lite: embed VERS blocks into MLV file so there is no uncertainity about the modules used for a given recording — g3gg0 / hgweb
  62. mlv_lite: use FIO_SeekSkipFile to determine file header size — g3gg0 / hgweb
  63. mlv_dump: handle VERS blocks — g3gg0 / hgweb
  64. mlv_rec: added code and structures to helper routines to get version information embedded into the MLV file — g3gg0 / hgweb
  65. added routines and made a module loader routine non-static to allow other code to fetch e.g. strings from modules — g3gg0 / hgweb
  66. Merged in memcheck-fixes (pull request #829)

    Fixes for various null pointer and uninitialized memory bugs — alex _broscutamaker@gmail.com_ / hgweb
  67. mem.c: disabled double free assert (it still gets overwritten by some deallocators) — alex@thinkpad / hgweb
  68. menu.c: fixed some more null pointer reads
    (found in QEMU with -d memchk) — alex@thinkpad / hgweb
  69. tskmon: fix read from null pointer — alex@thinkpad / hgweb
  70. module.c: fix reading after the input buffer when parsing module symbols
    (found in QEMU) — alex@thinkpad / hgweb
  71. memcheck: fix detection of double-free calls
    (our marker was overwritten by Canon's deallocator, so the check was useless)
    (bug found in QEMU) — alex@thinkpad / hgweb
  72. get_current_dialog_handler: fix read from null pointer
    (found in QEMU) — alex@thinkpad / hgweb
  73. bmp.c: fix dereferencing random (uninitialized) pointer
    (found in QEMU) — alex@thinkpad / hgweb
  74. Backout 722c851 (fix FIR not included in the zip) — alex@thinkpad / hgweb
  75. Merged in raw_fixes (pull request #820)

    Raw fixes part 4

    Approved-by: Alex <broscutamaker@gmail.com> — alex _broscutamaker@gmail.com_ / hgweb
  76. Silent pictures: minor error handling fix — alex@thinkpad / hgweb
  77. Silent pics: only show the slit-scan mode option when you actually select slit-scan — alex@thinkpad / hgweb
  78. Silent pictures: fix allocating memory for a single picture
    (frame size not known in advance and might be larger than max shoot block size) — alex@thinkpad / hgweb
  79. Silent pictures: fix overflow when allocating memory for burst mode — alex@thinkpad / hgweb
  80. Merged in task_name (pull request #796)

    New method for getting current task names (refactor)

    Approved-by: Alex <broscutamaker@gmail.com> — alex _broscutamaker@gmail.com_ / hgweb
  81. Close branch task_name — alex _broscutamaker@gmail.com_ / hgweb
  82. Raw backend: fix black border on raw previews (completes 23d1f0e) — alex@thinkpad / hgweb
  83. Merged cleanup into unified — alex _broscutamaker@gmail.com_ / hgweb
  84. Removed april fools prank — alex@thinkpad / hgweb
  85. debug.c: removed unused code — alex@thinkpad / hgweb
  86. Zip comment: removed old links — alex@thinkpad / hgweb
  87. fio-ml: fix possible buffer overflow with PROP_CARD_SELECT
    (might happen on unusual settings or new models) — alex@thinkpad / hgweb
  88. Makefile: summarize CONFIG options and GCC version from Makefile.user (if any) in the build log; minor fixes — alex@thinkpad / hgweb
  89. Makefile: don't try to build the FIR on make install/zip — a1ex / hgweb
  90. Modules: removed some unused definitions — alex@thinkpad / hgweb
  91. Debug -> Unmount SD: minor UI tweak (turn on the LED after unmounting) — alex@thinkpad / hgweb
  92. Merged in lens_info_fix (pull request #775)

    Lens info fix

    Approved-by: Daniel Fort <dan@digiola.com>
    Approved-by: Licaon Kter <licaon.kter@protonmail.com>
    Approved-by: DeafEyeJedi <deafeyejedi@yahoo.com>
    Approved-by: Lars Steenhoff <larssteenhoff@gmail.com>
    Approved-by: g3gg0 <g3gg0.de@gmail.com>
    Approved-by: Alex <broscutamaker@gmail.com> — alex _broscutamaker@gmail.com_ / hgweb
  93. Close branch lens_info_fix — alex _broscutamaker@gmail.com_ / hgweb
  94. Silent pictures: always reset powersave timer when taking a picture — alex@thinkpad / hgweb
  95. Lens info: serial number (to be tested) — alex@thinkpad / hgweb
  96. Lens info: minor menu updates (mostly help text) — alex@thinkpad / hgweb
  97. Lens info: minor menu layout changes — alex@thinkpad / hgweb
  98. Lens info: moved to Debug menu (to keep the Prefs menu for... preferences) — alex@thinkpad / hgweb
  99. Merged in pre-record (pull request #728)

    Pre-recording feature (mlv_lite)

    Approved-by: DeafEyeJedi
    Approved-by: David Milligan
    Approved-by: Maqs
    Approved-by: g3gg0
    Approved-by: Mathew Kelly
    Approved-by: Alex — alex _broscutamaker@gmail.com_ / hgweb
  100. Close branch pre-record — alex _broscutamaker@gmail.com_ / hgweb
  101. mlv_lite: fix chunk frame count (to be tested) — alex@thinkpad / hgweb
  102. srm_malloc_suite: extra wait after locking the GUI
    (to be checked on cameras that don't pass the SRM memory test from selftest.mo) — alex@thinkpad / hgweb
  103. srm_malloc_suite: minor fix
    (no effects with current usage) — alex@thinkpad / hgweb
  104. Raw backend: fix black borders on raw previews — alex@thinkpad / hgweb
  105. Merge with unified — g3gg0 / hgweb
  106. mlv_lite: fix MLV frame count when using pre-recording — alex@thinkpad / hgweb
  107. Merged unified into pre-record — alex@thinkpad / hgweb
  108. check for property length and decide if this feature is available — g3gg0 / hgweb
  109. fixed lens ID reading, added version etc. to be tested — g3gg0 / hgweb
  110. raw_rec: pre-recording feature (experimental) — alex@thinkpad / hgweb
  111. Merge raw_fixes into pre-record — alex@thinkpad / hgweb

#67 (Jul 14, 2017 7:02:04 PM)

  1. run_ml_all_cams: fix missing quote — alex@thinkpad / hgweb
  2. QEMU logging: backtrace test script — alex@thinkpad / hgweb
  3. run_ml_all_cams: prefer single quotes instead of \$ for options — alex@thinkpad / hgweb
  4. run_ml_all_cams: allow full customization of log file name — alex@thinkpad / hgweb
  5. Stack traces for crash and assert logs, using the backtrace backend — alex@thinkpad / hgweb
  6. Updated backtrace.c to work on the camera as well
    (same source file for both QEMU and ML) — alex@thinkpad / hgweb
  7. arm-mcr.h: fixed read_lr (not sure what the problem was) and added read_sp — a1ex / hgweb
  8. QEMU logging: experimental stack trace routine (backtrace) that does not require prior instrumentation
    it attempts to walk the stack, emulating instructions that change LR, SP, function returns and tail calls
    some more experiments and self-tests are available as compile-time options
    this method can be adapted to run on the camera as well — alex@thinkpad / hgweb

#66 (Jul 14, 2017 4:28:47 PM)

  1. run_ml_all_cams: fix copying zip to SD/CF image — alex@thinkpad / hgweb
  2. QEMU logging: fix assertion when printing callstack from interrupts on Thumb code — alex@thinkpad / hgweb
  3. QEMU logging: save/restore callstack exec state for each DryOS task when handling interrupts
    This fixes calls/returns that were missed if an interrupt happened exactly before the jump
    (non-deterministic issue; was fairly rare and not obvious) — alex@thinkpad / hgweb
  4. QEMU logging: indent now public (eos_indent); larger buffer — alex@thinkpad / hgweb
  5. QEMU logging: CALL_LOCATION for eos_callstack_get_caller_param; fix CALL_DEPTH — alex@thinkpad / hgweb
  6. QEMU logging: overriding LR no longer needed in call_stack_push — alex@thinkpad / hgweb
  7. run_ml_all_cams: fix copying zip to SD/CF image — alex@thinkpad / hgweb

#65 (Jul 14, 2017 11:12:18 AM)

  1. QEMU logging: do not report jumps from tight loops
    otherwise, some loops would print a huge amount of jumps (unnecessary)
    these would slow down certain tests a lot, e.g. 5D3 callstack on fromutility — alex@thinkpad / hgweb
  2. QEMU logging: record direct jumps to function calls (many such calls in DIGIC 6) — alex@thinkpad / hgweb
  3. QEMU logging: log task switches before other items
    otherwise, consistency errors may appear - see test_callstack.py
    minor differences in VxWorks tests — alex@thinkpad / hgweb
  4. QEMU: ignore CBZ (on Thumb-2 code) — alex@thinkpad / hgweb
  5. run_ml_all_cams: use multi-line QEMU_SCRIPT's (nicer formatting) — alex@thinkpad / hgweb
  6. run_ml_all_cams: fix BOOT=0 — alex@thinkpad / hgweb
  7. run_ml_all_cams: fix ML_PLATFORMS when not specified — alex@thinkpad / hgweb

#63 (Jul 13, 2017 11:20:01 PM)

  1. QEMU: 650D GUI — alex@thinkpad / hgweb
  2. QEMU: 650D GUI (including tests) — alex@thinkpad / hgweb
  3. QEMU: 1300D updates
    - SD interrupts (DCIM test passed)
    - HDMI status (minor)
    - GDB script updated for latest firmware
    - patch JPCORE (fixes assert) — alex@thinkpad / hgweb
  4. QEMU tests: removed MENU_CAMS (all GUI_CAMS are now able to browse Canon menu) — alex@thinkpad / hgweb
  5. QEMU: 70D menu tests (format test not working) — alex@thinkpad / hgweb

#61 (Jul 13, 2017 6:55:27 PM)

  1. QEMU tests: only print ROMCPY messages before the first interrupt — alex@thinkpad / hgweb
  2. QEMU: options for run_ml_all_cams.sh to compile and run a given set of ML platforms, from any HG changeset — alex@thinkpad / hgweb
  3. QEMU: updated splitgdb.sh as discussed on EOS M2 thread
    http://www.magiclantern.fm/forum/index.php?topic=15895.msg186245#msg186245 — alex@thinkpad / hgweb
  4. QEMU: flush after qprintn, so the output will appear right away — alex@thinkpad / hgweb
  5. QEMU logging: handle %c with -debugmsg — alex@thinkpad / hgweb
  6. QEMU logging: minor fixes for -d autoexec — alex@thinkpad / hgweb
  7. QEMU: updated 5D4 GDB script and tests for 1.0.4 — alex@thinkpad / hgweb
  8. QEMU logging: workaround to handle some missing return from interrupts
    (updated 600D and 1100D unique function tests - they differ by one function) — alex@thinkpad / hgweb
  9. QEMU: EOS M2 tests + patches.gdb — alex@thinkpad / hgweb
  10. QEMU: OOB fix from https://lists.gnu.org/archive/html/qemu-devel/2017-07/msg03239.html — alex@thinkpad / hgweb
  11. Merged in daniel_fort/magic-lantern/qemu-EOSM2-wip_1 (pull request #835)

    QEMU EOSM2 preliminary setup. — alex _broscutamaker@gmail.com_ / hgweb
  12. Updates to debugmsg.gdb — daniel fort _dan@digiola.com_ / hgweb
  13. Found correct values by checking against 1.0.2 firmware. — daniel fort _dan@digiola.com_ / hgweb
  14. I’m pretty sure “set *(int*)0xFF356DE8 = 0xe12fff1e” is wrong but everything else should be good. — daniel fort _dan@digiola.com_ / hgweb
  15. Added EOSM2 to mph.c — daniel fort _dan@digiola.com_ / hgweb
  16. Updated EOSM2 debugmsg.gdb file. — daniel fort _dan@digiola.com_ / hgweb
  17. Added EOSM2.h file, copied from 100D. — daniel fort _dan@digiola.com_ / hgweb
  18. Copied button codes from 100D to EOSM2. — daniel fort _dan@digiola.com_ / hgweb
  19. Added EOSM2 in supported cameras list. — daniel fort _dan@digiola.com_ / hgweb
  20. Added mpu registers to EOSM2 in model_list.c — daniel fort _dan@digiola.com_ / hgweb
  21. Merged qemu into qemu-EOSM2-wip-1 — daniel fort _dan@digiola.com_ / hgweb
  22. Merged latest qemu commits — daniel fort _dan@digiola.com_ / hgweb
  23. Merged in qemu commits — daniel fort _dan@digiola.com_ / hgweb
  24. Added items from ML on EOS-M2 forum post: http://www.magiclantern.fm/forum/index.php?topic=15895.msg185228#msg185228 — daniel fort _dan@digiola.com_ / hgweb
  25. EOSM2 preliminary setup. — daniel fort _dan@digiola.com_ / hgweb
  26. Merged in daniel_fort/magic-lantern/qemu-build-tweaks-2 (pull request #836)

    Qemu build tweaks 2

    Approved-by: Daniel Fort <dan@digiola.com> — alex _broscutamaker@gmail.com_ / hgweb
  27. -s option not needed with uname. — daniel fort _dan@digiola.com_ / hgweb
  28. Check for mounted EOS_DIGITAL disk image handled differently on OS X. — daniel fort _dan@digiola.com_ / hgweb
  29. Merged qemu into qemu-build-tweaks-2 — daniel fort _dan@digiola.com_ / hgweb
  30. Merged qemu into qemu to prevent multiple heads. — daniel fort _dan@digiola.com_ / hgweb
  31. Changed shebang for portability. Missed these two scripts in my last pull request. — daniel fort _dan@digiola.com_ / hgweb
  32. OS X doesn’t require root permissions to mount disk image. — daniel fort _dan@digiola.com_ / hgweb
  33. Use hdiutil on OS X systems. — daniel fort _dan@digiola.com_ / hgweb
  34. Merged in daniel_fort/magic-lantern/qemu-build-tweaks-1 (pull request #834) — daniel fort _dan@digiola.com_ / hgweb

#60 (Jun 11, 2017 2:38:53 AM)

  1. QEMU: updated reference data for sorted IDC tests on some models
    (100D, 700D, EOSM, 5D) — alex@thinkpad / hgweb
  2. QEMU: 80D patches.gdb
    (required to run the stack trace check on a DIGIC 6 model with DryOS task switches) — alex@thinkpad / hgweb
  3. QEMU logging: fix some rarely missed jumps
    (usually in return from interrupt) — alex@thinkpad / hgweb
  4. QEMU logging: fix Thumb PC in call stack traces (for DIGIC 6) — alex@thinkpad / hgweb
  5. QEMU test suite: check callstack consistency
    (whether verbose stack trace matches the call/return trace)
    (also checks context info, such as current task or interrupt) — alex@thinkpad / hgweb
  6. QEMU: do not log UART messages when it's redirected to a file
    (-serial file:out.log) — alex@thinkpad / hgweb
  7. QEMU: with -d calls, always align location information
    (insert a newline on very long lines)
    (updated tests) — alex@thinkpad / hgweb
  8. QEMU: also log interrupt ID when using -d calls — alex@thinkpad / hgweb
  9. QEMU: use verbose stack trace for DebugMsg and GDB scripts
    (each call on its own line - much more readable)
    to get callstack for every single DebugMsg, use "-d debugmsg,callstack,v"
    or, for GDB scripts: "-d callstack -s -S" for QEMU, "macro define PRINT_CALLSTACK 1" in the GDB script, without quotes) — alex@thinkpad / hgweb
  10. QEMU: option to log DebugMsg calls natively, without GDB scripts
    (much faster; very similar to nkls' initial implementation) — alex@thinkpad / hgweb
  11. QEMU: redirect the monitor console to qemu.monitor unix socket
    (to restore the old behavior, run with -monitor vc) — alex@thinkpad / hgweb

#58 (Jun 7, 2017 3:15:24 AM)

  1. Merged in daniel_fort/magic-lantern/qemu-build-tweaks-1 (pull request #834)
    (fixes for building QEMU on Mac)

    QEMU build tweaks 1

    Approved-by: Daniel Fort <dan@digiola.com> — alex _broscutamaker@gmail.com_ / hgweb
  2. Merged in latest qemu commits — daniel fort _dan@digiola.com_ / hgweb
  3. QEMU: parameterized MPU spells for PROP_CARDn_STATUS;
    updated WriteProtect handling on most DIGIC 4/5 models
    (otherwise, these GUIs would show the card write-protected dialog) — alex@thinkpad / hgweb
  4. QEMU: use timestamps to decide the relationship between MPU spells
    (only messages received shortly after a mpu_send call should be considered replies) — alex@thinkpad / hgweb
  5. QEMU: warning about duplicate MPU spells
    (they will show where the communication may depend on state) — alex@thinkpad / hgweb
  6. QEMU: include a description for each input MPU spell
    (updated extract_init_spells.py with definitions for some known spells) — alex@thinkpad / hgweb
  7. Suppress printing an error message if the command isn’t found. — daniel fort _dan@digiola.com_ / hgweb
  8. Changed shebang in bash scripts. This should make them more portable. An issue came up because the Macintosh uses an older version of bash in /bin/bash and we want to use a newer Homebrew installed version in /user/local/bin/bash without breaking other setups. — daniel fort _dan@digiola.com_ / hgweb
  9. QEMU: parameterized MPU spells for UILock and NotifyGUIEVent — alex@thinkpad / hgweb
  10. QEMU: parameterized MPU spells (experimental) — alex@thinkpad / hgweb
  11. QEMU: incomplete half-shutter emulation
    (fixme: it should  show the metering indicator or close menus/dialogs) — alex@thinkpad / hgweb

#57 (Jun 7, 2017 12:27:34 AM)

  1. QEMU: menu navigation works on 5D3 1.1.3 — alex@thinkpad / hgweb
  2. QEMU logging: minor cleanups — alex@thinkpad / hgweb
  3. QEMU logging: moved ABI checking in its own routine (minor refactor) — alex@thinkpad / hgweb
  4. QEMU logging: moved -tasks in its own routine (much faster)
    note: task switching locations differ on VxWorks models after this change
    (they are approximate anyway) — alex@thinkpad / hgweb
  5. QEMU logging: option to enable verbosity only when autoexec.bin is loaded
    (useful for new ports; bootloader can be very verbose with certain logging settings) — alex@thinkpad / hgweb
  6. QEMU: exposed callstack to GDB and ML guest code
    based on nkls' first implementation of DebugMsg helper
    assert in gdb scripts now always prints the call stack — alex@thinkpad / hgweb
  7. GDB scrips: task switch logging helper (pure GDB) — alex@thinkpad / hgweb
  8. QEMU logging: stronger test for ML stubs
    (fixes some non-function symbols that appear when compiling ML with -ggdb) — alex@thinkpad / hgweb
  9. Experimental debug info in magiclantern elf file
    it allows mapping from code address to source line
    (example: eu-addr2line -s -S -e magiclantern 0x50d60)
    it should not end up in autoexec.bin or affect it in any way — alex@thinkpad / hgweb
  10. QEMU logging: attempt to guess strings and named functions in call/return trace
    (adapted from dm-spy-experiments)
    (self-test results updated) — alex@thinkpad / hgweb

#56 (May 30, 2017 2:59:01 PM)

  1. qemu-util now always available (in dryos.h)
    (these functions are only compiled with CONFIG_QEMU=y; otherwise they are just type-checked and optimized out) — alex@thinkpad / hgweb
  2. boot-hack: fix boot with CONFIG_QEMU on some models
    (qprintf/vsnprintf reboots the camera because it's not yet initialized)
    also added a safeguard to prevent such mistakes — alex@thinkpad / hgweb

#55 (May 28, 2017 4:30:04 PM)

  1. QEMU test suite: fix PowerShot tests using wrong debugmsg.gdb — alex@thinkpad / hgweb
  2. QEMU logging: fix copy/paste error in ROM block autodetection — alex@thinkpad / hgweb
  3. QEMU logging: explicit option to show task switches
    (rather than hijacking callstack) — alex@thinkpad / hgweb

#54 (May 28, 2017 3:15:54 PM)

  1. QEMU test suite: list memory blocks copied from ROM during bootloader tests
    (both EOS and PowerShot firmwares) — alex@thinkpad / hgweb
  2. QEMU logging: allow ROM block copying in arbitrary increments, up to 128-bit
    mixing memory access sizes is allowed too
    the block must be copied sequentially, from left to right or from right to left or mixed, with no gaps at any moment during the copy operation
    copying e.g. 16 bytes from/to offset 0, 16 bytes f/t 0x10, 4 bytes f/t 0x20 and 1 byte f/t 0x24 will be considered a 0x25-byte block
    but copying 16 bytes f/t offset 0, 4 bytes f/t 0x14 and then 4 bytes f/t 0x10 will be treated as 2 adjacent blocks (16 bytes and 8 bytes); that's because of the gap during the copy operation
    only blocks larger than 0x40 bytes are printed — alex@thinkpad / hgweb
  3. QEMU logging: experimental option for finding memory blocks copied from ROM to RAM
    (only 32-bit sequential copies for now) — alex@thinkpad / hgweb
  4. QEMU logging: fix memory logging selection in complex cases
    e.g. romr,ramw should only log ROM reads and RAM writes
    in simple cases (such as just romr or just ramw), hooks are installed only for the selected operation (read or write)
    in these cases, additional checks will be redundant
    however, with complex cases such as romr,ramw, hooks are installed for all reads and and all writes
    so we can no longer rely on the hooks (being installed or not) for filtering the results — alex@thinkpad / hgweb
  5. QEMU logging: fix task info on Eeko — alex@thinkpad / hgweb
  6. QEMU logging: quiet some jumps that are not function calls (frequently used on Thumb-2) — alex@thinkpad / hgweb
  7. QEMU: fix CSS in HTML logs from subdirectories — alex@thinkpad / hgweb

#53 (May 27, 2017 8:19:46 PM)

  1. QEMU scripts: allow loading symbols from any ML target (e.g. minimal, installer) — alex@thinkpad / hgweb
  2. QEMU: .current_task_addr for most models
    (where it was already known - copied from ML stubs or from debugmsg.gdb) — alex@thinkpad / hgweb
  3. QEMU logging: experimental task switch detection (DIGIC 2-6) — alex@thinkpad / hgweb
  4. QEMU logging: attempt to fix a rare crash when returning from interrupt — alex@thinkpad / hgweb
  5. QEMU logging: fix VxWorks return from interrupt; refactored interrupt detection on DIGIC 6 — alex@thinkpad / hgweb

#52 (May 27, 2017 2:57:30 PM)

  1. QEMU test suite: fix call/return trace logs being trimmed way before the first interrupt
    (the deterministic part is usually much larger than previously covered) — alex@thinkpad / hgweb
  2. QEMU test suite: also report nested interrupts — alex@thinkpad / hgweb

#51 (May 27, 2017 12:08:14 PM)

  1. QEMU: fix minor regression in DIGIC 6 bootloader
    (introduced in 7f1ba92; some tests changed) — alex@thinkpad / hgweb
  2. QEMU logging: minor rename — alex@thinkpad / hgweb

#49 (May 26, 2017 2:19:18 AM)

  1. QEMU test suite: workaround for the non-determinism in the sorted IDC test
    (retry up to 5 times until it succeeds) — alex@thinkpad / hgweb
  2. QEMU test suite: more tests for call/return trace and IDC scripts (including Thumb, interrupts, secondary cores)
    Not all models are passing. — alex@thinkpad / hgweb
  3. QEMU: fix cache lockdown printf's (they should go to stderr) — alex@thinkpad / hgweb
  4. QEMU: fix handling UART interrupts with serial redirected — alex@thinkpad / hgweb

#47 (May 25, 2017 7:54:41 PM)

  1. QEMU: fine-tuned verbsity of various components
    (interrupts, digic timer, DMA, serial flash, CFATA) — alex@thinkpad / hgweb
  2. QEMU logging: fix call identification on Thumb (eeko) — alex@thinkpad / hgweb
  3. QEMU logging: fix crash on 5D3 eeko — alex@thinkpad / hgweb
  4. QEMU: changed REG_PRINT_NUM so it no longer includes a newline; updated boot-hack and fixed regression in boot-check logs — alex@thinkpad / hgweb
  5. QEMU: warn on ROM size mismatch — alex@thinkpad / hgweb
  6. QEMU run_canon_fw.sh: clear screen on each run — alex@thinkpad / hgweb
  7. QEMU logging: experimental symbol name loading from ML object files
    example (bash): . ./export_ml_syms.sh 500D.111; ./run_canon_fw.sh 500D,firmware="boot=1" ...
    fixme: QEMU elf loader patched in a not very clean way — alex@thinkpad / hgweb

#46 (May 23, 2017 12:14:57 AM)

  1. QEMU logging: simplified function call detection a bit more
    (results should be unchanged) — alex@thinkpad / hgweb
  2. QEMU logging: always guess function arguments located on the stack
    (-d calls now implies -d ramr) — alex@thinkpad / hgweb
  3. QEMU logging: explicit option to export to IDC
    (-d idc) — alex@thinkpad / hgweb
  4. QEMU logging: check R4-R11 and SP when returning from function calls
    (all registers now stored on the call stack) — alex@thinkpad / hgweb
  5. QEMU logging: in IDC comments, record task name when available and drop prev_sp — alex@thinkpad / hgweb
  6. QEMU logging: basic test for IDC (function list only)
    (useful when formatting changes) — alex@thinkpad / hgweb
  7. QEMU test suite: nicer way to interrupt our background QEMU process — alex@thinkpad / hgweb
  8. QEMU logging: simplified function call detection
    (results should be unchanged) — alex@thinkpad / hgweb
  9. QEMU logging: indent callstack locations at 80 chars
    indent amount configurable at compile time
    tests updated — alex@thinkpad / hgweb
  10. QEMU: 1300D current_task_addr — alex@thinkpad / hgweb

#45 (May 20, 2017 12:35:31 AM)

  1. QEMU: initial GDB script for 1300D; display test — alex@thinkpad / hgweb
  2. QEMU: initial support for Mac and clang in install scripts (to be tested) — alex@thinkpad / hgweb
  3. QEMU: fix compiling with clang — alex@thinkpad / hgweb
  4. QEMU test suite: removed basic GUI test (redundant) — alex@thinkpad / hgweb
  5. QEMU test suite: tests for callstack and call/return trace — alex@thinkpad / hgweb
  6. QEMU: disable gray noise that appeared until GUI initialization (faster) — alex@thinkpad / hgweb
  7. QEMU logging: minor callstack speed optimization — alex@thinkpad / hgweb
  8. QEMU logging: in call/return trace, print caller (from call stack) instead of raw LR — alex@thinkpad / hgweb
  9. QEMU logging: callstack speed optimization — alex@thinkpad / hgweb
  10. QEMU logging: fix handling nested interrupts in callstack — alex@thinkpad / hgweb
  11. QEMU logging: initial call stack support for Thumb-2 (DIGIC 6) — alex@thinkpad / hgweb
  12. QEMU logging: attempt to guess additional function arguments from RAM tracing
    (use -d calls,ram to enable this) — alex@thinkpad / hgweb
  13. QEMU logging: print first 4 arguments and return value for all function calls
    (with -d calls) — alex@thinkpad / hgweb
  14. QEMU: get stack limits of current DryOS task and print them on the call stack
    new API: eos_get_current_task_stack — alex@thinkpad / hgweb
  15. QEMU logging: API for retrieving various parameters from the call stack
    (SP, stack frame size, call depth, function arguments)
    note: R0-R3 stored on the call stack
    API name: eos_callstack_get_caller_param — alex@thinkpad / hgweb
  16. QEMU logging: fine-tune options; auto-enable dependencies — alex@thinkpad / hgweb
  17. QEMU: indent memcheck and io_log messages according to call depth
    new API: eos_callstack_get_indent — alex@thinkpad / hgweb
  18. QEMU memcheck: fix line wrapping in verbose messages about multitasked free calls
    (minor; visible with -d memchk,v) — alex@thinkpad / hgweb
  19. QEMU logging: generic print_location; refactored memcheck to use it
    (eos_print_location) — alex@thinkpad / hgweb
  20. QEMU logging: simple call stack printing API, used in memcheck when reporting errors
    (eos_callstack_print) — alex@thinkpad / hgweb
  21. QEMU logging: experimental call stack reconstruction
    ideas from https://github.com/panda-re/panda/blob/master/panda/plugins/callstack_instr/USAGE.md
    fixme: requires -d calls,nochain -singlestep
    new APIs: eos_get_current_task_id, eos_callstack_indent — alex@thinkpad / hgweb
  22. QEMU logging: refactored to split IDC and call logic — alex@thinkpad / hgweb
  23. QEMU memcheck: split exec hook into components
    (malloc and memcpy for now; non-functional change) — alex@thinkpad / hgweb
  24. QEMU memcheck: refactored with CPU env (easier to get register values; non-functional) — alex@thinkpad / hgweb
  25. QEMU memcheck: refactored malloc list with a data structure (non-functional) — alex@thinkpad / hgweb
  26. QEMU memcheck: identify blocks affected by heap errors (messages similar to valgrind) — alex@thinkpad / hgweb
  27. QEMU memcheck: fix memcpy handling
    (do not copy allocation flags, only initialization; fix copying from ROM) — alex@thinkpad / hgweb
  28. QEMU: AbortEDmac emulation — alex@thinkpad / hgweb
  29. QEMU: basic model of EDMAC transfer delay — alex@thinkpad / hgweb
  30. QEMU: gui/menu tests for 5D2 and 50D — alex@thinkpad / hgweb

#44 (May 6, 2017 8:25:37 PM)

  1. QEMU: force line-buffered output for our messages — alex@thinkpad / hgweb
  2. QEMU: a few more assertions for memcheck — alex@thinkpad / hgweb
  3. QEMU: fix card formatting on 50D and 5D2; menu tests for 5D2 — alex@thinkpad / hgweb
  4. QEMU: fix CURRENT_CPU outside MMIO handlers
    (defaults to cpu0; fixes CF routines crashing when used with -d memchk)
    (may need to be changed for EOS M5, when its time comes) — alex@thinkpad / hgweb
  5. QEMU: updated 5D2 MPU spells, thanks Ilia. Menu works!
    http://www.magiclantern.fm/forum/index.php?topic=9852.msg184191#msg184191 — alex@thinkpad / hgweb

#42 (May 2, 2017 9:56:10 PM)

  1. QEMU: GDB script for 5D2 — alex@thinkpad / hgweb
  2. QEMU: 50D menu navigation tests — alex@thinkpad / hgweb
  3. QEMU: 50D menu navigation works! — alex@thinkpad / hgweb
  4. QEMU: 50D button codes — alex@thinkpad / hgweb
  5. QEMU: fix 50D CFATA and HDMI; GUI boots! — alex@thinkpad / hgweb
  6. QEMU: 50D MPU spells, thanks jrm21
    http://www.magiclantern.fm/forum/index.php?topic=9852.msg184191#msg184191 — alex@thinkpad / hgweb

#41 (May 2, 2017 7:29:51 PM)

  1. QEMU: minor speed optimization in serial_flash — alex@thinkpad / hgweb
  2. QEMU: speed up test suite
    (large delays no longer needed) — alex@thinkpad / hgweb
  3. QEMU: CFDMA write works on 5D2 (DCIM test passed!) — alex@thinkpad / hgweb
  4. QEMU: fix CFDMA on 5D2 (only read works) — alex@thinkpad / hgweb
  5. QEMU: made MPU/SF/SD/CF logging macros generic (in eos.h)
    -d sdcf for logging SD/CF messages — alex@thinkpad / hgweb
  6. QEMU: configurable resolution for digic timer — alex@thinkpad / hgweb

#40 (May 2, 2017 2:57:39 AM)

  1. QEMU: updated tests for faster card formatting
    (BUSY dialog no longer caught) — alex@thinkpad / hgweb
  2. QEMU: trigger SDIO interrupt on errors as well
    (fixes semaphore timeout after CMD1; to be tested for side effects) — alex@thinkpad / hgweb
  3. mpu: refactored verbosity; most messages now hidden by default
    (-d mpu or -d mpu,verbose or -d io,mpu etc to show them) — alex@thinkpad / hgweb
  4. serial_flash: refactored verbosity; most messages now hidden by default (-d sflash shows them) — alex@thinkpad / hgweb
  5. QEMU: fix memory logging on models with serial flash — alex@thinkpad / hgweb

#39 (May 1, 2017 10:51:51 PM)

  1. QEMU: minor fixes in scripts — alex@thinkpad / hgweb
  2. QEMU memcheck: fix printf's
    (should go to stderr) — alex@thinkpad / hgweb
  3. QEMU memcheck: get ML stubs from environment variables — alex@thinkpad / hgweb

#38 (May 1, 2017 5:23:33 PM)

  1. QEMU memchk: experimental TCM checking
    (catches even more null pointer bugs) — alex@thinkpad / hgweb
  2. QEMU memchk: moved stubs in a data structure, for easier porting — alex@thinkpad / hgweb
  3. QEMU: highly experimental memory checking tool (-d memchk)
    (stubs hardcoded for 500D) — alex@thinkpad / hgweb
  4. Memory logging: fine-tuned messages — alex@thinkpad / hgweb
  5. QEMU: moved our memory logging routines to logging.c — alex@thinkpad / hgweb
  6. QEMU: moved our calls logging hook to separate file; preparing to add more tools — alex@thinkpad / hgweb
  7. QEMU: hook called when execution a TranslationBlock
    (todo: move the hardcoded analysis tools from cpu-exec) — alex@thinkpad / hgweb
  8. QEMU: use 64 bits for qemu_loglevel; renumbered and defined some more options for future use — alex@thinkpad / hgweb
  9. QEMU: output all our messages to stderr
    (should fix colors getting mixed up) — alex@thinkpad / hgweb
  10. QEMU: use macros for ANSI colors — alex@thinkpad / hgweb
  11. QEMU: minor fix in UILock.h
    (todo: parameterized MPU messages) — alex@thinkpad / hgweb
  12. QEMU: compile with code coverage (gcov); helper script for lcov — alex@thinkpad / hgweb