1300D-dm-spy-experiments

View source
1300D-dm-spy-experiments
  • Contributors
    1. Loading...
Author Commit Message Date Builds
1 commit behind unified.
Cristian Campean
Work for logs on 1300D
Cristian Campean
repair menu.c
Cristian Campean
Removed files
Cristian Campean
Deleted compiled files
Cristian Campean
Merged 1300D on dm-spy-experiments
Cristian Campean
Merged 1300D into 1300D-dm-spy-experiments
Cristian Campean
GUI_SetLvMode repair value
Cristian Campean
Add new stubs value
Cristian Campean
New stubs value found
Cristian Campean
Merge 1300D
Cristian Campean
New branch for log 1300D
Cristian Campean
all_features.h edited online with Bitbucket
Cristian Campean
repair all_features.h
Cristian Campean
Found value for dynamic_ranges
Cristian Campean
Add RAW_PHOTO_EDMAC for 1300D
Cristian Campean
Repair all_features.h
Cristian Campean
Add 1300D stubs values, add support for 1300D
Daniel Fort
1300D: added Model ID to propvalues.h
Alex
1300D: use AllocateMemory boot with cache hacks for all targets (experimental; finally can compile installer and minimal test code)
Alex
Merged digic6-dumper into 1300D (boot method refactoring required here as well)
Alex
1300D: removed BGMT_Q_ALT (required to compile)
Alex
Merged 1200D into 1300D
Alex
Merged qemu into 1200D
Alex
Merged lua_fix into 1200D
Alex
fw-signature.h: fix bad merge
Alex
Merged new-dryos-task-hooks into 1300D
Alex
Merged qemu into 1300D
Alex
200D: enabled logging code written for 80D (worked in QEMU after some minor changes)
Alex
log-d6: we've got a 32-bit DIGIC timer https://www.magiclantern.fm/forum/index.php?topic=17360.msg202319#msg202319
Alex
log-d6: minor changes to reduce stack memory usage
Alex
log-d6: use "const" for variables or data structures in the firmware
Alex
imath.h: macro for incrementing a variable modulo N
Alex
Boot process: patching the call to cstart is no longer needed (removed HIJACK_INSTR_BL_CSTART)
Alex
Merged patchmgr into digic6-dumper (arm-mcr.h updates)
Alex
arm-mcr.h: updated cache maintenance operations for DIGIC 7 & 8 (to be tested)
Alex
arm-mcr.h: minor cleanups, non-functional: - moved _sync_caches in the old place - commented out setup_memory_region et al
Alex
minimal-d6: fix compilation (ml_assert_handler as dummy stub)
Alex
Merged lua_fix into digic6-dumper
Alex
Init: removed dm_names (one less stub to worry about)
Alex
Init: removed CONFIG_EARLY_PORT (not working anyway; please use CONFIG_HELLO_WORLD instead)
Alex
Removed boot-hack.c and refactored the boot process: - moved platform-specific code into boot-*.c - moved platform-independent code into init.c - "cache hacked" boot process moved to boot-d45-ch.c - "AllocateMemory" boot process moved to boot-d45-am.c
Alex
Merged new-dryos-task-hooks into digic6-dumper
Alex
Tasks: new method for checking whether an interrupt is active (old method was not compatible with DIGIC 7; to be tested on all models)
Alex
80D, 200D, M50: timer stubs (for qemu-hptimer test)
Alex
Minimal targets & installer: moved platform-dependent startup code into boot-*.c / boot.h This change allows compiling the above targets on DIGIC 6, 7 and 8 models, alongside D4 and 5. TODO: same refactoring for VxWorks and 1300D.
Alex
80D: moved minimal logging code to top level, for easier porting to other DIGIC 6 models (80D.102/minimal.c,log.[ch] -> src/minimal-d6.c,log-d6.[ch]) Also enabled for 7D2, but not working yet (missing stubs; startup code needs tweaking).
Alex
DIGIC 6,7,8: preparing to fix minimal targets (not working yet) - do not override ML_MINIMAL_OBJ when compiling from minimal directory - use platform-specific CFLAGS for minimal targets
Alex
Merged qemu into digic6-dumper
Alex
M50: dm_set_store_level stub not needed
Alex
Makefile: when running "make install", copy ML-SETUP.FIR only for the generic profile (not for minimal or other targets)
Alex
Makefile: always check all minimal targets when running "make zip" (only check whether they compile without errors, just like with the installer)
Alex
Minimal target: moved the Hello World example into its own directory and removed old platform folders
Alex
Minimal targets: 5D3 1.1.3 hacks no longer needed
Alex
GDB scripts: fix IDC names containing spaces
Alex
QEMU: fix timeout in ImgPowDet emulation (there were nondeterministic errors in the FRSP test)
Alex
QEMU: emulate ADTGDMA interrupt (used on 100D and EOS M2) - fixes FA_CaptureTestImage on 100D - some LiveView screenshots changed on 100D - color palette in LiveView changed on M2; can be worked around by pressing L (updated menu tests)
Alex
Merged unified into dm-spy-experiments (memory backend updates)
Alex
dm-spy: use 8MB buffer for regular (non-startup) experiments
Alex
dm-spy: always use CONFIG_MARK_UNUSED_MEMORY_AT_STARTUP (delays the startup by a few seconds, but it's very useful for identifying unused memory areas)
Alex
dm-spy: attempt to save the log if camera crashes during the experiment
Alex
dm-spy: 700D has enough memory for 2MB startup logs; assuming 650D as well
Alex
M50: experimental startup code based on 80D's minimal.c (partially tested in QEMU)
Alex
200D: experimental startup code based on 80D's minimal.c (tested in QEMU)
Alex
fw-signature: always compute from ROMBASEADDR
Alex
Cleaned up firmware signature code a bit
Alex
Makefile: allow customizing minimal source/object file (i.e. using something other than minimal.c)
Alex
reboot.c: polyglot startup code for both ARM and Thumb, adapted from 13a391a. Rationale: if one swaps the card between two cameras, one of them being DIGIC 7/8 and another DIGIC <= 6, we want to be able to print an error message. TODO: also update the portable display code from disp_direct.c. Replaces pull request #937. Tested with: - gcc 5.4.1 (gcc-arm-none-eabi-5_4-2016q3) - gcc 7.2.1 (gcc-arm-none-eabi-7-2017-q4-major) - gcc 7.2.1 (gcc-linaro-7.2.1-2017.11-x86_64_arm-e…
Alex
M50: LED address (not tested) https://www.magiclantern.fm/forum/index.php?topic=19737.msg204984#msg204984
Alex
M50: preparing to upgrade to 1.0.1 (hg rename)
Alex
QEMU tests: ignore nondeterministic screenshot on 6D (may appear with or without free space)
Alex
GDB scripts: moved try_expand_ram_struct at the top
Alex
GDB scripts: minor whitespace fix
Alex
QEMU: ensure valid RAM address before executing EDMAC transfers (EOS M fails here when running FA_CaptureTestImage)
Alex
QEMU: image sensor power emulation (fixes FA_CaptureTestImage on 5D2; tested on all other models able to run the FRSP test)
Alex
QEMU: output dummy data (zeros) on read EDMAC connections Fixes FA_CaptureTestImage on 700D and 650D.
Alex
qemu-frsp: fix compiling for 70D
Alex
QEMU: allow reads to EDMAC CHSW registers (required for FA_CaptureTestImage emulation on 6D and others)
Alex
qemu-frsp: ensure valid exposure settings before the test (exposure time not too long, ISO other than Auto; required on 600D and others)
Alex
QEMU: fix YUV vertical scaling for 1100D (only the FRSP test uses it for now)
Alex
qemu-frsp: allocate a YUV buffer if there isn't one already set up (only with CONFIG_QEMU) Fixes preview on 5D3 and 1100D, where Canon firmware does not allocate one at startup.
Alex
QEMU tests: all models able to navigate Canon menu should pass the FRSP (FA_CaptureTestImage) test Most of them will fail; to be fixed.
Alex
QEMU tests: handle models not yet in mainline (FRSP and HPTimer tests are using this for now)
Alex
QEMU: updated gcc 7/8 patch for systems using virtio-9p
Alex
QEMU: updated gcc 7.x patch to also work with gcc 8.x
Alex
eos.c: fix gcc8 warnings
Alex
Makefile: allow "make install*" without a FIR file (for minimal targets and new platforms)
Alex
QEMU logging: attempt to identify tail calls by default (-d calls,notail to disable)
Alex
QEMU tests: updated for 200D 1.0.1
Alex
QEMU logging: moved IDC files into model subdirectories (for consistency with romcpy shell files)
Alex
QEMU logging: fix typo when using -d romcpy (output file path was not printed correctly)
Alex
QEMU tests: initial support for 800D (fixme: call trace not deterministic, same as 77D)
Alex
800D: minor stub fixes in GDB script
Ian Scott
qemu: add 800D to model_list.c, and add 800D/debugmsg.gdb
Daniel Fort
1200D: stubs GUI_SetCFnForTab4 GUI_GetCFnForTab4 found but not currently used
Alex
Config options: fix issue #2892 (custom presets not appearing in menu)
Alex
Merged config_var_refactor into lua_fix
Alex
Merged unified into lua_fix
Alex
Menu: fix config var incorrectly changed during fast toggles (e.g. 36 -> 35 without calling the CBR)
Alex
Config variables: declare all internal structures static (minor refactor)
Alex
Config variables: include the forward declaration in the CONFIG_INT_EX definition (no longer needed to declare CONFIG_VAR_CHANGE_FUNC's twice)
Alex
Config variables: use CONFIG_VAR_CHANGE_FUNC (similar to MENU_SELECT_FUNC); minor renames
Alex
Merged unified into config_var_refactor
Alex
audio-ak: fix compiling for 500D
Alex
menu: short joystick clicks should not be interpreted as SET outside ML menu (fixes incorrect trigger of Auto ETTR from joystick, for example)
David Milligan
rename xxx_update functions for config_vars to xxx_on_change
David Milligan
rename CONFIG_INT_UPDATE to CONFIG_INT_EX and .update to .on_change to avoid confusion and name conflicts with MENU_UPDATE_FUNCs
David Milligan
Merge
David Milligan
config var: refactor audio-lapis to use new config var CBR (not tested -> I have none of these cameras)
David Milligan
config var: refactor audio-ak and audio-common to use new config var CBR (TODO: audio-lapis)
Alex
Ghost image: further cleanups and fixes
Alex
Ghost image: fix crash (issues #2796, #2783, #2878, #2885)
Erik Krause
features.tmpl edited online with Bitbucket: use id in th section heading to allow for direct linking via anchor
Alex
Merged in edmac (pull request #886) EDMAC module: fixes for DIGIC 4, connection map
Alex
Merged in adv_int (pull request #907) Advanced intervalometer updates
Alex
Merged in memory-backend (pull request #906) Memory backend improvements
Alex
Makefile: fix "make install_qemu CONFIG_QEMU=y" for minimal targets
Alex
Patch manager: provide a default sync_caches for targets that don't include it (minimal, installer, reboot)
Alex
Patch manager: moved sync_caches in patch.c and removed the "weak" trickery (fixes patch restoring when called from modules)
Alex
QEMU: experimental support for gdb-multiarch (latest Ubuntu no longer has gdb-arm-none-eabi...)
Alex
QEMU install: minor fixes
Alex
QEMU install: on some systems, building GDB requires makeinfo; skip it https://sourceware.org/bugzilla/show_bug.cgi?id=18113 Also show the last few lines from the compilation logs if there's an error.
Alex
QEMU install: on older Ubuntu, gcc/gdb installation without package manager may be required
Alex
QEMU install: minor fix for 32-bit Ubuntu (option 3: no 64-bit gcc available)
Alex
QEMU installer: removed option to allow old 64-bit GDB (hopefully no longer needed)
Alex
QEMU installer: minor fix regarding GDB installation (force compiling from source if a valid 64-bit gdb is already installed)
Alex
QEMU installer: attempt to compile gdb 8.1 from source if a 32-bit version is not available (in particular, Mac and WSL) https://www.magiclantern.fm/forum/index.php?topic=2864.msg200954#msg200954 (thanks t3r4n)
Alex
QEMU install: there's no DISPLAY variable on Mac
Alex
QEMU: better emulation for cache patches (uninstalling works, at least for dm-spy-experiments)
Alex
QEMU: fix CPU0 labels incorrectly appearing in DIGIC 6 logs (only DIGIC 7 should display these)
Alex
QEMU: moved ARM946EOS-specific functions (cache lockdown and WFI) from cpu.c to helper.c
Alex
Patch manager: reworked mechanism for re-applying cache patches when needed * arm-mcr.h: clean_d_cache and flush_i_cache are now private (sync_caches is the high-level function to be used) * replaced all calls to clean_d_cache/flush_i_cache with sync_caches * should fix issues with randomly "disappearing" cache patches * to be tested for performance issues etc
Alex
80D: reworked mpu_send logging (previous attempt appears to miss some messages)
Alex
80D: log MPU messages and some important Canon messages
Alex
80D: log all interrupts; updated interrupt names https://www.magiclantern.fm/forum/index.php?topic=21526.msg196300
Alex
80D: log interrupt IDs for debug messages printed from there
Alex
80D: early logging experiment, to catch initial MPU messages
Alex
80D: alternate method for logging MPU messages (directly from interrupt hooks, without overriding mpu_send/recv)
Alex
80D: use our DebugMsg for logging (experiment)
Daniel Fort
1300D: GUI timers stubs https://www.magiclantern.fm/forum/index.php?topic=17969.msg201683#msg201683
Alex
80D: debug messages for QEMU (to use them, compile with "make CONFIG_QEMU=y")
Alex
Merged qemu into digic6-dumper
Alex
Minimal targets: CONFIG_QEMU no longer hardcoded in Makefile (should be specified on the command line if desired)
Alex
Makefile: allow CONFIG_QEMU to work on all ML profiles, including minimal and installer By default, CONFIG options are only used for the generic profile. This enables qprintf for debugging DIGIC 6/7 ports using the minimal profile.
Alex
Merged qemu into dm-spy-experiments
Alex
Merged io_trace into dm-spy-experiments (pull request #900) MMIO tracing backend
Alex
boot-hack: fix booting on 550D/600D (broken in 5c77453)
Alex
QEMU: fix printing callstack from GDB scripts (broken in 1834cd8)
Alex
GDB scripts: workaround for a crash occuring with 5D (possibly GDB bug; can't explain why it works)
Alex
qemu-frsp: fix compiling on lua_fix codebase (1200D and soon all others)
Alex
QEMU: updated expected test results for 1200D 1.0.2 (no stubs changed in debugmsg.gdb)
Alex
QEMU: removed bogus/unused BGMT_ISO
Alex
QEMU: fix Q button code for 1200D - https://www.magiclantern.fm/forum/index.php?topic=12627.msg200889#msg200889 - assuming the same applies to 1300D; unsure about 600D/1100D
Alex
1200D: enabled CONFIG_MOVIE_AE_WARNING (there are manual video controls in Canon menu, but they are disabled by default)
Alex
1200D: fix opening ML menu in movie mode with auto exposure
Alex
1200D: fix Q button code after refactoring https://www.magiclantern.fm/forum/index.php?topic=12627.msg200889#msg200889 todo: fix the emulator (waiting for reports from 600D and 1100D)
Alex
QEMU: fix compiling on 32-bit x86 hosts Caveat: -d romcpy not working on x86 (requires int128_t)
Alex
QEMU README: initial notes on DIGIC 7
Daniel Fort
Applied changes from commit b9e0b9e
Alex
Merged lua_fix into 1200D
Alex
Merged unified into 1200D
Alex
Merged in daniel_fort/magic-lantern/update-to-1200D.102 (pull request #921) Update to 1200D.102
Alex
Close branch
Alex
1200D: installer FIR for 1.0.2
Daniel Fort
Update to 1200D.102
Daniel Fort
Prepare source tree for update using "hg rename" to preserve revision history and added 1200D minimal directory
Alex
Merged in nikfreak/magic-lantern/unified_sf_dump_70D (pull request #853) sf_dump.mo: support for 70D
Alex
Close branch
nikfreak
add 70D stubs for sf_dump module
nikfreak
Created new branch unified_sf_dump_70D
Alex
Merged in es_as/magic-lantern (pull request #891) 650D: sf_dump stubs
Espen
650D:sf_dump stubs
Alex
Merged in daniel_fort/magic-lantern/unified_650D.104_stub_fix (pull request #923) Fix 650D PlayMovieGuideApp_handler
Daniel Fort
Find the latest version of exiftool.
Alex
Close branch
Daniel Fort
Fixed stub. Discovered while running lua API tests. https://www.magiclantern.fm/forum/index.php?topic=7473.msg200626#msg200626
Alex
Merged in DieHertz/magic-lantern/6d2-platform-definitions (pull request #924)
Alex
Close branch
Alex
reboot-dumper: use uint32_t for addressing the LEDs
Alex
Merged in DieHertz/magic-lantern/DieHertz/got-rid-of-explicit-address-arithmetic-f-1524811082443 (pull request #922) reboot-dumper.c: got rid of explicit address arithmetic for LED access
Alex
Close branch
Alex
6D2: added to Makefile.platform.map
Andrey Mironov
Corrected firmware ID
Andrey Mironov
Added proper Canon FIR name
Andrey Mironov
Added 6D2 1.0.3 folder with nothing but LED address
Andrey Mironov
Got rid of explicit address arithmetic for LED access
Alex
QEMU: initial support for DIGIC 7 EOS (200D, 77D, 6D2) - added ROMID; updated MemDiv, XDMAC, SDIO - emulation starts many tasks, talks to MPU, initializes SD, creates the DCIM directory on the virtual card - fails with ERROR WaitPU1 TimeOut - dumpf does not save any logs (figure out why) - note: M5 ROM should now be loaded as ROM0
Alex
QEMU logging: initial support for DIGIC 7 (CPU0 only; exception vectors at nonzero address)
Alex
QEMU tests: ROM dumper needs larger timeout on slower computers; undo unwanted changes from cb93334
Alex
QEMU tests: fix expected results for restore after format after updating SD image
Alex
QEMU tests: reworked ROM dump test to wait as much or as little as each camera needs (fixme: 70D waits for some CFDMA messages that are for some other device)
Alex
QEMU: usleep patching no longer required on M3
Alex
QEMU: updated ROM dump tests to check SFDATA.BIN too (currently only applies to DIGIC 6)
Alex
QEMU: updated SD image with latest display test (changeset 9b37638)
Alex
QEMU: experimental UTimer emulation - these look pretty much like regular timers (same offsets), but behave like HPTimers! - UTimer patches from DIGIC 6 no longer needed! - fine-tuned HPTimer messages
Alex
QEMU: fix logging of MMIO registers from the same range as MREQ (eos_handle_mreq also receives a few other registers, unknown yet)
Alex
QEMU: specify actual RAM size for each model, rather than using generic values (emulating with larger size usually works, but doesn't catch some edge cases)
Alex
QEMU: reordered model definitions in model_list.c (grouped by DIGIC version and similarity)
Alex
QEMU: renamed IO_MEM_START/SIZE to MMIO_ADDR/SIZE for consistency; added MMIO_ADDR to model_list.c (possibly needed for future models)
Alex
QEMU: removed unused entries; moved ML helpers to a different GPIO range. Old range was not accessible on certain models, such as PowerShots and DIGIC 7. Old GPIOs are still accepted (debugging existing code from experimental branches is still possible without merging latest qemu).
Alex
QEMU logging: -d romcpy now output a shell script for extracting the copied blocks
Alex
QEMU: memfd patch to fix compilation with glibc 2.27 https://patchwork.openembedded.org/patch/147682/
Alex
QEMU installer: minor updates - option to "make clean" before renaming the old folder (to save disk space) - exit if QEMU fails to compile - check for a valid DISPLAY (important for WSL) - updated help links
Alex
QEMU: updated CPU definition for DIGIC 7; renamed for older models and reverted the HIVECS property back to false
Alex
QEMU tests: updated checksums for EOS M/M2 screenshots displaying date/time (fix commit 8c575ef99b7f)
Alex
QEMU tests: updated checksum for a screenshot affected by transparency - commit 5b274e3 (Canon quirk - it's not even a LiveView screenshot)
Alex
annotate_mpu_log.py: allow incomplete mpu_send/recv lines (such as the ones from 80D logs)
Alex
MPU spells: documented some AF-related properties
Alex
GDB scripts: also identify and name PTP handlers
Alex
77D: LED address identified, thanks alpha232
Alex
EOS M50: initial platform dir; attempt to guess LED address
Alex
DIGIC 7: binaries appear to be loaded as Thumb, unlike previous models
Alex
200D: initial platform dir; attempt to blink the WLAN LED (unsuccessful) https://www.magiclantern.fm/forum/index.php?topic=19737.msg196158#msg196158
Alex
77D: initial platform dir; attempt to guess LED address (unsuccessful)
Alex
arm-mcr.h: fix CONFIG_DIGIC_VI when used in reboot.c; preparing for CONFIG_DIGIC_VII (to be tested - is the 80D still booting?)
Alex
5D4: fix compilation
Alex
760D: fix compilation
Alex
Merged unified into digic6-dumper
Alex
GDB scripts: identify named functions during execution and export as IDC Named functions identified from: task_create, register_func, register_interrupt, CreateStateObject Tested on 5D3 1.1.3, EOSM2 1.0.3 and 80D 1.0.2 (missing stubs added).
Alex
QEMU: check whether the ROM contents are mirrored (whether dumped size is larger than actual ROM size) ``` [EOS] loading './50D/ROM0.BIN' to 0xF0000000-0xF0FFFFFF [EOS] mirrored data; unique 0x400000 bytes repeated 0x4 times [EOS] loading './50D/ROM1.BIN' to 0xF8000000-0xF8FFFFFF [EOS] mirrored data; unique 0x800000 bytes repeated 0x2 times ``` https://www.magiclantern.fm/forum/index.php?topic=2864.msg199837#msg199837
Alex
QEMU: SRM_SetBusy/ClearBusy emulation for 5D3/6D/70D
Alex
annotate_mpu_log.py: mark unknown MPU messages with ??? (this ensures all MPU messages are displayed to the terminal, including unknown ones)
Alex
lua_task: task name must be allocated by caller (it's not copied, so we must not modify it afterwards) Easiest way: use the same name for all tasks started by Lua scripts.
Alex
Lua: added sleep() with floating-point argument (similar to msleep)
Alex
Lua: option to disable powersave while running tasks created from scripts Example: task.create(func, nil, nil, true)
Alex
Powersave: experimental option to disable the 30-minute timer in LiveView
Alex
Powersave: simplified the option to enable while recording; updated help; aligned menu definition
Alex
dryos.h: enable ML DebugMsg calls when using CONFIG_DEBUG_INTERCEPT (so it would include ML version messages without further tweaking)
Alex
menu: experimental fix for issue #1974 (timeout in LiveView, 6D/M/100D/70D) Hypothesis: https://bitbucket.org/hudson/magic-lantern/issues/1974/6df#comment-44206798 Tested on 5D3 with GUI mode 41. Tested in QEMU on 6D (it keeps poking the MPU while ML menu is open).
Alex
property.h: fix declaration of prop_deliver (first argument is a pointer to the property, unlike prop_request_change)
Alex
boot-hack: no real reason to use short for magic_off (