sort by:
Revision Author Date Message Commit Date
7d6c3a6 QEMU: various fixes regarding Thumb disassembly Quirk: if CPU is in ARM mode, the disassembler looks at the Thumb bit of the requested address. If CPU is in Thumb mode, the disassembler ignores the Thumb bit from the address, and always disassembles as Thumb. This inconsistency is also present in latest QEMU from git. Why? IDC scripts: comments containing disassembled Thumb code were updated (DIGIC 6/7/8 and 1300D). 09 April 2019, 13:10:37 UTC
4f25bd1 GDB scripts: removed NULL_STR definition from 5D4 (was breaking the tests; not required on this camera anyway) 09 April 2019, 08:26:34 UTC
eb5f552 QEMU logging: in icount mode, print instruction count for every single function call Instruction count is printed when returning from the function. Instructions executed by other tasks/interrupts (i.e. outside the tested function) are not included in the printed value. This feature is very useful for optimizing code. Example: -d debugmsg,calls -icount 5 08 April 2019, 17:42:00 UTC
d8083d6 QEMU logging: updated DryOS and VxWorks task switch handling It was quite hard to pass the test suite, as there were lots of edge cases: - context switch may happen either in a timer interrupt, or in a regular task (e.g. msleep, sempahores and so on) - context switch is not atomic - it happens a few instructions (or function calls!) afterh updating the current task pointer - until the registers are swapped for the new task, we are still on the stack of the previous task - there may be dummy task switches (i.e. from one task to the same task) - an interrupt can occur in the middle of a (non-atomic) context switch (!) - VxWorks models do not even use a unique task ID (!) Result: QEMU no longer crashes during logging tests! Issue: these cameras do not appear to use an unique task ID. Workaround: assign our own task IDs. 09 April 2019, 08:04:24 UTC
71c23de QEMU test suite: only use 2/3 of available CPU cores. It appears to improve the repeatability of results in some CPU- and IO-intensive tests. In other words, don't believe the Hyper-Threading hype :) 08 April 2019, 14:17:00 UTC
effcd7a QEMU logging: removed magic stack ID values for interrupt and invalid task 06 April 2019, 19:35:17 UTC
2ec8209 QEMU: refactored with eos_get_mem_w Before: uint32_t x; cpu_physical_memory_read(addr, &x, 4) After: uint32_t x = eos_get_mem_w(s, addr); Also, minor cleanups to eos_get_current_task_* (not expected to make a difference) 06 April 2019, 19:22:10 UTC
30c8823 qemu-fio: burn-in test for FindClose (FindFirst/FindClose/FindNext repeated many times) 27 March 2019, 09:47:47 UTC
1081787 qemu-fio: minimal test code for file I/O routines in QEMU Only FindFirst/FindNext test for now; others to be added later. Compile with e.g.: cd minimal/qemu-fio make MODEL=60D clean make MODEL=60D install_qemu CONFIG_QEMU=y FIXME: works on DIGIC 4/5, fails on DIGIC >= 6, not tested on DIGIC 2/3. 25 March 2019, 21:02:50 UTC
8896e73 QEMU tests: minor fix for HPTimer test (slightly faster, no longer times out) 25 March 2019, 21:06:13 UTC
0f433fb 5D4: sync debugmsg.gdb to the one from chris_overseas (a8bdfa9) 25 March 2019, 17:14:43 UTC
04fed83 QEMU: 32-bit DIGIC timer support (DIGIC 6 and newer) 05 March 2019, 14:22:32 UTC
d531c26 QEMU: updated emulation for 7D2 1.0.4 (ROM from real hardware; no longer using 80D bootloader). Some workarounds were required to emulate the bootloader. Communication between the two cores is not yet handled. 03 March 2019, 23:59:18 UTC
a9a9fbe QEMU: renamed 7D2M to 7D2 (slave core is still 7D2S) 04 March 2019, 09:37:30 UTC
cf601ef QEMU: updated tests for 5D 1.1.1 and 400D 1.1.1, both ROMs from real hardware (previously, it was a mix between an incomplete 5D firmware and 1000D bootloader) 04 March 2019, 09:34:36 UTC
e1f335e QEMU: imported scnprintf/vscnprintf from Linux kernel and fixed incorrect usage in previous code (adapted commit e8bb011b) 04 March 2019, 09:27:50 UTC
bca7890 QEMU: fixed indentation of multiline debug strings (-d debugmsg) 04 March 2019, 08:44:46 UTC
1a816d9 QEMU: fixed Thumb code disassembly with qdisas This used to work in earlier versions, but target_disas changed its syntax in 2.5.0. Useful for debugging io_trace on DIGIC 6 (with CONFIG_QEMU=y). 11 February 2019, 13:25:32 UTC
f8742e6 QEMU: fixed TCM size info (broken in df56963); simplified condition for 946_PRBS size info 04 March 2019, 09:31:07 UTC
a4c2f32 QEMU: better description for DRSR, useful for emulating io_trace on DIGIC 6: - enable bit (similar to PRBS on DIGIC 5 and earlier) - consistency check for base address and size (base address must be multiple of size - Cortex R4 TRM p.178) - subregion disable bits (if used) Useful for emulating io_trace. Note: QEMU already calls tlb_flush when writing to DRSR, DRBAR or DRACR. No need to apply e4fd44e on DIGIC 6. 11 February 2019, 13:25:32 UTC
3643ed5 QEMU: print PC when taking an exception 11 February 2019, 13:25:32 UTC
dce506b QEMU install: option to to keep or replace existing sd.img and cf.img, if any 03 March 2019, 14:51:40 UTC
eed1db3 QEMU install: always use qemu-eos as username 03 March 2019, 14:36:34 UTC
10624aa QEMU: updated SD/CF image with the latest portable display test (19f18f0 from recovery branch) 03 March 2019, 14:23:11 UTC
a8558f5 QEMU test suite: updated for latest ROM dumper - now working on all EOS models - always update to latest version - allow RESCUE.LOG alongside with the ROM dumps - report extra files on the SD card, if any 03 March 2019, 13:47:25 UTC
a71a983 QEMU: make sure all models have correct ROM sizes defined - do not allow ROM files with duplicate data - most models do not have ROM0; only define where it is actually used - ROM0/1, where present, should be defined with the right size (too low - won't boot; too high - will fail the duplication test) - test results: context changed in some models without ROM0 (noise from the ROM dump was sometimes pointing to strings in ROM1) https://www.magiclantern.fm/forum/index.php?topic=5601.msg212692#msg212692 03 March 2019, 12:19:52 UTC
7b64623 GDB scripts: workaround to prevent GDB from crashing on 5D It appears to be a bug in GDB, e.g. trying to access guest memory when setting a convenience variable. Reprogramming the MPU to allow memory access where GDB expects it appears to do the trick for now. 03 March 2019, 11:26:38 UTC
493e4ae GDB scripts: fixed CURRENT_ISR on A1100 03 March 2019, 10:47:21 UTC
cc87e4e QEMU: defined CURRENT_ISR on VxWorks models (5D, 40D, 400D, 450D, 1000D) The interrupt ID is only stored the stack, but the address appears to be repeatable for the first nesting level. Better than nothing. 03 March 2019, 10:47:21 UTC
9690f88 QEMU: fixed CURRENT_TASK for 5D (both GDB script and model_list.c) 03 March 2019, 10:47:21 UTC
bf93ccf QEMU: updated CURRENT_ISR for EOS M5; workaround for current_task_addr 03 March 2019, 08:07:42 UTC
e7516d7 GDB scripts: updated formatting of CURRENT_ISR on 200D, 800D, 77D, 6D2, 750D (non-functional) 03 March 2019, 07:47:01 UTC
543e4b4 GDB scripts: updated CURRENT_ISR for 100D and 1300D to use the latest hypothesis (right before the interrupt ID, there is a counter telling whether we are running from interrupt or not, on all models so far) 03 March 2019, 07:46:14 UTC
443606c MPU spells: fix possible buffer overflow when interpreting messages 03 March 2019, 07:20:58 UTC
a52530a QEMU test suite: use larger GUI timeouts for 70D, 1100D, 1200D, 1300D, EOSM and EOSM2, alongside 100D Fixes some intermittent failures in GUI tests, narrowed down to first button press being sent before starting Canon's GuiMainTask. 02 March 2019, 19:27:23 UTC
8dd7d36 QEMU test suite: minor fix (colors incorrect if QEMU was already running) 02 March 2019, 18:05:02 UTC
4a808d4 QEMU: experimental SD/CF clock tests (some DIGIC 3/4 models; working only in bootloader context; disabled by default) These were used to fix/test the portable ROM dumper on old models. FIXME: with these changes, main firmware does not boot, so they were disabled. 11 February 2019, 13:52:46 UTC
8ffb909 QEMU: log all unhandled MMIO events, even if they repeat (this "feature" interferes with debugging; was present since the first commit, in 2013) 11 February 2019, 13:46:07 UTC
2e732bd QEMU: fix overflow in eos_ml_helpers.c (qprintf) 15 January 2019, 13:27:36 UTC
3c3f71b QEMU: fixed shift warning in logging.c (found with UBSan) 06 January 2019, 22:09:12 UTC
f6f9845 QEMU: fixed shift warnings in disas.c (found with UBSan) 06 January 2019, 21:50:49 UTC
1b4e955 QEMU: fixed buffer overflow warning in serial_flash.c (found with ASan; not affecting well-behaved code) 06 January 2019, 21:50:22 UTC
4dc8909 QEMU: fixed underflow in logging.c (found with ASan) 06 January 2019, 19:41:26 UTC
eb7b7a9 QEMU: fixed underflow in debugmsg.c (found with ASan) 06 January 2019, 19:22:03 UTC
1f8178f QEMU: fixed shift warnings in logging.c (found with UBSan) 06 January 2019, 19:33:14 UTC
3598011 QEMU: fixed shift warnings in eos.c (found with UBSan) 06 January 2019, 19:07:52 UTC
549a974 QEMU: workaround for compiling with -fsanitize=undefined in digic.c (possibly gcc bug) 06 January 2019, 18:43:07 UTC
91e71be QEMU: imported https://github.com/qemu/qemu/commit/30628cb12de Fixes compilation with -fsanitize=undefined 06 January 2019, 18:29:47 UTC
d992965 QEMU: imported https://github.com/qemu/qemu/commit/9005774b27b Fixes crash with long GDB requests on Mac - https://www.magiclantern.fm/forum/index.php?topic=2864.msg210189#msg210189 06 January 2019, 17:20:28 UTC
d7f663d configure_eos.sh: fix passing arguments containing spaces 06 January 2019, 17:12:21 UTC
b52b772 QEMU: debug message for sd_blk_write, similar to sd_blk_read (not compiled by default; uncomment DEBUG_SD in sd.c to enable) 30 December 2018, 20:18:24 UTC
a242d7f QEMU: fixed some CPU ID registers to match CPUINFO logs on DIGIC 2..5 D5: https://www.magiclantern.fm/forum/index.php?topic=17714.msg170948#msg170948 (70D) D4: https://www.magiclantern.fm/forum/index.php?topic=17714.msg171742#msg171742 (1200D) D2/3: https://chdk.setepontos.com/index.php?topic=2139.0 (mostly identical to D4, except for slightly different MPU configurations) - removed the XSCALE hack to emulate DTCM/ITCM properly - using "arm946-eos5" to model the differences between DIGIC 5 and earlier models 30 December 2018, 19:01:59 UTC
ac62086 QEMU: fixed some CPU ID registers to match CPUINFO logs on DIGIC 6 and 7 - D6: https://www.magiclantern.fm/forum/index.php?topic=17714.0, https://www.magiclantern.fm/forum/index.php?topic=17360.msg202322#msg202322 - D7: https://www.magiclantern.fm/forum/index.php?topic=19737.msg200737#msg200737, https://chdk.setepontos.com/index.php?topic=13014.msg131109#msg131109 29 December 2018, 14:28:37 UTC
a05ba2e annotate_mpu_log: allow operation with button codes from another camera model 30 December 2018, 21:21:23 UTC
011801d annotate_mpu_log: also label unknown GUI events 18 December 2018, 16:37:58 UTC
8338908 QEMU: unified EOSM and EOSM2 button definitions Differences on previous definitions: - zoom events are internal; they should be enabled on both models - delete button should be checked in Canon menu with a MPU log, https://www.magiclantern.fm/forum/index.php?topic=2864.msg206275#msg206275 - no Av button 30 December 2018, 20:52:11 UTC
3fc6926 QEMU: unified 650D and 700D button definitions 30 December 2018, 20:39:06 UTC
a25c694 QEMU: removed rear scrollwheel emulation from Rebel models (they were auto-generated) 30 December 2018, 20:35:30 UTC
b3ab62d QEMU: GMT_GUICMD_CLOSE_SLOT_COVER, GMT_GUICMD_CLOSE_BATT_COVER, GMT_GUICMD_LOCK_ON (common to all models; definitions only for now) 28 December 2018, 20:49:39 UTC
1fa521e QEMU: comments for Q button on 60D, 600D, 1100D, 550D (600D/1100D use a different button code in LiveView; emulation is not fully correct) 22 December 2018, 18:28:44 UTC
1df2f88 QEMU: enabled old-style zoom button events for 5D3 and 6D (apparently still used internally, during GUI mode changes) 28 December 2018, 20:19:33 UTC
b14e69b QEMU: Delete button emulation for 1100D/1200D This button code appears to be used only in Canon menu. Outside menus, i.e. in photo mode and LiveView, it works as Av. This change allows one to toggle the low-level format option in Canon menu. 28 December 2018, 20:08:02 UTC
3d9f777 QEMU: fix RATE and PicStyle buttons for 5D3 06 October 2018, 18:42:23 UTC
98806d4 GDB scripts: log calls to named functions (useful for initial porting experiments; stubs for 5D3, 5D4, 80D, 200D) 28 December 2018, 17:53:46 UTC
f2a88e6 GDB scripts: misc cosmetic tweaks 28 December 2018, 17:14:37 UTC
42848f4 GDB scripts: silence all tbreak messages (with helpers to silence any other messages) 28 December 2018, 17:01:19 UTC
bbc9e0a GDB scripts: export state object definitions as Python code (useful to create state machine diagrams and other automated analysis) 28 December 2018, 16:55:54 UTC
5d1b6f9 GDB scripts: documented every single user command in debug-logging.gdb From GDB prompt, run "help user-defined" to see these commands. Also included a test to make sure no other undocumented commands will be added in future. 28 December 2018, 16:28:44 UTC
01b15a6 GDB scripts: xxd wrapper https://stackoverflow.com/questions/9233095/memory-dump-formatted-like-xxd-from-gdb 28 December 2018, 12:54:26 UTC
ee436b2 GDB scripts: ADTG/CMOS/ENGIO logging helpers (stubs for 60D and EOSM2) 28 December 2018, 11:51:51 UTC
2472cec GDB scripts: moved whitespace placeholder to a function; fixed alignment on multi-core models 28 December 2018, 11:25:12 UTC
2f77887 GDB scripts: updated register_func to handle model-specific quirks - D4 and newer: some functions are registered indirectly, using a wrapper - VxWorks models, except 400D: register_func takes only 2 arguments - fixed stub address on 77D and 5D3 113 - this change fixes auto-generated names (rather than naming the wrapper, it now identifies the right function) 28 December 2018, 11:20:55 UTC
10eca37 QEMU: CF bit in ClockEnable register 28 December 2018, 09:25:01 UTC
17b3bab backtrace: redirect debug messages to QEMU console, rather than discarding them 23 December 2018, 10:57:22 UTC
5145fce QEMU: fix handling replies of duplicate MPU messages (encountered in 80D, maybe others) 08 September 2018, 21:20:00 UTC
2aa8509 MPU spells: comment out photo capture from startup logs (affects 450D and 1000D) 11 September 2018, 07:18:22 UTC
11fdcd9 MPU spells: documented PROP_BOARD_TEMP and renamed PROP_AF_DURING_RECORD/PROP_MOVIE_REC_AF to PROP_SHUTTER_AF_DURING_RECORD 11 September 2018, 06:57:15 UTC
9f34a07 QEMU tests: retry screenshots if there apparently was a successful match followed by a (possibly transient) difference 11 September 2018, 10:39:54 UTC
c6b5269 QEMU tests: fixed some transient screenshots (optional double-checking code to autodetect them) 11 September 2018, 09:43:30 UTC
faf981a GDB scripts: register_cmd (for DryOS shell functions) Useful for naming a few more functions, but requires entering the DryOS shell to trigger them. Stubs for 5D3. 11 September 2018, 11:46:29 UTC
10b1d29 GDB scripts: make sure all EOS models have CreateStateObject defined (only test models with this string present in the ROM) 11 September 2018, 11:26:05 UTC
6d44714 GDB scripts: make sure all models have register_func (RegisterEventProcedure) defined Exception: Eeko. 11 September 2018, 11:22:25 UTC
88f9d72 QEMU: workaround for running GDB tests on 7D 10 September 2018, 21:48:03 UTC
d804445 QEMU: fix 7D LED assertion 10 September 2018, 21:47:21 UTC
07fc3c4 QEMU tests: fix race condition when checking GDB scripts (shared file) 10 September 2018, 21:30:05 UTC
4feddd1 GDB scripts: 800D comments, for consistency with other platforms 10 September 2018, 20:22:57 UTC
38ccfdb GDB scripts: print "(null)" in other places where string arguments might be optional 10 September 2018, 19:41:12 UTC
459d7de GDB scripts: 5D4 uses a new syntax for create_semaphore (name is the third argument) 10 September 2018, 18:44:08 UTC
58e47f2 QEMU: 5D4 emulation updated for firmware 1.1.2 - updated test results and GDB script - fixed serial flash read interrupt; file I/O working! 10 September 2018, 18:44:08 UTC
c5ba03c GDB scripts: print "(null)" for empty semaphore / message queue names (auto-search the ROM for this string constant, as otherwise we'd need to define a malloc symbol for each camera model) If the "(null)" string is not found in the firmware, the GDB tests will fail with timeout. 10 September 2018, 18:34:33 UTC
9cadffa QEMU: disabled eos_handle_rom MMIO handlers (unused, only triggered incorrectly on Eeko, where they caused a crash) 10 September 2018, 18:08:54 UTC
29f0ea7 GDB scripts: fix pausing prompt on short terminals 10 September 2018, 16:59:00 UTC
a2dca04 Removed some CONFIG_QEMU entries that are no longer needed - cache_hacks.h: these are now emulated reasonably well - 5D2: old leftover in gui.c 03 September 2018, 11:17:25 UTC
27835b9 Minimal targets: only compile subdirectories with a valid Makefile 21 August 2018, 06:44:18 UTC
cb9771e QEMU tests: FA_CaptureTestImage works on 1300D (prints "Image Power Failure", but the fix is not straightforward) 20 August 2018, 19:44:18 UTC
797c755 Makefile: when running "make install", copy ML-SETUP.FIR only for the generic profile (not for minimal or other targets) 11 August 2018, 11:36:57 UTC
7023627 Makefile: always check all minimal targets when running "make zip" (only check whether they compile without errors, just like with the installer) 11 August 2018, 12:06:13 UTC
9aa354e Minimal target: moved the Hello World example into its own directory and removed old platform folders 11 August 2018, 12:01:19 UTC
230f07b Minimal targets: 5D3 1.1.3 hacks no longer needed 11 August 2018, 06:34:58 UTC
d07068c GDB scripts: fix IDC names containing spaces 07 August 2018, 16:32:31 UTC
back to top