Free Memory test passed (animation)
Small Malloc test passed (animation)
Lua Hello World test passed (animation)
Null pointer test passed (animation)
Format/restore test passed (animation)
Sokoban test passed (animation)
File Manager test passed (animation)
19b5e5e: Merged qemu into 1200D
4474a4e: 1200D: removed old minimal target to fix "make zip"
4cc498d: Minimal targets: only compile subdirectories with a valid Makefile
77f1f07: QEMU tests: FA_CaptureTestImage works on 1300D\u000a(prints "Image Power Failure", but the fix is not straightforward)
9c5411f: Merged qemu into 1200D
608c5df: Merged lua_fix into 1200D
c423c00: fw-signature.h: fix bad merge
92f5067: Makefile: when running "make install", copy ML-SETUP.FIR only for the generic profile\u000a(not for minimal or other targets)
0e27b6b: Makefile: always check all minimal targets when running "make zip"\u000a(only check whether they compile without errors, just like with the installer)
e8c2e35: Minimal target: moved the Hello World example into its own directory and removed old platform folders
d6f322b: Minimal targets: 5D3 1.1.3 hacks no longer needed
e4d2c76: GDB scripts: fix IDC names containing spaces
219bdfa: QEMU: fix timeout in ImgPowDet emulation\u000a(there were nondeterministic errors in the FRSP test)
c5fef89: QEMU: emulate ADTGDMA interrupt (used on 100D and EOS M2)\u000a\u000a- fixes FA_CaptureTestImage on 100D\u000a- some LiveView screenshots changed on 100D\u000a- color palette in LiveView changed on M2; can be worked around by pressing L (updated menu tests)
93e1c3a: QEMU tests: ignore nondeterministic screenshot on 6D\u000a(may appear with or without free space)
af1b0dc: GDB scripts: moved try_expand_ram_struct at the top
2627562: GDB scripts: minor whitespace fix
f34fbd4: QEMU: ensure valid RAM address before executing EDMAC transfers\u000a(EOS M fails here when running FA_CaptureTestImage)
1558689: QEMU: image sensor power emulation\u000a(fixes FA_CaptureTestImage on 5D2; tested on all other models able to run the FRSP test)
51ea8e0: QEMU: output dummy data (zeros) on read EDMAC connections\u000a\u000aFixes FA_CaptureTestImage on 700D and 650D.
c5dfbe4: qemu-frsp: fix compiling for 70D
241f75f: QEMU: allow reads to EDMAC CHSW registers\u000a(required for FA_CaptureTestImage emulation on 6D and others)
fcc92f6: qemu-frsp: ensure valid exposure settings before the test\u000a(exposure time not too long, ISO other than Auto; required on 600D and others)
2056815: QEMU: fix YUV vertical scaling for 1100D\u000a(only the FRSP test uses it for now)
5131e72: qemu-frsp: allocate a YUV buffer if there isn't one already set up (only with CONFIG_QEMU)\u000a\u000aFixes preview on 5D3 and 1100D, where Canon firmware does not allocate one at startup.
029fecb: QEMU tests: all models able to navigate Canon menu should pass the FRSP (FA_CaptureTestImage) test\u000a\u000aMost of them will fail; to be fixed.
e2f648f: QEMU tests: handle models not yet in mainline\u000a(FRSP and HPTimer tests are using this for now)
5c3e459: QEMU: updated gcc 7/8 patch for systems using virtio-9p
8c7217a: QEMU: updated gcc 7.x patch to also work with gcc 8.x
70cfcb4: eos.c: fix gcc8 warnings
d256390: Makefile: allow "make install*" without a FIR file\u000a(for minimal targets and new platforms)
bdab902: QEMU logging: attempt to identify tail calls by default\u000a(-d calls,notail to disable)
f9802bf: QEMU tests: updated for 200D 1.0.1
6edfe05: QEMU logging: moved IDC files into model subdirectories\u000a(for consistency with romcpy shell files)
5a933e7: QEMU logging: fix typo when using -d romcpy\u000a(output file path was not printed correctly)
0ffb5ef: QEMU tests: initial support for 800D\u000a(fixme: call trace not deterministic, same as 77D)
bebea6b: 800D: minor stub fixes in GDB script
59e4e3c: qemu: add 800D to model_list.c, and add 800D/debugmsg.gdb
1939f0c: Config options: fix issue #2892\u000a(custom presets not appearing in menu)
61c6a87: Merged config_var_refactor into lua_fix
8cd3f78: Merged unified into lua_fix
79cd0c5: Menu: fix config var incorrectly changed during fast toggles\u000a(e.g. 36 -> 35 without calling the CBR)
51f2c7d: Config variables: declare all internal structures static\u000a(minor refactor)
5cf9d77: Config variables: include the forward declaration in the CONFIG_INT_EX definition\u000a(no longer needed to declare CONFIG_VAR_CHANGE_FUNC's twice)
7ce54e4: Config variables: use CONFIG_VAR_CHANGE_FUNC (similar to MENU_SELECT_FUNC); minor renames
9abd360: Merged unified into config_var_refactor
74d41e2: audio-ak: fix compiling for 500D
cecef93: menu: short joystick clicks should not be interpreted as SET outside ML menu\u000a(fixes incorrect trigger of Auto ETTR from joystick, for example)
2a7265d: rename xxx_update functions for config_vars to xxx_on_change
9817bac: rename CONFIG_INT_UPDATE to CONFIG_INT_EX and .update to .on_change to avoid confusion and name conflicts with MENU_UPDATE_FUNCs
41c6a31: Merge
1057609: config var: refactor audio-lapis to use new config var CBR (not tested -> I have none of these cameras)
5a01dae: config var: refactor audio-ak and audio-common to use new config var CBR (TODO: audio-lapis)
7a3b5fa: Ghost image: further cleanups and fixes
4702ca0: Ghost image: fix crash (issues #2796, #2783, #2878, #2885)
94442d9: features.tmpl edited online with Bitbucket: use id in th section heading to allow for direct linking via anchor
5e40987: Merged in edmac (pull request #886)\u000a\u000aEDMAC module: fixes for DIGIC 4, connection map
b54a0c6: Merged in adv_int (pull request #907)\u000a\u000aAdvanced intervalometer updates
58e11ee: Merged in memory-backend (pull request #906)\u000a\u000aMemory backend improvements
87dfe3c: Makefile: fix "make install_qemu CONFIG_QEMU=y" for minimal targets
cc13316: QEMU: experimental support for gdb-multiarch\u000a(latest Ubuntu no longer has gdb-arm-none-eabi...)
13a1fe1: QEMU install: minor fixes
03cb41d: QEMU install: on some systems, building GDB requires makeinfo; skip it\u000ahttps://sourceware.org/bugzilla/show_bug.cgi?id=18113\u000aAlso show the last few lines from the compilation logs if there's an error.
36a89bd: QEMU install: on older Ubuntu, gcc/gdb installation without package manager may be required
03f2c82: QEMU install: minor fix for 32-bit Ubuntu\u000a(option 3: no 64-bit gcc available)
ede4b4c: QEMU installer: removed option to allow old 64-bit GDB\u000a(hopefully no longer needed)
c57b71d: QEMU installer: minor fix regarding GDB installation\u000a(force compiling from source if a valid 64-bit gdb is already installed)
ec4df76: QEMU installer: attempt to compile gdb 8.1 from source if a 32-bit version is not available (in particular, Mac and WSL)\u000a\u000ahttps://www.magiclantern.fm/forum/index.php?topic=2864.msg200954#msg200954 (thanks t3r4n)
459d709: QEMU install: there's no DISPLAY variable on Mac
04f441f: QEMU: better emulation for cache patches\u000a\u000a(uninstalling works, at least for dm-spy-experiments)
4cc0ac8: QEMU: fix CPU0 labels incorrectly appearing in DIGIC 6 logs\u000a(only DIGIC 7 should display these)
0f1447d: QEMU: moved ARM946EOS-specific functions (cache lockdown and WFI) from cpu.c to helper.c
c2ee480: Minimal targets: CONFIG_QEMU no longer hardcoded in Makefile\u000a(should be specified on the command line if desired)
2c36494: Makefile: allow CONFIG_QEMU to work on all ML profiles, including minimal and installer\u000a\u000aBy default, CONFIG options are only used for the generic profile.\u000aThis enables qprintf for debugging DIGIC 6/7 ports using the minimal profile.
afa843c: QEMU: fix printing callstack from GDB scripts\u000a(broken in 1834cd8)
7f8871f: GDB scripts: workaround for a crash occuring with 5D\u000a(possibly GDB bug; can't explain why it works)
600343c: qemu-frsp: fix compiling on lua_fix codebase\u000a(1200D and soon all others)
b3914b9: QEMU: updated expected test results for 1200D 1.0.2\u000a(no stubs changed in debugmsg.gdb)
2b709cf: QEMU: removed bogus/unused BGMT_ISO
697fa63: QEMU: fix Q button code for 1200D\u000a\u000a- https://www.magiclantern.fm/forum/index.php?topic=12627.msg200889#msg200889\u000a- assuming the same applies to 1300D; unsure about 600D/1100D
30f46a0: QEMU: fix compiling on 32-bit x86 hosts\u000a\u000aCaveat: -d romcpy not working on x86 (requires int128_t)
8b9b81b: QEMU README: initial notes on DIGIC 7
a20c79b: QEMU: initial support for DIGIC 7 EOS (200D, 77D, 6D2)\u000a- added ROMID; updated MemDiv, XDMAC, SDIO\u000a- emulation starts many tasks, talks to MPU, initializes SD, creates the DCIM directory on the virtual card\u000a- fails with ERROR WaitPU1 TimeOut\u000a- dumpf does not save any logs (figure out why)\u000a- note: M5 ROM should now be loaded as ROM0
39c9a47: QEMU logging: initial support for DIGIC 7\u000a(CPU0 only; exception vectors at nonzero address)
2fb4f6b: QEMU tests: ROM dumper needs larger timeout on slower computers; undo unwanted changes from cb93334
d0c4830: QEMU tests: fix expected results for restore after format after updating SD image
cb93334: QEMU tests: reworked ROM dump test to wait as much or as little as each camera needs\u000a(fixme: 70D waits for some CFDMA messages that are for some other device)
f300d36: QEMU: usleep patching no longer required on M3
b3d7b70: QEMU: updated ROM dump tests to check SFDATA.BIN too\u000a(currently only applies to DIGIC 6)
daa3003: QEMU: updated SD image with latest display test\u000a(changeset 9b37638)
9416cfa: QEMU: experimental UTimer emulation\u000a- these look pretty much like regular timers (same offsets), but behave like HPTimers!\u000a- UTimer patches from DIGIC 6 no longer needed!\u000a- fine-tuned HPTimer messages
9e082f6: QEMU: fix logging of MMIO registers from the same range as MREQ\u000a(eos_handle_mreq also receives a few other registers, unknown yet)
a4de619: QEMU: specify actual RAM size for each model, rather than using generic values\u000a(emulating with larger size usually works, but doesn't catch some edge cases)
2590edf: QEMU: reordered model definitions in model_list.c\u000a(grouped by DIGIC version and similarity)
394eee0: QEMU: renamed IO_MEM_START/SIZE to MMIO_ADDR/SIZE for consistency;\u000aadded MMIO_ADDR to model_list.c (possibly needed for future models)
1834cd8: QEMU: removed unused entries; moved ML helpers to a different GPIO range.\u000a\u000aOld range was not accessible on certain models, such as PowerShots and DIGIC 7.\u000aOld GPIOs are still accepted (debugging existing code from experimental branches is still possible without merging latest qemu).
59a663e: QEMU logging: -d romcpy now output a shell script for extracting the copied blocks
5d7146a: QEMU: memfd patch to fix compilation with glibc 2.27\u000ahttps://patchwork.openembedded.org/patch/147682/
d5e6fbf: QEMU installer: minor updates\u000a- option to "make clean" before renaming the old folder (to save disk space)\u000a- exit if QEMU fails to compile\u000a- check for a valid DISPLAY (important for WSL)\u000a- updated help links
43b5d42: QEMU: updated CPU definition for DIGIC 7; renamed for older models and reverted the HIVECS property back to false
180a4dd: QEMU tests: updated checksums for EOS M/M2 screenshots displaying date/time\u000a(fix commit 8c575ef99b7f)
e7c7ce2: QEMU tests: updated checksum for a screenshot affected by transparency - commit 5b274e3\u000a(Canon quirk - it's not even a LiveView screenshot)
a35f489: annotate_mpu_log.py: allow incomplete mpu_send/recv lines\u000a(such as the ones from 80D logs)
5519e42: MPU spells: documented some AF-related properties
09ca7ba: GDB scripts: also identify and name PTP handlers
7e752d6: GDB scripts: identify named functions during execution and export as IDC\u000a\u000aNamed functions identified from: task_create, register_func, register_interrupt, CreateStateObject\u000aTested on 5D3 1.1.3, EOSM2 1.0.3 and 80D 1.0.2 (missing stubs added).
1a45866: QEMU: check whether the ROM contents are mirrored (whether dumped size is larger than actual ROM size)\u000a\u000a```\u000a[EOS] loading './50D/ROM0.BIN' to 0xF0000000-0xF0FFFFFF\u000a[EOS] mirrored data; unique 0x400000 bytes repeated 0x4 times\u000a[EOS] loading './50D/ROM1.BIN' to 0xF8000000-0xF8FFFFFF\u000a[EOS] mirrored data; unique 0x800000 bytes repeated 0x2 times\u000a```\u000a\u000ahttps://www.magiclantern.fm/forum/index.php?topic=2864.msg199837#msg199837
289c074: QEMU: SRM_SetBusy/ClearBusy emulation for 5D3/6D/70D
248458f: annotate_mpu_log.py: mark unknown MPU messages with ???\u000a\u000a(this ensures all MPU messages are displayed to the terminal, including unknown ones)
7dd027a: Menu: QEMU hack 90f702c no longer needed for EOS M/M2\u000a(keeping changes to gui.h and button_codes.h)
13b79a0: run_canon_fw.sh: fix printing GDB command line on systems where process name is limited to 15 chars;\u000aonly look at processes started by the same parent as this script (to avoid false positives)\u000ato be tested on Mac and WSL
ea8b17d: QEMU: EOS M and M2 appear to handle the Q/SET button just like 100D\u000ahttps://www.magiclantern.fm/forum/index.php?topic=21765.msg198769#msg198769
0fc9e8e: QEMU: enabled MPU properties for EOS M (no more issues after LiveView emulation)
e39699a: QEMU: allow any argument for PROP_LEO_LENSID (EOSM); documented PROP_LEO_LENS*\u000a\u000aShould fix emulation with ROMs saved with a different lens (apparently lens ID goes into ROM - property 0xC000004)\u000ahttps://www.magiclantern.fm/forum/index.php?topic=9741.msg198847#msg198847
0b485e3: QEMU: send PROP_LV_LENS message at initialization (5D3 1.1.3; 1.2.3 commented; the message is model-specific)\u000a\u000aUseful for LiveView emulation (display focal length, focus distance etc)\u000aMessage sent in a different place (not as in the logs), as it interferes with our (broken) LiveView emulation
5b274e3: QEMU: experimental bitmap transparency support\u000a(doesn't match the hardware exactly, but it's better than nothing)
7df1daf: QEMU: experimental movie mode switch (V key)\u000aSome cameras have dedicated movie mode on the dial, others use a switch and can record video in any mode dial position.
d69ab7e: QEMU: key mapping for Zoom In / Zoom Out (they don't do anything interesing yet);\u000aallow defining different keybindings on the same physical key (5D3/6D: only one zoom button, unlike most others)\u000acleaned up zoom button handling on 5D3 and 6D (unpress zoom out should not be sent from keyboard, for example)
bf6a9c0: QEMU: fix copy/paste error in HPTimer emulation\u000a(no side effects)
28f8d92: QEMU tests: large timeouts appear to help in some tricky cases\u000a(such as mode switches, which may be slower than usual)
8c575ef: QEMU: updated GUI tests for LiveView.\u000a\u000aEOS M/M2: no more reason to start with the date/time dialog.\u000aStill some color palette issues; usually can be worked around by switching to other video mode and back.\u000aMinor call trace differences for 650D and 700D (missed from previous commit)
d2116b6: QEMU: LiveView works!!! (GUI elements only, no image)\u000aCredits go to Greg for the first PoC https://www.magiclantern.fm/forum/index.php?topic=2864.msg179867#msg179867\u000a\u000aTests not yet updated, just to check whether the implementation is really without side effects outside LV.\u000aOnly one screenshot changed - on EOS M (that screenshot was already in LiveView).\u000aNote: 70D uses more EDMAC connections; increased number from 48 to 64.
bc69e69: MPU spells: identified some more properties while looking into the EOSM shutter bug\u000ahttps://www.magiclantern.fm/forum/index.php?topic=21728.0
3b9af67: QEMU: validate calls to eos_trigger_int\u000aallow missing UART RX/TX interrupt and just print a warning\u000a(affected: Eeko and EOS M5; fix not obvious)
2090c2f: QEMU: removed unnecessary assertion in interrupt controller\u000a(triggered very rarely under "normal" conditions, but happens very often with io_trace)
97db8e1: QEMU tests: run the GDB test for 10 seconds\u000a(these logs will be used for building the interrupt map)
0901cba: QEMU: fix alignment of MMIO messages before starting tasks (-d io)
a7821fd: QEMU: fix HPTimer handling of periodic triggers\u000a(VxWorks models use a HPTimer as heartbeat, unlike DryOS)\u000a\u000aNo visible differences on the UI, but heartbeat is now triggering on all VxWorks models.\u000a\u000aMinor emulation differences on 60D, 600D, 650D, 700D, 100D, EOSM, 6D (besides VxWorks models).
29e9550: GDB scripts: EOSM.202 stubs for logging properties\u000a(related: af43d85)
cf62d68: annotate_mpu_log.py: fix handling logs with Windows newlines\u000ahttps://www.magiclantern.fm/forum/index.php?topic=21728.msg198330#msg198330
b442627: QEMU: delay EDMAC reads by one timer step (apparently reads are supposed to finish after writes)\u000a\u000aChange required to pass the memory benchmark on 5D3 and 6D.\u000a700D gives the same error if writes are delayed.\u000a\u000aMinor changes to call/return trace on 60D, 600D, 1200D and 1300D (no visible effects).
ccfb0ae: QEMU tests: updated EOSM2 call/return trace for latest SFDATA.BIN from dfort\u000a(previously, SFDATA.BIN for 100D was assumed; no visible changes)
c6dfebd: QEMU: declared silent control events for 5D3\u000a(not used; only for annotations)
4834b68: MPU spells: found PROP_LV_APERTURE and PROP_SILENT_CONTROL_STATUS
0c858dd: QEMU: declared internal zoom in/out events for 5D3\u000a(they are sent by the MPU during GUI mode switches)
d756b74: QEMU: fix LV button code for 5D3
1404ae8: annotate_mpu_log.py: more output options (to stdout, to file, auto rename)
e1735d5: MPU spells: script to annotate logs with mpu_send/recv events\u000a(known MPU messages moved to known_spells.py)
f3ad52f: Makefile: fix "make install_qemu CONFIG_QEMU=y" for minimal targets
287c785: adv_int: ignore empty lines when loading keyframes
6239bc6: adv_int: use strstr instead of my_strstr (fixes slow load)
284656a: Include strstr in ML core
ef21d82: adv_int: refactor keyframe time formatting
5ca412b: adv_int: auto-load the saved sequence at startup
a4869c8: adv_int: renamed menu entry to "Ramping options"
e4fd44e: QEMU: workaround to emulate io_trace\u000a(without it, many MMIO events are missed, apparently because of QEMU's TLB cache)
958a876: NotifyBox: log messages to QEMU console
d2bb805: GDB scripts: replaced *(int*)(x) with MEM(x)\u000a(for consistency with other ML code, and maybe slightly easier to read)
34b5de3: QEMU: experimental Q button emulation for 100D\u000a(not 100% sure about it, but seems to emulate the long Q/SET press correctly)
This procedure will enable the BOOTDISK flag in your camera's Flash ROM, allowing it to load and execute custom code from the memory card. A copy of the original (unmodified) ROM contents will be saved to the card.
Magic Lantern will run from this card; it won't replace your original firmware.
This procedure disables the BOOTDISK flag. You will no longer be able to run Magic Lantern, unless you reinstall it.
Some settings changed by Magic Lantern might be persistent; this procedure will not reset them. To restore the camera to factory state, you may also want to clear all camera settings and custom functions from Canon menu.
magiclantern-Nightly.2018Jul06.1200D102.zip
Test results: 7 passed, 1 failed.
7f7a474: 1200D: stubs GUI_SetCFnForTab4 GUI_GetCFnForTab4 found but not currently used
magiclantern-Nightly.2018May04.1200D102.zip
Test results: 8 passed, 0 failed.
50e6b85: 1200D: enabled CONFIG_MOVIE_AE_WARNING\u000a(there are manual video controls in Canon menu, but they are disabled by default)
926043b: 1200D: fix opening ML menu in movie mode with auto exposure
80d652b: 1200D: fix Q button code after refactoring\u000a\u000ahttps://www.magiclantern.fm/forum/index.php?topic=12627.msg200889#msg200889\u000a\u000atodo: fix the emulator (waiting for reports from 600D and 1100D)
magiclantern-Nightly.2018Apr30.1200D102.zip
Test results: 8 passed, 0 failed.
ac95dd2: Applied changes from commit b9e0b9e
b5f1a28: Merged lua_fix into 1200D
e34afee: Merged unified into 1200D
9a55f0f: Merged in daniel_fort/magic-lantern/update-to-1200D.102 (pull request #921)\u000a\u000aUpdate to 1200D.102
d3c7ee2: Close branch
e63d890: 1200D: installer FIR for 1.0.2
fe8b412: Update to 1200D.102
0c515d7: Prepare source tree for update using "hg rename" to preserve revision history and added 1200D minimal directory
0e6493e: Merged in nikfreak/magic-lantern/unified_sf_dump_70D (pull request #853)\u000a\u000asf_dump.mo: support for 70D
32ea18c: Close branch
0fc21f8: add 70D stubs for sf_dump module
29014d5: Created new branch unified_sf_dump_70D
a2cf77e: Merged in es_as/magic-lantern (pull request #891)\u000a\u000a650D: sf_dump stubs
a03dc9e: 650D:sf_dump stubs
b184d8b: Merged in daniel_fort/magic-lantern/unified_650D.104_stub_fix (pull request #923)\u000a\u000aFix 650D PlayMovieGuideApp_handler
185da25: Find the latest version of exiftool.
e30b3e0: Close branch
8c87b81: Fixed stub. Discovered while running lua API tests.\u000ahttps://www.magiclantern.fm/forum/index.php?topic=7473.msg200626#msg200626
4918aef: lua_task: task name must be allocated by caller (it's not copied, so we must not modify it afterwards)\u000a\u000aEasiest way: use the same name for all tasks started by Lua scripts.
d8f2726: Lua: added sleep() with floating-point argument\u000a(similar to msleep)
8c2dab6: Lua: option to disable powersave while running tasks created from scripts\u000a\u000aExample: task.create(func, nil, nil, true)
18a131e: Powersave: experimental option to disable the 30-minute timer in LiveView
446e2eb: Powersave: simplified the option to enable while recording;\u000aupdated help; aligned menu definition
e2310ef: menu: experimental fix for issue #1974 (timeout in LiveView, 6D/M/100D/70D)\u000a\u000aHypothesis: https://bitbucket.org/hudson/magic-lantern/issues/1974/6df#comment-44206798\u000aTested on 5D3 with GUI mode 41.\u000aTested in QEMU on 6D (it keeps poking the MPU while ML menu is open).
c0dad01: property.h: fix declaration of prop_deliver\u000a(first argument is a pointer to the property, unlike prop_request_change)
609d604: boot-hack: no real reason to use short for magic_off\u000a(
53cf435: boot-hack: make sure our relocation buffer is 32-bit aligned\u000a(it usually is, unless compiler decides otherwise)
39156e3: Lua: experimental camera.flash (get/set)\u000ashoot.h: added set_flash_firing
8b6b858: boot-hack: fade-out LED feedback when bypassing ML at startup\u000a(by pressing or not pressing SET, depending on how it's configured)\u000a\u000aShould also fix https://www.magiclantern.fm/forum/index.php?topic=21765.msg198829#msg198829
eeb1251: Experimental option to load ML only when holding SET pressed at startup\u000ahttps://www.magiclantern.fm/forum/index.php?topic=21765.msg198779#msg198779
b2de18e: config.h: require const char * for config_flag_file_setting_save/load
1324f51: EOS M: disabled long-press SET/Q (let's try PLAY for submenus)
2297b8e: Menu: use PLAY (in addition to Q) for opening submenus (experiment)\u000ahttps://www.magiclantern.fm/forum/index.php?topic=4386.msg198669#msg198669
7469c34: Menu: disabled Junkie mode; MENU key just goes back\u000ahttps://www.magiclantern.fm/forum/index.php?topic=4386.msg198720#msg198720\u000a\u000aCan be re-enabled by defining FEATURE_JUNKIE_MENU in features.h
562116e: Auto ETTR: backout EOS M specific changes (pull request $428), hopefully no longer needed.\u000aTriggering by SET should now work just like on all other camera models.\u000aNot tested, please report back.
2efea8b: EOSM: enable the SET/Q long-press trick from 100D\u000a(short press = SET, long press = Q)
02b99ab: 100D, EOSM: attempt to fix pressing SET at startup to bypass ML\u000ahttps://www.magiclantern.fm/forum/index.php?topic=21765.msg198761#msg198761\u000a(the INFO key can now be used for config presets, just like with all other models)\u000a\u000aChange made generic, for any future models that might use a combined Q/SET button.
eb5a09a: VRAM: enabled workaround from 03c5f43 on all models\u000a(fixes Arkanoid, benchmarks and others on fresh startup in photo mode, without any images on the card)
e411085: Makefile: fix "make clean" for modules not enabled by default
69ee2a5: Merged memory-backend into lua_fix\u000a(memset32 fix)
a5b1848: selftest: tests for model ID functions (is_camera etc)
49568a6: is_camera: extended to allow checking DIGIC version\u000ae.g. if (is_camera("DIGIC", "5")) { ... }
7c04c75: memset64/memcpy64: use versions from b831cb1; fix calls from Magic Zoom to ensure proper alignment
375fa4e: Backout b831cb1 (breaks Magic Zoom and CONFIG_MARK_UNUSED_MEMORY_AT_STARTUP, as memset64 is not the same as memset)
e40caa9: menu: fix typo regarding short unpress events\u000a(side effect: short joystick press also moved the menu selection up on 5D3)
86accb6: Memory backend: drop timestamps from history; show last 1024 events
d016ccf: Memory backend: show total allocations (number and amount), including untracked ones
0e56fe7: Memory backend: allow using shoot_malloc as a last resort, even for small blocks;\u000aallow small blocks (smaller than minimum_free_space / 64) to break the minimum_free_space limit (until minimum_free_space / 4)\u000afine-tuned until the old set of Lua scripts were able to run on 1100D without umm_malloc
28bf259: Memory backend: a pointer to task names (rather than copying the full string) should be enough
a67b3ed: Memory backend: renamed memcheck_mallocbuf to memcheck_entries
b831cb1: Moved memset64 and memcpy64 to bench.mo\u000a- simplified to accept only 32-bit aligned pointers\u000a- using regular memset for Magic Zoom\u000a- closing issue #1995
d7866ee: Memory backend: if shoot_malloc fails, try SRM next\u000a(poor man's autodetection, since we don't know how to query the available size in advance)
ee7abdb: exmem: reworked shoot_malloc to handle large requests better\u000a- moved autodetection to dedicated functions (for both fragmented and continuous allocations)\u000a- autodetect the max available size for large requests (slower, but when it fails, it fails gracefully)
bd7a1dd: exmem: removed the "relaxed" checks introduced in 04f02a4\u000a(not sure why they were needed; we'll find out if it fails)
766ffbb: exmem: speed-up shoot_malloc\u000a(1s timeout probably not needed)
51f6129: exmem: do not keep track of full shoot memory allocations\u000a(allows reserving some memory in advance and allocating all the remaining RAM afterwards)
f12eba5: Memory backend: fix handling of untracked blocks\u000a(possible buffer overflow before this fix)
f9f3358: Memory backend: figured out why AllocateContinuousMemoryResource may crash with many small blocks\u000a\u000a(todo: figure out where to keep 89e3b12 or not; adapt tests if not)
e4fd29d: Memory backend: when checking available memory, allocate both Shoot ans SRM at the same time\u000a(they may overlap)
1162fce: Memory backend: fix initialization
67f582f: mem.c: option to disable heap poisoning\u000a(useful when running in QEMU with -d memcheck - with this, overflowing reads will be caught as well)
26f1647: Memory backend: allow breaking minimum_free_space for small blocks\u000a(it was possible to fail the allocation for very small blocks that could not be covered by shoot_malloc)
c6d6699: Memory backend: allow AllocateMemory as a last resort, even if free space is below limit\u000a(it was possible to fail the allocation for very small blocks that could not be covered by shoot_malloc)
1e4985e: memory backend: reduce memcheck area (should reduce overhead a bit)
4e59a74: memory backend: ignore null pointers passed to free (Lua does that)
2ade4a5: exmem: when autodetecting available memory, print all srm/shoot memory blocks to console
9cffc6f: Memory backend: drop timestamps from history; show last 1024 events
b750776: Memory backend: show total allocations (number and amount), including untracked ones
aa4d3ea: Memory backend: allow using shoot_malloc as a last resort, even for small blocks;\u000aallow small blocks (smaller than minimum_free_space / 64) to break the minimum_free_space limit (until minimum_free_space / 4)\u000afine-tuned until the old set of Lua scripts were able to run on 1100D without umm_malloc
5e3fa95: Memory backend: a pointer to task names (rather than copying the full string) should be enough
65a1f86: Memory backend: renamed memcheck_mallocbuf to memcheck_entries
af24e33: Moved memset64 and memcpy64 to bench.mo\u000a- simplified to accept only 32-bit aligned pointers\u000a- using regular memset for Magic Zoom\u000a- closing issue #1995
df86639: Memory backend: if shoot_malloc fails, try SRM next\u000a(poor man's autodetection, since we don't know how to query the available size in advance)
da3cfb7: exmem: reworked shoot_malloc to handle large requests better\u000a- moved autodetection to dedicated functions (for both fragmented and continuous allocations)\u000a- autodetect the max available size for large requests (slower, but when it fails, it fails gracefully)
21264fc: exmem: removed the "relaxed" checks introduced in 04f02a4\u000a(not sure why they were needed; we'll find out if it fails)
fc71232: exmem: speed-up shoot_malloc\u000a(1s timeout probably not needed)
e1d3d45: exmem: do not keep track of full shoot memory allocations\u000a(allows reserving some memory in advance and allocating all the remaining RAM afterwards)
0f10b31: Memory backend: fix handling of untracked blocks\u000a(possible buffer overflow before this fix)
db34f9c: Memory backend: figured out why AllocateContinuousMemoryResource may crash with many small blocks\u000a\u000a(todo: figure out where to keep 89e3b12 or not; adapt tests if not)
d288685: Intervalometer: attempt to get sligthly better timing accuracy, to be tested\u000ahttp://www.magiclantern.fm/forum/index.php?topic=21617.msg197314#msg197314
bcbabb3: Moved timer functions to timer.h (always included from dryos.h)\u000aRenamed get_ms_clock_value / get_us_clock_value to get_ms_clock / get_us_clock\u000aReplaced all hardcoded references to 0xC0242014 with GET_DIGIC_TIMER()\u000a```\u000afind . -not -path '*/\.*' -type f -name '*.c' -o -name '*.h' -exec sed -i 's/get_ms_clock_value/get_ms_clock/g' {} +\u000afind . -not -path '*/\.*' -type f -name '*.c' -o -name '*.h' -exec sed -i 's/get_us_clock_value/get_us_clock/g' {} +\u000ased -i 's/\*(volatile uint32_t \*)0xC0242014/GET_DIGIC_TIMER()/' */*.c\u000a...\u000a```
7cdf315: Reworked get_ms_clock_value / get_us_clock_value / get_seconds_clock\u000a- only update the 64-bit us_clock on each call (overhead from ~ 4us reduced to less than 1us)\u000a- lower-resolution clocks are always derived from the microsecond clock and computed only on request\u000a- dropped get_ms_clock_value_fast
420833b: imath.h: fix comments for FMT_FIXEDPOINT*; added FMT_FIXEDPOINT6
b632855: Fix compiling with CONFIG_DIGIC_POKE
20a52d5: Modules: fix enabling "long" modules when using config presets (issue #2789)\u000ato reproduce: arkanoid.mo -> ML/SETTINGS/MENU.KEY/arkanoid. -> file create error on exfat\u000amodules with shorter name: adv_int.mo -> ML/SETTINGS/MENU.KEY/adv_int.e -> it appears to work fine, but it's incorrect\u000aworst case: arkanoid.mo -> ML/SETTINGS/MYPRESET.NAM/adv_i -> it appears to work fine, possible name clash with other modules
cb083db: shoot: attempt to make public photo capture functions thread safe, to some extent\u000aa bit of a hack; some serious rework needed to fix this properly\u000aat least it appears to fix http://www.magiclantern.fm/forum/index.php?topic=21590.0
b8626f4: Bracketing: debug messages for troubleshooting http://www.magiclantern.fm/forum/index.php?topic=21590.0
379b1af: shoot: make the so-called remote_shoot always take pictures, not movies\u000a(moved movie functionality in lcdsensor/lightsensor - anything else broken?)
5d7a200: lens_take_picture: always wait until the image capture process starts (and optionally wait for it to finish)
d592d0a: Lua: fix camera.wait() not appearing in API docs
25a4a03: selftest: also test get_task_name_from_id, not just get_current_task_name\u000a(they use different Canon APIs)
8677441: Attempt to fix conflict between ML and Canon overlays on recent DIGIC 4 models\u000aconfirmed on 1200D, likely applies to 1300D as well\u000ahttp://www.magiclantern.fm/forum/index.php?topic=12627.msg196304#msg196304
2d21002: gui-common: remove outdated comment
412a401: Menu: some rough support for sumbenus where the initial field enables the entire group\u000a- the initial field should have the same .priv field as the master entry, and .select = menu_open_submenu\u000a- prevent graying out the field used for enabling, even if it gives the truth value for the master menu entry\u000a- do not print value by default for submenus (we already draw a forward sign)
ac878e5: gui-common: make translated longpress events (such as Q on certain models) available to other modules (tested with Lua)
5ac9cf6: Menu: refactored long-press checks with a common function and data structure\u000a(to be tested; may affect every single camera model)
f8b9f9f: Menu: use animation for all longpress handlers
bc8a5a0: Merged 100D_merge_fw101 into lua_fix\u000a(going to refactor the SET/Q button handling)
4b9a5c2: lens.h: some models have larger PROP_LV_LENS\u000aEOSM: 61; 70D/100D: 58; 5D3.123/6D: 56
ac97c5d: Lens info: attempt to update outside LiveView, to be tested\u000afocus distance, focal length on zoom lenses etc are now updated every second\u000acredits Greg: http://www.magiclantern.fm/forum/index.php?topic=2864.msg169977#msg169977
d0e55b3: lens_info: use lens_info.lens_exists instead of lens_info.name[0]\u000a(from manual_lens_info)
d863156: 100D: attempt to fix Q/SET regression (tested in QEMU, unsure about the exact hardware behavior)\u000ahttp://www.magiclantern.fm/forum/index.php?topic=16040.msg196769#msg196769\u000aalso reduced long-press delay to 0.5 seconds
f3bfa26: Merged allocate-raw-lv-buffer into lua_fix\u000a(minor; 5D3.123 fix)
2a04a9a: Merged unified into lua_fix\u000a(DOF fixes)
36acb0f: Merged in garry23/dof-fix-for-focus.c/garry23/focusc-edited-online-with-bitbucket-by-g-1495645868417 (pull request #831)\u000a\u000aChanged the DoF equations to better handle integer math and used a different source for the equations.
9d76a31: Dummy merge (reference changeset for make install_qemu)
f67d34c: Merged in makefile-updates (pull request #898)\u000a\u000aMakefile updates part 2 (minor fixes, updated make install_qemu)
4131ccb: focus.c: fix possible overflow when computing hyperfocal (corner case)\u000aexamples (focal_len, focus_dist):\u000a73 4689\u000a90 7123\u000a91 7282\u000a98 8444\u000a...
0e82ba3: focus.c: fix typo pointed out by garry23\u000ahttp://www.magiclantern.fm/forum/index.php?topic=9741.msg196728#msg196728
b3e263f: Merged longpress into lua_fix
2ee1d50: edmac.mo: simplified menu definition for log interval\u000a(using the new routines for rounding options)
b1d9994: Merged edmac into lua_fix
d5ad86f: Makefile: updated rules for "make install_qemu" (for reference, should anyone ever want to use them on older changesets)\u000aBefore using them, qemu has to be installed first in qemu-eos (from the qemu branch)\u000aQEMU installation directory can be changed from the QEMU_DIR environment variable, or from Makefile.user
8071be3: Changed the DoF equations to better handle integer math and used a different source for the equations.
02e0020: focus.c edited online with Bitbucket
d2b1bac: focus.c edited online with Bitbucket (updated)
fae93ae: focus.c edited online with Bitbucket by Garry
d590db7: Menu: fine-tuned long-press indicator appearance\u000a- using filled circles\u000a- using a sine table to avoid roundoff errors
2592de7: Merged unified into longpress
b732009: Menu: simple long-press indicator (animated)
8840aa5: EOS M: fix menu navigation;\u000amake sure the long-press code can be enabled on other models\u000a(to enable, define CONFIG_LONG_PRESS_SET_MENU in internals.h)
271bd63: gui-common: moved button logging code at the top\u000a(to make sure all events are printed in all modes)
81b9e49: Raw backend: DEFAULT_RAW_BUFFER_SIZE for 700D and EOSM (thanks dfort)
33d943d: mem.c: fix compiling for 5D3.123\u000a(display buffer address depends on HDMI options)
2dae7e4: Merged new_dryos_task_hooks into 100D_merge_fw101
8a5b890: 100D: cleanup handling of the Q button\u000a(see b9e0b9e)
d6afebc: Merged new_dryos_task_hooks into lua_fix
ba97711: Merged qemu into new_dryos_task_hooks
d6d9373: run_ml_all_cams.sh: fix QEMU_DIR once more
f0f54d3: run_ml_all_cams.sh: fix QEMU_DIR
1db7694: Merged allocate-raw-lv-buffer into lua_fix
538886b: Merged qemu into lua_fix
90f702c: Menu: hack to allow browsing ML menu on EOSM and EOSM2\u000a(requires CONFIG_QEMU=y)
a9728fe: selftest: EOSM takes the crown for the lowest amount of shoot_memory available\u000a(fragmented allocation can no longer be tested with hardcoded value)
c9e8864: Merged makefile-updates into qemu\u000a(also updated README regarding "make install_qemu" on modules)
c5400ab: QEMU: moved default installation directory to qemu-eos\u000aRationale: user is likely to have another qemu directory, unrelated to ML (such as the vanilla qemu repo)\u000aCan be changed by setting QEMU_DIR, e.g. "export QEMU_DIR=qemu" before running install.sh will install QEMU in the old path\u000aTo be thoroughly tested.
f331c27: Makefile: moved default QEMU directory to qemu-eos
dd1e602: QEMU: trim HTML logs to 10000 lines if higher\u000a(very slow to render; also, at these sizes, browsing/grepping plain text is way faster)
b784fdf: Raw backend: 60D appears to allocate 28MB for the raw buffer
d32e6d5: Raw backend: updated 5D3 hypothesis about Canon LV RAW buffer\u000a(todo: re-check 1.2.3)
e799e89: Raw backend: attempt to autodetect Canon's raw buffer size\u000aUsage:\u000a- compile with CONFIG_MARK_UNUSED_MEMORY_AT_STARTUP (config-defines.h)\u000a- open the console (Debug menu) and enable something that uses LiveView RAW features (raw video, raw histogram etc)\u000a- test by starting the camera in all video modes (photo, 1080p, 720p, crop, x5 etc)\u000a- take a screenshot or write down the console messages
d93c113: Raw backend: fix compilation on very old models\u000a(without CONFIG_EDMAC_RAW_SLURP)
fa9c903: 1100D: CONFIG_ALLOCATE_RAW_LV_BUFFER may not be needed, after all\u000ahttp://www.magiclantern.fm/forum/index.php?topic=1009.1450
23524a6: Free Memory dialog: updated common addresses to allow dynamically allocated buffers (not just hardcoded ones);\u000aalso show current RAW and BMP buffer(s), not just the YUV ones
69bdcde: Raw backend: 1100D also needs DEFAULT_RAW_BUFFER / DEFAULT_RAW_BUFFER_SIZE
a6d941d: Raw backend: 1100D needs CONFIG_ALLOCATE_RAW_LV_BUFFER after refactoring
de5a794: Raw backend: use dummy DEFAULT_RAW_BUFFER_SIZE until the real size is found\u000awithout this, most builds would be broken\u000afixme: old models without CONFIG_EDMAC_RAW_SLURP are still broken
f0a25a6: Raw backend: sync memory allocation routines with crop_rec_4k\u000a(squashed 8287b4f, 0ff9f1f, 3948408, d55423f, ebf206a, 3bc3637, cad72ea and 2bc5c3a, keeping only changes to raw.c)
3b69c5b: mlv_lite, mlv_rec: dialog_refresh_timer_addr for 1100D\u000a(to be tested)
b34fa35: Merged unified into allocate-raw-lv-buffer
755c166: Makefile: also updated QEMU_INSTALLED_DBI_DIR to use QEMU_PATH
fe7bb16: Makefile: fix copy/paste error
60d8eb2: Makefile: fix cleaning up after "make zip"; removed warning
b764804: Makefile: allow changing QEMU installation directory from Makefile.user and/or the environment\u000a(QEMU_DIR)
7293343: Makefile: zip and install_qemu targets for modules
f55f334: Makefile: always clean after running install_check\u000ahttp://www.magiclantern.fm/forum/index.php?topic=991.msg194444#msg194444
263f93e: Makefile: always rebuild version.o
9933b60: Makefile: prevent install_check from running in parallel with building regular ML\u000a(conflicts while compiling from the same sources - http://www.magiclantern.fm/forum/index.php?topic=991.msg194315#msg194315 )
b9e0b9e: GUI: removed BGMT_Q_ALT\u000ato be tested on 1100D, 550D, 600D, 60D\u000aand also on recent ports (100D, 1200D, 1300D)
b46b630: Merged new-dryos-task-hooks into lua_fix
6e08bee: selftest: reduced memory requirements to allow 1100D to pass the memory tests
eb98ed4: 1100D: raw skip offsets for LiveView
a96d082: GDB scripts: logging hook for prop_deliver
da3ede4: GDB scripts: logging hooks for CreateStateObject\u000auseful to find all state objects created during the emulation\u000ahttp://www.magiclantern.fm/forum/index.php?topic=17969.msg196010#msg196010
41e3fda: QEMU installer: fine-tuned prompt when reinstalling
0ee9487: QEMU: fix Q button handling on 550D, 600D, 1100D (to be tested)
ad4f694: QEMU readme: table of contents; minor typos
067abb6: QEMU readme: GPIO section update
52e6389: 6D: fix task_max
519f2d0: Merged new-dryos-task-hooks into 100D_merge_fw101\u000a(enabled CONFIG_NEW_DRYOS_TASK_HOOKS in internals.h; added task_dispatch_hook comment)
83bb3a3: boot-hack: use CONFIG_NEW_DRYOS_TASK_HOOKS to enable new-style DryOS hooks\u000a(undefining HIJACK_TASK_ADDR was not obvious)
7800ecf: dump_srec.py: updated to decode lens firmware updates (*.lfu)\u000ahttp://www.magiclantern.fm/forum/index.php?topic=20969
a9e3bc2: QEMU readme: misc updates (formatting, rephrasing); GPIO section
ed7f831: QEMU installer: make it clear the script expects user input when it's asking whether to compile QEMU
be21c3c: eject removes the disk image completely while unmount doesn't remove the disk image from /dev.
8c50f2b: reworked description of the peripherals
b0d934a: QEMU install: fix mistakes
7649bac: QEMU readme: typos, formatting
a86704f: QEMU readme: note for Bitbucket not always rendering the RST\u000a(reloading the page usually works; apparently it doesn't need javascript, so what's going on?)
9ffd65b: QEMU readme: some basic concepts related to how the DIGIC hardware works\u000a(some parts adapted from https://jsandler18.github.io/ )
6b6d0da: QEMU readme: misc notes\u000a- tip to save SD images as qcow2 (they take less disk space)\u000a- instrumentation tools\u000a- history updates\u000a- minor formatting fixes
d8a162f: QEMU: use 600D MPU messages for 1300D\u000afixes toggling drive mode, http://www.magiclantern.fm/forum/index.php?topic=17969.msg196013#msg196013
f12001a: GDB scripts: hide warnings about undefined task addresses when running with patches.gdb\u000a(when running with debugmsg.gdb, full context info is printed)
6f70c85: GDB scripts: fix address in log_result\u000a(LR is no longer valid, as we are no longer at the beginning of a function call)
7c7c472: QEMU install.sh: recent git no longer accepts empty identities\u000ahttp://www.magiclantern.fm/forum/index.php?topic=20214.msg195892#msg195892
d4cefff: QEMU scripts: removed hardcoded references to ../magic-lantern\u000aand documented how the directories can be customized
ecde6a5: QEMU readme: documented directory structure
e601292: boot-hack: uninstall cache hacks after booting (to be tested)
96851a9: boot-hack: more debug messages regarding memory allocation\u000a(for HIJACK_CACHE_HACK and RSCMGR_MEMORY_PATCH_END)
8260b14: boot-hack: fix CONFIG_HELLO_WORLD & friends when booting with HIJACK_CACHE_HACK\u000a(task_dispatch_hook should not be set in this case)
97d64bf: 100D: enabled Sticky half-shutter (unlikely to cause issues) and Sticky DOF preview (to be tested)
ec86da5: Changed the DoF equations to better handle integer math and used a different source for the equations.
2d19027: Menu: added different rounding mode flags: ISO R10", R20", 1-2-5 series, powers of 2
4284d17: Menu: cleaned up edit_mode constants\u000a(removed unused EM_MANY_VALUES and renamed EM_MANY_VALUES_LV to EM_SHOW_LIVEVIEW)
846c31f: Menu: added UNIT_TIME_MS and UNIT_TIME_US with caret editing support; minor refactoring
4f7a1d0: silent pictures: options for delayed trigger, to help with IS\u000ahttp://www.magiclantern.fm/forum/index.php?topic=12523.msg196174#msg196174
a39b95f: silent pictures: after image review, prefer to return to LiveView, with some exceptions\u000a- if intervalometer is enabled, prefer to turn off the display to save power\u000a- if "Turn off LCD" is enabled under "Powersave in LiveView", also prefer to turn off the display (manual override, e.g. for externally triggered timelapse)\u000a- otherwise, prefer to return to LiveView (credits dfort)\u000ahttp://www.magiclantern.fm/forum/index.php?topic=19005.msg181385#msg181385\u000ahttp://www.magiclantern.fm/forum/index.php?topic=19300.msg190341#msg190341
1541d37: silent pictures: wait for IS if the switch is enabled on the lens\u000ahttp://www.magiclantern.fm/forum/index.php?topic=12523.msg196174#msg196174
296f16a: 650D, 700D: enabled Sticky half-shutter (unlikely to cause issues) and Sticky DOF preview (to be tested)
1dbb29d: Auto bracketing: fine-tuned highlight and shadow thresholds\u000aoverexposed: if more than 0.02% of all pixels are above 235 in the YUV buffer (preview JPG, picture-style dependent)\u000aunderexposed: if more than 10% of all pixels are below 50\u000aprevious thresholds: 0.15% above 235 for highlights, 2.5% below 20 for shadows\u000ahttp://www.magiclantern.fm/forum/index.php?topic=21428\u000a\u000atodo: use raw-based metering? (some models still have problems with raw buffers in photo mode: 70D, 500D in LiveView, maybe others)
87c5cc7: Auto bracketing: do not analyze image borders\u000a(should prevent unnecessary bright exposures if the image has black corners - happens with certain lenses)
88d8f92: Bracketing: print debug messages to console; use higher precision for highlight/shadow percentages\u000afor troubleshooting http://www.magiclantern.fm/forum/index.php?topic=21428
5112610: lens.h: mark lens_format_* as not thread-safe; fix return type\u000alua: workarounds to ensure thread safety for the above calls
9f51c19: lens: added lens_format_iso and refactored other code to use it
792e194: boot-hack: fix task dispatch hook message missing when booting with HIJACK_CACHE_HACK
c4b3c68: QEMU logging: cleaned up hacks around memory logging options\u000a(logging tools may require any memory logging backends, but in the logs, only those items specifically requested by user will be printed)
ae1cdc1: run_canon_fw.sh: hide osascript messages on Mac\u000a(when trying to bring the QEMU window in foreground, but there isn't any)
3070976: QEMU install: keep the 64-bit gdb warning prompt on Mac and WSL (to be tested)
19f5eb6: QEMU install: attempt to fix warnings about 64-bit gdb on Mac and WSL (to be tested)\u000athe script should print warnings about them, but accept them as valid
ded8f42: QEMU install: fix path issue after compilation
89a679e: QEMU install: fix warning about lsb_release on Mac or other systems without it
f7c4d0a: QEMU install: attempt to fix warnings about 64-bit GDB on Mac (to be tested)
8e06a0e: QEMU install: fine-tuned QEMU compilation, to be tested\u000a(error handling, display the next steps after compilation finished)
972d3eb: QEMU install: on WSL and Mac, try the latest 64-bit toolchain (to be tested)\u000aLinux installation still uses the 32-bit one (older version)\u000aTODO: attempt to compile a 32-bit GDB for Mac\u000aReworded warnings, as a 32-bit GDB is now only needed for development;\u000ait's no longer mandatory for running the examples, since http://www.magiclantern.fm/forum/index.php?topic=2864.msg190823#msg190823
7b014d2: QEMU: simplified SFDMA mapping by removing model-specific redirection\u000a(they are fairly consistent across all models)
445254a: QEMU tests: 40D call trace still not fully deterministic (CF uses some status polling, not just DMA)\u000are-applying workaround (only check the "basic" call trace, without function arguments and extra info)
6abd0a4: QEMU: documented SD detect registers on recent DIGIC 5 models\u000a(non-functional)
9851807: QEMU: refactored CFDMA/UartDMA handling to remove model-specific redirections\u000aenabled UartDMA on all models (including VxWorks), but it's not working yet\u000a70D: IFE DMA handling moved from SDDMA to CFDMA (minor, no noticeable side effects other than breaking the tests)
805384d: QEMU: fix 5D3 CF emulation\u000a(disabled by default; can be enabled from mpu_spells/5D3.h)
27ed39b: QEMU: documented property groups ("complex" MPU messages)\u000aincluding GDB logging hooks to find them
400b47a: QEMU tests: relaxed shutdown checks\u000a(some false positives caused by non-deterministic emulation)\u000a(note: menu tests are executed non-determinstically, unlike the call trace, so each run is different)
b7ddc01: QEMU: attempt to get deterministic execution on CF models when using -icount\u000aoperations are slowed down to avoid timing variations\u000adefault behavior (without -icount) is not affected\u000aon main firmware, the call/return trace test is now deterministic on all models!\u000afixme: CF emulation in PIO mode is still non-deterministic
9f0813a: GDB scripts: generic logging hooks
54c74ec: QEMU readme: example of identifying the location of an assertion using gdb and -d callstack; minor updates
8fa259b: QEMU: updated 750D/760D GDB scripts and tests; file I/O works!\u000a(using 750D SFDATA.BIN)
979316f: Merged in t3r4n/magic-lantern/qemu (pull request #894)
569968e: QEMU: fix some MPU spells\u000a(typos caught by automated checking)
487260c: Added the serial flash line for 750D and 760D into model_list. See https://www.magiclantern.fm/forum/index.php?topic=17627.msg195357#msg195357
364db8e: QEMU readme: minor link updates
8fa748b: QEMU readme: moved developer and reverse engineering notes to a new file\u000a(reason: bitbucket seems to have trouble rendering large files)
7337880: QEMU readme, GDB scripts: info on debugging symbols; more symbol-file choices in comments\u000a(depending on what you are debugging - regular ML, reboot shim or Canon firmware)
f037cd0: QEMU readme, GDB scripts: recommend '-ex quit' after patches.gdb, but not after debugmsg.gdb\u000a\u000areason: when running with patches.gdb, you may not want to type "quit" after stopping the emulation\u000ahowever, 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
3886414: QEMU readme: fix typos; minor updates
96f61d9: QEMU: fix serial flash DMA on DIGIC 6 (tested on 80D, 5D4 and 750D with PR #894);\u000arefactored serial flash to use its own DMA (not shared with SD)
253c364: QEMU: updated 80D test results for actual serial flash contents\u000ahttp://www.magiclantern.fm/forum/index.php?topic=17360.msg195519#msg195519
af745f0: QEMU readme: formatting
3e4b069: QEMU readme: GDB scripting examples, including callstack
b725d64: QEMU readme: use em-dashes instead of simple dashes
14755cb: QEMU: changed I/O logging behavior\u000a- "-d io" implies "-d nochain -singlestep" (this prints correct PC values, but emulation is slower)\u000a- "-d io_quick" to get the old behavior (faster, with incorrect PC values)\u000a- "-d io_log" to print mmio_log entries for dm-spy-experiments\u000a- "-d nochain" always implies "-singlestep" (easier to enable this mode on other kind of logs that may need it)\u000a- updated README
0bfec8d: QEMU readme: moved the "Incorrect firmware version" section to Hacking\u000a(it's no longer an issue for regular users)
be5a69a: QEMU readme: started to document the steps needed to emulate Canon GUI
0641d77: QEMU readme: minor updates, corrections
aa8cd0d: QEMU tests: updated after changing the SD image\u000a- format screenshots slightly different at free space (before only)\u000a- call/return traces are also different (different layout on the SD image)
53cba30: QEMU: updated sd.img.xz with latest portable display test\u000a(main change: fix identification of firmware version - 7889972)
08d2e81: GDB scripts: fix assert handling on EOS M10
1eedbfb: QEMU: moved 7D2 patches to GDB scripts;\u000ainitial GDB script for 7D2 slave
74a881d: QEMU: defined FPGA memory regions for 5D2 and 50D\u000a(just to prevent some warnings; nothing changed in functionality)
93a3941: QEMU tests: run all cleanups on CTRL-C\u000a(stop all background tasks, make sure QEMU is no longer running, remove temporary files...)
06bfaad: QEMU: enabled serial flash emulation on 5D4\u000a(emulation on main firmware doesn't go that far, but can be tested from bootloader menu)
893e226: QEMU: refactored serial flash CS handling to reduce duplicate code\u000a(moved CS register and tested value to model_list.c)
aa9c7f1: Lua: fixed issue #2824 - decimal number precision when printing\u000athanks dmilligan for the hint and aprofiti for the test code\u000a\u000atested with:\u000a\u000aval = {1.2,1.4,2.8,4.3,4.5,5.6}\u000a\u000afor i = 1, 6 do\u000a console.write(val[i])\u000a console.write(" ")\u000a console.write(val[i] - 0.000001)\u000a console.write(" ")\u000a console.write(val[i] + 0.000001)\u000a console.write("\n")\u000aend\u000a\u000aoutput:\u000a\u000a1.2 1.199999 1.200001\u000a1.4 1.399999 1.400001\u000a2.8 2.799999 2.800001\u000a4.3 4.299999 4.300001\u000a4.5 4.499999 4.500001\u000a5.6 5.599999 5.600001\u000a\u000abefore:\u000a\u000a1.2 1.199999 1.2\u000a1.399999 1.399999 1.4\u000a2.799999 2.799999 2.8\u000a4.3 4.299999 4.300001\u000a4.5 4.499999 4.5\u000a5.599999 5.599998 5.6
545a63e: QEMU tests: reworked menu tests (including format)\u000a- use vncexpect whenever the md5 of the next screen is known (reduces timing sensitivity and also faster overall)\u000a- no more wait hacks required for format tests\u000a- use a single vncdotool command whenever possible (faster)\u000a- removed duplicate code (function for sending a menu sequence)\u000a- fine-tuned progress indicator
bda26e9: MPU spells: allow changing various Canon properties that require confirmation from the MPU:\u000aISO, shutter, aperture, EC, FEC, metering, drive, AF mode, picture style, WB, ExpSim, ALO, HTP, MLU\u000aall but WB were broken if changed from ML menu/scripts; they are working now (fixme: not included in tests)\u000asome of them were working from Canon UI before this patch (picture style, WB, ExpSim, metering and drive mode)\u000aWB was working before, but uses confirmation in logs; updated for consistency\u000a\u000acould not test on: 5D2, 40D, 50D, 550D, 650D, 700D, EOSM2\u000anot working: EOSM (breaks previous tests => disabled)
09403d4: QEMU: experimental mode dial emulation\u000aworks on most models to some extent, except 40D, could not test on 550D, 650D, 70D, EOSM2
f3f3d2d: MPU spells: comment out possible mode switches\u000anot required for the GUI, but will interfere later with the mode switching feature\u000aaffected models: 6D (call/return trace changed), 70D, 700D (no side effects noticed)
060a1f0: Merged in t3r4n/magic-lantern/qemu_installer (pull request #893)\u000a\u000aFurther automation in install script to compile directly at the end.
bb9193e: QEMU: more MPU properties identified by brute-forcing
ecf616f: QEMU: formatting fixes in extract_init_spells.py / known_spells.h
2149521: QEMU: added property IDs to known MPU spells\u000aalso alternate names as comments
e0a4e87: QEMU: identified more MPU spells, corrected a few others\u000a- experimentally (playing around in menus)\u000a- brute-forcing MPU messages to identify properties\u000a- cross-checked names and IDs in startup logs and ROM strings\u000a- still, it's impossible not to find a few incorrect ones
1699165: QEMU: experiment - brute-force MPU messages to find out their meaning
af43d85: GDB scripts: hooks for logging properties (prop_request_change, MPU property functions)\u000a(example for 5D3.113 and 550D.109; useful for identifying properties)
3c3ebba: qemu-util: fix compilation in bootloader context;\u000asample boot messages in reboot.c, e.g. printing firmware signature or RESTARTSTART address\u000a(only present in the output binary when compiling with CONFIG_QEMU=y)
c33141c: GDB scripts: disable serial flash version check patch on EOS M2\u000anot really needed (the error message seems harmless and doesn't prevent GUI emulation)\u000abut changed ML firmware signature checking\u000aand won't be needed after getting a serial flash dump from a real camera anyway
eed976e: QEMU install.sh: further Ubuntu/WSL cleanups (minor)
351a3ad: QEMU install.sh: fine-tuned messages and date format when renaming an older installation
3c0b723: Merged in t3r4n/magic-lantern/qemu_install_improvement (pull request #892)\u000a\u000aOption to rename or delete existing QEMU directory during installation
0a7e1da: QEMU install.sh: WSL fixes\u000a- checking for Ubuntu (uname -a does not report Ubuntu)\u000a- hide 32-bit toolchain options
eeacf80: run_canon_fw.sh: Mac fixes\u000a- use is_mounted (lsof checks are enough)\u000a- typo in osascript when trying to bring QEMU window to front
54c02f6: run_canon_fw.sh: fine-tuned checking of whether SD/CF image is in use\u000a- use lsof to detect whether another process opened the SD/CF image for writing\u000a- only allow multiple instances of QEMU if using -snapshot (read-only access to SD/CF image)\u000a- check all results returned by losetup (note: lsof does not show whether the image is mounted)\u000a- use alternate methods (grepping mount output) if losetup is not available\u000a- to be tested/refined on Mac and Windows 10 WSL
44bce28: QEMU: RTC workaround to bring back 400D GUI\u000a(broken in 0d654a0, not covered by tests as it's very slow)
0bdb061: QEMU: 40D GUI working!\u000a- MPU RX register was read 8 bits at a time (other models so far used 16-bit reads)\u000a- using 50D MPU spells\u000a- button codes found with extract_button_codes.py, from existing ML port\u000a- HotPlug: external monitor, USB, Toe, erase switch\u000a- CFDMA: new channel, protocol tweaks, enabled interrupts\u000a- Powersave workaround (GUI locked up after some seconds of inactivity, similar to 1300D)
ff562b6: QEMU: fix USB CONNECT on 450D/1000D\u000a(incidentally, this also fixes the card format dialog on these cameras - likely UILock issue)
7f1a436: QEMU: 1300D GUI works!\u000a- this camera uses a different DryOS timer (totally unexpected!)\u000a- removed JPCORE patch (firmware expects this to be initialized properly)\u000a- generic MPU spells; button codes from 1100D\u000a- powersave workaround (without it, GUI would lock up after a few seconds of inactivity)\u000a- no patches required!
351f6de: QEMU: cleaned up serial flash handling on models that don't use one\u000apreviously, they were called on unrelated SIO/SDIO channels, with little or no side effects,\u000aother than breaking a few function call trace tests
5137e76: QEMU: updated 80D tests for 1.0.2; DCIM test also works!
b6c5710: QEMU: 80D file I/O support from main firmware\u000a(experimental, tested with "dumpf" in the serial console)
4e1b65e: QEMU: enable card support on generic MPU spells\u000a(experimental, some models work better than others)
7ea57e7: GDB scripts: some experimental 80D patches, to be fixed in the emulation
17b0443: GDB scripts: log state object transitions\u000a(stubs for 550D and 80D)
ec28012: GDB scripts: 80D logging hooks for semaphores and message queues\u000a(disabled by default; also updated assert_log for 1.0.2)
04c809c: QEMU: RomRead DMA is actually XDMAC\u000a(up to 4 channels; 80D only uses 2)
f37efb4: Ghost image: fix crash (issues #2796, #2783)
4c32c3f: gui-common: sync gui_uilock with crop_rec_4k
bf8aa36: Merged new-dryos-task-hooks into lua_fix
be1f5a3: Task hooks: disabled task switch debug messages by default\u000a(too verbose)
a0aedff: 550D, 600D: fix memory allocation (amend 5b4fe18)
0d25b8e: QEMU: experimental MPU support for 80D, 750D and 760D\u000aseems to work with generic spells - at least the emulation goes further\u000aalso minor refactoring / comments on MPU registers for earlier models\u000aalso enabled for 5D4 just to avoid a crash - emulation doesn't reach mpu_send yet, but it calls InitializeIntercom
381a309: QEMU tests: do not start if compilation fails\u000a(small nitpick that could result in false test results)
7abb5ba: QEMU: updated tests after b75e1342711a\u000a(context info is now correctly printed when returning from msg_queue_receive, take_semaphore etc)
391ba33: QEMU: generic MPU spells compatible with most EOS models (experimental)
b75e134: QEMU logging: fix losing track of called functions when DryOS tasks are switched outside interrupts\u000asee the assertion error on 5D4 callstack consistency test (after 442b691)\u000ato be tested; there was a similar error was on 80D, non-deterministic\u000a(encountered when running with -d debugmsg,callstack,tail with all patches enabled)
0fe3220: 6D: ADTG shutter addresses did not work, trying another set
2c5f303: QEMU: MPU status doesn't seem to matter much; simplified to prepare for DIGIC 6 compatibility\u000atodo: cross-check with actual hardware
224843f: 6D: fix ADTG shutter addresses after memory layout change\u000ahttp://www.magiclantern.fm/forum/index.php?topic=5601.msg194754#msg194754\u000ahttp://www.magiclantern.fm/forum/index.php?topic=5601.msg191914#msg191914\u000ahttp://www.magiclantern.fm/forum/index.php?topic=15088.msg190890#msg190890\u000anot tested, just confirmed the new addresses in QEMU\u000afixme: are these deterministic? under what conditions?
5154ad0: QEMU: shared memory initialization for DIGIC 6 (MEMDIV messages)\u000ato try: SHM_SHOW_INFO / SHM_SHOW_DIST_INFO on serial console (only 80D, 750D and 760D reach this far)\u000a( sleep 3; echo "akashimorino";\u000a sleep 1; echo "SHM_SHOW_INFO";\u000a sleep 1; echo "SHM_SHOW_DIST_INFO";\u000a) | ./run_canon_fw.sh 80D -serial stdio
26d2dc2: QEMU: refactored serial flash SIO handler with io_log
6774de5: QEMU: refactored serial flash connections to avoid hardcoding camera model names\u000afixme: D3 models and 1300D still hardwired to serial flash handlers to pass the tests
6521336: QEMU: experimental serial flash support for 80D\u000ausing SFDATA.BIN from 70D, patched at 0x10004 from 09 8B C1 20 to 00 00 01 20\u000ameaning: size of 70D's property block at 0x10000 is 0x12BC98 (data is shifted by 4 bytes)\u000abut 80D expects a maximum size of 0x12000 in FE47BF40 ("Liar Valid Packages!!" if the size check fails)\u000aso we trim the property block at the expected size of 0x12000\u000athis will lose a few properties, but at least the emulation goes further (no SF dumper for D6 yet)\u000aother 8MB SFDATA.BIN patched in the same way should also work (700D, 650D, EOSM, 6D),\u000abut their data block at 0x10000 is larger, so more properties will be probably lost (not tested)
442b691: QEMU: RomRead DMA for DIGIC 6, used for initializing property blocks\u000a(very similar to regular DMA, slightly different register offsets)
44c8b3c: QEMU: slow down UART input to work around race conditions\u000a(not exactly clean, but at least DryShell tests are now passing on all models)
b972984: QEMU: fixed UART on DIGIC 6 (DryShell works!)\u000afixme: tests are failing, but typing on the UI works fine\u000anote: DIGIC 4/5 emulation changed a bit (0xC0270000 was misinterpreted before)
2b0b39a: QEMU: found out why DIGIC 6 models were getting stuck at startup!\u000aThe firmware was reading the memory layout from CP15 registers;\u000amost of them were emulated well in QEMU, except ATCM and BTCM, which were implemented as NOP.\u000aThey are still NOP in current QEMU git.\u000a\u000aPatching the memory regions loop is no longer required!\u000a(keeping empty 80D patch for future use)
df1f1b5: Merged unified into 100D_merge_fw101
1aab319: Merged new-dryos-task-hooks into 100D_merge_fw101
31848a7: 100D: MPU stubs (for dm-spy-experiments)
fee1ee2: edmac: make sure the log files don't have unnecessary newlines\u000a(channels with complex size configuration may get printed on multiple lines; that makes the log file harder to parse)
1508a54: edmac: LOG_INTERVAL can now be changed from menu (persistent setting)
564b0c5: edmac: use numbered log file names
edcb52f: edmac: fix behavior when the extra info buffer gets full
056e56e: edmac: use half-shutter as trigger for logging EDMAC channels;\u000afine-tuned messages
2eddc9f: edmac: fix crash on models other than 5D3\u000a(there was a hardcoded stub)
4b161ce: edmac: fix crash when using "Log EDMAC usage" on D4 models
bc3bd0d: Merged unified into edmac
b4a8fad: Added edmac.mo to nightly builds
2061922: edmac-memcpy: check to make sure all models have AbortEDmac\u000a(to make sure it's correct: selftest.mo -> Stubs API test)
46f2e6e: MPU spells: some names could not be identified (fixed)
d01f900: QEMU tests: call mtools_setup.sh rather than duplicating its work\u000a(fixes some tests failing if mtools is configured to use lowercase by default)
741aec2: run_canon_fw.sh: on Mac, bring QEMU window to foreground\u000a(by default, the window is opened behind the terminal, so one may not even notice it)
e84ed9e: run_canon_fw.sh: print camera name in QEMU window title
2eea98e: run_canon_fw.sh: only clear the terminal if running in interactive mode\u000ahttps://serverfault.com/questions/146745/how-can-i-check-in-bash-if-a-shell-is-running-in-interactive-mode
c47039f: QEMU logging: always log unmapped memory regions
7a9bd49: GDB scripts: fix text alignment with "native" logging options (minor)
b3b129e: QEMU install.sh: fix null byte warning when parsing model list\u000a(bash 4.4 and newer? http://www.magiclantern.fm/forum/index.php?topic=2864.msg193118#msg193118 )
6e86e2b: QEMU install: print fewer help details after installation; link to the online documentation
1297b50: QEMU readme: formatting, typos
1e4f1a6: QEMU readme: more info regarding custom SD/CF images
dd3e675: QEMU readme: more ways to install ML to the virtual SD/CF images
bc84c85: QEMU readme: note about "make install_qemu" not available in all branches
6fd16a7: QEMU readme: note about models using a serial flash
1ffbae0: QEMU README: minor updates to 050a3cc
61ab0d2: Merged unified into qemu
5788c6e: Merged makefile-updates into qemu
98871fc: Makefile: backout 0b9b550\u000a?= not needed when overriding from command-line, e.g. make CONFIG_QEMU=y
4895777: Merged makefile-updates into qemu
420208d: run_canon_fw.sh: Mac compatibility fixes
ca07590: QEMU: 5D3 1.2.3 GUI works!\u000afixme: not covered by tests
481de4e: QEMU: refactored RTC CS\u000aeach model now uses its own GPIO, rather than enabling all possible registers on all models\u000a70D call trace test: minor change to 0xC02201F8, no impact on functionality
5caccbb: QEMU: 70D GUI works!\u000a- GDB patch required (SIO locking up DisplayMgr task, probably touch screen not responding)\u000a- RTC (similar to 6D, but on different SIO channel)\u000a- updated tests (menu, format, call trace)\u000a- minor change to 100D call trace test (0xC022005C = 450D RTC CS; no impact on functionality)
1aa1e60: QEMU: 6D GUI works!\u000a- MPU log and serial flash from Audionut, https://bitbucket.org/hudson/magic-lantern/issues/1974/#comment-40853231\u000a- RTC (a bit hackish, to be refactored)\u000a- GPIOs for HDMI and WriteProtect\u000a- tests (menu, format, call trace)\u000a- patched MPU spells to avoid an intermittent issue (race condition when setting picture quality?)
4822de4: QEMU: fix typo in MPU spells script (broken in a42e55a)\u000a"Complete WaitID = 0x80020000" should have been commented out\u000athis disables LiveView "emulation" in 700D/650D and fixes ML menu for nightly tests\u000atodo: add a test for this (existing tests did not catch this issue)
a55cb4e: QEMU tests: reordered (important, breaks often and/or very fast == runs earlier)
5cd1788: QEMU tests: run in parallel when it's straightforward to do so (experimental)\u000anot parallelized: tests requiring custom builds or checking card contents afterwards
1536a34: QEMU tests: prepare for parallel execution (3)\u000a- stop each QEMU instance from the monitor socket\u000a- two methods: shutdown (clean DryOS shutdown, for GUI tests) and quit (clean QEMU shutdown without turning off the guest OS, for all other tests)\u000a- check for any stale qemu-system-arm / arm-none-eabi-gdb only after each set of tests
2ffb654: QEMU tests: prepare for parallel execution (2)\u000a- unique QEMU_JOB_ID for each job\u000a- unique GDB port and VNC display, derived from QEMU_JOB_ID
01aa167: QEMU tests: prepare for parallel execution (1)\u000a- allow overriding GDB port for each instance (replaced '-s -S' with '-S -gdb tcp::$GDB_PORT'; gdb receives '-ex "set \$TCP_PORT=$GDB_PORT"')\u000a- allow overriding VNC display for each instance (replaced ':12345' with '$VNC_DISP')\u000a- indentation of qemu/gdb commands
050a3cc: QEMU scripts: rough backend support for parallel execution\u000a- requires manual resource allocation\u000a- QEMU_JOB_ID used as prefix for qemu.monitor (each instance would get its own monitor socket)\u000a- GDB port can be overriden and derived from QEMU_JOB_ID (see README)\u000a- VNC port can be handled in the same way\u000a- README updated
e54bfde: QEMU tests/readme: recent netcat requires -N
a31b6ba: QEMU tests: one more race condition fix
9319429: QEMU tests: speed optimizations\u000a- only restore SD/CF images if they were actually changed\u000a- do not wait for gdb if it's not running\u000a- overhead with no tests running: from ~30 seconds to ~10 seconds
e6350ca: QEMU tests: more race condition fixes
73c25e9: QEMU tests: attempt to fix some race conditions
b39024f: QEMU tests: minor fixes after refactoring
ae395c7: QEMU tests: use -snapshot to prevent changing SD and CF images\u000a(exceptions: tests for ROM dumper and DCIM, where we check card contents to validate the test result)
f6125c9: QEMU tests: allow selecting only specific tests to run (lowercase arguments)\u000aCan be mixed freely with camera models (uppercase arguments)\u000aDefault (no arguments): run all tests
ef23b2a: QEMU tests: refactored each test as a bash function\u000a- top-level continue -> return\u000a- moved common preparations to run_test\u000a- each test function uses globals $CAM and $TEST (camera model and test output basename)\u000a- test outputs named $TEST.whatever or $TEST-foo.bar\u000a- generic cleanup after each test\u000a- top-level for loops kept; the loop body calls run_test
695f378: QEMU: make sure mtools prints uppercase filenames by default\u000a(our tests assume this behavior, but some systems have different defaults)
8ceae47: Merged makefile-updates into qemu
cc49f78: QEMU: fix arrow unpress handling on cameras without UDLR (tested on EOSM)
67009e6: QEMU tests: replaced two slow grep commands with sed
9037452: QEMU tests: check call/return trace only until the last function from IDC\u000a(the next 1000 lines can be nondeterministic on digic 6 models)
5be11ba: QEMU tests: refactored matching heuristic for call/return trace on main firmware\u000a(rewritten in Python - much faster)
0eea273: QEMU install: brew docutils needs additional setup; just use the one from pip
824ab8d: mtools_copy_ml.sh: removed dependency on realpath\u000a(not available on Mac)
3f97cbe: Makefile: fix compiling tcc
b145d5f: QEMU install: Mac cleanups, to be tested\u000a(xcode-select auto-installed by brew, docutils available as package)
00118b9: Makefile: moved toolchain setup to Makefile.setup\u000a(this allows toolchain to be overridden from Makefile.user)
80119ee: run_canon_fw.sh: use ESC c to reset the terminal, instead of "tput reset"\u000a("tput reset" may crash when running as background job - bash bug?)
e9d8550: QEMU install: refuse to overwrite an existing installation
8eca12b: QEMU install: only apply the gcc 7.x patch if user actually has gcc 7\u000aalso commit the gcc 7.x patch to our local git repo, so it won't affect updates to qemu-2.5.0.patch
5d46a3e: QEMU install: we have gcc-arm-embedded:i386 on the PPA :)
73efb79: Makefile: fixes to allow compiling ML with Linaro arm-eabi-gcc; updated toolchain recommendations
4c0316f: QEMU: patch for building with gcc 7.x
d4d4812: 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\u000a(should fix installation on newer Ubuntu - to be tested)
46231df: MPU spells: try to use parameters (ARG0, ARG1 etc) in simple cases\u000a(same-length replies, repeating the arguments in the same position)\u000a(note: PROP_BURST_COUNT doesn't always work well like this)
fbc7402: QEMU: typo when loading raw images for capture emulation
702d21f: MPU spells: identified some lens properties (PROP_LENS and PROP_LENS_NAME)
a42e55a: MPU spells: identify property description for Complete WaitID messages
866e6b2: QEMU: comment out some common MPU spells and use the ones from our headers;\u000aalways include the headers in autogenerated spells\u000aalways disable sensor cleaning\u000a(some emulation differences in a few models, hopefully non-essential)
89f33ed: MPU spells: identified PROP_BATTERY_CHECK\u000a(verified before dialogs such as card format or firmware update)
c1a3873: QEMU: print names of MPU spells (exported from extract_init_spells.py)\u000aand highlight the ones without name or without known behavior
2e56dfb: MPU spells: documented a bunch of properties and updated their indexing\u000a(some trial and error, others copied from http://www.magiclantern.fm/forum/index.php?topic=17596.0 )
c679ab2: QEMU: handle INFO unpress event (for 5D3)
301ae81: QEMU: generate valid dark frames if a CR2 isn't available
a3591c8: QEMU: allow full-res 14-bit data from any format readable by dcraw\u000a(usually CR2 and DNG; example in README)
309e498: QEMU: use <%d> for EDMAC connections in debug messages\u000a(e.g. connection <5>, channel #16)
e5eb342: QEMU: moved image processing engine functions to separate file\u000a(EDMAC, PREPRO, JPCORE...)
996d051: make install_qemu: check whether sd.img or cf.img is mounted before copying files
2b91c8c: run_canon_fw.sh: also print the command-line of arm-none-eabi-gdb, if any\u000aand whether it's running as a background job or not
5421d97: QEMU: updated 600D test to include the info screen\u000a(had to enable it in Canon menu)
501a169: QEMU: disabled sensor cleaning animation on 5D2, 50D, 60D\u000a(interferes with ML menu; updated tests)
ca46ef4: 100D: minor typo
6afd543: QEMU: warn user when shutdown is not clean
c08b8ae: Merged new-dryos-task-hooks into 100D_merge_fw101
a3bec4e: QEMU: updated 100D menu test to show all menus (including the FlexiZone AF setting)
73d1573: QEMU: run 100D with FlexiZone AF enabled (this setting results in ML crashing at startup)\u000ahttp://www.magiclantern.fm/forum/index.php?topic=16040.msg190934#msg190934
b3e509e: QEMU tests: declared cameras able to run the FRSP test at the beginning\u000a(so run_test arguments now apply to this test as well)
1db2345: 100D: fix MAX_ISO_BV
1412149: qemu-frsp: updated to operate from PLAY mode\u000apreviously, it was operating on the date/time screen;\u000anow all models are starting either with Canon's info screen,\u000aor with display off, or show the sensor cleaning animation
c19d7a4: QEMU install: updated regex for parsing GUI_CAMS from run_tests.sh\u000a(to allow multi-line declaration)
bbe51f6: QEMU tests: 100D typo\u000a(old file)
a044bc8: QEMU tests: updated for 5D2/50D without date/time dialog\u000anote: sensor cleaning animation makes the test nondeterministic - do not check these screens
4d945c0: QEMU: 5D2/50D RTC patch from g3gg0\u000a(date/time dialog is history!)
6c493fb: QEMU: updated README
8d9c682: QEMU: enabled PROP_MPU_GPS on all DIGIC 5 models
8914fc4: QEMU: EOS M boots the GUI!\u000a(it also needs the GPS patch - moved to GPS.h)
4b919be: QEMU: updated tests\u000a(after RTC emulation, I2C and patches cleanup)
93e57ce: GDB scripts: date/time patches no longer needed!
baa4496: QEMU: reworked I2C debug messages
26f7275: QEMU: updated MMIO highlighting code\u000a(module name is now highlighted as well - easier to spot)
10a6add: QEMU: moved RTC emulation to its own handler; reworked debug messages
a691c3d: QEMU: enabled RTC emulation for most models\u000aexceptions: 5D2 and 50D appear to use a different chip or method
0d654a0: QEMU: RTC patch from g3gg0\u000a5D3 and 60D no longer show the date/time screen!
b8f8669: QEMU: I2C patch from g3gg0
6433c78: QEMU: figured out why 5D3 was locking up at startup and in certain menus - it was waiting for PROP_MPU_GPS!\u000a(thanks g3gg0)
d85e97b: Merged unified into 100D_merge_fw101
db3174d: QEMU install: don't install two toolchains if user selects 64-bit GDB
b28cd95: Merged in nikfreak/magic-lantern/100D_merge_fw101 (pull request #867)\u000a\u000a100D merge fw101 update
70e77de: 100D: AbortEDmac stub
a96451f: 100D: fix ADTG/CMOS_WRITE_FUNC
32d5cef: QEMU install: libnewlib-arm-none-eabi is architecture-independent
8a17206: QEMU install: download toolchain from launchpad and use developer.arm.com as mirror\u000a(developer.arm.com is currently down, hopefully not from our experiments)
0c43b50: QEMU install: make it clear that *you* have to run the PATH command (not the script);\u000ause export (e.g. for shells other than bash) - https://unix.stackexchange.com/questions/26047/how-to-correctly-add-a-path-to-path
b424f9a: QEMU install: 32-bit Mac toolchain doesn't have gdb...
d26bf04: QEMU install: wrong quotes
5e428cc: QEMU install: fix some copy/paste errors
1702004: QEMU install: allow using the current 64-bit toolchain on Ubuntu; minor fixes
d887fd8: QEMU install: more toolchain options (experimental)\u000a- Mac: try the toolchain from https://acroname.com/software/arm-eabi-gcc-toolchain-mac-osx-macos-x-32bit (not tested)\u000a- Ubuntu: options to install GCC from Ubuntu repo\u000a - older version, 32-bit or 64/bit\u000a - from gcc-arm-embedded PPA (6.x 64-bit)\u000a - from gcc-arm-embedded (32-bit installed in home directory)\u000a - use the existing installation if possible\u000a- Ubuntu: don't install libfdt-dev (not needed?)\u000a- all: print warnings about 64-bit GDB and allow using it anyway if user says so\u000a- all: check whether arm-none-eabi-gcc can compile a simple program\u000a- all: check whether rst2html or vncdotool are installed outside package manager
1a0c8cc: Merged in kichetof/magic-lantern-1/kichetof/qemu-install-elegant-way-to-install-pack-1506440503741 (pull request #861)\u000a\u000aQEMU install: elegant way to install packages on macOS
f4d6f45: QEMU install: remove docutils install for macOS
c94cd8c: QEMU install: elegant way to install packages on macOS\u000aChecks if the package is already installed otherwise install it
75c10ef: QEMU install: on Ubuntu, gdb-arm-none-eabi:i386 and gcc-arm-none-eabi can be installed with the same command\u000a(false alarm; let's also check for correct installation)
36f0c12: QEMU install: pip does not require sudo
6294699: QEMU install: fix for dpkg -l also returning non-installed packages\u000ahttps://wiki.debian.org/ListInstalledPackages
a393b45: QEMU install: on Ubuntu, gdb-arm-none-eabi:i386 and gcc-arm-none-eabi must not be installed with the same command\u000a(otherwise, we get gcc-arm-none-eabi:i386 which does not include libnewlib-arm-none-eabi...)
5be6b11: QEMU install: pip recommends sudo -H\u000ahttps://stackoverflow.com/questions/27870003/pip-install-please-check-the-permissions-and-owner-of-that-directory
84e77a5: QEMU install: also set up the toolchain for compiling ML (Ubuntu)
92399e9: QEMU install: typo
983ebed: Makefile: updated toolchain recommendation; minor edits
f19ab52: QEMU install: 64-bit arm-none-eabi-gdb doesn't work (cannot boot 5D3 GUI),\u000ano matter where it comes from (Ubuntu repo or gcc-arm-embedded PPA)...\u000aon 64-bit Ubuntu, gdb-arm-one-eabi:i386 works, but Windows and Mac are out of luck for now
c796fbb:
Merged in Dannephoto/magic-lantern/100D_merge_fw101_SOUND (pull request #863)\u000a\u000aFix for audio issues on eos 100D, possibly other cameras too.\u000a\u000a* Fix for audio issues on eos 100D, possibly other cameras too.\u000a http://www.magiclantern.fm/forum/index.php?topic=16040.msg190513#msg190513\u000a Thanks too dfort for code.\u000a\u000a* Nikfreak found the correct stub\u000a http://www.magiclantern.fm/forum/index.php?topic=16040.msg190532#msg190532\u000a\u000aApproved-by: nikfreak
a1b765e: Makefile: attempt to use any arm-none-eabi-gcc from PATH, if already installed (to be tested)\u000aBy default, it will attempt to use ~/gcc-arm-none-eabi-5_4-2016q3 if installed.
6c6a7f7: QEMU install: gcc-arm-embedded try #5
c816b19: QEMU install: gcc-arm-embedded try #4
f30c606: QEMU install: gcc-arm-embedded try #3
e0edbf5: QEMU install: gcc-arm-embedded try #2
beaa53c: QEMU install: let's try gcc-arm-embedded from PPA
8b43556: Merged in kichetof/magic-lantern-1/kichetof/qemu-check-if-brew-is-installed-on-macos-1506424463270 (pull request #860)\u000aalso included this suggestion: https://bitbucket.org/hudson/magic-lantern/commits/a24f36e36ea4b27a3c86b8e77e70b49cf4e04fea#comment-5261641
dccfc07: QEMU: check if brew is installed on macOS
f65820c: Makefile: use gcc 5.4.1 by default (current version from https://launchpad.net/gcc-arm-embedded )
a24f36e: QEMU install: more Mac patches (not tested)\u000afrom http://www.magiclantern.fm/forum/index.php?topic=16012.msg190369#msg190369
a8c0793: QEMU install: also install docutils and vncdotool
1c1402e: QEMU install: verbosity fine-tuning
5c2fbe1: QEMU: minor README updates
b3188ba: QEMU: README formatting
84b2c84: QEMU: README formatting
e22d95a: QEMU: updated install instructions in README
2da1561: QEMU install: arm-none-eabi-gdb requires 32-bit libraries on Ubuntu
2531efc: QEMU: set up arm-none-eabi-gdb from the install script
b266b03: QEMU: auto-install dependencies if running on Ubuntu-based systems (to be tested)
45fa299: QEMU: some Mac patches for install script (not tested)\u000ahttp://www.magiclantern.fm/forum/index.php?topic=16012.msg190369#msg190369
0926611: QEMU: ggrep patch for Mac from kichetof\u000ahttp://www.magiclantern.fm/forum/index.php?topic=16012.msg190396#msg190396
756f231: QEMU: supply an email address for git if the default doesn't work\u000ahttp://www.magiclantern.fm/forum/index.php?topic=16012.msg190409#msg190409
c16b550: QEMU tests: M3 display test, using DISKBOOT.BIN from Ant123\u000a(also test other PowerShot models to see whether they are loading DISKBOOT.BIN from the card)
35113df: QEMU: EOS M3 display support from Ant123 (using a custom CHDK build)
230b85a: QEMU README: Bitbucket doesn't resize the images...
1b96139: QEMU README: let's try some screenshots
0db6b6e: QEMU: more README updates\u000a- shutdown notes (system_powerdown vs quit)\u000a- rewritten QEMU monitor section\u000a- how to bypass the date/time dialog
39eb4b0: QEMU: minor improvements to README
ad0159f: QEMU: README updates\u000a- shutdown and reboot\u000a- running from physical card\u000a- menu navigation (keys)\u000a- misc notes, minor typos
168ba86: QEMU: 1000D GUI works too\u000a(based on 450D)
057f2c6: QEMU: stretch display vertically on VxWorks models\u000a(double all lines to get correct aspect ratio)
0732213: QEMU: emulate JUMP and Direct Print buttons (for VxWorks models)
a075527: Backout 89254290c3f7\u000a(shutdown only works only when not activating Canon menu, with or without this patch)
d2dbd23: QEMU: 450D GUI working!\u000a- updated MPU spells, button codes and parsing scripts\u000a- WriteProtect GPIO\u000a- SET does not send unpress events\u000a- menu navigation working, format locks up\u000a- shutdown working\u000a- updated tests
30c239f: QEMU: print whether available keys are press-only or they also send unpress events
8925429: QEMU: re-created 70D MPU spells; shutdown working
20a176d: QEMU: shutdown working on most models able to start the GUI (all but 70D)
72ed052: minimal targets: removed old references to qemu-util
5a8ad8c: QEMU tests: always stop GDB when QEMU quits
fd35fba: QEMU tests: updated to handle shutdown and reboot\u000a(shutdown test after menu navigation, reboot test when formatting card and restoring ML)
d79e391: QEMU: handle PROP_ABORT (after opening battery door)\u000afixme: it doesn't shutdown, figure out why
063c3ef: QEMU: handle the powerdown event\u000a(menu: Machine -> Power Down)
6198074: QEMU: experimental shutdown handling (card door and power switch)
8df1b6a: reloc.c: cleaned up ifdef's
698f0de: QEMU: minor README update\u000a(ML menu now working on all models able to boot the GUI)
446db81: QEMU: 1200D doesn't have a dedicated delete button\u000a(use the key codes from 1100D - same as 600D, but without the delete button)
22b4722: QEMU: experimental Av button handling for Rebel cameras\u000a(fixme: has some side effects, such as changing the displayed shutter speed)
779bed7: QEMU: don't auto-repeat keys, except for scrollwheels
eaea104: QEMU: also allow right shift for half-shutter
bfda257: QEMU: handle the FUNC button (for 50D menu navigation)
97b097b: Merged unified into qemu
b5e7123: QEMU: updated 700D to 1.1.5 (GDB scripts and menu tests)
f20dedc: QEMU: README updates
66f4df6: QEMU: initial README draft
2412fbe: Makefile: "make install_qemu" for platform targets;\u000aupdated run_ml_all_cams.sh to use it
96bddd8: qemu-util: qprintf requires stdarg.h (when not included from dryos.h)
cf36c61: Makefile: allow using CONFIG_QEMU for modules (qprintf and related functions)
0b9b550: Makefile: allow overriding CONFIG_* options on the command line\u000ae.g. make CONFIG_QEMU=y\u000a(suggestion from g3gg0)
5ce88f3: qemu-util: make the QEMU debugging API header-only
037e8ca: console include qemu-util.h is no longer needed
04e9a75: menu: removed QEMU workaround (no longer needed - GUI mode switch works on most models)
266f08e: QEMU: workaround for invalidating executable code after ROM patches\u000afixme: this should be handled internally by QEMU; not sure why it isn't\u000ato reproduce: register_interrupt hook on dm-spy-experiments branch, with hooks enabled right after Canon's init task\u000a(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)
10967ec: Raw backend: some more debug messages\u000a(useful for qemu-frsp tests)
fc3f8d7: QEMU tests: reworked FA_CaptureTestImage test:\u000a- enabled debugmsg in the main log; moved UART output to a new file\u000a- run until FA_CaptureTestImage Fin appears in the UART log\u000a- also check models with no display (from the UART log)
1efbe23: qemu-frsp: fix compilation
fb73d4f: Merged unified into qemu
95a1b76: QEMU tests: FA_CaptureTestImage test also working on 50D, 500D, 550D and - without display - on 1100D
cdd4349: qemu-frsp: use CONFIG_QEMU to enable debug messages from raw.c
6ffef9c: qemu-util: removed old experiments\u000a(kept the initial hello world for historical purposes)
249eacf: Raw backend: print to QEMU console if compiled with CONFIG_QEMU=y\u000a(without enabling RAW_DEBUG)
230f796: qemu-frsp: fix compiling on 500D, 5D2 and 50D
180051f: memcheck: check malloc heap in the same way as AllocateMemory (500D only for now)
2a0ae3f: memcheck: option to identify uninitialized memory accesses in main firmware\u000athat could be exploited from bootloader
c50d44a: memcheck: fix operation on DIGIC 6
f2c84b5: memcheck: fix operation without ML memcpy
06334d5: QEMU: tests for memchk, from minimal ML\u000a(not all of them are passing)
15d8d0f: qemu-hptimer: CONFIG_INSTALLER no longer needed
be3254c: 7D: fix minimal targets (no LEDON/LEDOFF on this model though)
c48a6fc: GDB scripts: register_interrupt on all models (with test)
09e9d43: GDB scripts: removed duplicate code between */debugmsg.gdb and */patches.gdb\u000a(if patches.gdb is present, debugmsg.gdb will always include it)\u000a(also moved 1300D patch to separate file)
29bab2b: GDB scripts: disabled slow items by default\u000a(semaphores, message queues, MPU communication, ResLock, EDMAC)
1196a70: GDB scripts: symbol-file commands to get debugging symbols from ML (commented out)\u000atodo: auto-enable when autoexec.bin is executed?
9265538: QEMU: always load camera-specific files from CAM/ or CAM/FW/ (refactored to avoid duplicate code)
262146b: QEMU tests: updated menu test for 70D 1.1.2
059a526: QEMU tests: updated 70D needles (expected results) for 1.1.2
a094e14: QEMU tests: allow camera models as arguments
f53a35a: QEMU: with -d exec, make sure the instructions aren't printed twice
9f943d9: Merged unified into 100D_merge_fw101
1cfca21: adtg_gui.mo: fix 100D (tested, confirmed working)
3223248: fix wrong stub (thx @dfort for the note)
2029c44: manual focus: allow moving focus box
fff0aeb: edmac.mo: display connection map (experiment)
d422843: QEMU tests: very basic Dry-shell test
3f81006: QEMU: experimental UART support in main firmware\u000a(Dry-shell working on all DIGIC 4 and 5 models)
5792b77: QEMU: option to highlight certain MMIO registers\u000a(requires editing the source code)
726806f: QEMU: option to export MMIO reads as dm-spy entries (dm-spy-experiments branch)\u000athis allows cross-checking the values with the ones from actual hardware\u000ausage:\u000a- ./run_canon_fw.sh 5D3 [...] -d io,nochain -singlestep\u000a- copy/paste some entries into dm-spy-extra.c (grep for mmio_log to find them)\u000a- get logs from both camera and QEMU (dm-spy-experiments branch, CONFIG_DEBUG_INTERCEPT_STARTUP=y, maybe also CONFIG_QEMU=y)\u000a- adjust the emulation until the logs match
ef9d1d0: QEMU: require verbose (e.g. -d io,int,verbose) to show DryOS timer interrupts and DIGIC timer
6a5929d: QEMU: incomplete 5D3 1.2.3 GUI (boots with black screen, no menus)
feb0949: QEMU logging: option to identify tail function calls (heuristic)
6fa216a: QEMU tests: trimming should work now
22230b6: QEMU tests: trimming must be done on useful lines, not on raw input lines\u000a(otherwise the test will be sensitive to any additional info in the raw log)
84f6013: QEMU tests: call/return trace tests first\u000a(they are more likely to fail or require frequent updates)
665bf5b: QEMU tests: include interrupts in main firmware call/return test\u000a(this allows counting related stats from the filtered log - smaller)
2010fa1: QEMU tests: use ansi2txt only once in the main firmware call/return test (speed optimization)
c3ba92d: QEMU tests: IDC needs trimming as well in order to get deterministic results
47136af: QEMU tests: trim calls-main-basic.idc until matching the "needle" md5\u000a(hopefully this trick will get repeatable results on faster PCs)
8677809: QEMU tests: 5D2 IDC test not deterministic (functions are the same, but comments are not)
4f0863d: QEMU: do not use non-printable task names\u000a(VxWorks: current_task is set before it has a valid name)
ee74ce9: QEMU: backout parts of 8e29c15\u000alarge timeout didn't solve the repeatability issue - results are still sensitive to processing speed\u000asome models keep running in a loop, and after 10-20 seconds, they "discover" a new function and so on
8e29c15: QEMU tests: let's try a larger timeout; minor fine-tunings
2d1d5d5: QEMU tests: found a way to get deterministic execution (icount option)\u000a- reworked the call/return trace tests to also run on main firmware (with -icount)\u000a- fixme: CF models do not have deterministic execution, even with -icount\u000a- fromutility tests also enabled on CF models (IDC only)\u000a- "first interrupt" test replaced with full call/return trace on main firmware\u000a- removed "sorted IDC" tests (the regular IDC + call/return trace tests are much stronger)
d2a2f64: wait_log.sh: script to wait for a string to appear in a log file, with timeout since last update of the log file
45531b1: remove_end_loop.py: minor fixes
16db46e: Moved my_fprintf to fio-ml.c (fixes compilation of minimal/qemu-frsp)
ce4e0ea: QEMU logging: always name DebugMsg, even if no symbols are loaded
f2fdf93: QEMU logging: fix loading symbol names on Thumb code
ec061a6: QEMU: fix off by one error when loading ML stub names
d43bf3a: boot-hack: check whether we can reach anything in the ROM with relative jumps
bfa1b22: boot-hack: self-check for ARMLIB_OVERFLOWING_BUFFER
6768410: 100D: enabled CONFIG_TSKMON
4f97f4f: 100D: fix task_dispatch_hook
858a20c: 100D: enabled CONFIG_ALLOCATE_MEMORY_POOL and classic boot process\u000a(similar to 6D, reserved 592K at the beginning of AllocateMemory pool)
5b0b23e: Merged new-dryos-task-hooks into 100D_merge_fw101\u000a(note: 100D will not boot until fixing memory allocation)
02965e5: 100D: enabled CONFIG_EDMAC_RAW_SLURP
fc545d1: sync FIO stub changes introduced in unified
ef01395: Merged hudson/magic-lantern/unified into 100D_merge_fw101
5afed4d: fix suggested by a1ex for http://www.magiclantern.fm/forum/index.php?topic=16040.msg187050#msg187050
c8b7f50: use MENU button for calling zebras in playback mode.\u000arequested https://www.magiclantern.fm/forum/index.php?topic=16040.msg186620#msg186620 and http://www.magiclantern.fm/forum/index.php?topic=16040.msg182400#msg182400\u000aw/o this menu button would open Canon menu and quitting playback mode anyways. If one needs to do so just press halfshutter or play button(s) to quit playback mode and afterwards the menu button.
22928a1: we indeed can switch between YUV422 addresses\u000afixes http://www.magiclantern.fm/forum/index.php?topic=16040.msg186788#msg186788\u000aalso sync MOV_RES_AND_FPS_COMBINATIONS value (Digic5)
83173fc: adjust movie related consts
e902a88: Merged hudson/magic-lantern/unified into 100D_merge_fw101
744f586: remove custom symbol file handling\u000a(leftover from fw revisioning 100D_100A/100B)
8433bca: fix curent_interrupt stub (thx @a1ex)
67cf458: add missing task related stubs
155d57f: Backout changeset 1914eafc755cad2f2ebb17a4bde35949deb5eacf
1914eaf: fix wrong stub, as suggested\u000ahttp://www.magiclantern.fm/forum/index.php?topic=16040.msg179165#msg179165
bc6d41d: flexinfo refinement (switch back to COLOR_FG_NONLV)
efad6c5: adopt celsius display and apply color related adjustments
81386c6: use INFO button to disable ML during boot
25c196b: fix indentation
6694d6a: Merge unified
4a394d3: prepare for edmac_raw_slurp
08cfbd1: Merge unified
7f18e89: Merged unified into 100D_merge_fw101
60a2c84: trying to fix the version numbering for the last time ;D\u000amust have been sleeping
48ab54d: fix faulty version numberings
0164b73: cleanup part2
0e58df5: cleanup part1
71e3947: initial ML port for FW1.0.1 -> getting rid of revision handling
d823c4c: Created new branch 100D_merge_fw101
5d168ad: 1100D: enabled CONFIG_EDMAC_MEMCPY
5647189: Raw backend: small fixes related to ALLOCATE_RAW_LV_BUFFER\u000a- thread safety\u000a- alocate uncacheable large buffer\u000a- compiler error on missing DEFAULT_RAW_BUFFER or RAW_LV_BUFFER_ALLOC_SIZE
97284f1: Merged raw_fixes into allocate-raw-lv-buffer
b814744: Merged unified into allocate-raw-lv-buffer
8cbb6ad: menu: experiment - long-press SET to open submenus (enabled on EOS M, where SET/Q share the same button)
ea44aac: menu: fine-tuned responsiveness on keys checked for long press (joystick center, down/erase on EOS M)
abf5a49: Renamed CONFIG_JOY_CENTER_ACTIONS to CONFIG_LONG_PRESS_JOYSTICK_MENU
4ca02bb: Fix 1100D RAW_LV_BUFFER_ALLOC_SIZE
1a2a91e: Update CONFIG_EDMAC_RAW_SLURP documentation with porting tips
21fae78: EXPERIMENTAL: 1100D raw LV support using CONFIG_EDMAC_RAW_SLURP and ML-allocated buffer
26d12c6: Fix typo in macro names
6348f69: raw.c : Allow the backend to allocate a buffer for RAW lv if CONFIG_EDMAC_RAW_SLURP and CONFIG_BROKEN_RAW_LV_BUFFER are defined\u000a\u000aAlso try to detect possible misconfigurations at compile-time
e4ab5b7: lua_camera: minor help tweaks
0290529: lua_camera: getter for gui.mode (missed in 706b131) + API tests
485997b: gui-common: fix exit_(play|qr|menu)_mode on 60D (camera.gui tests from api_test.lua are working now)
d7cdf70: gui-common: refactored exit_play_qr_mode/exit_menu_mode to avoid duplicate code\u000aadded exit_play_qr_menu_mode (generic)
2642fbe: Backout bc10355 (undo screenshot palette fix, not portable, issue #2821)
cd5a40a: lua_menu: fix hidden, advanced and edit_mode not working from menu declaration\u000ahttp://www.magiclantern.fm/forum/index.php?topic=21258\u000atodo: test all these settings and refactor to avoid duplicate code
0ec6843: Merged unified into lua_fix
84e8d24: Lua: fix menu.open missing from docs\u000ahttp://www.magiclantern.fm/forum/index.php?topic=21195
cd768c4: Lua stdio: fix buffering issues\u000a(error messages written to stderr with fprintf, maybe others)
b2f245c: Lua: sort scripts by filename at startup\u000ahttp://www.magiclantern.fm/forum/index.php?topic=21155
cadbb0e: Lua: updated menu.get to return string by default\u000ato get an integer: menu.get("Foo", "Bar", 0)\u000aold syntax is still valid: menu.get("Foo", "Bar", "")\u000aupdated API tests\u000ahttp://www.magiclantern.fm/forum/index.php?topic=21145
c60d970: Merged makefile-updates into lua-fix
29f030c: Merged makefile-updates into lua_fix
ab6ed83: fixed late evaluation issue in rule builder
60c763b: Merged new-dryos-task-hooks into lua_fix
5b4fe18: 550D, 600D: reserve 576K for ML\u000a(640 is a bit too much, 512 is too tight)
5bcd52b: Merged makefile-updates into lua_fix
706b131: Lua: initial sketch for camera.gui (Canon GUI modes)\u000aMoved display.idle to camera.gui.idle; removed camera.state
1a55233: gui-common: exit_menu_mode; minor fix in exit_play_qr_mode
c1d164e: gui-common: enter_menu_mode
1a9917c: Moved enter_play_mode, exit_play_qr_mode and PLAY/MENU status helpers to gui-common
3c52202: Lua: lv.vidmode (current video mode, as string)\u000aAPI tests included
6087555: get_video_mode_name: handle paused LiveView mode (PAUSED-LV) and regular photo mode outside LiveView (PH-NOLV)
811e024: Lua: lv.overlays (status of Canon/ML overlays in LiveView)\u000aAPI test included
36f1a4c: Lua: console.visible (status)\u000aAPI tests updated
254314a: Lua: lens.autofocusing (status)\u000aAPI test included (requires user to start autofocusing, as lens.autofocus() blocks until finished)
0381d50: lua_key.c: fix warning
45a225b: Lua: fix led_blink, issue #2808
aa09cc1: Merged unified into lua_fix
0391160: Task hooks: fix task overriding on very old DryOS models\u000a(to be tested on all camera models)
84dd3fd: selftest: check handling of null pointer errors (make sure a crash log is saved)\u000a100D and 70D used to crash in this scenario, rather than saving a log\u000ahttp://www.magiclantern.fm/forum/index.php?topic=16040.msg190279#msg190279 (next few pages)
02c1a68: Merged unified into new-dryos-task-hooks
4cf7015: tskmon: in null pointer check, retrieve last last task name directly, rather than calling is_taskid_valid\u000aalso fixed some possible null pointer bugs in the... null pointer checking code\u000a(fixes crash when reporting null pointer on 100D and likely on all other cameras with new-style DryOS hooks)
261ca8a: 6D: 592K reserved at the beginning of AllocateMemory (simpler code)
1762542: Merged qemu into new-dryos-task-hooks
b6468e0: Merged unified into new-dryos-task-hooks
b8f3e05: boot-hack: fix wrong comments (AllocateMemory != system memory)
ebd35b4: Merged backtrace into qemu
bcfbe3b: GDB scripts: comment out DebugMsg (prefer -d debugmsg instead)
0ff5205: run_canon_fw.sh: identify DebugMsg from GDB script if not set\u000a(moved from run_tests.sh)\u000aalso print command-line after clearing the screen
9104bf2: QEMU: GDB scripts for 50D and 6D
e4376a1: backtrace: moved sources to src/ to avoid symlinking (cross-platform issues)\u000aand let the install script figure it out
2968edb: Merged backtrace into qemu
4a03838: Merged unified into qemu
115fe25: backtrace: brute force stack scanning as backup strategy (idea from g3gg0: gdb.c, gdb_get_callstack)
ab6d33c: backtrace: fix BKT_RANDOM_BRANCHES experiment
fbb532b: backtrace: BX LR is never encountered during tests
3db5423: backtrace: fix stack overflow
64d4726: run_ml_all_cams: fix missing quote
f3780ad: QEMU logging: backtrace test script
595b8b8: run_ml_all_cams: prefer single quotes instead of \$ for options
6b6c5c5: run_ml_all_cams: allow full customization of log file name
6400dc7: Stack traces for crash and assert logs, using the backtrace backend
b9c5214: Updated backtrace.c to work on the camera as well\u000a(same source file for both QEMU and ML)
4e7c966: arm-mcr.h: fixed read_lr (not sure what the problem was) and added read_sp
29f6edc: QEMU logging: experimental stack trace routine (backtrace) that does not require prior instrumentation\u000ait attempts to walk the stack, emulating instructions that change LR, SP, function returns and tail calls\u000asome more experiments and self-tests are available as compile-time options\u000athis method can be adapted to run on the camera as well
9a966eb: run_ml_all_cams: fix copying zip to SD/CF image
695235c: QEMU logging: fix assertion when printing callstack from interrupts on Thumb code
965584e: QEMU logging: save/restore callstack exec state for each DryOS task when handling interrupts\u000aThis fixes calls/returns that were missed if an interrupt happened exactly before the jump\u000a(non-deterministic issue; was fairly rare and not obvious)
870370f: QEMU logging: indent now public (eos_indent); larger buffer
f7a8977: QEMU logging: CALL_LOCATION for eos_callstack_get_caller_param; fix CALL_DEPTH
dfa8c40: QEMU logging: overriding LR no longer needed in call_stack_push
aaa41f3: run_ml_all_cams: fix copying zip to SD/CF image
cd37857: QEMU logging: do not report jumps from tight loops\u000aotherwise, some loops would print a huge amount of jumps (unnecessary)\u000athese would slow down certain tests a lot, e.g. 5D3 callstack on fromutility
1edb651: QEMU logging: record direct jumps to function calls (many such calls in DIGIC 6)
8b90df8: QEMU logging: log task switches before other items\u000aotherwise, consistency errors may appear - see test_callstack.py\u000aminor differences in VxWorks tests
dea9a09: QEMU: ignore CBZ (on Thumb-2 code)
d9d4d65: run_ml_all_cams: use multi-line QEMU_SCRIPT's (nicer formatting)
fee11f9: run_ml_all_cams: fix BOOT=0
0b67e0c: run_ml_all_cams: fix ML_PLATFORMS when not specified
8ebfcc8: QEMU: 650D GUI
67deddd: QEMU: 650D GUI (including tests)
3049e97: QEMU: 1300D updates\u000a- SD interrupts (DCIM test passed)\u000a- HDMI status (minor)\u000a- GDB script updated for latest firmware\u000a- patch JPCORE (fixes assert)
2facd3e: QEMU tests: removed MENU_CAMS (all GUI_CAMS are now able to browse Canon menu)
47994c3: QEMU: 70D menu tests (format test not working)
08dde97: QEMU tests: only print ROMCPY messages before the first interrupt
a2ad3bd: QEMU: options for run_ml_all_cams.sh to compile and run a given set of ML platforms, from any HG changeset
efb2dcf: QEMU: updated splitgdb.sh as discussed on EOS M2 thread\u000ahttp://www.magiclantern.fm/forum/index.php?topic=15895.msg186245#msg186245
70592bd: QEMU: flush after qprintn, so the output will appear right away
a5b489e: QEMU logging: handle %c with -debugmsg
225c660: QEMU logging: minor fixes for -d autoexec
6968862: QEMU: updated 5D4 GDB script and tests for 1.0.4
2773fc1: QEMU logging: workaround to handle some missing return from interrupts\u000a(updated 600D and 1100D unique function tests - they differ by one function)
b8a0b80: QEMU: EOS M2 tests + patches.gdb
5fa8899: QEMU: OOB fix from https://lists.gnu.org/archive/html/qemu-devel/2017-07/msg03239.html
6b3b4d5: Merged in daniel_fort/magic-lantern/qemu-EOSM2-wip_1 (pull request #835)\u000a\u000aQEMU EOSM2 preliminary setup.
1de8d88: Updates to debugmsg.gdb
5bddd34: Found correct values by checking against 1.0.2 firmware.
078d3b5: I’m pretty sure “set *(int*)0xFF356DE8 = 0xe12fff1e” is wrong but everything else should be good.
aa849bb: Added EOSM2 to mph.c
76097c1: Updated EOSM2 debugmsg.gdb file.
2b8378e: Added EOSM2.h file, copied from 100D.
2a61375: Copied button codes from 100D to EOSM2.
f69e35f: Added EOSM2 in supported cameras list.
3d14927: Added mpu registers to EOSM2 in model_list.c
d0028cf: Merged qemu into qemu-EOSM2-wip-1
bdd3ae2: Merged latest qemu commits
af3e5b8: Merged in qemu commits
23a8c2d: Added items from ML on EOS-M2 forum post: http://www.magiclantern.fm/forum/index.php?topic=15895.msg185228#msg185228
6099a11: EOSM2 preliminary setup.
3124887:
Merged in daniel_fort/magic-lantern/qemu-build-tweaks-2 (pull request #836)\u000a\u000aQemu build tweaks 2\u000a\u000aApproved-by: Daniel Fort
e7bb2c9: -s option not needed with uname.
576af0a: Check for mounted EOS_DIGITAL disk image handled differently on OS X.
f8a0b00: Merged qemu into qemu-build-tweaks-2
f33c089: Merged qemu into qemu to prevent multiple heads.
d09f1b9: Changed shebang for portability. Missed these two scripts in my last pull request.
830451b: OS X doesn’t require root permissions to mount disk image.
4a991e5: Use hdiutil on OS X systems.
f3506bd: Merged in daniel_fort/magic-lantern/qemu-build-tweaks-1 (pull request #834)
9912f99: QEMU: updated reference data for sorted IDC tests on some models\u000a(100D, 700D, EOSM, 5D)
53384d7: QEMU: 80D patches.gdb\u000a(required to run the stack trace check on a DIGIC 6 model with DryOS task switches)
2801b8d: QEMU logging: fix some rarely missed jumps\u000a(usually in return from interrupt)
2c0ee53: QEMU logging: fix Thumb PC in call stack traces (for DIGIC 6)
8400e34: QEMU test suite: check callstack consistency\u000a(whether verbose stack trace matches the call/return trace)\u000a(also checks context info, such as current task or interrupt)
6b2ce04: QEMU: do not log UART messages when it's redirected to a file\u000a(-serial file:out.log)
49b5e9e: QEMU: with -d calls, always align location information\u000a(insert a newline on very long lines)\u000a(updated tests)
a1d759c: QEMU: also log interrupt ID when using -d calls
90f73ee: QEMU: use verbose stack trace for DebugMsg and GDB scripts\u000a(each call on its own line - much more readable)\u000ato get callstack for every single DebugMsg, use "-d debugmsg,callstack,v"\u000aor, for GDB scripts: "-d callstack -s -S" for QEMU, "macro define PRINT_CALLSTACK 1" in the GDB script, without quotes)
a23f3fe: QEMU: option to log DebugMsg calls natively, without GDB scripts\u000a(much faster; very similar to nkls' initial implementation)
0782bfb: QEMU: redirect the monitor console to qemu.monitor unix socket\u000a(to restore the old behavior, run with -monitor vc)
0e2ff63:
Merged in daniel_fort/magic-lantern/qemu-build-tweaks-1 (pull request #834)\u000a(fixes for building QEMU on Mac)\u000a\u000aQEMU build tweaks 1\u000a\u000aApproved-by: Daniel Fort
0e7529c: Merged in latest qemu commits
9d6000c: QEMU: parameterized MPU spells for PROP_CARDn_STATUS;\u000aupdated WriteProtect handling on most DIGIC 4/5 models\u000a(otherwise, these GUIs would show the card write-protected dialog)
46711f9: QEMU: use timestamps to decide the relationship between MPU spells\u000a(only messages received shortly after a mpu_send call should be considered replies)
d9d06e7: QEMU: warning about duplicate MPU spells\u000a(they will show where the communication may depend on state)
dba399a: QEMU: include a description for each input MPU spell\u000a(updated extract_init_spells.py with definitions for some known spells)
4217f46: Suppress printing an error message if the command isn’t found.
293fd54: 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.
dfe7530: QEMU: parameterized MPU spells for UILock and NotifyGUIEVent
9dad505: QEMU: parameterized MPU spells (experimental)
a55cd40: QEMU: incomplete half-shutter emulation\u000a(fixme: it should show the metering indicator or close menus/dialogs)
575c170: QEMU: menu navigation works on 5D3 1.1.3
c1a7c47: QEMU logging: minor cleanups
c70e94c: QEMU logging: moved ABI checking in its own routine (minor refactor)
e764ef2: QEMU logging: moved -tasks in its own routine (much faster)\u000anote: task switching locations differ on VxWorks models after this change\u000a(they are approximate anyway)
0784cd2: QEMU logging: option to enable verbosity only when autoexec.bin is loaded\u000a(useful for new ports; bootloader can be very verbose with certain logging settings)
eedf340: QEMU: exposed callstack to GDB and ML guest code\u000abased on nkls' first implementation of DebugMsg helper\u000aassert in gdb scripts now always prints the call stack
24f1e46: GDB scrips: task switch logging helper (pure GDB)
313f7ad: QEMU logging: stronger test for ML stubs\u000a(fixes some non-function symbols that appear when compiling ML with -ggdb)
896a1f5: Experimental debug info in magiclantern elf file\u000ait allows mapping from code address to source line\u000a(example: eu-addr2line -s -S -e magiclantern 0x50d60)\u000ait should not end up in autoexec.bin or affect it in any way
5f0db05: QEMU logging: attempt to guess strings and named functions in call/return trace\u000a(adapted from dm-spy-experiments)\u000a(self-test results updated)
43885e0: qemu-util now always available (in dryos.h)\u000a(these functions are only compiled with CONFIG_QEMU=y; otherwise they are just type-checked and optimized out)
7cb9756: boot-hack: fix boot with CONFIG_QEMU on some models\u000a(qprintf/vsnprintf reboots the camera because it's not yet initialized)\u000aalso added a safeguard to prevent such mistakes
90cb9be: QEMU test suite: fix PowerShot tests using wrong debugmsg.gdb
2ce28c8: QEMU logging: fix copy/paste error in ROM block autodetection
3726245: QEMU logging: explicit option to show task switches\u000a(rather than hijacking callstack)
c8351c4: QEMU test suite: list memory blocks copied from ROM during bootloader tests\u000a(both EOS and PowerShot firmwares)
932f224: QEMU logging: allow ROM block copying in arbitrary increments, up to 128-bit\u000amixing memory access sizes is allowed too\u000athe 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\u000acopying 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\u000abut 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\u000aonly blocks larger than 0x40 bytes are printed
1b8c321: QEMU logging: experimental option for finding memory blocks copied from ROM to RAM\u000a(only 32-bit sequential copies for now)
d1af24b: QEMU logging: fix memory logging selection in complex cases\u000ae.g. romr,ramw should only log ROM reads and RAM writes\u000ain simple cases (such as just romr or just ramw), hooks are installed only for the selected operation (read or write)\u000ain these cases, additional checks will be redundant\u000ahowever, with complex cases such as romr,ramw, hooks are installed for all reads and and all writes\u000aso we can no longer rely on the hooks (being installed or not) for filtering the results
33ea5e4: QEMU logging: fix task info on Eeko
cf0f2ea: QEMU logging: quiet some jumps that are not function calls (frequently used on Thumb-2)
51af2a7: QEMU: fix CSS in HTML logs from subdirectories
d92f5b3: QEMU scripts: allow loading symbols from any ML target (e.g. minimal, installer)
8867df0: QEMU: .current_task_addr for most models\u000a(where it was already known - copied from ML stubs or from debugmsg.gdb)
dfa166b: QEMU logging: experimental task switch detection (DIGIC 2-6)
582f32e: QEMU logging: attempt to fix a rare crash when returning from interrupt
5e7dc4d: QEMU logging: fix VxWorks return from interrupt; refactored interrupt detection on DIGIC 6
4fe5ddf: QEMU test suite: fix call/return trace logs being trimmed way before the first interrupt\u000a(the deterministic part is usually much larger than previously covered)
4d8dbe0: QEMU test suite: also report nested interrupts
0e6ee38: QEMU: fix minor regression in DIGIC 6 bootloader\u000a(introduced in 7f1ba92; some tests changed)
195b998: QEMU logging: minor rename
06aecd4: QEMU test suite: workaround for the non-determinism in the sorted IDC test\u000a(retry up to 5 times until it succeeds)
3941fd9: QEMU test suite: more tests for call/return trace and IDC scripts (including Thumb, interrupts, secondary cores)\u000aNot all models are passing.
6ed53d7: QEMU: fix cache lockdown printf's (they should go to stderr)
0c628a4: QEMU: fix handling UART interrupts with serial redirected
89cd3a1: QEMU: fine-tuned verbsity of various components\u000a(interrupts, digic timer, DMA, serial flash, CFATA)
52b2428: QEMU logging: fix call identification on Thumb (eeko)
749068b: QEMU logging: fix crash on 5D3 eeko
b8a71e7: QEMU: changed REG_PRINT_NUM so it no longer includes a newline; updated boot-hack and fixed regression in boot-check logs
43e3d51: QEMU: warn on ROM size mismatch
9fbba7a: QEMU run_canon_fw.sh: clear screen on each run
24a9c1b: QEMU logging: experimental symbol name loading from ML object files\u000aexample (bash): . ./export_ml_syms.sh 500D.111; ./run_canon_fw.sh 500D,firmware="boot=1" ...\u000afixme: QEMU elf loader patched in a not very clean way
2bad7cd: QEMU logging: simplified function call detection a bit more\u000a(results should be unchanged)
42cb918: QEMU logging: always guess function arguments located on the stack\u000a(-d calls now implies -d ramr)
1c55172: QEMU logging: explicit option to export to IDC\u000a(-d idc)
6eed828: QEMU logging: check R4-R11 and SP when returning from function calls\u000a(all registers now stored on the call stack)
1417f37: QEMU logging: in IDC comments, record task name when available and drop prev_sp
608645a: QEMU logging: basic test for IDC (function list only)\u000a(useful when formatting changes)
814fa8f: QEMU test suite: nicer way to interrupt our background QEMU process
5b7bc89: QEMU logging: simplified function call detection\u000a(results should be unchanged)
056b4f8: QEMU logging: indent callstack locations at 80 chars\u000aindent amount configurable at compile time\u000atests updated
4c3f62f: QEMU: 1300D current_task_addr
5fb4fac: QEMU: initial GDB script for 1300D; display test
970d607: QEMU: initial support for Mac and clang in install scripts (to be tested)
77f8c0c: QEMU: fix compiling with clang
dbbd3bc: QEMU test suite: removed basic GUI test (redundant)
8c13efd: QEMU test suite: tests for callstack and call/return trace
758e5ef: QEMU: disable gray noise that appeared until GUI initialization (faster)
96c0c0d: QEMU logging: minor callstack speed optimization
b9d26fc: QEMU logging: in call/return trace, print caller (from call stack) instead of raw LR
2e31be4: QEMU logging: callstack speed optimization
469a5bf: QEMU logging: fix handling nested interrupts in callstack
65e8a49: QEMU logging: initial call stack support for Thumb-2 (DIGIC 6)
5cbf495: QEMU logging: attempt to guess additional function arguments from RAM tracing\u000a(use -d calls,ram to enable this)
3de9a10: QEMU logging: print first 4 arguments and return value for all function calls\u000a(with -d calls)
3ee28fd: QEMU: get stack limits of current DryOS task and print them on the call stack\u000anew API: eos_get_current_task_stack
511c988: QEMU logging: API for retrieving various parameters from the call stack\u000a(SP, stack frame size, call depth, function arguments)\u000anote: R0-R3 stored on the call stack\u000aAPI name: eos_callstack_get_caller_param
31a8bfb: QEMU logging: fine-tune options; auto-enable dependencies
a7f5369: QEMU: indent memcheck and io_log messages according to call depth\u000anew API: eos_callstack_get_indent
6238b07: QEMU memcheck: fix line wrapping in verbose messages about multitasked free calls\u000a(minor; visible with -d memchk,v)
c614583: QEMU logging: generic print_location; refactored memcheck to use it\u000a(eos_print_location)
0221262: QEMU logging: simple call stack printing API, used in memcheck when reporting errors\u000a(eos_callstack_print)
9d51d21: QEMU logging: experimental call stack reconstruction\u000aideas from https://github.com/panda-re/panda/blob/master/panda/plugins/callstack_instr/USAGE.md\u000afixme: requires -d calls,nochain -singlestep\u000anew APIs: eos_get_current_task_id, eos_callstack_indent
fbf5f53: QEMU logging: refactored to split IDC and call logic
5d109f9: QEMU memcheck: split exec hook into components\u000a(malloc and memcpy for now; non-functional change)
38caf78: QEMU memcheck: refactored with CPU env (easier to get register values; non-functional)
d33e262: QEMU memcheck: refactored malloc list with a data structure (non-functional)
00fb273: QEMU memcheck: identify blocks affected by heap errors (messages similar to valgrind)
1a4005e: QEMU memcheck: fix memcpy handling\u000a(do not copy allocation flags, only initialization; fix copying from ROM)
8e46838: QEMU: AbortEDmac emulation
021bc58: QEMU: basic model of EDMAC transfer delay
5d8419d: QEMU: gui/menu tests for 5D2 and 50D
42fe886: QEMU: force line-buffered output for our messages
a4b1a88: QEMU: a few more assertions for memcheck
0da32ad: QEMU: fix card formatting on 50D and 5D2; menu tests for 5D2
66506c0: QEMU: fix CURRENT_CPU outside MMIO handlers\u000a(defaults to cpu0; fixes CF routines crashing when used with -d memchk)\u000a(may need to be changed for EOS M5, when its time comes)
fe3dddc: QEMU: updated 5D2 MPU spells, thanks Ilia. Menu works!\u000ahttp://www.magiclantern.fm/forum/index.php?topic=9852.msg184191#msg184191
f777356: QEMU: GDB script for 5D2
faee6f5: QEMU: 50D menu navigation tests
9caf786: QEMU: 50D menu navigation works!
bbacfc8: QEMU: 50D button codes
ae595d3: QEMU: fix 50D CFATA and HDMI; GUI boots!
a9096f2: QEMU: 50D MPU spells, thanks jrm21\u000ahttp://www.magiclantern.fm/forum/index.php?topic=9852.msg184191#msg184191
f571fe2: QEMU: minor speed optimization in serial_flash
98e94f1: QEMU: speed up test suite\u000a(large delays no longer needed)
36ece09: QEMU: CFDMA write works on 5D2 (DCIM test passed!)
f9a6a47: QEMU: fix CFDMA on 5D2 (only read works)
8b68fd2: QEMU: made MPU/SF/SD/CF logging macros generic (in eos.h)\u000a-d sdcf for logging SD/CF messages
d2245b0: QEMU: configurable resolution for digic timer
80169f4: QEMU: updated tests for faster card formatting\u000a(BUSY dialog no longer caught)
9bd3474: QEMU: trigger SDIO interrupt on errors as well\u000a(fixes semaphore timeout after CMD1; to be tested for side effects)
3401f3f: mpu: refactored verbosity; most messages now hidden by default\u000a(-d mpu or -d mpu,verbose or -d io,mpu etc to show them)
80deb63: serial_flash: refactored verbosity; most messages now hidden by default (-d sflash shows them)
98569f7: QEMU: fix memory logging on models with serial flash
47134ac: QEMU: minor fixes in scripts
49aa93c: QEMU memcheck: fix printf's\u000a(should go to stderr)
13d3d12: QEMU memcheck: get ML stubs from environment variables
26a3fce: QEMU memchk: experimental TCM checking\u000a(catches even more null pointer bugs)
1b020f8: QEMU memchk: moved stubs in a data structure, for easier porting
1f6a52c: QEMU: highly experimental memory checking tool (-d memchk)\u000a(stubs hardcoded for 500D)
62f8fca: Memory logging: fine-tuned messages
35a8497: QEMU: moved our memory logging routines to logging.c
540bb08: QEMU: moved our calls logging hook to separate file; preparing to add more tools
53f8679: QEMU: hook called when execution a TranslationBlock\u000a(todo: move the hardcoded analysis tools from cpu-exec)
ab614b1: QEMU: use 64 bits for qemu_loglevel; renumbered and defined some more options for future use
70ea686: QEMU: output all our messages to stderr\u000a(should fix colors getting mixed up)
f3286de: QEMU: use macros for ANSI colors
8b4d4cb: QEMU: minor fix in UILock.h\u000a(todo: parameterized MPU messages)
ce3cde7: QEMU: compile with code coverage (gcov); helper script for lcov
d5b43fa: QEMU test suite: updated portable ROM dumper link; added 1300D
611711b: QEMU: log DMA memory accesses as well; self-test to make sure all writes are logged\u000a(the test works by rebuilding a second copy of the RAM from the write trace, and comparing with QEMU's copy)
f31088f: QEMU: experimental logging of guest memory accesses (LDR/STR, RAM or ROM)\u000adidn't call it "memory tracing" as it doesn't use QEMU tracing API\u000aremoved old TRACE_MEM code
4815be6: QEMU: fix apparently random lock-up (interrupts no longer triggering, for no apparent reason)\u000a(bug introduced in 24909946bb90)
d2463b7: QEMU: fix io_log crash on get_current_task_name\u000a(to reproduce: 450D with -d io)
f695185: QEMU: experimental MPU support for 1300D\u000a(it seems to work, to some extent, but we need a startup log from a real camera to get further)
486a568: QEMU: flash model ID for 1300D (fixes startup assertion)
cbf042b: QEMU: initial support for 1300D, thanks adamnock
ae248f7: QEMU: model ROM as ROM device, rather than RAM\u000a(writes are allowed and logged)
ede93ed: QEMU: support for multiple firmware versions (e.g. 5D3 1.1.3 and 1.2.3)\u000aexample: ./run_canon_fw.sh 5D3,firmware="113;boot=0"
93a3e27: QEMU: minor fixes for helper scripts
ef5e720: QEMU: allow arbitrary targets in run_ml_all_cams.sh (e.g. minimal); small fixes
a9e7221: QEMU: minor fixes for helper scripts
b474ef0: QEMU: save HTML logs to subdirectory
1aa445d: QEMU: helper scripts for automated tests on all ML cameras
f6450e4: QEMU: fix compiling HPTimer test (requires CONFIG_QEMU)
2ffdd0d: QEMU: script to clean up redundant ANSI escape sequences from logs
6192929: boot-hack: more debug messages with CONFIG_QEMU
3f09215: QEMU: guest API for disassembling code at any address
6c2908d: boot-hack: debug messages when compiling with CONFIG_QEMU\u000a(useful for new ports or for troubleshooting non-booting situations)
4cf806e: qemu-util: helper to print numbers to QEMU console very early in the boot process
cc309c9: qemu-util: allow using qprintf without guarding every call by CONFIG_QEMU\u000a(dummy inline functions on regular builds; simplified console.c)
5c78942: QEMU: fix signed EDMAC off2 on DIGIC 4
1fc73e1: QEMU: disabled battery cover emulation on 60D and 100D\u000a(interferes with some GUI tests)
5ac5156: QEMU: non-deterministic lock-ups solved, thanks nkls!\u000a(retries no longer needed in the test suite)
855a2f2: QEMU: mutexes no longer needed after refactoring
56f8d13: QEMU: refactored interrupt thread using QEMUTimer\u000a(credits: nkls, https://bitbucket.org/niklastisk/qemu/commits/224f59e )
94a1997: GDB scripts: helper to log the return value of any function
fe3dfbb: QEMU: GDB scripts and task address for 100D
9cff2f9: QEMU: battery cover emulation\u000a(with various degrees of success)
cc113f0: QEMU: another fix for gcc 4.x/6.x\u000a(amend commit 242d6f1)
cdb42ea: QEMU: updated instructions regarding CONFIG_QEMU (it's no longer required)
242d6f1: QEMU: updated configure script to fix compilation with gcc 4.x and 6.x
41e331c: QEMU test suite: always wait after terminating qemu-system-arm\u000a(might fix some intermittent VNC issues)
e9e3ed7: QEMU: skip a few tests on 1100D and 1200D, that are very sensitive to timing (processing speed)
6957508: QEMU: updated help in install script
0693628: QEMU: updated 60D tests
1d5511a: GDB scripts: 700D patches (required for GUI emulation)
c4e6358: QEMU: fix commit b36254 (missing files)
b362541: QEMU: menu navigation and card format tests for 60D, 550D, 600D, 700D, 100D, 1100D, 1200D
d29dbdb: QEMU: updated GUI test result for 60D, 100D, 1100D, 1200D\u000a(after GUI emulation, they boot to date/time menu rather than info screen, but you may now click OK to bypass it)
0b35f5c: QEMU: ported 500D GUIMode/UILock/format spells on 550D, 60D/1200D/1100D, 600D, 700D, 100D.\u000aCanon menu navigation and card formatting works on all these models!
805b084: MPU spells: comment out button events
8af0189: QEMU: updated formatting of MPU spells to make them self-contained\u000a(easier to copy/paste around)
5645a69: QEMU: fix 100D lockup
c881ba2: QEMU: fix display waiting routine (EnableBitmapVBufferForPlayBackAndWait)\u000aThis unlocks menu navigation on many models!
d37de6c: QEMU: initial support for 7D (slave core only, IPC disabled)
e70e0cd: QEMU test suite: minor speed-up when waiting for specific text in the log file
d6454bf: QEMU: moved HPTimer test from qemu-util to a minimal test binary;\u000aadded a test for current task name and current interrupt ID;\u000ashould work on all models that can load autoexec.bin and start a few tasks (no need for GUI)
2575c0c: QEMU: aggressive LED redraw
bf41cb1: QEMU: better handle double-buffered displays (minor)
69fc2d2: 7D: fix minimal target\u000a(also removed some custom installer settings)
c905f43: 6D: fix minimal target
ba2f322: Merged task_name into qemu
ac20d58: qemu-util: moved register definitions to header
43c11d8: QEMU: restoring ML after format works too (500D)\u000aThis test requires patched vncdotool (patch included).
20b5b68: QEMU: formatting the virtual card works! (500D)
7aa5fa6: QEMU: run all tests with custom card images\u000a(fixes false error on 500D menu test - free space reported in menu should not depend on user card contents)
3a97582: QEMU: fix ML helper MMIO (regression from M5, 7534423f)
cf96ee7: QEMU: fix USB connect on DIGIC 4 models
bdbd3e9: QEMU: more dialogs working on 500D!
784580e: QEMU: fix handling INFO and PLAY (typo)
71563c9: QEMU: fix IDC output for large runs
2efe1a0: QEMU: fix typo in extract_init_spells
978e6be: QEMU: use unix sockets for menu test
d373382: QEMU: menu navigation test\u000a(500D for now)
8145cf2: QEMU: fix race condition in key handling\u000a(very fast clicks are OK now)
a4b8fe9: GDB scripts: initial 1100D support (DebugMsg, task_create, SetEDmac)
9d50cd9: GDB scripts: date/time patches for 500D, 550D, 600D, 60D, 70D
bf092df: qemu-frsp: fix compilation for 5D3 (use 1.1.3)
39164cf: Merged unified into qemu
46bd96d: QEMU: 500D MPU spells (menu navigation works, thanks Greg)
679028e: QEMU: current_task_addr for 500D, 550D and 600D
4aa69e9: QEMU: fix LED not redrawing properly
0436581: QEMU, extract_init_spells.py: annotate some more properties; fix minor quirks (comments only)
9e5b512: QEMU: experimental multi-core emulation for M5
7534423: QEMU: initial support for EOS M5 (first core only; starts a few tasks)
7f1ba92: QEMU: initial support for EOS M10 (starts a few tasks and mounts the SD card)
32d3908: QEMU: option to log function calls and export them to IDA (-d calls -singlestep)
0319ffb: QEMU: 500D GUI test
7a7f858: QEMU: refactored 8-bit palette handling\u000a(removed duplicate code)
f739333: QEMU: handle 8-bit BMP palette menu mode
36084dc: QEMU: GDB scripts 500D
d583374: QEMU: GDB scripts 500D
ac8dadc: QEMU: disable JPCORE (fixes DCIM test regression on EOSM)
279666c: QEMU: 100D boots Canon GUI, 70D shows date/time screen!
4a3d468: QEMU: fix hotplug events on EOS M
4192b7f: QEMU: first steps for JPCORE emulation
12369bb: QEMU: attempt to follow the MPU spell sequence even if some messages are repeated
df741f8: QEMU: use larger delays before tail in run_test.sh
b35c551: QEMU: allow retries in some tests, until successful\u000a(there are some nondeterministic bugs in the emulation)
b57afe1: QEMU: workaround for MPU communication sometimes getting out of sync
8299cc8: QEMU: updated 700D and EOSM display test checksums to match dumps from dfort
dd961b6: QEMU: fix eeko path
e0124e8: QEMU: allow arbitrary working directory via $QEMU_EOS_WORKDIR
4fc69b3: QEMU: EOSM passes the DCIM directory test
e3bd1d8: GDB scripts: EOSM patches (startup sequence works)
68413b3: QEMU: some definitions for 700D and EOSM
135a6ee: QEMU: current_task_addr for 1100D
c10d86c: QEMU: first steps for handling 5D3 eeko communication with main CPU
852127f: QEMU: minor update to 5D3 eeko memory map
a317356: GDB scripts: 5D3 eeko interrupts
87f08fa: QEMU: handle EDMAC offset 0x40
16ea5c1: GDB scripts: initial support for EOS M; minor fix for 700D
b2ae50b: QEMU: MPU spells for 700D and EOSM (logs from dfort)
f4ef5e6: QEMU: updated 1000D support for 1.0.7\u000a(GDB script, display test checksum, fix current task address)
7ac7415: QEMU: Eeko DryOS timer (not sure it actually works)
74ba3ae: QEMU: run Eeko from RAM dumps; minor updates
6940830: QEMU: quiet cache maintenance registers
8d2c628: QEMU: print description of some MPU registers as they are set (reveals memory map)
22a753d: QEMU: option to enable UART debug logging (-d uart); mark "-d io" option as EOS-specific
f41ca66: QEMU: Eeko UART emulation (can navigate the debug menu)
4c858e5: QEMU: Eeko interrupt registers
aded9e3: QEMU: initial support for 5D3 Eeko (a small DryOS core running Thumb-2 code)\u000acredits: g3gg0 for identifying it
c1fc7e7: QEMU: fix SDIO regression on M3
8822a3b: QEMU: include LR in MMIO logs
e323fdd: QEMU: fix CHSW assert on M3
e3a5d5c: QEMU: emulate photo capture process on 5D3\u000a- more DMA channels (EekoBltDmac = DMA5)\u000a- Eeko WakeUp\u000a- MMIO size 0x20000000\u000a- image data on connection 35\u000a- the test requires some patching, because 5D3 does not initialize the YUV buffer at startup
5e91ed8: QEMU: DCIM test appears to work on 450D as well\u000a... given enough retries :)
a3b80e3: QEMU: code for listing EDMAC interrupt names (for dm-spy-experiments)
8a35400: QEMU: emulate all EDMAC size configurations!\u000a(xn,yn,xa,ya,xb,yb,off1a,off1b,off2a,off2b,off3 for both read and write transfers)\u000aAlso included a function to pretty-print an EDMAC configuration.\u000aTest code and details will follow.
679d301: QEMU: 450D MPU spells and button codes
4282e53: QEMU: fix 5D4 ram_manufacturer_id; updated display test result for latest ROM
88d8588: QEMU: fix EDMAC off1 for DIGIC 3
aa6eb59: QEMU: handle EDMAC "pop" operation
d5cc0c5: QEMU: refactored MMIO registers with macros for direct mapping to variables (less verbose)
b4485f5: QEMU: dummy Furikake emulation for 60D (just copy the data from input to output)
378cd8c: QEMU: partial EDMAC transfers (incomplete)
a0dc54e: QEMU: fix EDMAC connection count; asserts
ad0483c: QEMU: full-res silent picture test (working on 60D and 1200D)
f7b1c5e: 550D: fix compiling minimal target
00a3f1e: Minimal test binary for taking and previewing a full-res silent picture, for QEMU test suite
89c0cd0: Merged cleanup into qemu
b60c973: Merged unified into qemu
38b1392: QEMU: reordered tests
3159ea0: QEMU: file I/O test from main firmware (creating DCIM directory if missing); only works on a few models for now
1ce10ee: QEMU: portable ROM dumper test (works on most SD models)
7c8067f: QEMU: PIO SD transfers (450D mounts the SD image)
3139894: QEMU: always print SDIO errors
506411c: QEMU: fix SD interrupts on 450D (attempts to mount the card, but fails at sdPIOReadBlk)
4e4f87d: QEMU: current_task_addr for some VxWorks models (for MMIO registers)
50e1d62: GDB scripts: ignore %R in DebugMsg (40D: "%RegisterCBRSetupRequest")
1cfceb8: QEMU: initial MPU support for 450D, with 60D spells
f76bb1c: QEMU: fix VxWorks heartbeat (including HPTimer workaround)
d5f80c5: QEMU: handle extended HPTimers (VxWorks heartbeat seems to work)
9e1271e: QEMU: EDMAC interrupts for DIGIC 5
9cf1533: QEMU: 550D shows date/time screen (EDMAC fix)
629b279: QEMU: emulate the picture taking process (can take a full-res silent picture on 60D and save it as DNG)\u000a- EDMAC transfers: handle xa, ya, xb, yb, xn, off1a, off1b\u000a- dummy head timer emulation (just triggering an interrupt)\u000a- dummy emulation of the HIV image processing module ("consuming" row/column correction data)\u000a- note: the code from silent.c and raw.c must be patched to avoid GUI mode changes (patch not included)
b526534: QEMU: dummy emulation of image preprocessing modules (ADKIZ also triggers interrupt on 60D => evfInit succeeds)
e04be24: QEMU: partial EDMAC transfer emulation
810b761: GDB scripts: log some EDMAC calls (60D stubs)
acdaf2c: QEMU: updated 40D and 100D display tests for latest firmware versions
3e4002f: install.sh: also copy test scripts
ad535bd: QEMU: UART support borrowed from hw/arm/digic.c (cc frantony)\u000aTo use it: "View -> Serial0" or "-serial stdio" or "-nographic"\u000aAlso updated test script.
0653508: QEMU: initial support for 5D4 AE processor (K349AE)
f04d4db: QEMU: test for GDB scripts (not all models working; fixed 7D2 and M3)
ea50ca5: QEMU: run_tests.sh refactor to avoid duplicate camera lists
9576f15: QEMU: fix 400D startup messages
09d70ee: QEMU: quiet 60D hotplug activity
2c1e96c: QEMU: refuse to run if any of the card images is mounted
04b1397: QEMU: fix 5D4 display emulation; updated SD image with new display test
b9a749d: QEMU: initial support for 5D4 (SD image updated too with latest display test)
d44e953: QEMU: initial support for 40D, 400D and 450D (display test working)
337cfac: QEMU: 5D runs the display test
cc8ef08: QEMU: experimental CFDMA support (5D loads autoexec)
7dd8ec7: QEMU: fix 50D (display test works)
32309d7: GDB scripts: increase tcp connect timeout
43f130d: QEMU: initial support for 5D (no autoexec yet)
dad0b0a: QEMU: initial support for A1100 (proof of concept, CC frantony)
a07d2ab: GDB scripts: 1000D task info
3aad46d: GDB scripts: check CURRENT_TASK before dereferencing (to avoid nonprintable output when invalid)
afccd7d: Updated SD image with display test updated for VxWorks\u000aAlso updated screenshots' MD5 (the new test prints an extra line)
8303a4a: QEMU: 1000D display from bootloader
2490994: QEMU: initial support for 1000D (DIGIC 3)
f5399e7: QEMU: moved RAM and TCM parameters to model_list.c; fixed TCM size on DIGIC 6
1c30060: QEMU: assume 80D bootloader on 7D2 for now
493db1c: QEMU test suite: also prepare a temporary CF card image
0aada94: QEMU test suite: more robust handling of temporary SD card image\u000a(previous image is restored even if you press CTRL-C while preparing the new one)
3461ad7: QEMU test suite: custom test for EOS M3
99d05c4: QEMU: testing scripts (first attempt to write a test suite), covering:\u000a- bootloader jumping to main firmware: works on most models, except 7D (50D not tested)\u000a- portable display test from bootloader: works on most models, except 7D (50D not tested)\u000a- Canon GUI test (screenshot): works on 60D, 5D3, 1200D, 1100D, and - to some extent - 600D\u000a\u000aTODO:\u000a- SD/CF read/write tests (bootloader ROM dumpers, startup on formatted card, minimal file I/O from ML)\u000a- tests for gdb scripts (e.g. does it display task_create calls? does the GUI boot under the debugger?)\u000a- various device tests (timers, EDMAC, LED blinking, serial console...)\u000a- tests for Magic Lantern binaries, to be run on the nightly build server
c1d5a86: QEMU: fix LED emulation on most models
be762db: QEMU: fix LED emulation on 5D3
eda2afd: QEMU: fix SDDMA handling on DIGIC 6 (EOS M3 now loads DISKBOOT.BIN from the card)
3a74515: GDB scripts: log more register_interrupt calls on EOS M3
f65d41b: GDB scripts: log more DebugMsg calls on EOS M3
5600f9e: GDB scripts: refactored DebugMsg to allow code reuse
ec3a565: QEMU: revised sound patch EOS M3 (was patching a generic semaphore routine; fixes SD init)
6fd673a: QEMU: card LED emulation (not all models tested)
60bf4f3: QEMU: battery patch no longer needed on EOS M3 (Ant123)
727e31b: QEMU: load ROM0 (aka SECONDARY16.BIN) on EOS M3
3b1e6d0: QEMU: moved rom[01]_addr to model_list.c; fix ROM1 address for D6
dc3dc61: QEMU: initial support for 750D and 760D
4a7e2b2: QEMU: moved RAM manufacturer ID to model_list.c (80D)
021c9b4: QEMU: experimental cache hack emulation (very incomplete; 60D dm-spy works!)
8f8e95d: QEMU: updated Makefile options and comments
a088788: QEMU: 700D serial flash + GDB scripts
5f2fb31: 100D: fix divide-by-zero caused by Set_AVS.
7233fed: QEMU: Fix serial flash, add 100D spells.
83ddccc: QEMU: 5D3 1.1.3 boots Canon GUI!
289e7f4: QEMU: fix a display init lockup on 5D3. Canon GUI runs on 1.1.3!
0d1f11a: QEMU: hotplug registers for 5D3
4431c83: QEMU: fix SDIO response bytes order (fixes SD identification; now works on DIGIC 5 too)
3e4f2ad: QEMU: minor display fix
d19a4ba: QEMU: dummy EDMAC emulation (experiment)
e294a7a: QEMU: moved ROM files under camera subdirectory; you no longer need to concatenate them; they can be made optional (for cameras with only one ROM)
c4a6850: QEMU: better CPU model for DIGIC 6; removed Thumb interrupts hack
bffa4eb: GDB scripts: minor speed optimization for DebugMsg
1074dc6: QEMU: disabling signature check at startup no longer needed
ed49a71: QEMU: P15 patch no longer needed on M3
a15d244: QEMU: SD write protect (boot) switch for M3
240a20a: QEMU: SD1stInit appears to work on EOS M3
d8e3324: GDB scripts: print SD1stInit messages
2a8246b: QEMU: battery level for EOS M3, from Ant123
3e340a4: QEMU: PhySw values for EOS M3, from Ant123
9fe42ad: QEMU: ADC values for EOS M3, from Ant123
09b48a2: QEMU: also log CP registers ignored during emulation (ARM_CP_NOP, LOG_ALL_CP_READS/WRITES)
b183fd0: QEMU: fix use after free when using LOG_ALL_CP_READS
a7fc585: GDB scripts: 80D patch (tasks starting now)
6f73770: QEMU: log all CP register reads
d8f9ec6: GDB scripts: list 80D memory regions
a9d933e: QEMU: updated usage examples in install.sh
952aecc: QEMU: hijack machine option "firmware" to pass machine-specific parameters via command line\u000afor example, to enable the boot flag: ./run_canon_fw 60D,firmware="boot=1"
2ccff7d: QEMU: moved HPTimer interrupt to model_list
3b7b762: QEMU: moved bootflags address to model_list
35c71dc: QEMU: bootloader display working on 80D!
a967d76: QEMU: clock enable register on DIGIC 6
3bc2816: GDB scripts: 80D DebugMsg, tasks, interrupts
fb99f82: QEMU: fix crash when bootloader display buffer is not set
43093ec: QEMU: 6D patches no longer needed
72d8e01: QEMU: fix some button codes
1d4c8a3: QEMU: most patches no longer needed for 7D2 either (it runs with 80D bootloader)
f606914: QEMU: CP15 patches no longer needed for EOS M3
d25df1e: QEMU 80D: initial support for SDIO/SDDMA; loading autoexec.bin works!
4142c1b: QEMU 80D: bootloader emulation works!
920787c: QEMU: initial support for 80D
7a9bf1e: QEMU: removed old key handling code and other hacks that are no longer needed (at least on those models that can boot the GUI)
6751c99: QEMU: fix install
c3b5617: QEMU: fix 100D scrollwheel codes
2065ec8: QEMU: cleaned up some button code names
a691bb6: QEMU: make MPU init spells static
c90ea4f: QEMU: a few more button codes
7765da8: QEMU: refactored MPU key handling to remove duplicate button codes
99413e5: QEMU: print help regarding available keys
d40c4d9: QEMU: script to extract MPU button codes from ROMs\u000a(it emulates bindReceiveSwitch using unicorn)
788f025: QEMU: proof of concept: key handling via MPU spells.\u000aCan adjust date/time on 600D, can navigate ML menu without CONFIG_QEMU on 1200D with scrollwheels (PgUp,PgDn,[,]) and SET (spacebar)
f2fdb5a: QEMU: refactored MPU code to allow sending arbitrary messages
f2e6d82: QEMU, MPU spells: recognize button codes from gui.h (comments only)
e9f3d75: QEMU, MPU spells: mark bindReceiveSwitch messages (comment only)
1584c8c: QEMU, MPU spells: mark NotifyGUIEvent messages (comment only)
2248bd5: QEMU: script to manage MPU spells (autogenerated version + patches with manual modifications)
99f9374: QEMU: updated 5D2 MPU spells
523a1b5: QEMU: moved MPU spells to separate files, one for each camera
e2c0456: QEMU, extract_init_spells.py: get camera model name from log file name
6bef295: QEMU: use "-d int" for showing interrupt messages
08074f0: QEMU: use "-d io" for showing MMIO activity
f058d4b: GDB scripts: log semaphores, message queues and interrupts for EOS M3
022de0f: QEMU: better patch for battery checks on EOS M3
ab641b9: QEMU: handle ADC on EOS M3 (print channel ID only)
a050d15: GDB scripts: comments update
cc6b994: GDB scripts: increase timeout for connection to qemu
6209c4d: GDB scripts: patch RTC init function for 550D and 600D
7fefb7e: GDB scripts: only output should be hex by default, not input
9a38692: GDB scripts: log message queues (600D stubs)
d881e57: GDB scripts: 600D DebugMsg, tasks, MPU messages
3202863: QEMU: MPU spells for 600D
656093d: GDB scripts: log resource locks (stubs for 550D)
43e62d9: GDB scripts: log eventprocs (stubs for 550D and 5D3)
af455e3: GDB scripts: 550D DebugMsg, tasks, semaphores, MPU
0440b95: QEMU: merged eos_handle_serial_flash.[ch] into serial_flash.[ch]
394a704: QEMU: removed debug_message_helper (now implemented with pure GDB scripts)
0b3fcad: QEMU: check access type for EDMAC CHSW registers (only writes implemented)
6172489: QEMU: emulate power control registers (dummy)
8cb2c00: QEMU: 550D MPU spells (not yet working)
e18a99d: GDB scripts: track semaphores (create, delete, take, give)
9646ca6: QEMU: 1100D boots Canon GUI with 60D MPU spells as well :)
fa09908: QEMU: all DIGIC 4 cameras appear to use the same MPU request register
fb0c2cb: QEMU: fix typo
008aaa6: QEMU: 1200D boots Canon GUI with... 60D MPU spells!!!
507c96e: QEMU: model HPCopy DMA transfer delays (fixes assert in 1200D)
60225f0: GDB scripts: 1200D experiments
7241ce6: QEMU: current_task_addr and mpu_request_register for 1200D
918af56: Merge qemu-nkls into qemu
3ea3344: QEMU: autodetect MPU spell set from camera model
84b3f86: QEMU: include a small SD/CF card image during installation
f5d3ba9: QEMU: fix serial flash transfers via DMA, thanks nkls
6a2c25d: QEMU: moved firmware_start = 0xFF010000 to digic 4 defaults in model_list.c
a6fc0c3: QEMU: fix SDIO interrupt for DIGIC 5 cameras
506f322: QEMU: moved I/O memory size to model_list
a1531f7: QEMU: moved DryOS timer interrupt and ID to model_list
98751f2: QEMU: removed unused Q_HELPER_ADDR
ddf1f1b: QEMU: moved ROM[01]_SIZE to model_list (note: digic 6 dumps must be 64MB now)
3963d66: QEMU: generic parameters in model_list, for all cameras with the same digic version
dcae9f5: QEMU: renamed rom_start to firmware_start
853c4ba: QEMU: moved serial flash size into model_list (refactor)
79b24d9: QEMU: moved MPU request register into model_list (refactor)
060fca1: QEMU: moved current_task_addr into model_list (refactor)
f29445e: QEMU: link struct eos_model_desc into EOSState, rather than copying individual fields (refactor)
8172130: QEMU: reformatted model_list for easier expansion
c131f87: QEMU: 5D3 MPU spells
6cf9b52: QEMU: WFI emulation via CP15 (5D3, maybe others)
11d26dd: GDB scripts: log DebugMsg and task_create on 5D3
403d5dd: QEMU: patch battery init on EOS M3
ef6e454: QEMU: TIO fix for EOS M3
7111606: QEMU: print task name for I/O register accesses (experimental)
eaaac22: GDB scripts: misc stubs for 70D
12358d8: GDB scripts: log timer routines (70D stubs)
11e52d2: QEMU: don't format strings containing " (gdb fails at eval printf)
9032a25: GDB scripts: log try_post_event calls (70D)
959d5b8: GDB scripts: nicer way to log return value for take_semaphore
0761a01: QEMU: MPU init spell workaround for 70D
234b27c: QEMU: don't delete unmatched mpu_send lines
bb42715: QEMU: link mpu_send lines with "Complete WaitID" lines (updated 60D and 70D, comments only)
097d66e: QEMU: fix serial flash transfers via DMA
f1b9ca5: QEMU: moved eos_handle_sio3/mreq to mpu.c/h
8781bfd: QEMU: fix last two chars from last MPU spell
e5d7ab0: QEMU: fix warnings about SD/CF card images
9df3ae7: QEMU: fix very short HPTimer delays (timer overrun)
2df82f2: GDB scripts: log assert and register_interrupt on 70D
1cc3cee: GDB scripts: print interrupt ID when not running a regular task (print_current_location)
c1a7920: QEMU: output all characters via TIO
c97f6f3: QEMU: make sure all interrupt requests are valid
26d8b52: QEMU: stop emulator when GDB quits; also reset colors
48bec55: GDB scripts: log mpu_send/mpu_recv calls
47e4769: QEMU: 70D card write protect register
996c877: QEMU: log all coprocessor register writes
df47d64: QEMU: fix HPTimers on 7D2
985e7a1: GDB scripts: register_interrupt log
3b167a0: QEMU: DebugMsg logs implemented as pure gdb scripts!
c57fd1e: QEMU: patched some more functions on EOSM3
d5e3337: QEMU: interrupts on EOS M3 require Thumb mode (maybe on 7D2 as well, to be tested)
8357bed: QEMU: DryOS task scheduling appears to work on EOSM3 (experimental)
1151b11: QEMU: gdb script for EOSM3
6a47909: QEMU: patch two init functions on EOSM3
1598a34: QEMU: patch usleep on EOSM3 (workaround)
bf9144e: QEMU: fix disassembly when patching 7D2/EOSM3 (broken by qemu upgrade)
2cab1bc: QEMU: initial support for EOS M3
ac8ddee: QEMU: 7D2 autoexec experiment
b2a5753: QEMU: some gdb scripts (60D, 70D, 7D2)
f525b1d: QEMU: patch two functions in 7D2 master (emulation goes much further now)
2e00ae0: QEMU: cleanup model detection for serial flash
b54e9aa: QEMU: enabled 7D2 patches by default (autodetected from model name)
2213bbd: QEMU: give higher priority to interrupts with higher ID (SIO3/MREQ should have higher priority than DryOS timer)
747da6d: QEMU: fix MPU request/status register on different cameras (60D, 5D2, 100D and 70D for now)
c1b3498: QEMU: refactored eos_init_common/eos_common_init into a single function
dda0163: QEMU: store camera model and digic version in EOSState
adb19d7: QEMU: fine-tuned debug messages in eos_load_image
fd1db4c: QEMU: 70D init spells, not yet working
da9b33e: QEMU: enabled serial flash for 70D, to be tested
3f7e4f5: QEMU: save SIO mode for serial flash (minor)
4227770: QEMU: fix indentation in eos_handle_sio_serialflash.c
755a452: QEMU: serial flash image is now mandatory for models that use one at startup
b34a93f: QEMU: fix indentation in serial_flash.c
c8c677f: QEMU: fix SIO messages
f7b60d8: QEMU: ignore %S format for DebugMsg\u000a(used incorrectly in Canon code, e.g. %SetUSBLowPowerModeHook - causes segfault)
0eee6e2: QEMU: DebugMsg color macros a little more generic
ec68dad: QEMU: align DebugMsg messages with io_log ones and print call location
5e626ad: QEMU: fix segfault with uninitialized bmp_vram
853e451: QEMU: fix compilation
4aa2b2b: QEMU: merged 1de3d07
ea5dccb: QEMU: fix false MPU receive request (e.g. in 5D2 bootloader)
fe2f881: QEMU: fix false positive when interpreting MPU messages
31f8428: QEMU: merged ee5defb
46efd17: QEMU: adapted ee5defb\u000aQEMU: 5D2 MPU spells, not tested (not there yet)
a85ec37: QEMU: re-enabled 7D2 experiments (to be tested)
29fdfa8: QEMU: merged 63e7324 (hopefully)
423ae8d: QEMU: adapted 63e7324\u000aRemoved old hacks (including run_ml.sh) from emulator
1de398f: Init testing branch (serial flash).
339e558: Fixes for 100D.
3e99392: QEMU: fix installation
0db9ad0: Add workspace scripts.
76a89fd: Updates to semaphore tracker.
5d1f223: Add bufcon GPIO names.
075e981: Add serial flash code.
b4d0559: Separate mpu and eos_ml helpers from main eos.c file.
e84f8b3: Add debug message helper.
1a948b7: Dynamic initialization of camera models.
af50a1e: QEMU install.sh: exit on errors
7847bc0: QEMU install.sh: only init git repo if not already there
68db2c4: Fixed a segmentation fault, it's now running!
baa7f9d: Hacked to compile.
8b4f1ea: QEMU: upgraded to 2.5.0
1bd3c11: QEMU: adapted "Restructure of EOS code." from https://bitbucket.org/niklastisk/qemu/commits/765580a
1de3d07: QEMU: EDMAC registers (print only)
5a81483: QEMU: fix false MPU receive request (e.g. in 5D2 bootloader)
a77c37b: QEMU: fix false positive when interpreting MPU messages
98a624c: QEMU: experimental CF card emulation (5D2 loads autoexec.bin from CF image!)
a6b9c77: QEMU: a few more CF registers
e7c288e: QEMU: script to parse MPU log files and extract the "init spells"
ee5defb: QEMU: 5D2 MPU spells, not tested (not there yet)
3a64d3c: QEMU: handle more CFDMA address ranges, including 5D2
aeeb0d0: QEMU: handle 5D2 VSW_STATUS (thanks ROS)
bcaf460: Merged unified into qemu
c9f18c4: qemu-util: fix warnings
ce1b83f: qemu-util: fix HPTimer warnings
e5ff088: qemu-util: added qprint
d4d329d: qemu: hide help after user opens ML menu
b311bc3: QEMU: refactored SIO messages with io_log
7c0eb75: QEMU: remove SD emulation messages
ed731fc: QEMU: updated scripts to run ML from a sdcard image
4110b99: QEMU: minor fix (reported by nikfreak)
63e7324: Removed old hacks (including run_ml.sh) from emulator
e110a0b: Removed qemu-helper from ML source
591b82d: Removed most QEMU hacks from ML source, so ML is now able to boot from autoexec.bin via bootloader (at least on 60D). Lua working as well!
453a446: AllocMem patch: sync caches before executing the patched code
23d8a54: 6D AllocMem patch: do not change the start address, to prevent shifting address of certain constants (e.g. dual iso)
b3396be: assert handler: print program counter in crash logs
f9dff60: boot-hack: some self-checks for AllocateMemory patching
f42d15b: new task hooks: updated comments, debug info, code formatting
f604659: boot-hack: better comments for 6D AllocMem
381a5bf: Found the new task_dispatch_hook (for 6D, will also work on newer cameras). Does it work?\u000a- refactored my_task_dispatch_hook to work on both old and new DryOS (tested in QEMU)\u000a- 6D: switched to classic boot process (limited testing in QEMU)\u000a- tskmon: small refactoring, hopefully works on new DryOS too (not tested)
41a22d6: boot-hack: minor cleanups
91e1ed5: QEMU: use SD card emulation from hw/sd/sd.c. Working not only in bootloader, but in main firmware as well!
88b3d20: QEMU: only allow 32-bit access to MMIO registers (simpler code)
c05db36: QEMU: removed old screenshot code
195cdc4: QEMU: grouped keyboard state variables into a structure
7565007: QEMU: grouped display state variables into a structure
4744439: QEMU: handle 8-bit BMP palette
5a94edb: QEMU: some more GPIO registers for 60D. Canon GUI runs!
217cf86: QEMU: experimental MPU emulation (60D)
f70ed3c: QEMU: ignore SCTLR bit 30 (hack; see 8ab96de)
c5205a9: QEMU: renamed EOSState *ws to EOSState *s
fdcae4d: QEMU: trace target ASM code during execution (-d exec -singlestep)
8825744: QEMU: emulate cache lockdown for DIGIC 4/5 (NOP)
548678f: QEMU: use built-in disassembler for patching messages
dd3f953: QEMU: emulate both master and slave from 7D2 (not both at the same time though)
e124a79: QEMU: better DIGIC 6 emulation. TODO: find out how to enable interrupts
12015a9: QEMU: log ASM code (-d in_asm) without additional lines
3b7d2ba: QEMU: upgraded to version 2.3.0
73d4515: QEMU: first steps towards DIGIC 6 / 7D2 emulation
91cfae7: QEMU: fix error handling when SD image is not present
222b98d: QEMU: HPTimer emulation (man, that was hard...)
17ed162: QEMU: don't reset irq_id when writing to 0xC0201010
9256833: QEMU: also reset interrupt request flag when reading 0xC0201004
259fd82: QEMU: disable interrupt when triggered (so an interrupt can't be interrupted by the same interrupt)
0aa963e: QEMU: minor cleanup
ca4ae11: QEMU: register 0xC0201004 resets on read (interrupt engine)
be8e51c: QEMU: fix DMA copying
f2f49a3: QEMU: use a mutex for interrupt variables
8ab96de: QEMU: don't switch to Thumb mode on exceptions on arm946eos, even if SCTLR bit 30 is enabled\u000ahttp://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0290g/Babebdcb.html\u000aTODO: discuss with QEMU devs (comments suggest it might be a bug in QEMU, not sure)
37101c4: QEMU: log ARM coprocessor register writes
32b3f59: QEMU: modified install script to create a git repo, for tracking changes to QEMU source
972c6b4: QEMU: fix valgrind warnings
be1e8af: QEMU: recognize ATA registers (5D3)
cf6d96f: QEMU: SD emulation working on 5D3
0d1d45b: QEMU: dropped run_ml_*.sh (maintenance burden; just use run_ml.sh instead)
f3e46b8: QEMU: handle SD emulation on 70D
d741b90: QEMU: force bootflag enabled (for new ports)
f6e9f48: QEMU: definitions for 70D, 700D, 1100D, 1200D and EOS M
9f27382: QEMU: move Basic2 registers to GPIO (and fix them, since Basic2 was not called)
3854f45: QEMU: handle SD emulation on 6D
86c46eb: QEMU: handle 4-bit palette registers (for bootloader)
5f1240c: QEMU: check for card access past the end of the card
27cfc69: QEMU: small fixes
2d05ece: QEMU: make bootloader configuration default
1f78083: QEMU: SDIO emulation working in bootloader! (tested on 60D ROM, loads the "recovery" autoexec.bin and dumps the ROM to SD card image)
596f989: QEMU: print SDIO register names, from http://magiclantern.wikia.com/wiki/Register_Map#SDCON
7f913c5: QEMU: print REG_PRINT_CHAR (including DebugMsg's) in blue and REG_PRINT_NUM in green
55e87b9: QEMU: wrap timers around when reaching reload value
885ed5b: QEMU: fix bootloader palette (black and white colors) and disable YUV handling
ac8d80e: QEMU: patch 6D bootloader so it thinks it can load autoexec.bin (disabled by default; bootloader display test works!)
5bfa96e: QEMU: patch some MCR instructions that can't be emulated (6D/5D3)
495545d: QEMU: fix some 6D bootloader GPIOs; verbose messages for other boot GPIOs
fbf7c88: QEMU: handle 6D SDIO
ba4dada: Autoexec is executed from 0x800000, not 0x40800000 (updated both Makefile and QEMU)
ec930a4: QEMU: lower stack pointer before loading autoexec
fc48ffc: QEMU: trace RAM reads + writes in a given range (define TRACE_MEM_START in eos.h to enable it)
af3a46f: QEMU: handle bootloader display (can't recognize it yet, need to edit source to enable it)
59d654b: QEMU: handle all 3 timers, not just timer #2 (incomplete)
b5a524b: QEMU: fix TIO text color
3a4c0bf: QEMU: handle CLOCK_ENABLE register (incomplete)
9aba3cc: QEMU: load autoexec at 0x40800000 (fixes debug symbols in reboot.c)
be854c3: QEMU: fix interrupts triggered while another interrupt is running
cca2305: QEMU: more accurate timer handling (tested with msleep + get_ms_clock_value + PC clock)
c44cb9e: QEMU: highlight TIO messages in red; quiet 0xC0800008
c3cd03f: QEMU: handle 5D2 CF LED
dc93322: QEMU: more verbose DMA messages
83f22a8: QEMU: fix tabs
462b9bf: QEMU: fix warning
b8e97b2: QEMU: refactored register-related messages to be a little more consistent and reduce duplicate code (io_log)
c0df1b6: QEMU scripts: minor cleanups
edbf5ee: selftest: save the stub test log in ML/LOGS
b1b8162: selftest: include the stub test summary in the log file
2c8a5d0: sokoban.lua: save current level in the config file\u000a(simple script using the "config" library)
06e7220: sokoban.lua: refactored the main loop; fixed missing "you win" message
3aa71a6: Lua: trigger the config_save event after running the main body of a script\u000a(this allows simple scripts to use the config library)
e58024e: Lua: minor error handling cleanup (simplified logic)
69bcf7a: config.lua fixes
f701759: console: fix displayed size when console has many empty lines
0fbcfb0: Lua: clear console when starting a script from menu
ed6e385: Lua: refactored iterations through lua_script list\u000a(use a getter for lua_State -> lua_script mapping whenever possible)
cf3cbf6: Lua: use a message queue for key.wait()\u000a(fixes missed key presses caused by race conditios, including quick press/release)
426b80c: Lua: moved script semaphores into struct lua_script (refactor)
eff9892: Lua: refactored lua_take_semaphore calls\u000a- checking for success: if (result == 0) instead of if(!result)\u000a- checking whether "sem" was set: use assert (rather than giving the same error message as a semaphore timeout)
7e8c58a: Lua: disable powersave for simple scripts
dcce2d4: menu: fix null pointer issue in dynamic menus
973d21a: menu: fix regression in Modified menu (with API tests)
193bfc7: menu: removed obsolete menu screenshots
0f9cf39: menu: workaround for file_man\u000a(fixme: still relying on name lookup to find submenus)
8531414: menu: store submenu parent in the menu structure; more submenu fixes
ab986c2: Makefile: with WIFI_SD=y, ping the card until it comes online (useful for router connections)
267f268: menu: allow is_menu_entry_selected to operate on submenus\u000a(for Lua menu.select; updated api_test.lua)
bac5e30: menu: refactored submenu selection to avoid duplicate code; minor rename
159c3bc: menu: removed side effects from get_current_submenu
2cef129: menu: allow submenu selection by name\u000a(updated api_test.lua)
c4bcf87: menu: fix parent menu issues in composite submenus
819a11d: menu: refactored to fix thread safety in menu_add
ee96fb0: menu: fix parent menu issues in most menus (todo: composite submenus)
c78d44c: menu: check whether each submenu entry actually has a parent\u000a(fixme: most don't)
e00e5e6: menu: if the value field is very long, do not display the name\u000a(the value is probably verbose enough to figure out what it is)
2f0a6be: Modules: moved Show console to top level
5e83d26: Memory backend: when checking available memory, allocate both Shoot ans SRM at the same time\u000a(they may overlap)
49aa575: debug: reworked "Show GUI Events" to use the console
b3b1099: gui_common: removed unused ui_lock (everything calls gui_uilock instead)
3d9d96c: console: enable in LiveView alongside with ML overlays (experimental)
fd1ec5d: Memory backend: fix initialization
47c6d01: Menu: use submenu_height for scrolling
834631b: ettr: fix debug code
ad1009d: Merged unified into lua_fix
9809bee: menu: do not discard customization data for menus that are not yet loaded\u000a(e.g. for modules/scripts and other dynamic menus)
e3cb967: menu: do not overwrite existing customization data when reloading\u000a(only reload data for newly added menu entries)
6c7c55b: menu: fix usage counters for menu items with placeholders
4dce925: menu: allow simple submenus in Recent menu
c393f74: menu: allow Debug entries in Junkie mode
0b9dcd1: Modules: make sure we can really use up to 64 of them (fix commit 8ad0912)
de4f36f: file_man: show status in main menu, if busy
3301039: file_man: disable powersaving during long copy/move operations
7c4eb2a: file_man: unified FileCopy and FileMove tasks to avoid duplicate code;\u000areport all errors to console and show a simple progress indicator
b1e14e0: file_man: show timestamp for each file; align date/time column
b049e25: menu: fix Junkie short text overflowing in some cases
dca163d: menu: attempt to balance the automatic My Menu in Junkie mode\u000a(with many submenu entries used frequently, this menu could end up a lot more cluttered than regular menus)
53e1cc9: menu: fix submenu entries disappearing in Junkie menu\u000a(frequently used submenu items shouldn't be moved to My Menu; they should be just copied)
b5de547: menu: better duplicate menu warning; minor rename
c611472: lua.c: fix warning
fcb4bdb: Lua: only hide the console if it was opened by some auto-running script\u000a(and block the key pressed to hide the console, if any)
56e9f9c: Lua: block keys on key.wait()\u000ahello.lua updated to wait only for SET (and block only this key)
bd156be: Merged unified into lua_fix
372d6b7: menu: fix invalid indexing on menu choices not starting at 0\u000a(reported by JohanJ at http://www.magiclantern.fm/forum/index.php?topic=14828.msg186252#msg186252 )
fe6b020: selftest: fix bad merge
220ecf6: Merged cache-fixes into lua_fix
88bf690: Merged unified into lua_fix
10b2c48: menu: attempt to fix file_man crash (a little hackish...)
a7241cd: file_man: disable name lookup on its submenu\u000a(should fix speed regression in directories with many files - to be tested)
65deab8: api_test.lua: tests for image_prefix and for bracketed images
2846752: Lua: camera.wait()\u000a(waits until the image was fully saved; required for testing dryos.image_prefix)
1e6032c: Lua: renamed dryos.prefix to dryos.image_prefix and fixed various things\u000a- only accept strings of length 4, or empty string to reset to default\u000a- fix operation after multiple changes
8cfce20: menu: fix buffer overflow (off by one) when hiding many menu items
54c6ef0: menu: disable name look-up in Modules and Help
e25caf2: menu: allow disabling name lookup in any menu\u000a(e.g. to allow duplicate names, or for very large menus, or for dynamic menus not meant to be customized etc)
940c7ef: menu: removed some redundant null pointer checks\u000a(no longer needed after enforcing valid names)
27856bb: menu: revert empty name usage in menus\u000a(affected: module.c f071d67, file_man 6390eba, my_menu, advanced toggles)\u000a(todo: fix duplicate menus in some other way)
acb13ec: menu.h: comments for struct menu_entry and struct menu
a0f8604: menu: make sure internal fields are not set before menu_add
82686b9: menu: require valid name for all menus (easier than fixing null pointer errors)
a8f46fa: config.c: fix read from null pointer
9991c8c: Undo e64c9a5 (shutdown lock-up)
ea6d752: Merged memcheck-fixes into lua_fix
fb21080: mem.c: option to disable heap poisoning\u000a(useful when running in QEMU with -d memcheck - with this, overflowing reads will be caught as well)
e64c9a5: menu.c: fix a thread safety issue in menu_remove\u000a(to reproduce: file manager crashed after navigating the menu back and forth a few times)
b4f1593: menu.c: fix incomplete initialization when creating menus\u000a(this time the memory warning was correct)
f738018: menu.h: disabled bit fields in struct menu\u000a(they caused false warnings in the memory checking tool)
16ceccb: Merged memcheck-fixes into lua_fix
00ef896: lens.h: fix APEX for Auto ISO (return 0)
34c6cbd: Merged unified into lua_fix
8cd7485: lens.h: fix bad merge
ad8ae4c: Lua: fix error checking in menu.get (also API test)
b63c905: Lua: unify menu.get and menu.gets (using an optional argument for menu.get)
7d5284a: Merged unified into lua_fix
4eb37a4: Lua: menu.gets (to get menu value as string)\u000aapi_test.lua updated as well
02e0675: menu: fix thread safety for menu_get_str_value_from_script
5191bba: api_test.lua: test for menu automation API (selecting existing ML menus, changing values)
fc3da30: menu: misc fixes on select_menu_by_name\u000a(thread safety; fix conflict with initial menu selection; refuse to operate on submenus)
50f4074: Lua: split menu open/select functionality
152e7ec: Menu: reworked menu_set_str_value_from_script (for Lua menu.set with string value argument)\u000a- consider .choices array before trying brute-force\u000a- try every single value from the valid range when practical\u000a- use msleep only for custom toggle logic\u000a- wait and retry if the value doesn't change\u000a- fix some ambiguous matches (e.g. 1 should not match 1m10s, but 10 is OK for 10cm)\u000a- numeric match made optional\u000a- timeout 2s
19ea3d4: Menu: range checking for menu_set_value_from_script (Lua menu.set with integer value argument)
1bac4fd: Menu: fix duplicate warning on 50D
bc10355: Screenshots: fix color palette\u000a(was affected by our palette changes, e.g. in menu)\u000a(the fix requires writing to Canon's LCD_Palette array, but a quick checked is performed before writing; previously, this array was considered read-only)
f7eebcf: Lua: fix typo that prevented lens.focus_pos from appearing in the documentation
313e71d: Lua: minor doc updates
c4b723d: Lua: tag all backend messages with [SCRIPT.LUA] where possible
7eae4b4: recdelay.lua: misc fixes
49607a9: Lua: disable auto-autorun (any script that should autorun must be configured manually by user)
b629043: Lua: test script for unloading behavior (unload.lua)
670aa81: Lua: tag all backend messages with [Lua]; minor fine-tunings
9b6ed8f: Lua: allow task unloading if all user tasks are stopped before the main task\u000a(this makes api_test.lua a "simple" script, as it was before f249ba4)
fee0ea8: Fix compiling on cameras without Q button\u000a(broken in 459da11)
89afbc9: selftest: fix false warning in half-shutter test
cdf3baf: Memory backend: allow breaking minimum_free_space limit for small blocks\u000a(it was possible to fail the allocation for very small blocks that could not be covered by shoot_malloc)
2a969f7: Modules: yet another attempt at fixing fast scrollwheel events\u000a(previous: b0891f9, 2cc2768)
ebe4504: Undo 2cc2768 (fast scrollwheel events no longer working)
521eedf: api_test.lua: stronger half-shutter test; fine-tuned delays
08f75d2: api_test.lua: fix movie test on manual lenses
52fd414: api_test.lua: fix bulb test on slow SD cameras
9afd356: api_test.lua: fix AF test on manual lenses
163677f: lua_key: re-enabled yielding during key.wait()\u000ausing the same workaround as task.yield()
5bfb3da: Merged dynamic-my-menu into lua_fix (solves some menu issues)
79359e1: Lua lens.autofocus(): fix for 100D (to be tested)\u000aUpdated selftest module as well.
7ac0538: lua_key: disabled yielding during key.wait()\u000a(until a proper fix is implemented, better avoid multitasking)
634bd20: lua_task: workaround to prevent troublesome task.yield() calls\u000a(appears to work, but cannot guarantee it's actually thread-safe)
d5b3449: api_test.lua: weaker multitasking test\u000a(seems to work fine as long as only one task calls task.yield(); any task that interrupts should run until returns)
17a8ea8: Merged focus into lua_fix (pull request #748)\u000aFocus backend updates and lens.focus_pos fine position counter
0188f12: lens_focus: ported 5D2 focus fix on 50D and 500D.\u000a550D and newer models don't need it, unsure about 7D (to be tested)
55b1c8a: lvinfo: fix layout bug revealed by 56464bc and noticed here: http://www.magiclantern.fm/forum/index.php?topic=18083.msg177532#msg177532\u000a(note: the linked commit did not cause the bug; it was there for years)
c90f908: Menu: fix duplicate warning in the Help tab on some models
39d3fc8: Menu: updated navigation help
6365706: file_man: refactored action types with enum and case switch\u000a(compiler now checks whether all action types are covered)
6390eba: file_man: use unnamed menu entries for speed\u000a(named entries are now checked for duplicates => slow in folders with many files)
91872a8: Menu: some extra sanity checks during customization
cc093ed: Menu: removed duplicate definitions of menu_open_submenu
f071d67: Modules: fix duplicate menu warning
718a1c0: Menu: check for duplicate entries\u000a(the check is repeated after each menu_add call)
7fdf55e: Menu: refactored most menu iterations with for loops
94b91f8: Menu: autodetect whether placeholders are needed or not\u000a(removed menu_add_base; menu_add should be O(n) if no placeholders are used)
7199feb: Menu: skip placeholders in entry_find_by_name; related cleanups
2c79b4e: Menu: link each submenu entry with its parent entry\u000a(rather than using name lookup)
df8f241: Merged lua_fix into dynamic-my-menu\u000a(other menu fixes + module API version)
b578684: Menu: minor display fixes in Junkie mode
0c04d37: Menu: fix some interferences between menu customization and dynamic menus
b861cff: Menu: experiment - dynamic Junkie menu\u000aFIXME: manual Junkie customizations are overriden, unless at least one item is starred. Important?
e0b77f0: Menu: fix last entry not disappearing from Modified menu
946b781: Menu: fix initial selection when it is a dynamic menu\u000ahttp://www.magiclantern.fm/forum/index.php?topic=17811.0
ab12376: Menu: experiment - dynamic My Menu ("Recent"), based on usage counters\u000aIf no menu items are manually starred, a menu named Recent will be built automatically.
ad11d90: Menu: minor refactor (checking dynamic menus)
a1a4d46: Menu: usage counters (for displaying a menu with recently used entries)\u000aWarning: existing menu customizations will be lost.
43c863b: lens_focus: fix very slow follow focus on 5D2 with 24/2.8 STM (todo: 50D, 500D, others?)\u000aTo reproduce: Step Wait ON, Step Delay <= 20, then use follow focus.\u000aJust changing prop_request_change_wait into prop_request_change would give fast movements, but crashes very quickly.\u000aWaiting for the pfAfComplete interrupt before next focus command appears to fix the crashes.
2f5b1ac: lens.c: some debug info for focus commands (to be removed before merging)
c9f0c8b: lens.h: declared lens_info.focus_pos on remaining cameras\u000a(tested on 5D3 123; to be tested on EOS M, 6D...)
fdcad26: Merged lua_fix into focus
48850d5: Focus backend: fix lens getting stuck at one end (reset retry count after reporting error)
498fdbf: api_test.lua: minor fix for focus distance
373c762: Focus backend: only report focus error when the lens gets stuck (doesn't move at all after 2 retries)
c7c6aae: Lua: exposed lens_info.focus_pos as lens.focus_pos and added an API test
5bb5635: Merged lua_fix into focus
d8a2092: lens.c: record relative focus motor position in lens_info.focus_pos, http://www.magiclantern.fm/forum/index.php?topic=4997
66c9dd8: lens.c: removed EOSM-specific code that appears superfluous; are focus ring triggers still working?
d13be56: Menu: fix selection in Modified menu (broken in 0b6fcbc)
6acce6d: lua_lens: minor doc update (return value for lens_focus)
a50ab42: force_liveview: fix operation after taking a picture
fcd2472: lua_movie: some more preconditions + API tests
f249ba4: api_test.lua: simple multitasking test (crashes, do not run on expensive cameras!)
ef27044: Lua task.create: throw error on failure
34f4587: Lua lens.focus: throw an error if preconditions (LiveView and autofocus) are not met
8bfeb2f: lens_focus: allow running right after taking a picture (experiment)
a02213b: Lua lens.focus: updated default wait and docs
7563c91: enter_play_mode: increase delay (fixes some redraw issues, e.g. in benchmarks)
bd82344: Lua: nicer behavior in Junkie menu (still not perfect)
8ad0912: Modules: increase max count to 64
2ef8fcc: selftest.mo: fine-tuned AF test
8358912: Fix Q button handling on cameras with this button (bad includes)
3b2ee5c: Fix button handling outside menu (typo)
459da11: GUI: make sure all cameras use the BGMT_Q event while in ML menu, even if they don't actually have a Q button\u000a(should fix Lua scripts using the Q button while running on top of ML menu)
d4c3011: Lua: fix incomplete commit 8191fd4
8dc4e8d: lua_lv: lvinfo items default to any info bar
d433e6b: lua_menu: reorder functions so the most basic ones appear first in doc
4e96ecf: lua_menu: drop menu customization attributes\u000a(overriding them doesn't work well anyway)
3db7b16: Lua: more doc updates (WIP)
9971e65: Lua: misc doc updates (WIP)
6aba116: lua_constants: reordered to get the simpler ones first in the doc
0fb9f5a: Lua: remove pre_shoot/post_shoot from docs (not yet implemented)
f7de7e8: menu.c, select_menu_by_name: allow optional entry_name parameter; keep the current selection on error
2d36ec7: copy2m.lua: add its menu in the script submenu, rather than Prefs\u000a(fixes duplicate menu - there were 2 menus with the same name)
8191fd4: Lua: always open script submenu on SET; show menus created by script under the script menu
0b6fcbc: menu.c: fix null pointer in mod_menu_rebuild
6404620: menu.c, entry_find_by_name: do not return duplicate entries and entries from dynamic menus (to be tested)
4708e20: selftest.mo: test for autofocus routines
4e0a85e: Lua: camera.shoot() no longer autofocuses by default
5ebe181: Lua: removed global shoot(); use camera.shoot() instead
d1f749a: api_test.lua: minor typo
a13ca46: lens_take_picture: wait for file number to change before returning; minor cleanups
b3a7308: Lua lens.focus: delay default to 10ms when wait=false; doc updates
58e688f: force_liveview: make sure LV is fully started before returning
047f568: Lua: experimental lens.autofocus()
2b94762: Lua: fine-tuned startup messages
35aba13: Merged unified into lua_fix
e8c035d: Modules: allow including module.h in multiple source files\u000a(fixes compilation of edmac.mo)
f772215: Modules: removed some unused definitions
f20190b: api_test.lua: fix typo in lens.focus call, thanks garry23
bf498ec: Lua: menu.open() can optionally select a given menu or submenu
f02a19a: rbf_font: very rough support for tab characters
9f71744: editor.lua: exit file dialog if menu is no longer active
7441ca3: Lua: allow editing any script from context menu using editor.lua (Q -> Edit Script)
a623d86: Lua: basic support for script arguments (arg, ...)\u000ahttp://www.lua.org/manual/5.1/manual.html#6
4e41a09: Lua: always use first line as script name in menu (use ... if too long)
1c6bc09: Lua: display script file name on the right if the script is not running
0e3b6a1: Lua: fine-tuned user feedback when loading/running scripts
afddfd1: Lua: check string length in pixels when choosing between script name (first line) or script filename for menu display
3f12210: Merged unified into lua_fix
203fa8d: menu: fix regression about font bg color
3781fb5: bfnt_draw_char: option for not erasing the background (old behavior, to fix existing code)
80ba00c: bmp_printf: erase background when using FONT_CANON (to be tested)
56464bc: bmp_printf: allow transparent text on transparent background\u000a(note: this breaks binary compatibility with modules)
4e6b487: fio-ml: fix Lua const char warnings in FIO_Rename/Copy/MoveFile
aa9a26d: api_test.lua: minor cleanups
3a20351: Lua: dryos.rename (including API tests)
984c36f: Lua: ignore unknown button codes
b774e11: api_test.lua: relax half-shutter check a bit (the event is not sent right away)
b627ebf: Lua: reserve 256K for umm_malloc instead of 512K (since we no longer load all scripts at once)
2e5d9bb: Merged in lua_umm_malloc (pull request #724)\u000a\u000aUse umm_malloc for Lua to reduce memory fragmentation
096f352: Close branch lua_umm_malloc
a68eafa: Lua: removed run_in_separate_task
ea4dd9b: Lua: menu item to show/hide the console
3aecd23: Lua: show last script error in menu (to be tested)
981090d: Lua: fix memory/semaphore leak when running the same script many times
763e015: Lua: hide "Run script" for complex scripts, since they can't be started twice
685a3b3: Lua: show errors in menu for complex scripts as well
1451793: Lua: refactored error handling in add_script
25e3d85: Lua: fix script loading loop (forgot FIO_FindClose)
ea8cfb1: scrnshot.lua: place menu item in its own script submenu
7ae6bf7: Lua: extract script name and description from comments (experiment)
ab924bd: Lua: allow any script to autorun; use a submenu for each script
9008e5f: Lua: show scripts right away after loading the autorun ones (no more delay)
cfb7523: Lua: cleanup passing script to lua_user_load_task
0fbf95c: api_test.lua: converted to simple script, so it runs right away
ffe8d0f: pong.lua: fix undeclared counter
95724a3: Lua: fix strict.lua after script unloading changes
dcebad9: Lua: fix some scripts randomly showing "error" state (refactored malloc/memset with calloc in lua.c)
56bd66d: mem.h: declared calloc
bd3cb5a: posix.c: fix calloc (error checking)
7681f46: Lua: moved the "extra" scripts back (since the scripts are no longer loaded by default)
514d5b4: Modules: workaround for issue #2551 (UNPRESS_UDLR conflicting with UNPRESS_DP on 5D3)
fc8acc0: lua scripting: update docs
3bbeede: lua scripting: some cleanups to the script menu display and help
aa8ec45: lua scripting: script unloading and autorun options\u000a\u000auser can disable autorun\u000ascripts don't autorun until user runs them the first time\u000a"simple" scripts (no menus or events) don't autorun, only run on demand and unload when finished\u000ascript menu now lists all available scripts, "simple" scripts can be run from here, "complex" scripts can have autorun disabled/enabled from here\u000aTODO: update docs\u000aTODO: the 'extra' directory is probably no longer needed
f7b08a2: lua scripting: fix interval.running return type (should be boolean)
eaf83eb: Lua: make sure umm_malloc is never used for fio calls
8fa20bc: Lua: fix format_memory_size in ml-lua-shim.c
24d49e5: Lua: also print the amount of memory reallocated with core routines
5a127a1: Lua: use umm_malloc, with a 512KB heap preallocated
f6e708a: Imported umm_malloc 8b9586c from https://github.com/rhempel/umm_malloc
28372a8: api_test.lua: tests for half-shutter events
8dc99bb: module_send_keypress: special handling for shutter button events\u000a(should fix key.press(KEY.HALFSHUTTER) and similar calls in Lua)
af77cad: SW1/SW2: wait for confirmation from Canon code (to be tested)
6b65461: api_test.lua: tests for camera.shoot, burst and bulb
ab649ff: Lua: fix camera.bulb(seconds)
836f324: Lua: added camera.burst(num_pictures)
269fd5f: Lua: camera.shoot() now calls take_a_pic (warning: syntax changed)
f3228c8: shoot.h: exposed take_a_pic and take_fast_pictures
a1cac48: memory backend: reduce memcheck area (should reduce overhead a bit)
6957c1c: memory backend: ignore null pointers passed to free (Lua does that)
d885a1b: realloc: check for null pointers
e9580ab: pong.lua: fix menu not always erased (race condition)
3316f91: exmem: when autodetecting available memory, print all srm/shoot memory blocks to console
magiclantern-Nightly.2017Dec16.1200D101.zip
Test results: 7 passed, 0 failed.
magiclantern-Nightly.2017Dec08.1200D101.zip
Test results: 7 passed, 0 failed.
0231d71: Merged unified into 1200D
97b73e7: Makefile: drop unused SUPPORTED_MODELS / SUPPORTED_UNIFIED_MODELS
82126d8: Merged in makefile-updates (pull request #873)\u000a\u000aMakefile updates to use any valid ARM toolchain
6cef1ea: Makefile: fix 7D build_fir
52bccf5: Makefile: fix building Lua with gcc 4.7.3
a289367: Makefile: only attempt to build/install/check ML-SETUP.FIR if there is a valid installer directory\u000a(some platforms may not have have one - 7D_MASTER, new ports)
5b81f34: Card LED: always use CARD_LED_ADDRESS, LEDON and LEDOFF\u000a(backed out 5bfab05 to fix installer on 7D - 0x800c00 not mandatory?)
1d98a07: Makefile: moved 7D-specific tweaks (FIR etc) into main target (7D.203)\u000afor consistency with other platforms, including 7D2\u000ato build the regular FIR: make build_fir\u000ato build the installer FIR: make ML-SETUP.FIR -B
f8beef0: Makefile: FIR building updates\u000a- always install ML-SETUP.FIR (zip, install, install_qemu)\u000a- build_fir for regular ML (not installer) now gives AUTOEXEC.FIR\u000a- to recompile ML-SETUP.FIR: "make ML-SETUP.FIR -B" from platform directory\u000a- "make zip" will also compile the installer from source, without replacing the precompiled ML-SETUP.FIR\u000a (just to make sure the source code changes do not interfere with building the installer)
47f3108: Makefile: fix building xor_chk from its own directory
59a6d0a: Makefile: more .NOTPARALLEL fixes
5249a4a: Makefile: fix 7D FIR path\u000a(just for consistency)
2c627b1: Makefile: use .NOTPARALLEL in top-level Makefiles, rather than double-colon rules\u000aML platforms/modules are built sequentially, but within each platform/module, parallel build is used\u000ato be tested on Mac with -j8\u000a(on Make 3.81, double-colon are executed in parallel, while in 4.2.1 they are sequential)
36d3ec2: Makefile: fix README.rst generation with POSIX shells\u000ato reproduce: cd modules/filepref; make clean; rm -f README.rst; make SHELL=dash
01953d3: Makefile: serialize "make install", fix some related dependencies\u000aparallel copying could lock up WIFI_SD cards\u000ato reproduce: "WIFI_SD=y make install ML_MODULES=" from platform/CAM directory
e592e31: Makefile: monitor wifi connection when using WIFI_SD=y\u000a(experimental, helps troubleshooting connectivity issues)
84d6ed4: Makefile: minor refactors for WIFI_SD (coding style)\u000aalso fixed a typo
26fe70c: Modules: better error handling for missing rst2html\u000ahttp://www.magiclantern.fm/forum/index.php?topic=17099
5ea430b: Makefile: speed optimizations\u000a- helper to evaluate only once, only if used\u000a- modules hgstamp: only evaluate if used\u000a- CF_CARD, VERSION: only evaluate once if used\u000a- PWD is special? renamed to avoid unneeded shell calls\u000aProfiling tips:\u000a- perf record make; perf report --sort comm\u000a- make SHELL="sh -x"\u000a- make clean SHELL="sh -x" |& grep "^+" | sort | uniq -c
f2ed3dc: Makefile: enable parallel compilation for modules, but compile them sequentially\u000ahuge modules like Lua will compile much faster\u000acompiling everything in parallel is not 100% safe (some dependency checks may fail)
4d93c8f: Makefile: do not print toolchain info on recursive calls
d206167: Makefile: reworked global targets\u000ainstall: doesn't make sense, as we no longer have a "one size fits all" build capable of running on all models\u000a (alternative: 5D3.113_install, 60D_install etc)\u000azip: build zip for each camera model, sequentially (parallel build still used within each zip)\u000aall: similar to zip (build camera models sequentially, but use parallel compilation within each platform)\u000aclean, check: these can run in parallel (no restrictions)
aa05061: Makefile: fix module dependency checking on "make zip"\u000aby default, a module succeeds if it can be loaded on any camera model, from those compiled (doesn't matter which one)\u000awhen using "make zip", we only want to include the modules compatible with current camera model, without considering other models\u000a(fixme: not the cleanest way to implement this)
718e285: Makefile: fix module_strings dependency rule\u000a(previously, there was an error with make -j)
2db4026: Makefile: dropped ML_MODULES_STATIC (unused) and renamed ML_MODULES_DYNAMIC to ML_MODULES\u000anote: if you have customized the module list in Makefile.modules.user, just rename ML_MODULES_DYNAMIC to ML_MODULES\u000ato compile without modules: make 5D3 ML_MODULES=
ff1401e: Makefile: fix "make clean" from modules directory with stale modules from other branches\u000ahttps://bitbucket.org/hudson/magic-lantern/pull-requests/873/makefile-updates-to-use-any-valid-arm/diff#comment-48250675
3ca10bd: Makefile: fix running from other directory\u000ae.g. from qemu: make -C ../magic-lantern/ 500D_install_qemu
9199719: Makefile: model-specific install targets for the root directory\u000aexamples: make 500D_install; make 500D_install_qemu
871f759: 7D: fix compiling with FEATURE_VIDEO_HACKS
6a08a65: Makefile: fix building 7D_MASTER
c7554e3: Makefile: minor cleanups from 0b9b550
440a589: Makefile: always define CONFIG_$(MODEL)_$(FW_VERSION)\u000ae.g. CONFIG_5D3_113, CONIFG_7D_203 and so on
539328f: Makefile: fix for GNU make 3.8.1\u000a(thanks g3gg0)
f03c00c: Makefile: fix newline issue with WIFI_SD=y
84d1418: Makefile: fix Mac issue (undefine not supported)\u000ahttp://www.magiclantern.fm/forum/index.php?topic=2864.msg192847#msg192847
623689f: fixed late evaluation issue in rule builder
bda493a: Makefile.platform.map: fix indentation
27f4105: Makefile: rules for "make install_qemu"\u000a(to use them, qemu has to be installed first)
383ea35: Makefile: with WIFI_SD=y, ping the card until it comes online (useful for router connections)
7fd995a: Makefile: portable way to get number of processors
30a88aa: further makefile cleanup, added make check to show which models were built and their memory usage
37dd596: fix 'all' target for models
dcc1583: disable ASSERT for 7D_MASTER
376a9cc: removed explicit make executable definition. allows to run e.g. 'remake' to debug make rules
e6ffbdf: reworked model make rules to support different firmware versions for a model [to be thoroughly tested]
9033380: disable ASSERT for 7D_MASTER
a494258: Feature matrix: updated links
3f85e34: Merged in daniel_fort/magic-lantern/unified-6D-sf_dump (pull request #876)\u000a\u000aAdd 6D.116 to sf_dump module
c326fdc: Added 6D.116 to sf_dump module.
75a085c: Merged in daniel_fort/magic-lantern/unified-600D-audio_meters_fix (pull request #877)\u000a\u000a600D audio meters fix
c82a97f: 600D also needs Audio IC turned on at boot.
d4e6421: Makefile: also print CONFIG overrides from command-line\u000a(alongside the ones from Makefile.user)
447a93c: Makefile: print tips for using make -j\u000a(how to set it by default in Makefiles?)
4b4b194: Makefile: silence warning about CONFIG_SITE\u000a(some recent Linux distros use it)
345427f: Makefile: portable way to get libgcc.a's path
26c84b1: Makefile: removed old dropbox target
be16e64: Makefile: print build info after "make zip"; skip EXIDX line
d3e332d: Makefile: fix CONFIG_CCACHE
f51317e: Makefile: use "gio mount" rather than "gvfs-mount"\u000a(they are interchangeable; older systems may require gvfs-mount, newer systems will print warnings)
9aec0a1: Makefile: if no valid ARM GCC is found in PATH, try to find one in the home directory
cd0ee94: Makefile: fix compiling tcc
d06fe5d: Makefile: moved toolchain setup to Makefile.setup\u000a(this allows toolchain to be overridden from Makefile.user)
993fd34: Makefile: fixes to allow compiling ML with Linaro arm-eabi-gcc; updated toolchain recommendations
579cec7: Makefile: updated toolchain recommendation; minor edits
6566325: Makefile: attempt to use any arm-none-eabi-gcc from PATH, if already installed (to be tested)\u000aBy default, it will attempt to use ~/gcc-arm-none-eabi-5_4-2016q3 if installed.
e533765: Makefile: use gcc 5.4.1 by default (current version from https://launchpad.net/gcc-arm-embedded )
30db465: Merged in daniel_fort/magic-lantern/unified_650D_audio_meters_fix (pull request #870)\u000a\u000a650D audio meters fix
0fa7a8e: 650D has the same audio meters issue as the 700D -- needs the same fix.
08720b2:
Merged in daniel_fort/magic-lantern/unified_700D_audio_meters_fix_1 (pull request #866)\u000a\u000aAudio meters fix for 700D\u000a\u000aApproved-by: Daniel Fort
17b95fb: Audio meters stop functioning after recording the first clip when using mlv_snd. Easy fix suggested by a1ex.
magiclantern-Nightly.2017Oct01.1200D101.zip
Test results: 7 passed, 0 failed.
0d7addd: 1200D: enabled CONFIG_RAW_LIVEVIEW
magiclantern-Nightly.2017Oct01.1200D101.zip
Test results: 4 passed, 1 failed.
643691f: 1200D: attempt to fix ML menu in movie mode (not tested)\u000abased on http://www.magiclantern.fm/forum/index.php?topic=12627.msg181910#msg181910
magiclantern-Nightly.2017Sep19.1200D101.zip
Test results: 4 passed, 0 failed.
magiclantern-Nightly.2017Sep15.1200D101.zip
Test results: 2 passed, 1 failed.
magiclantern-Nightly.2017Sep15.1200D101.zip
magiclantern-Nightly.2017Sep14.1200D101.zip
dff0ff4: 1200D: disabled flexinfo to free some memory
c381074: Merged unified into 1200D
80501e7: installer: fix compilation
22a03ba: Merged in daniel_fort/magic-lantern/update-to-700D.115 (pull request #813)\u000a\u000aUpdate to 700D.115
5e44a93: 700D: fix AbortEDmac
77e64aa: Dummy merge with dfort's unified
4ce4d28: 700D, 6D, 7D: fix AbortEDmac
b363c94: 700D: undo dialog_refresh_timer change in mlv_rec/mlv_lite\u000a(this address is the same in 1.1.4 and 1.1.5)
7e969b4: Update sf_dump module to 700D.115
93e177a: Fixed is_taskid_valid stub.
0b141cd: Merged unified into update-to-700D.115
e228e1b: Added minimal autoexec.bin for 700D
2023513: Merged unified into update-to-700D.115
72ac881: Merged unified into update-to-700D.115
434b7eb: Incorporated pull request #842 to fix Autoexposure module
70852eb: Merged hudson/unified into unified to prevent new remote heads.
2e989b7: Update to latest exiftool
435cb10: Merged unified into update-to-700D.115
f15d607: Resolve conflicts with changes to Task info in stubs.S
1400d79: Merged unified into update-to-700D.115
2a83ae8: Added new ML-SETUP.FIR created by a1ex
fc28684: update to firmware revision 700D.115
fa90b21: hg rename 700D.114 700D.115
magiclantern-Nightly.2017Sep11.1200D101.zip
232f6d7: 1200D: AbortEDmac stub
4278098: Merged unified into 1200D
28cbcd0: 1200D: attempt to fix half-shutter button CFn\u000a(not tested)
ef3c4ca: 1200D: disabled full-screen magic zoom
71b5cf4: 1200D: enabled CONFIG_PROP_REQUEST_CHANGE
56f0cbc: 1200D: fix additional_version
226838b: Merged in daniel_fort/magic-lantern/unified_silent_module_fix (pull request #854)\u000a\u000amodify silent.c to work with commit f404e5f
0e9da39: TCC Makefile: fix minor typo
b6df56d: silent.c: there are no info bars in paused LiveView mode
d8d44a7: modify silent.c to work with commit f404e5f\u000aRaw backend: allow displaying raw previews without conflicting with LiveView info bars
0752dd8: Merged in raw_fixes (pull request #828)\u000a\u000aRaw fixes part 5
f3f6916: fio-ml: added get_dcim_dir_suffix(); moved get_dcim_dir() from dryos.h
17ceddd: mlv_rec/mlv_lite: moved write_mlv_vers_blocks to mlv.c/h\u000a(avoids duplicate code)
02f01f0: mlv_play: fix a fio_malloc issue (not tested, might fix issue #2766)
e5d9110: Merged in raw_capture_info (pull request #827)
a9f41d0: mlv_dump: fix compilation after rawc header update
ff6f36e: get_current_dialog_handler: fix return value when no dialogs are present
afcf332: fix rules to allow "make -j"
07d376a: Merged in edmac (pull request #811)\u000a\u000aEDMAC module + fixes
b50b476: edmac-memcpy: fix compilation
50ca62d: Merged unified into edmac
3f5322a: Merged in backtrace (pull request #849)\u000a\u000aStack trace (aka backtrace) in crash logs
2804bee: Close branch backtrace
8551a9c: selftest: fix incorrect strings (AllocateMemory != system memory)
a90ddf6: Makefile: minor fine-tuning; updated comments
e9c4d71: Makefile: fix compiling backtrace on fresh clone
2665fb0: selftest: fine-tuned comments and strings
f3f43d4: selftest: re-enabled fault emulations\u000a(some of them are useful for testing the stack trace, as they will trigger ERR70)
2aaafcd: backtrace: sync with qemu (e4376a1)
2211521: Makefile: workaround to unbreak the builds\u000a(how to fix it properly?)
3d94d84: Makefile: mark $(QEMU_INSTALLED_DBI_DIR)/backtrace.% as optional dependency\u000atodo: any way to do the same without .SECONDEXPANSION ?
e6632e3: Makefile: moved backtrace.o at the top to fix first-time compilation\u000athis makes sure backtrace.h is created before any other files that may use it (currently boot-hack.c)\u000aalso remove the symlinks on "make clean"
b5a5a3b: backtrace: sync with qemu (3db5423, fbb532b, ab6d33c, 115fe25)
85bf3db: Stack traces for crash and assert logs, using the backtrace backend
bd2144b: Updated backtrace.c to work on the camera as well\u000a(same source file for both QEMU and ML)
bf97ab3: arm-mcr.h: fixed read_lr (not sure what the problem was) and added read_sp
89ef642: Imported backtrace code from 29f6edc
e0c1b48: Ghost image: fixed issue #2749
412ae1e: Merged in daniel_fort/magic-lantern/find_fnt.py-update (pull request #844)\u000a\u000afind_fnt.py update
bd7c2cb: Added suggestion by @a1ex to guess the ROM[0,1] load address.
d3ef70e: Changed "base" to the address used when dumping the ROM
184e58a: Merged in daniel_fort/magic-lantern/unified-multiple-FW_VERSION-minimal-ML (pull request #846)\u000a\u000aMultiple firmware versions for minimal ML
a934b32: Makefile.platform.base error trap for multiple firmware versions
1718d64: 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\u000a(module_strings_wrapper.h from 0c1c8b3)
3887ff2: Modules: allow including module.h in multiple source files\u000a(b0574dd)
77651fe: Undo 4126b56 (to allow merging with crop_rec_4k)
d14d945: Update to latest exiftool
fcd5c99: mlv_rec: reduce chunk count to keep room for other files to create (and circumvent mlv_play failing playback)
9ee8258: mlv_rec: insert alignment NULL block before writers start to write aligned sizes
2c7e576: mlv_rec: ensure 32 bit alignment for VERS block sizes. just because.
7cafff4:
Merged in daniel_fort/magic-lantern/700D_AE_fix (pull request #842)\u000a\u000aFixed 700D AE constants (for autoexpo.mo)\u000a\u000aApproved-by: Daniel Fort
b96072d: Fixed AE constants
ffbd722: fio-ml: workaround for existing code using FIO_ReadFile incorrectly (such as mlv_play)\u000aselftest included
fed76e8:
Merged in cache-fixes (pull request #838)\u000a\u000aCache coherence fixes (clean_d_cache, FIO, EDMAC)\u000a\u000aApproved-by: Alex
2059650: Close branch cache-fixes
94950d5: fio-ml: updated comment on FIO_WriteFile
b97315b: selftest: check whether cache cleaning causes any performance regressions\u000a(result: no significant difference on file I/O)
f1ff88d:
Merged in daniel_fort/magic-lantern/EOSM_stubs_tweaks (pull request #839)\u000aDisplay filters working (anamorphic preview, fisheye correction, raw video preview and others)\u000a\u000aEOSM stubs tweaks\u000a\u000aApproved-by: Alex
f9ebbc2: Corrected YUV422_LV_BUFFER_DISPLAY_ADDR value and enabled display filters: http://www.magiclantern.fm/forum/index.php?topic=9741.msg186289#msg186289
590a5b7: Updated post_isr_hook/pre_isr_hook stubs
666ceda: Changed for consistency of stubs across all models.
a6320b7: my_fprintf: fix warning
07c1020: edmac.mo: fine-tuned transfer size info
10e3346: selftest: AbortEDmac test
bc529a0: selftest: edmac_memcpy test
a57c840: edmac.mo: transfer size test
7ab594e: edmac-memcpy: use and decode transfer size from flags (to be tested)
1168658: edmac_test: proper memory allocation
7b09278: edmac-memcpy: updated edmac_find_divider for latest hypothesis
a26f5e7: edmac_memcpy: looks like we can use widths that are not modulo 8 bytes
9e441b2: edmac-memcpy: refactored edmac_memcpy to avoid duplicate code
206683a: AbortEDmac stub for 500D, 550D, 5D2, 50D, 7D (not tested)
d35e1ec: edmac-memcpy: use cache handling similar to FIO;\u000aupdated selftest and bench modules for the new restriction
f238674: selftest: make sure the FIO cache coherence test fails without the FIO_WriteFile wrapper
5bf36e6: selftest: test for FIO_WriteFile with cacheable buffer\u000aif you comment out clean_d_cache() from the FIO_WriteFile wrapper, this test will fail
ffe14a3: selftest: save log after each sub-test\u000a(so one can interrupt the test suite and still see the log for the tests completed so far)
21b9cbc: selftest: fine-tuned DMA cacheable buffer test
55ab244: fio-ml: FIO_ReadFile wrapper to warn about caching issues\u000anot sure how to handle it automatically - clean_d_cache before is not enough\u000aadding another clean_d_cache afterwards appears to fix it, but it's risky\u000ased -i.bak '/ FIO_ReadFile/_FIO_ReadFile/' */stubs.S
442adb7: Refactored without fio_malloc in a few places\u000a(todo: find a way to reproduce caching issues on file I/O and add it to selftest.mo)
5d60636: fio-ml: FIO_WriteFile wrapper to handle caching issues automatically\u000ased -i.bak '/ FIO_WriteFile/_FIO_WriteFile/' */stubs.S
117ef8a: edmac.mo: fix model-specific differences
b7909c3: edmac.mo: in EDMAC model tests, print a summary of copying activity\u000a(how many bytes were copied, how many were skipped and so on)\u000a(this test outputs the raw logs used to find the EDMAC model - http://www.magiclantern.fm/forum/index.php?topic=18315.0 )
f3aeb38: edmac.mo: tests for EDMAC model (to be included in QEMU)
01db741: AbortEDmac stub for 5D3 1.2.3
6b048b2: edmac.c: fix typo
822919a: Merged unified into edmac
91c1213: selftest: test for clean_d_cache\u000ainterrupts disabled, using edmac_memcpy to copy between display buffers\u000athis test will fail without previous commit
8e1d43d: fix index size in clean_d_cache\u000a(todo: test in selftest.mo)
6c580fd: 5D3 1.2.3: fix CARD_A_MAKER (off by one)
b5f7474: removed unnecessary declaration of mlv_snd_is_enabled
61dc93d: mlv_snd: report back using ml-cbr when recording audio
543f545: added ml-cbr to modules using MODULE_NAMED_CBR()
7b9b8d8: audio uses ml-cbr to ask for recording
46d2ca7: ml-cbr: use strcmp to stay on safe side (caller might pass arbitrary length)
6fb1bf6: ml-cbr: update header with more information
9529184: fix ml-cbr locking issues
4126b56: dual_iso: temporary patch for module_get_string API change - probably needs a revert before merging crop_rec_4k into unified
d89d1f3: 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.
2e4c4c2: mlv_rec: embed VERS blocks into MLV file so there is no uncertainity about the modules used for a given recording
7319f07: mlv_lite: embed VERS blocks into MLV file so there is no uncertainity about the modules used for a given recording
6a6b2af: mlv_lite: use FIO_SeekSkipFile to determine file header size
b2102c2: mlv_dump: handle VERS blocks
7a83bf6: mlv_rec: added code and structures to helper routines to get version information embedded into the MLV file
a98c6c6: added routines and made a module loader routine non-static to allow other code to fetch e.g. strings from modules
4d90259: Merged in memcheck-fixes (pull request #829)\u000a\u000aFixes for various null pointer and uninitialized memory bugs
3b006b3: mem.c: disabled double free assert (it still gets overwritten by some deallocators)
6b9873d: menu.c: fixed some more null pointer reads\u000a(found in QEMU with -d memchk)
59963c5: tskmon: fix read from null pointer
fbb3b4f: module.c: fix reading after the input buffer when parsing module symbols\u000a(found in QEMU)
0abdbe0: memcheck: fix detection of double-free calls\u000a(our marker was overwritten by Canon's deallocator, so the check was useless)\u000a(bug found in QEMU)
56343c7: get_current_dialog_handler: fix read from null pointer\u000a(found in QEMU)
4c8d3f7: bmp.c: fix dereferencing random (uninitialized) pointer\u000a(found in QEMU)
bbe2c5c: mlv_lite: always override (toggle) the preview mode on *long* half-shutter press, when not autofocusing\u000a(avoids transient screen changes on quick half-shutter presses)
8e0c516: mlv_lite: preview both full-size buffers while recording\u000a(to catch future bugs that might cause the raw buffer to update every other frame)
29d86cc: Raw backend: exact height autodetection for 5D3\u000a(lossless 8-12 bit compression works!)
fd07490: mlv_lite: fix shutter button remaining locked after recording with Frozen LV\u000a(problem from exmem backend; not sure how to do a proper fix)
692ab1a: mlv_lite: slow down color preview to let lower-priority tasks run (such as histogram)
0554bca: FPS override: disable in x10 mode when half-shutter is pressed, to help with focusing\u000a(example setup: full-res LiveView, FPS override at 4 FPS for continuous recording, zoom on half-shutter)
aeacbba: FPS override: display rolling shutter in the main menu when available\u000a(either when raw recording is enabled or while recording H.264)\u000a(useful for diagnosing the new crop modes)
04e8139: FPS override: also display rolling shutter as percentage of frame duration
432fa63: mlv_lite: do not print debug info when freezing LiveView\u000a(seems to help with corrupted frames in modes with resolution pushed to limit, e.g. 1080p48)
39761ea: Include strstr in ML core
fdbbc55: mlv_lite: fix squeeze info in menu for 50/60p modes
3575b28: mlv_lite: display actual aspect ratio in menu, if different from selection
01c5b91: raw_rec: fix some resolution inconsistencies
1d35774: mlv_lite: fine-tuned menu for Frozen LV mode\u000a(previously known as Hacked Preview)
6209ed2: mlv_lite: reworked preview options with (hopefully) a lot more reasonable defaults\u000a- color preview with correct framing whenever plain LiveView is not accurate (crop/zoom modes etc)\u000a- only use grayscale preview when recording speed is critical\u000a- renamed the preview options\u000a- half-shutter to override the automatic preview choice\u000a(note: slot_count is valid_slot_count in compressed_raw)
f404e5f: Raw backend: allow displaying raw previews without conflicting with LiveView info bars;\u000aupdated mlv_rec and mlv_lite to use this capability
fb6910a: mlv_rec, mlv_lite: fix rawc saving after structure update in mlv.h
b3ed8b4: Fix c6f92ee
fa1b3cc: mlv_rec, mlv_lite: save RAWC (raw_capture_info)
0356223: Raw backend: fix raw_capture_info.skipping_y for EOS M\u000a(720p unless recording H.264)
7d289a4: mlv.h: replaced struct raw_capture_info with individual fields\u000a(binary compatible with previous version)
97678b1: raw_capture_info: redefined offset_x and offset_y to refer to first (top-left) *active* pixel\u000athat way, optical black variations between formats (e.g. CR2 vs FRSP) are no longer relevant
bd661a2: mlv_dump: show the meaning of sensor crop factor
c0563f8: mlv_rec, mlv_lite: fix minor crop factor display issue\u000a(division by 0 in photo mode)
c6f92ee: mlv_rec, mlv_lite: save RAWC (raw_capture_info)
33e3509: mlv_dump: print RAWC (raw_capture_info)
a2bbf26: mlv.h: RAWC block (struct raw_capture_info)
7674853: Raw backend: new CBR for modules (CBR_RAW_INFO_UPDATE)
443884d: Raw backend: new structure about image capture parameters (resolution, pixel binning modes)\u000a(also updated mlv_lite and mlv_rec)\u000a(can you suggest a better name?)
41b17cb: EDMAC: fix signed off2 on DIGIC 4
d5915d6: Backout 722c851 (fix FIR not included in the zip)
fc3ec35:
Merged in raw_fixes (pull request #820)\u000a\u000aRaw fixes part 4\u000a\u000aApproved-by: Alex
c95ec19: Silent pictures: minor error handling fix
e26684f: Silent pics: only show the slit-scan mode option when you actually select slit-scan
a881f05: Silent pictures: fix allocating memory for a single picture\u000a(frame size not known in advance and might be larger than max shoot block size)
eff649f: Silent pictures: fix overflow when allocating memory for burst mode
97cc437:
Merged in task_name (pull request #796)\u000a\u000aNew method for getting current task names (refactor)\u000a\u000aApproved-by: Alex
3664a5a: Close branch task_name
d014368: Raw backend: fix black border on raw previews (completes 23d1f0e)
3a47d96: 50D, 6D, 7D, 650D: current_task and current_interrupt stubs (tested in QEMU)
ecaa37f: 5D3 1.2.3: current_task and current_interrupt stubs
3af9e85: Merged unified into task_name
5114d3d: 500D: current_task and current_interrupt stubs
9d7eea4: srm_malloc_suite: extra wait after locking the GUI\u000a(to be checked on cameras that don't pass the SRM memory test from selftest.mo)
54c60ed: srm_malloc_suite: minor fix\u000a(no effects with current usage)
23d1f0e: Raw backend: fix black borders on raw previews
9179d30: Tasks: undo changes to get_task_name_from_id (no longer needed)
3fb9408: Moved CURRENT_INTERRUPT_ADDR to stubs; added some more models (copied from QEMU)
9a892ac: dm-spy-experiments: current_task stub for EOSM
08262be: 5D2, 5D3, 550D, 600D, 700D: current_task stub
0fa1248: tasks.c, stubs: removed unused GetTaskName and get_current_task\u000ased -i.bak '/GetTaskName/d' */stubs.S\u000ased -i.bak '/get_current_task/d' */stubs.S
e160e2a: tasks.c, stubs: removed unused get_obj_attr\u000ased -i.bak '/get_obj_attr/d' */stubs.S
ba60e42: Refactored get_task_name_from_id(get_current_task()) with get_current_task_name() (to be made generic)
6ea56af: Ported get_current_task_name from dm-spy-experiments branch\u000a(much faster, new stub required)
1783016: edmac.mo: experiment - log all EDMAC channels every 0.1ms
8e458d0: edmac.mo: show offset 0x40 on the info screen
25b8f83: edmac: edmac_get_channel
e705282: edmac: there are more than 48 connections (not sure how many)
b0574dd: Modules: allow including module.h in multiple source files\u000a(fixes compilation of edmac.mo)
e9087c0: Modules: removed some unused definitions
3744ed4: edmac.h: allow edmac_format_size to be called from core (of course, if the edmac module is loaded)
41bdf15: bench.mo: use microsecond timer for memory benchmarks
eda6473: bench.mo: verify memcpy-like functions when running memory benchmark
98f4031: edmac-memcpy.c: refactored to avoid static struct edmac_info
5b01490: Rewritten find_free_edmac_channels so it no longer requires user input
1248dea: Moved find_free_edmac_channels to the edmac module
d7b788b: Moved EDMAC info screen and pretty-printing function to a module
1de48c7: edmac: pretty-printing function for size configuration (edmac_format_size)\u000aauxiliary functions: edmac_get_info, edmac_fix_off1\u000aalso updated debug edmac info with the new function
657aa39: edmac: edmac_get_pointer; comments
38a1409: edmac: experimental model for total data transfer size
d345c2a: Enabled AbortEDmac stub (most models; not tested)
dd6cffd: stub-cleanup.py: support for uncommenting unused stubs; minor refactors
866cd22: Stubs format
ce4b49b: Merged cleanup into unified
016a0e5: Removed april fools prank
8a6e123: debug.c: removed unused code
82d9b13: Zip comment: removed old links
732bdb3: fio-ml: fix possible buffer overflow with PROP_CARD_SELECT\u000a(might happen on unusual settings or new models)
579a2fd: Makefile: summarize CONFIG options and GCC version from Makefile.user (if any) in the build log; minor fixes
722c851: Makefile: don't try to build the FIR on make install/zip
cdeb914: Modules: removed some unused definitions
30115e9: Debug -> Unmount SD: minor UI tweak (turn on the LED after unmounting)
4640f62:
Merged in lens_info_fix (pull request #775)\u000a\u000aLens info fix\u000a\u000aApproved-by: Daniel Fort
7692604: Close branch lens_info_fix
c46ffb2: Silent pictures: always reset powersave timer when taking a picture
da7884e: Lens info: serial number (to be tested)
4784c38: Lens info: minor menu updates (mostly help text)
85b4128: Lens info: minor menu layout changes
7db9475: Lens info: moved to Debug menu (to keep the Prefs menu for... preferences)
800e1f4: Merged in pre-record (pull request #728)\u000a\u000aPre-recording feature (mlv_lite)\u000ahttp://www.magiclantern.fm/forum/index.php?topic=17069.0\u000a\u000aApproved-by: DeafEyeJedi\u000aApproved-by: David Milligan\u000aApproved-by: Maqs\u000aApproved-by: g3gg0\u000aApproved-by: Mathew Kelly\u000aApproved-by: Alex
081f36a: Close branch pre-record
86ec8e3: mlv_lite: fix chunk frame count (to be tested)
76c83eb: mlv_lite: fix invalid header under certain conditions involving very fast button presses\u000aexample: select a resolution higher than maximum, zoom in, return from zoom and press record very quickly\u000ahttp://www.magiclantern.fm/forum/index.php?topic=19108
836de74: Merge with unified
9b9b87f: mlv_lite: fix MLV frame count when using pre-recording
273a758: Merged unified into pre-record
ca0aa82: check for property length and decide if this feature is available
11c5d04: fixed lens ID reading, added version etc. to be tested
529f0b4: raw_rec: pre-recording feature (experimental)
ab8e604: Merge raw_fixes into pre-record
magiclantern-Nightly.2017Feb12.1200D101.zip
Copyright (C) 2009-2018 Magic Lantern Development Team
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.