Build stability: No recent builds failed.100
Build History
io_trace_full, general-purpose (1100D: MPU only)
io_trace_full, MPU only
550D, io_trace_full, MPU only


#16 (Dec 21, 2018 5:09:55 PM)

  1. io_trace: fix crash with CONFIG_QEMU
    (still interferes with qprintf, as it logs MMIO events for every single character) — alex@thinkpad / bitbucket
  2. dm-spy: fix progress bar locking up the camera during startup — alex@thinkpad / bitbucket
  3. dm-spy: print start/stop messages in the log file

    - useful to tell whether the log file is complete or was trimmed for some reason
    - making sure these are really the first and last messages in the log file was not trivial — alex@thinkpad / bitbucket
  4. io_trace: nicer handling of buffer overflow
    (the buffer is no longer circular => no more data lost at the beginning of the log) — alex@thinkpad / bitbucket
  5. io_trace: pause LiveView when saving the log
    (faster) — alex@thinkpad / bitbucket
  6. dm-spy: simple progress indicator to show when the logging buffers get full
    (so you know when to stop the experiment without losing data) — alex@thinkpad / bitbucket
  7. dm-spy: allow logs larger than maximum contiguous chunk
    (larger than ~ 32 MB) — alex@thinkpad / bitbucket
  8. io_trace: fix timestamp overflow for long experiments — alex@thinkpad / bitbucket
  9. io_trace: log extended MMIO range by default (C0000000 - DFFFFFFF);
    documented some more useful memory regions — alex@thinkpad / bitbucket
  10. io_trace: reset buffer index every time
    (fixes bunch of zeros at the beginning of log file) — alex@thinkpad / bitbucket
  11. Merged dm-spy-experiments into io_trace_full — alex@thinkpad / bitbucket
  12. Merged dm-spy-experiments into io_trace_full
    (minor fixes; latest qemu) — alex@thinkpad / bitbucket
  13. io_trace: fix decoding post-indexed addressing modes
    (the memory access is performed on the unmodified register value) — alex@thinkpad / bitbucket
  14. dm-spy: fix typo that caused some missed messages at early startup — alex@thinkpad / bitbucket
  15. dm-spy: use SPARSE_MESSAGES by default if CONFIG_MMIO_TRACE is not defined — alex@thinkpad / bitbucket
  16. dm-spy: fix timer unwrap not resetting for the second log captured in the same session
    (and third and fourth and so on) — alex@thinkpad / bitbucket
  17. dm-spy: option to properly timestamp "sparse" messages
    (useful if there may be more than one second between two messages, as the hardware timer wraps around at 1048576 us) — alex@thinkpad / bitbucket
  18. dm-spy: LED feedback while pretty-printing messages — alex@thinkpad / bitbucket
  19. dm-spy-extra: use STUB_ENTRY for EDMAC functions
    (no more need to hardcode these stubs) — alex@thinkpad / bitbucket
  20. dm-spy: custom logging function for SetEDmac; fine-tuned other EDMAC helpers — alex@thinkpad / bitbucket
  21. dm-spy-extra: fine-tuned configuration for photo capture logging (5D3.113) — alex@thinkpad / bitbucket
  22. dm-spy-extra: old mmio_log experiments no longer needed
    (still keeping this function for compatibility) — alex@thinkpad / bitbucket
  23. dm-spy: unwrap the timer and print timestamps as ss.mmm.uuu
    (s=second, m=millisecond, u=microsecond) — alex@thinkpad / bitbucket
  24. io_trace: decode usual LDR/STR addressing modes (most of the A5.2 in ARM ARM);
    also store Rm during data collection (values may not be always valid; decoded later) — alex@thinkpad / bitbucket
  25. io_trace: dummy wrappers for use with CONFIG_MMIO_TRACE=n — alex@thinkpad / bitbucket
  26. dm-spy-extra: removed the "from %x" mentions, as we can now override PC for all messages — alex@thinkpad / bitbucket
  27. dm-spy: fix minor regression
    (missing class/level values in DebugMsg's) — alex@thinkpad / bitbucket
  28. dm-spy: hide MMIO access performed by EDMAC interrupt logger;
    io_trace: helpers to pause/resume MMIO logging — alex@thinkpad / bitbucket
  29. dm_spy: re-enabled EDMAC info on interrupts — alex@thinkpad / bitbucket
  30. dm-spy: attempt to log addresses where interrupts were triggered
    (what task was interrupted and where exactly) — alex@thinkpad / bitbucket
  31. dm-spy, io_trace: timestamp messages without logging their MMIO timer read
    (fixes some out-of-order timestamps and reduces unnecessary verbosity) — alex@thinkpad / bitbucket
  32. dm-spy, io_trace: major rework to reduce CPU usage, to be able to log LiveView and photo capture without issues
    - store messages in a binary data structure, format things like task name, timestamp and PC later
    - sync with other loggers that may use their own data structure (currently io_trace, todo: EDMAC)
    - non-sprintf wrappers (debug_logstr, debug_loghex) are now line-buffered
    - use shoot_malloc for output buffer (formatting messages takes a few seconds)
    - can log LiveView (25/30 FPS, not 50/60 FPS), can log photo capture without interference (image is still good!)
  33. NotifyBox: log messages to QEMU console — alex@thinkpad / bitbucket
  34. snprintf: assert if size is negative — alex@thinkpad / bitbucket
  35. dm-spy: refactored CONFIG_DEBUG_INTERCEPT and CONFIG_DEBUG_INTERCEPT_STARTUP to use the same (common) code — alex@thinkpad / bitbucket
  36. dm-spy-extra: some options to log photo capture or LiveView with full MMIO trace
    (not working well; these processes are very sensitive to timing; our logging code is way too slow) — alex@thinkpad / bitbucket

#15 (Dec 21, 2018 4:55:53 PM)

  1. Merged unified into dm-spy-experiments
    (memory backend updates) — alex@thinkpad / bitbucket
  2. dm-spy: use 8MB buffer for regular (non-startup) experiments — alex@thinkpad / bitbucket
    (delays the startup by a few seconds, but it's very useful for identifying unused memory areas) — alex@thinkpad / bitbucket
  4. dm-spy: attempt to save the log if camera crashes during the experiment — alex@thinkpad / bitbucket
  5. dm-spy: 700D has enough memory for 2MB startup logs; assuming 650D as well — alex@thinkpad / bitbucket
  6. Ghost image: further cleanups and fixes — alex@thinkpad / bitbucket
  7. Ghost image: fix crash (issues #2796, #2783, #2878, #2885) — alex@thinkpad / bitbucket
  8. features.tmpl edited online with Bitbucket: use id in th section heading to allow for direct linking via anchor — erik krause _erik.krause@gmx.de_ / bitbucket
  9. Merged in edmac (pull request #886)

    EDMAC module: fixes for DIGIC 4, connection map — alex@thinkpad / bitbucket
  10. Merged in adv_int (pull request #907)

    Advanced intervalometer updates — alex@thinkpad / bitbucket
  11. Merged in memory-backend (pull request #906)

    Memory backend improvements — alex@thinkpad / bitbucket
  12. Makefile: fix "make install_qemu CONFIG_QEMU=y" for minimal targets — alex@thinkpad / bitbucket
  13. Merged in nikfreak/magic-lantern/unified_sf_dump_70D (pull request #853)

    sf_dump.mo: support for 70D — alex@thinkpad / bitbucket
  14. Close branch — alex@thinkpad / bitbucket
  15. add 70D stubs for sf_dump module — nikfreak _mlnikfreak@gmail.com_ / bitbucket
  16. Created new branch unified_sf_dump_70D — nikfreak _mlnikfreak@gmail.com_ / bitbucket
  17. Merged in es_as/magic-lantern (pull request #891)

    650D: sf_dump stubs — alex@thinkpad / bitbucket
  18. 650D:sf_dump stubs — esas _e_aspestrand@hotmail.com_ / bitbucket
  19. Merged in daniel_fort/magic-lantern/unified_650D.104_stub_fix (pull request #923)

    Fix 650D PlayMovieGuideApp_handler — alex@thinkpad / bitbucket
  20. Find the latest version of exiftool. — daniel fort _dan@digiola.com_ / bitbucket
  21. Close branch — alex@thinkpad / bitbucket
  22. Fixed stub. Discovered while running lua API tests.
    https://www.magiclantern.fm/forum/index.php?topic=7473.msg200626#msg200626 — daniel fort _dan@digiola.com_ / bitbucket
  23. memset64/memcpy64: use versions from b831cb1; fix calls from Magic Zoom to ensure proper alignment — alex@thinkpad / bitbucket
  24. Backout b831cb1 (breaks Magic Zoom and CONFIG_MARK_UNUSED_MEMORY_AT_STARTUP, as memset64 is not the same as memset) — alex@thinkpad / bitbucket
  25. adv_int: ignore empty lines when loading keyframes — alex@thinkpad / bitbucket
  26. adv_int: use strstr instead of my_strstr (fixes slow load) — alex@thinkpad / bitbucket
  27. Include strstr in ML core — alex@thinkpad / bitbucket
  28. adv_int: refactor keyframe time formatting — alex@thinkpad / bitbucket
  29. adv_int: auto-load the saved sequence at startup — alex@thinkpad / bitbucket
  30. adv_int: renamed menu entry to "Ramping options" — alex@thinkpad / bitbucket
  31. Memory backend: drop timestamps from history; show last 1024 events — alex@thinkpad / bitbucket
  32. Memory backend: show total allocations (number and amount), including untracked ones — alex@thinkpad / bitbucket
  33. Memory backend: allow using shoot_malloc as a last resort, even for small blocks;
    allow small blocks (smaller than minimum_free_space / 64) to break the minimum_free_space limit (until minimum_free_space / 4)
    fine-tuned until the old set of Lua scripts were able to run on 1100D without umm_malloc — alex@thinkpad / bitbucket
  34. Memory backend: a pointer to task names (rather than copying the full string) should be enough — alex@thinkpad / bitbucket
  35. Memory backend: renamed memcheck_mallocbuf to memcheck_entries — alex@thinkpad / bitbucket
  36. Moved memset64 and memcpy64 to bench.mo
    - simplified to accept only 32-bit aligned pointers
    - using regular memset for Magic Zoom
    - closing issue #1995 — alex@thinkpad / bitbucket
  37. Memory backend: if shoot_malloc fails, try SRM next
    (poor man's autodetection, since we don't know how to query the available size in advance) — alex@thinkpad / bitbucket
  38. exmem: reworked shoot_malloc to handle large requests better
    - moved autodetection to dedicated functions (for both fragmented and continuous allocations)
    - autodetect the max available size for large requests (slower, but when it fails, it fails gracefully) — alex@thinkpad / bitbucket
  39. exmem: removed the "relaxed" checks introduced in 04f02a4
    (not sure why they were needed; we'll find out if it fails) — alex@thinkpad / bitbucket
  40. exmem: speed-up shoot_malloc
    (1s timeout probably not needed) — alex@thinkpad / bitbucket
  41. exmem: do not keep track of full shoot memory allocations
    (allows reserving some memory in advance and allocating all the remaining RAM afterwards) — alex@thinkpad / bitbucket
  42. Memory backend: fix handling of untracked blocks
    (possible buffer overflow before this fix) — alex@thinkpad / bitbucket
  43. Memory backend: figured out why AllocateContinuousMemoryResource may crash with many small blocks

    (todo: figure out where to keep 89e3b12 or not; adapt tests if not) — alex@thinkpad / bitbucket
  44. Memory backend: when checking available memory, allocate both Shoot ans SRM at the same time
    (they may overlap) — alex@thinkpad / bitbucket
  45. Memory backend: fix initialization — alex@thinkpad / bitbucket
  46. mem.c: option to disable heap poisoning
    (useful when running in QEMU with -d memcheck - with this, overflowing reads will be caught as well) — alex@thinkpad / bitbucket
  47. Memory backend: allow breaking minimum_free_space for small blocks
    (it was possible to fail the allocation for very small blocks that could not be covered by shoot_malloc) — alex@thinkpad / bitbucket
  48. Memory backend: allow AllocateMemory as a last resort, even if free space is below limit
    (it was possible to fail the allocation for very small blocks that could not be covered by shoot_malloc) — alex@thinkpad / bitbucket
  49. memory backend: reduce memcheck area (should reduce overhead a bit) — alex@thinkpad / bitbucket
  50. memory backend: ignore null pointers passed to free (Lua does that) — alex@thinkpad / bitbucket
  51. exmem: when autodetecting available memory, print all srm/shoot memory blocks to console — alex@thinkpad / bitbucket
  52. edmac: make sure the log files don't have unnecessary newlines
    (channels with complex size configuration may get printed on multiple lines; that makes the log file harder to parse) — alex@thinkpad / bitbucket
  53. edmac: LOG_INTERVAL can now be changed from menu (persistent setting) — alex@thinkpad / bitbucket
  54. edmac: use numbered log file names — alex@thinkpad / bitbucket
  55. edmac: fix behavior when the extra info buffer gets full — alex@thinkpad / bitbucket
  56. edmac: use half-shutter as trigger for logging EDMAC channels;
    fine-tuned messages — alex@thinkpad / bitbucket
  57. edmac: fix crash on models other than 5D3
    (there was a hardcoded stub) — alex@thinkpad / bitbucket
  58. edmac: fix crash when using "Log EDMAC usage" on D4 models — alex@thinkpad / bitbucket
  59. Merged unified into edmac — alex@thinkpad / bitbucket
  60. Added edmac.mo to nightly builds — alex@thinkpad / bitbucket
  61. edmac-memcpy: check to make sure all models have AbortEDmac
    (to make sure it's correct: selftest.mo -> Stubs API test) — alex@thinkpad / bitbucket
  62. edmac.mo: display connection map (experiment) — alex@thinkpad / bitbucket

#7 (May 20, 2018 12:35:48 PM)

  1. Merged dm-spy-experiments into io_trace_full
    (minor fixes; latest qemu) — alex@thinkpad / bitbucket
  2. io_trace: fix decoding post-indexed addressing modes
    (the memory access is performed on the unmodified register value) — alex@thinkpad / bitbucket
  3. Merged qemu into dm-spy-experiments — alex@thinkpad / bitbucket
  4. Merged io_trace into dm-spy-experiments (pull request #900)

    MMIO tracing backend — alex@thinkpad / bitbucket
  5. boot-hack: fix booting on 550D/600D
    (broken in 5c77453) — alex@thinkpad / bitbucket
  6. QEMU: fix printing callstack from GDB scripts
    (broken in 1834cd8) — alex@thinkpad / bitbucket
  7. GDB scripts: workaround for a crash occuring with 5D
    (possibly GDB bug; can't explain why it works) — alex@thinkpad / bitbucket
  8. qemu-frsp: fix compiling on lua_fix codebase
    (1200D and soon all others) — alex@thinkpad / bitbucket
  9. QEMU: updated expected test results for 1200D 1.0.2
    (no stubs changed in debugmsg.gdb) — alex@thinkpad / bitbucket
  10. QEMU: removed bogus/unused BGMT_ISO — alex@thinkpad / bitbucket
  11. 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 / bitbucket
  12. QEMU: fix compiling on 32-bit x86 hosts

    Caveat: -d romcpy not working on x86 (requires int128_t) — alex@thinkpad / bitbucket
  13. QEMU README: initial notes on DIGIC 7 — alex@thinkpad / bitbucket
  14. 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 / bitbucket
  15. QEMU logging: initial support for DIGIC 7
    (CPU0 only; exception vectors at nonzero address) — alex@thinkpad / bitbucket
  16. QEMU tests: ROM dumper needs larger timeout on slower computers; undo unwanted changes from cb93334 — alex@thinkpad / bitbucket
  17. QEMU tests: fix expected results for restore after format after updating SD image — alex@thinkpad / bitbucket
  18. 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 / bitbucket
  19. QEMU: usleep patching no longer required on M3 — alex@thinkpad / bitbucket
  20. QEMU: updated ROM dump tests to check SFDATA.BIN too
    (currently only applies to DIGIC 6) — alex@thinkpad / bitbucket
  21. QEMU: updated SD image with latest display test
    (changeset 9b37638) — alex@thinkpad / bitbucket
  22. 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 / bitbucket
  23. 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 / bitbucket
  24. 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 / bitbucket
  25. QEMU: reordered model definitions in model_list.c
    (grouped by DIGIC version and similarity) — alex@thinkpad / bitbucket
  26. 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 / bitbucket
  27. 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 / bitbucket
  28. QEMU logging: -d romcpy now output a shell script for extracting the copied blocks — alex@thinkpad / bitbucket
  29. QEMU: memfd patch to fix compilation with glibc 2.27
    https://patchwork.openembedded.org/patch/147682/ — alex@thinkpad / bitbucket
  30. 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 / bitbucket
  31. QEMU: updated CPU definition for DIGIC 7; renamed for older models and reverted the HIVECS property back to false — alex@thinkpad / bitbucket
  32. QEMU tests: updated checksums for EOS M/M2 screenshots displaying date/time
    (fix commit 8c575ef99b7f) — alex@thinkpad / bitbucket
  33. QEMU tests: updated checksum for a screenshot affected by transparency - commit 5b274e3
    (Canon quirk - it's not even a LiveView screenshot) — alex@thinkpad / bitbucket
  34. annotate_mpu_log.py: allow incomplete mpu_send/recv lines
    (such as the ones from 80D logs) — alex@thinkpad / bitbucket
  35. MPU spells: documented some AF-related properties — alex@thinkpad / bitbucket
  36. GDB scripts: also identify and name PTP handlers — alex@thinkpad / bitbucket
  37. 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 / bitbucket
  38. 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 / bitbucket
  39. QEMU: SRM_SetBusy/ClearBusy emulation for 5D3/6D/70D — alex@thinkpad / bitbucket
  40. annotate_mpu_log.py: mark unknown MPU messages with ???

    (this ensures all MPU messages are displayed to the terminal, including unknown ones) — alex@thinkpad / bitbucket
  41. dryos.h: enable ML DebugMsg calls when using CONFIG_DEBUG_INTERCEPT
    (so it would include ML version messages without further tweaking) — alex@thinkpad / bitbucket
  42. Menu: QEMU hack 90f702c no longer needed for EOS M/M2
    (keeping changes to gui.h and button_codes.h) — alex@thinkpad / bitbucket
  43. 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 / bitbucket
  44. 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 / bitbucket
  45. QEMU: enabled MPU properties for EOS M (no more issues after LiveView emulation) — alex@thinkpad / bitbucket
  46. 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 / bitbucket
  47. 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 / bitbucket
  48. QEMU: experimental bitmap transparency support
    (doesn't match the hardware exactly, but it's better than nothing) — alex@thinkpad / bitbucket
  49. 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 / bitbucket
  50. 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 / bitbucket
  51. QEMU: fix copy/paste error in HPTimer emulation
    (no side effects) — alex@thinkpad / bitbucket
  52. QEMU tests: large timeouts appear to help in some tricky cases
    (such as mode switches, which may be slower than usual) — alex@thinkpad / bitbucket
  53. 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 / bitbucket
  54. 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 / bitbucket
  55. 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 / bitbucket
  56. 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 / bitbucket
  57. QEMU: removed unnecessary assertion in interrupt controller
    (triggered very rarely under "normal" conditions, but happens very often with io_trace) — alex@thinkpad / bitbucket
  58. QEMU tests: run the GDB test for 10 seconds
    (these logs will be used for building the interrupt map) — alex@thinkpad / bitbucket
  59. QEMU: fix alignment of MMIO messages before starting tasks (-d io) — alex@thinkpad / bitbucket
  60. 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 / bitbucket
  61. GDB scripts: EOSM.202 stubs for logging properties
    (related: af43d85) — alex@thinkpad / bitbucket
  62. annotate_mpu_log.py: fix handling logs with Windows newlines
    https://www.magiclantern.fm/forum/index.php?topic=21728.msg198330#msg198330 — alex@thinkpad / bitbucket
  63. 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 / bitbucket
  64. 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 / bitbucket
  65. QEMU: declared silent control events for 5D3
    (not used; only for annotations) — alex@thinkpad / bitbucket
  66. MPU spells: found PROP_LV_APERTURE and PROP_SILENT_CONTROL_STATUS — alex@thinkpad / bitbucket
  67. QEMU: declared internal zoom in/out events for 5D3
    (they are sent by the MPU during GUI mode switches) — alex@thinkpad / bitbucket
  68. QEMU: fix LV button code for 5D3 — alex@thinkpad / bitbucket
  69. annotate_mpu_log.py: more output options (to stdout, to file, auto rename) — alex@thinkpad / bitbucket
  70. MPU spells: script to annotate logs with mpu_send/recv events
    (known MPU messages moved to known_spells.py) — alex@thinkpad / bitbucket
  71. Makefile: fix "make install_qemu CONFIG_QEMU=y" for minimal targets — alex@thinkpad / bitbucket
  72. QEMU: workaround to emulate io_trace
    (without it, many MMIO events are missed, apparently because of QEMU's TLB cache) — alex@thinkpad / bitbucket
  73. NotifyBox: log messages to QEMU console — alex@thinkpad / bitbucket
  74. GDB scripts: replaced *(int*)(x) with MEM(x)
    (for consistency with other ML code, and maybe slightly easier to read) — alex@thinkpad / bitbucket
  75. QEMU: experimental Q button emulation for 100D
    (not 100% sure about it, but seems to emulate the long Q/SET press correctly) — alex@thinkpad / bitbucket
  76. run_ml_all_cams.sh: fix QEMU_DIR once more — alex@thinkpad / bitbucket
  77. run_ml_all_cams.sh: fix QEMU_DIR — alex@thinkpad / bitbucket
  78. Menu: hack to allow browsing ML menu on EOSM and EOSM2
    (requires CONFIG_QEMU=y) — alex@thinkpad / bitbucket
  79. Merged makefile-updates into qemu
    (also updated README regarding "make install_qemu" on modules) — alex@thinkpad / bitbucket
  80. 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 / bitbucket
  81. 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 / bitbucket
  82. GDB scripts: logging hook for prop_deliver — alex@thinkpad / bitbucket
  83. 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 / bitbucket
  84. QEMU installer: fine-tuned prompt when reinstalling — alex@thinkpad / bitbucket
  85. QEMU: fix Q button handling on 550D, 600D, 1100D (to be tested) — alex@thinkpad / bitbucket
  86. QEMU readme: table of contents; minor typos — alex@thinkpad / bitbucket
  87. QEMU readme: GPIO section update — g3gg0 / bitbucket
  88. dump_srec.py: updated to decode lens firmware updates (*.lfu)
    http://www.magiclantern.fm/forum/index.php?topic=20969 — alex@thinkpad / bitbucket
  89. QEMU readme: misc updates (formatting, rephrasing); GPIO section — alex@thinkpad / bitbucket
  90. QEMU installer: make it clear the script expects user input when it's asking whether to compile QEMU — alex@thinkpad / bitbucket
  91. eject removes the disk image completely while unmount doesn't remove the disk image from /dev. — daniel fort _dan@digiola.com_ / bitbucket
  92. reworked description of the peripherals — g3gg0 _g3gg0.de@gmail.com_ / bitbucket
  93. QEMU install: fix mistakes — alex@thinkpad / bitbucket
  94. QEMU readme: typos, formatting — alex@thinkpad / bitbucket
  95. 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 / bitbucket
  96. QEMU readme: some basic concepts related to how the DIGIC hardware works
    (some parts adapted from https://jsandler18.github.io/ ) — alex@thinkpad / bitbucket
  97. 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 / bitbucket
  98. QEMU: use 600D MPU messages for 1300D
    fixes toggling drive mode, http://www.magiclantern.fm/forum/index.php?topic=17969.msg196013#msg196013 — alex@thinkpad / bitbucket
  99. 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 / bitbucket
  100. 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 / bitbucket
  101. QEMU install.sh: recent git no longer accepts empty identities
    http://www.magiclantern.fm/forum/index.php?topic=20214.msg195892#msg195892 — alex@thinkpad / bitbucket
  102. QEMU scripts: removed hardcoded references to ../magic-lantern
    and documented how the directories can be customized — alex@thinkpad / bitbucket
  103. QEMU readme: documented directory structure — alex@thinkpad / bitbucket
  104. QEMU logging: cleaned up hacks around memory logging options
    (logging tools may require any memory logging backends, but in the logs, only those items specifically requested by user will be printed) — alex@thinkpad / bitbucket
  105. 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 / bitbucket
  106. QEMU install: keep the 64-bit gdb warning prompt on Mac and WSL (to be tested) — alex@thinkpad / bitbucket
  107. 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 / bitbucket
  108. QEMU install: fix path issue after compilation — alex@thinkpad / bitbucket
  109. QEMU install: fix warning about lsb_release on Mac or other systems without it — alex@thinkpad / bitbucket
  110. QEMU install: attempt to fix warnings about 64-bit GDB on Mac (to be tested) — alex@thinkpad / bitbucket
  111. QEMU install: fine-tuned QEMU compilation, to be tested
    (error handling, display the next steps after compilation finished) — alex@thinkpad / bitbucket
  112. 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 / bitbucket
  113. QEMU: simplified SFDMA mapping by removing model-specific redirection
    (they are fairly consistent across all models) — alex@thinkpad / bitbucket
  114. 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 / bitbucket
  115. QEMU: documented SD detect registers on recent DIGIC 5 models
    (non-functional) — alex@thinkpad / bitbucket
  116. 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 / bitbucket
  117. QEMU: fix 5D3 CF emulation
    (disabled by default; can be enabled from mpu_spells/5D3.h) — alex@thinkpad / bitbucket
  118. QEMU: documented property groups ("complex" MPU messages)
    including GDB logging hooks to find them — alex@thinkpad / bitbucket
  119. 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 / bitbucket
  120. 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 / bitbucket
  121. GDB scripts: generic logging hooks — alex@thinkpad / bitbucket
  122. QEMU readme: example of identifying the location of an assertion using gdb and -d callstack; minor updates — alex@thinkpad / bitbucket
  123. QEMU: updated 750D/760D GDB scripts and tests; file I/O works!
    (using 750D SFDATA.BIN) — alex@thinkpad / bitbucket
  124. Merged in t3r4n/magic-lantern/qemu (pull request #894) — alex@thinkpad / bitbucket
  125. QEMU: fix some MPU spells
    (typos caught by automated checking) — alex@thinkpad / bitbucket
  126. 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_ / bitbucket
  127. QEMU readme: minor link updates — alex@thinkpad / bitbucket
  128. QEMU readme: moved developer and reverse engineering notes to a new file
    (reason: bitbucket seems to have trouble rendering large files) — alex@thinkpad / bitbucket
  129. 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 / bitbucket
  130. 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 / bitbucket
  131. QEMU readme: fix typos; minor updates — alex@thinkpad / bitbucket
  132. 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 / bitbucket
  133. QEMU: updated 80D test results for actual serial flash contents
    http://www.magiclantern.fm/forum/index.php?topic=17360.msg195519#msg195519 — alex@thinkpad / bitbucket
  134. QEMU readme: formatting — alex@thinkpad / bitbucket
  135. QEMU readme: GDB scripting examples, including callstack — alex@thinkpad / bitbucket
  136. QEMU readme: use em-dashes instead of simple dashes — alex@thinkpad / bitbucket
  137. 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 / bitbucket
  138. QEMU readme: moved the "Incorrect firmware version" section to Hacking
    (it's no longer an issue for regular users) — alex@thinkpad / bitbucket
  139. QEMU readme: started to document the steps needed to emulate Canon GUI — alex@thinkpad / bitbucket
  140. QEMU readme: minor updates, corrections — alex@thinkpad / bitbucket
  141. 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 / bitbucket
  142. QEMU: updated sd.img.xz with latest portable display test
    (main change: fix identification of firmware version - 7889972) — alex@thinkpad / bitbucket
  143. GDB scripts: fix assert handling on EOS M10 — alex@thinkpad / bitbucket
  144. QEMU: moved 7D2 patches to GDB scripts;
    initial GDB script for 7D2 slave — alex@thinkpad / bitbucket
  145. QEMU: defined FPGA memory regions for 5D2 and 50D
    (just to prevent some warnings; nothing changed in functionality) — alex@thinkpad / bitbucket
  146. QEMU tests: run all cleanups on CTRL-C
    (stop all background tasks, make sure QEMU is no longer running, remove temporary files...) — alex@thinkpad / bitbucket
  147. 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 / bitbucket
  148. QEMU: refactored serial flash CS handling to reduce duplicate code
    (moved CS register and tested value to model_list.c) — alex@thinkpad / bitbucket
  149. 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 / bitbucket
  150. 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 / bitbucket
  151. QEMU: experimental mode dial emulation
    works on most models to some extent, except 40D, could not test on 550D, 650D, 70D, EOSM2 — alex@thinkpad / bitbucket
  152. 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 / bitbucket
  153. 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_ / bitbucket
  154. QEMU: more MPU properties identified by brute-forcing — alex@thinkpad / bitbucket
  155. QEMU: formatting fixes in extract_init_spells.py / known_spells.h — alex@thinkpad / bitbucket
  156. QEMU: added property IDs to known MPU spells
    also alternate names as comments — alex@thinkpad / bitbucket
  157. 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 / bitbucket
  158. QEMU: experiment - brute-force MPU messages to find out their meaning — alex@thinkpad / bitbucket
  159. 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 / bitbucket
  160. 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 / bitbucket
  161. 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 / bitbucket
  162. QEMU install.sh: further Ubuntu/WSL cleanups (minor) — alex@thinkpad / bitbucket
  163. QEMU install.sh: fine-tuned messages and date format when renaming an older installation — alex@thinkpad / bitbucket
  164. 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_ / bitbucket
  165. QEMU install.sh: WSL fixes
    - checking for Ubuntu (uname -a does not report Ubuntu)
    - hide 32-bit toolchain options — alex@thinkpad / bitbucket
  166. 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 / bitbucket
  167. 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 / bitbucket
  168. QEMU: RTC workaround to bring back 400D GUI
    (broken in 0d654a0, not covered by tests as it's very slow) — alex@thinkpad / bitbucket
  169. 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 / bitbucket
  170. QEMU: fix USB CONNECT on 450D/1000D
    (incidentally, this also fixes the card format dialog on these cameras - likely UILock issue) — alex@thinkpad / bitbucket
  171. 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 / bitbucket
  172. 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 / bitbucket
  173. QEMU: updated 80D tests for 1.0.2; DCIM test also works! — alex@thinkpad / bitbucket
  174. QEMU: 80D file I/O support from main firmware
    (experimental, tested with "dumpf" in the serial console) — alex@thinkpad / bitbucket
  175. QEMU: enable card support on generic MPU spells
    (experimental, some models work better than others) — alex@thinkpad / bitbucket
  176. GDB scripts: some experimental 80D patches, to be fixed in the emulation — alex@thinkpad / bitbucket
  177. GDB scripts: log state object transitions
    (stubs for 550D and 80D) — alex@thinkpad / bitbucket
  178. GDB scripts: 80D logging hooks for semaphores and message queues
    (disabled by default; also updated assert_log for 1.0.2) — alex@thinkpad / bitbucket
  179. QEMU: RomRead DMA is actually XDMAC
    (up to 4 channels; 80D only uses 2) — alex@thinkpad / bitbucket
  180. 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 / bitbucket
  181. QEMU tests: do not start if compilation fails
    (small nitpick that could result in false test results) — alex@thinkpad / bitbucket
  182. QEMU: updated tests after b75e1342711a
    (context info is now correctly printed when returning from msg_queue_receive, take_semaphore etc) — alex@thinkpad / bitbucket
  183. QEMU: generic MPU spells compatible with most EOS models (experimental) — alex@thinkpad / bitbucket
  184. 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 / bitbucket
  185. QEMU: MPU status doesn't seem to matter much; simplified to prepare for DIGIC 6 compatibility
    todo: cross-check with actual hardware — alex@thinkpad / bitbucket
  186. 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 / bitbucket
  187. QEMU: refactored serial flash SIO handler with io_log — alex@thinkpad / bitbucket
  188. 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 / bitbucket
  189. 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 / bitbucket
  190. QEMU: RomRead DMA for DIGIC 6, used for initializing property blocks
    (very similar to regular DMA, slightly different register offsets) — alex@thinkpad / bitbucket
  191. 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 / bitbucket
  192. 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 / bitbucket
  193. 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 / bitbucket
  194. MPU spells: some names could not be identified (fixed) — alex@thinkpad / bitbucket
  195. 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 / bitbucket
  196. 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 / bitbucket
  197. run_canon_fw.sh: print camera name in QEMU window title — alex@thinkpad / bitbucket
  198. 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 / bitbucket
  199. QEMU logging: always log unmapped memory regions — alex@thinkpad / bitbucket
  200. GDB scripts: fix text alignment with "native" logging options (minor) — alex@thinkpad / bitbucket
  201. 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 / bitbucket
  202. QEMU install: print fewer help details after installation; link to the online documentation — alex@thinkpad / bitbucket
  203. QEMU readme: formatting, typos — alex@thinkpad / bitbucket
  204. QEMU readme: more info regarding custom SD/CF images — alex@thinkpad / bitbucket
  205. QEMU readme: more ways to install ML to the virtual SD/CF images — alex@thinkpad / bitbucket
  206. QEMU readme: note about "make install_qemu" not available in all branches — alex@thinkpad / bitbucket
  207. QEMU readme: note about models using a serial flash — alex@thinkpad / bitbucket
  208. QEMU README: minor updates to 050a3cc — alex@thinkpad / bitbucket
  209. Merged unified into qemu — alex@thinkpad / bitbucket