sort by:
Revision Author Date Message Commit Date
47be065 Renamed log-d6.[ch] to log-d678.[ch] and minimal-d6.c to minimal-d678.c These files are starting to get code specific to DIGIC 7/8. They are not directly usable on DIGIC 8 yet, as most of the functions we need to override are in ROM. Only in QEMU for now. 26 February 2019, 07:33:53 UTC
d89e9a1 arm-mcr.h, log-d6.h: renamed get_cpuid to get_cpu_id to avoid confusion with CPUID aka CPU model identification MPIDR is not 100% correct; we extract only specific bits from it. These bits are called "CPU ID" in ARM docs. http://infocenter.arm.com/help/topic/com.arm.doc.ddi0388e/CIHEBGFG.html 26 February 2019, 07:21:20 UTC
b882ef8 log-d6: refuse to run on CPU cores other than #0 Fixes corrupted logs on DIGIC 7/8 (confirmed on 200D by @names_are_hard ). Cause: race condition between the two processor cores. Even if we load ML on core #0 only, when overriding DebugMsg / ISR hooks / etc, the change is also visible from the second core. Disabling interrupts won't help. TODO: figure out how to do mutual exclusion between the two cores. 25 February 2019, 22:36:34 UTC
73ea1bb arm-mcr.h: get_cpuid() for multi-core processors (DIGIC 7/8) 25 February 2019, 22:36:34 UTC
041d3be 5D4: hardcoded logging buffers, based on chris_overseas' experiment https://www.magiclantern.fm/forum/index.php?topic=17695.msg212320#msg212320 CONFIG_MMIO_TRACE works in QEMU. 21 February 2019, 19:09:43 UTC
b6775ab io_trace: allow CONFIG_MMIO_TRACE for minimal targets, too (removed the 80D workaround) 21 February 2019, 17:40:10 UTC
00c70bd 5D4: updated the codebase to 1.1.2 3bf2df7, 73990b1, 24dbfdb, c0f8a82, 3e04262 from https://bitbucket.org/chris_miller/ml-fork/branch/5d4-112 21 February 2019, 19:53:32 UTC
ab004de check-stubs.py: also check ROM/RAM contents, 8 bytes for each stub (optional) RAM files should be created with the Portable ROM dumper. RAM files, if any, should be created with romcpy.sh (QEMU: -d romcpy). 21 February 2019, 17:15:19 UTC
7e5ccc0 check-stubs.py: updated heuristics for DIGIC 6/7/8 - everything above E0000000 is ROM - check parity differences (Thumb bit) - check "delta" changes (it's expected to drift, but no large jumps) 20 February 2019, 09:06:22 UTC
f06a432 EOS R: skip 0x82000000-0x83000000 for CONFIG_MARK_UNUSED_MEMORY_AT_STARTUP (apparently used as shared memory by a secondary core, codenamed Shirahama) 15 February 2019, 22:57:31 UTC
c062b32 EOS R: UNCACHEABLE macro is no longer valid; using a workaround for CONFIG_MARK_UNUSED_MEMORY_AT_STARTUP 15 February 2019, 22:13:11 UTC
55fface EOS R, M50: updated CONFIG_MARK_UNUSED_MEMORY_AT_STARTUP (see bee6ec3 for details and usage notes) 15 February 2019, 22:01:11 UTC
d7c9d6b M50: uart_printf (not yet used, but... required to compile) 14 February 2019, 22:31:58 UTC
2a62182 EOS R: added uart_printf for easier debugging 14 February 2019, 20:57:23 UTC
5e6d34c minimal-d78: need to call FIO_RemoveFile before FIO_CreateFile 14 February 2019, 20:43:05 UTC
f065f08 EOS R: LED test code (not enabled by default) 14 February 2019, 18:34:40 UTC
9dd709e EOS R: updated to 1.1.0 (note to self: check firmware version next time) 14 February 2019, 18:13:18 UTC
0c1b6be EOS R: initial platform directory - firmware 1.0.0 - boot process tested in QEMU - confirmed to boot on real hardware - very simple logging works (with Canon's DebugMsg) - ROM dumping from main firmware also works 14 February 2019, 17:15:19 UTC
3b26e45 reboot.c: debug code for jumping into Canon's main firmware (disabled by default) 14 February 2019, 06:32:53 UTC
e1397a5 DIGIC 8: MMIO tricks required to boot (tested on EOS R; maybe also needed on M50/SX70) 14 February 2019, 06:29:41 UTC
e83d43c DIGIC 6: moved MMIO boot tricks in reboot.c - for consistency - 7D may use two different boot methods ("classic" and "cache hack"); keeping this in reboot.c reduces code duplication - in the future, we will want to be able to jump to any Canon firmware from the same binary; this will have to be done from reboot.c 13 February 2019, 09:34:39 UTC
b41ef49 7D, 7D2, 5DS, 5DSR: use CONFIG_DUAL_DIGIC (to enable the specific boot tricks) 13 February 2019, 09:30:35 UTC
f5dd789 CONFIG_DIGIC_version is now mandatory; defined CONFIG_DIGIC_IV on models using one. 13 February 2019, 09:28:18 UTC
66000e0 7D2: added missing stubs and other definitions (to be tested - will it boot?) 11 February 2019, 11:31:30 UTC
d1aef59 5DS R: initial platform directory - boot process tested in QEMU (without file I/O) - boots on the camera (confirmed by @jcareaux) - basic logging works (including our DebugMsg) - todo: try the remaining 80D/5D4 experiments 13 February 2019, 08:46:20 UTC
e359119 Makefile: removed unnecessary AUTOEXEC_BASE and FIR_BASE sed -i.bak '/AUTOEXEC_BASE/d' */Makefile.platform.default sed -i.bak '/FIR_BASE/d' */Makefile.platform.default 13 February 2019, 08:43:30 UTC
b82a51c reboot.c: make firmware signature mandatory fw-signature.h: fixed/added signatures for models that didn't compile (5D3.123, 700D.115, 5DS.111) 13 February 2019, 08:42:28 UTC
733c01e reboot.c: minor cleanups 13 February 2019, 08:38:48 UTC
13eda86 5DS: compile as DIGIC 6 (to be tested) 13 February 2019, 08:37:53 UTC
8c03532 Merged 5Ds_experiments into digic6-dumper 13 February 2019, 08:35:09 UTC
e05fc57 DIGIC 7/8: use -march=armv7-a, thanks srsa https://www.magiclantern.fm/forum/index.php?topic=23296.msg211963#msg211963 12 February 2019, 20:27:17 UTC
3d7b43f DIGIC 7/8: updated comment about CPU type and Thumb-loaded binaries 11 February 2019, 11:05:53 UTC
6d2ae04 760D, 77D, 6D2: fix compilation; minor Makefile cleanups (will compile the reboot-dumper experiments, i.e. LED blinking) 11 February 2019, 10:52:37 UTC
03fc851 80D: minor cleanups - stubs: removed unused dm_set_store_level; updated comments for mpu_send/recv - Makefile: comments about RESTARTSTART 11 February 2019, 10:46:40 UTC
63593d6 80D: firmware signature for 1.0.2 11 February 2019, 10:32:07 UTC
52ba4f9 log-d6: only enable LOG_EARLY_STARTUP on 80D (this is to make sure the code works out of the box on other D6/7/8 models) 11 February 2019, 10:30:27 UTC
be94de3 5DS: moved experimental minimal.c into platform/5DS.111 and reverted changes to main minimal.c (to help with merging) 10 February 2019, 17:27:08 UTC
6248bac io_trace: log the entire MMIO range, including Omar/Zico communication https://www.magiclantern.fm/forum/index.php?topic=17360.msg211708#msg211708 09 February 2019, 17:41:58 UTC
ffbddc5 io-trace: log the Thumb bit alongside with PC One may now tell whether MMIO events were triggered by ARM or Thumb code. 05 February 2019, 18:34:35 UTC
e069b23 io_trace: also log LR for each MMIO event 04 February 2019, 19:46:05 UTC
1565e18 io_trace: restore LR when re-executing the original instruction Does it help with any of the tricky ranges? e.g. BFE00000/200000 or BFF00000/100000 04 February 2019, 19:04:42 UTC
2800598 io_trace: fix number of MMIO events reported (minor) 04 February 2019, 17:11:28 UTC
df2f774 log-d6: do not log MMIO events for our own timestamping code (slightly less noise in the logs) 01 February 2019, 21:43:33 UTC
b3b669f io_trace: fully working on 80D in QEMU! To merge the logs: cat MMIO.LOG DEBUGMSG.LOG | sort -n 01 February 2019, 21:28:18 UTC
4e69001 io_trace: minimalist DIGIC 6 port, with inline ARM/Thumb instruction re-execution Expected output: - on real hardware: - no crash, everything working as usual, including our logging code - no new information in the logs (yet) - in QEMU: - data abort exception for each MMIO event - every trapped instruction disassembled correctly, whether ARM/Thumb16/Thumb32 (printed as green) - code returning to next instruction (execution trace should be checked on 3 cases: ARM/Thumb16/Thumb32) - no crash, logs saved as before (i.e. no visible side effects) 01 February 2019, 18:34:26 UTC
8fe2e7b io_trace: minimalist DIGIC 6 port, for debugging Only one MMIO event will be captured. Compile with: make CONFIG_MMIO_TRACE=y Expected outcome: - on real hardware: no crash - in QEMU, with `CONFIG_QEMU=y`: ./run_canon_fw.sh 80D,firmware=boot=1 -d exec,io,int,v,autoexec |& grep -a -B 10 -A 50 'Data Abort' 0xfe0d32ec: 6800 ldr r0, [r0, #0] ; instruction attempting to perform MMIO FE0D32EC: Taking exception 4 [Data Abort] ; it could not be executed => data abort ...with DFSR 0xd DFAR 0xd4011000 ; it attempted to read register 0xd4011000 [...] 001CD568: MCR p15,0,Rd,cr6,cr2,0: RGNR <- 0x7 ; our code disables the memory protection 001CD56C: MCR p15,0,Rd,cr6,cr1,2: DRSR <- 0x0 ; so further MMIO operations will work [...] 0xfe0d32ed: 6800 ldr r0, [r0, #0] ; trapped instruction disassembled in QEMU (printed as green) [...] 0x001cd580: e25ef008 subs pc, lr, #8 ; our code attempting to retry the trapped instruction 0xfe0d32ec: 6800 ldr r0, [r0, #0] ; it matches the address where the data abort exception occured [INT] at init:FE0D32EC [0xD4011000] -> 0x1B ; the MMIO access went through [...] ; execution continues as if nothing happened 01 February 2019, 17:41:15 UTC
e7ec461 Imported io_trace code from 296fdfb. Doesn't compile. 01 February 2019, 17:03:04 UTC
f3d6b09 log-d6: fix some warnings 01 February 2019, 16:57:17 UTC
5c682d7 log-d6: attempt to use cacheable memory for logging buffer Expecting smaller overhead for the logging code. 31 January 2019, 16:17:09 UTC
fa9c354 Experiment - verbose startup logging on 80D Using hardcoded buffer address, as we don't have malloc during startup. https://www.magiclantern.fm/forum/index.php?topic=17360.msg211065#msg211065 31 January 2019, 15:58:57 UTC
68e9e3e Experiment - find unused memory areas on DIGIC 6 Usage: - compile with CONFIG_MARK_UNUSED_MEMORY_AT_STARTUP enabled in src/config-defines.h - the startup process will be slower than usual (it might even lock up) - during the LED blinks (about 1 minute), exercise the camera a bit (open Canon menu, enter LiveView, take a photo and record a short video clip) - after the LED finishes blinking, a log file will be saved, showing what memory areas might be available (with a resolution of 1 MiB) - the test can be easily adapted to other models (e.g. DIGIC 7/8) 27 January 2019, 22:17:14 UTC
a2ae53d CONFIG_MARK_UNUSED_MEMORY_AT_STARTUP: fixed compilation and updated for DIGIC 6/7/8 (it's slower than it should be on earlier models, but still functional) 27 January 2019, 20:51:06 UTC
040b333 log-d6: human-readable timestamps 27 January 2019, 17:46:26 UTC
9f30eb7 Merged in ccritix/magic-lantern-3-200d/ccritix/stubss-edited-online-with-bitbucket-1536901475678 (pull request #945) 09 December 2018, 13:35:42 UTC
6814bbc Close branch 09 December 2018, 13:33:52 UTC
73d1d2c 200D: file I/O stubs (passing stub_test_file_io from selftest.c) 09 December 2018, 13:29:57 UTC
a401da8 200D: keeping only stubs we are going to use; fixed Thumb bit 09 December 2018, 12:08:11 UTC
0961a72 200D: memory allocation stubs 09 December 2018, 11:18:18 UTC
4ae1c1f M50: dumper finally works if ROM contents is copied to RAM first (file I/O DMA apparently unable to read directly from ROM?) 08 December 2018, 21:10:43 UTC
7a083b6 M50: memory allocation stubs 08 December 2018, 11:20:03 UTC
9154298 M50: FIO stubs (not tested) 08 December 2018, 10:36:20 UTC
4245eb2 boot-d78: cache maintenance routines apparently expected to preserve R3 M50 boots! 07 December 2018, 23:28:20 UTC
7c8fa29 reboot.c: M50 (possibly others too) are loading FIR files on both CPU cores; since our startup core is not prepared for that, let's jump to main firmware on secondary cores 05 December 2018, 09:45:49 UTC
5c04c62 reboot-dumper.c: attempt to identify LED address on DIGIC 8 (for EOS R, based on M50 LED addresses; unsuccessful) 13 October 2018, 08:08:01 UTC
a4bfc0a reboot-dumper.c: polyglot startup code 13 October 2018, 08:15:36 UTC
03a2aa9 Several stubs found for 200D 14 September 2018, 05:05:10 UTC
5123b9d minimal-d6: updated LV RAW experiments 12 September 2018, 10:09:51 UTC
8d5610e 5D4: firmware signature for 1.0.4 12 September 2018, 10:08:21 UTC
a243e3f minimal-d6: 5D4 VRAM experiments 07 September 2018, 07:06:06 UTC
228b968 log-d6: option to toggle between early startup logging (without malloc) and extended logging (with malloc => larger logs possible) 07 September 2018, 06:32:47 UTC
ce72e67 minimal-d6: LED blink test 06 September 2018, 21:04:21 UTC
4ed0953 5D4: updated startup code and ported the 80D logging experiments 06 September 2018, 18:54:24 UTC
c981590 5D4: make sure it compiles reboot-dumper 06 September 2018, 17:29:05 UTC
6ec91e4 5D4: updated stubs; not tested yet 06 September 2018, 17:19:49 UTC
80ba4ff 5Ds: debug logging experiment 30 October 2017, 10:54:26 UTC
2bc8491 added slave dumping to minimal.c 23 September 2017, 18:51:10 UTC
e50531e 5Ds: added some more stubs 23 September 2017, 18:50:48 UTC
f1dd461 increase cache size assumpion to 16k for digic 6 11 September 2017, 23:21:46 UTC
28262cb 5Ds: can boot and load ML task 09 September 2017, 21:37:24 UTC
53398e7 5Ds: first steps, LED blink can be done 02 September 2017, 19:37:02 UTC
78d2a54 start 5Ds test branch 30 October 2017, 10:57:06 UTC
8032a5c installer: fix compilation 14 September 2017, 14:35:13 UTC
dbe0ba1 Merged in daniel_fort/magic-lantern/update-to-700D.115 (pull request #813) Update to 700D.115 14 September 2017, 16:06:34 UTC
e5be622 Dummy merge with dfort's unified 14 September 2017, 16:04:42 UTC
e5a9df6 700D, 6D, 7D: fix AbortEDmac 14 September 2017, 15:58:30 UTC
186d1d1 700D: fix AbortEDmac 14 September 2017, 15:54:32 UTC
22f70bf 700D: undo dialog_refresh_timer change in mlv_rec/mlv_lite (this address is the same in 1.1.4 and 1.1.5) 14 September 2017, 14:32:56 UTC
26f067a Update sf_dump module to 700D.115 13 September 2017, 23:02:05 UTC
9422848 Fixed is_taskid_valid stub. 12 September 2017, 04:32:21 UTC
e8280c3 Merged unified into update-to-700D.115 12 September 2017, 03:27:55 UTC
b92d89e Merged in daniel_fort/magic-lantern/unified_silent_module_fix (pull request #854) modify silent.c to work with commit f404e5f 11 September 2017, 20:39:10 UTC
f0c744b silent.c: there are no info bars in paused LiveView mode 11 September 2017, 20:15:08 UTC
261db01 Added minimal autoexec.bin for 700D 10 September 2017, 20:37:25 UTC
c7d3f89 TCC Makefile: fix minor typo 10 September 2017, 20:27:36 UTC
3f4b46e Merged unified into update-to-700D.115 10 September 2017, 20:21:37 UTC
b3760ce modify silent.c to work with commit f404e5f Raw backend: allow displaying raw previews without conflicting with LiveView info bars 10 September 2017, 18:43:38 UTC
0ae8464 Merged in raw_fixes (pull request #828) Raw fixes part 5 17 August 2017, 07:20:53 UTC
70f0882 Following on from Chris Miller's initial work, I have found so far 18 more stubs 21 July 2017, 01:39:43 UTC
42f6945 Merged unified into update-to-700D.115 02 July 2017, 14:57:34 UTC
b96d4b7 Incorporated pull request #842 to fix Autoexposure module 02 July 2017, 14:28:40 UTC
back to top