View source

The 100D_merge_fw101 branch has multiple heads

100D_merge_fw101 (ca46ef40a961)
  • Contributors
    1. Loading...
Author Commit Message Date Builds
4 commits behind unified.
Alex
100D: minor typo
Alex
Merged new-dryos-task-hooks into 100D_merge_fw101
Alex
tskmon: in null pointer check, retrieve last last task name directly, rather than calling is_taskid_valid also fixed some possible null pointer bugs in the... null pointer checking code (fixes crash when reporting null pointer on 100D and likely on all other cameras with new-style DryOS hooks)
nikfreak
100D: fix MAX_ISO_BV
Alex
Merged unified into 100D_merge_fw101
Alex
Merged in nikfreak/magic-lantern/100D_merge_fw101 (pull request #867) 100D merge fw101 update
Alex
Merged in Dannephoto/magic-lantern/100D_merge_fw101_SOUND (pull request #863) Fix for audio issues on eos 100D, possibly other cameras too. * Fix for audio issues on eos 100D, possibly other cameras too. http://www.magiclantern.fm/forum/index.php?topic=16040.msg190513#msg190513 Thanks too dfort for code. * Nikfreak found the correct stub http://www.magiclantern.fm/forum/index.php?topic=16040.msg190532#msg190532 Approved-by: nikfreak <mlnikfreak@gmail.com>
nikfreak
100D: AbortEDmac stub
nikfreak
100D: fix ADTG/CMOS_WRITE_FUNC
Alex
Merged unified into 100D_merge_fw101
nikfreak
adtg_gui.mo: fix 100D (tested, confirmed working)
nikfreak
fix wrong stub (thx @dfort for the note)
nikfreak
manual focus: allow moving focus box
Alex
100D: enabled CONFIG_TSKMON
Alex
100D: fix task_dispatch_hook
Alex
100D: enabled CONFIG_ALLOCATE_MEMORY_POOL and classic boot process (similar to 6D, reserved 592K at the beginning of AllocateMemory pool)
Alex
Merged new-dryos-task-hooks into 100D_merge_fw101 (note: 100D will not boot until fixing memory allocation)
Alex
6D: 592K reserved at the beginning of AllocateMemory (simpler code)
Alex
100D: enabled CONFIG_EDMAC_RAW_SLURP
Alex
Merged qemu into new-dryos-task-hooks
Alex
Merged unified into new-dryos-task-hooks
Alex
boot-hack: fix wrong comments (AllocateMemory != system memory)
Alex
Merged backtrace into qemu
Alex
GDB scripts: comment out DebugMsg (prefer -d debugmsg instead)
Alex
run_canon_fw.sh: identify DebugMsg from GDB script if not set (moved from run_tests.sh) also print command-line after clearing the screen
Alex
QEMU: GDB scripts for 50D and 6D
Alex
backtrace: moved sources to src/ to avoid symlinking (cross-platform issues) and let the install script figure it out
Alex
Merged backtrace into qemu
Alex
Merged unified into qemu
Alex
backtrace: brute force stack scanning as backup strategy (idea from g3gg0: gdb.c, gdb_get_callstack)
Alex
backtrace: fix BKT_RANDOM_BRANCHES experiment
Alex
backtrace: BX LR is never encountered during tests
Alex
backtrace: fix stack overflow
Alex
run_ml_all_cams: fix missing quote
Alex
QEMU logging: backtrace test script
Alex
run_ml_all_cams: prefer single quotes instead of \$ for options
Alex
run_ml_all_cams: allow full customization of log file name
Alex
Stack traces for crash and assert logs, using the backtrace backend
Alex
Updated backtrace.c to work on the camera as well (same source file for both QEMU and ML)
Alex
arm-mcr.h: fixed read_lr (not sure what the problem was) and added read_sp
Alex
QEMU logging: experimental stack trace routine (backtrace) that does not require prior instrumentation it attempts to walk the stack, emulating instructions that change LR, SP, function returns and tail calls some more experiments and self-tests are available as compile-time options this method can be adapted to run on the camera as well
Alex
run_ml_all_cams: fix copying zip to SD/CF image
Alex
QEMU logging: fix assertion when printing callstack from interrupts on Thumb code
Alex
QEMU logging: save/restore callstack exec state for each DryOS task when handling interrupts This fixes calls/returns that were missed if an interrupt happened exactly before the jump (non-deterministic issue; was fairly rare and not obvious)
Alex
QEMU logging: indent now public (eos_indent); larger buffer
Alex
QEMU logging: CALL_LOCATION for eos_callstack_get_caller_param; fix CALL_DEPTH
Alex
QEMU logging: overriding LR no longer needed in call_stack_push
Alex
run_ml_all_cams: fix copying zip to SD/CF image
Alex
QEMU logging: do not report jumps from tight loops otherwise, some loops would print a huge amount of jumps (unnecessary) these would slow down certain tests a lot, e.g. 5D3 callstack on fromutility
Alex
QEMU logging: record direct jumps to function calls (many such calls in DIGIC 6)
Alex
QEMU logging: log task switches before other items otherwise, consistency errors may appear - see test_callstack.py minor differences in VxWorks tests
Alex
QEMU: ignore CBZ (on Thumb-2 code)
Alex
run_ml_all_cams: use multi-line QEMU_SCRIPT's (nicer formatting)
Alex
run_ml_all_cams: fix BOOT=0
Alex
run_ml_all_cams: fix ML_PLATFORMS when not specified
Alex
QEMU: 650D GUI
Alex
QEMU: 650D GUI (including tests)
Alex
QEMU: 1300D updates - SD interrupts (DCIM test passed) - HDMI status (minor) - GDB script updated for latest firmware - patch JPCORE (fixes assert)
Alex
QEMU tests: removed MENU_CAMS (all GUI_CAMS are now able to browse Canon menu)
Alex
QEMU: 70D menu tests (format test not working)
Alex
QEMU tests: only print ROMCPY messages before the first interrupt
Alex
QEMU: options for run_ml_all_cams.sh to compile and run a given set of ML platforms, from any HG changeset
Alex
QEMU: updated splitgdb.sh as discussed on EOS M2 thread http://www.magiclantern.fm/forum/index.php?topic=15895.msg186245#msg186245
Alex
QEMU: flush after qprintn, so the output will appear right away
Alex
QEMU logging: handle %c with -debugmsg
Alex
QEMU logging: minor fixes for -d autoexec
Alex
QEMU: updated 5D4 GDB script and tests for 1.0.4
Alex
QEMU logging: workaround to handle some missing return from interrupts (updated 600D and 1100D unique function tests - they differ by one function)
Alex
QEMU: EOS M2 tests + patches.gdb
Alex
Alex
Merged in daniel_fort/magic-lantern/qemu-EOSM2-wip_1 (pull request #835) QEMU EOSM2 preliminary setup.
Daniel Fort
Updates to debugmsg.gdb
Daniel Fort
Found correct values by checking against 1.0.2 firmware.
Daniel Fort
I’m pretty sure “set *(int*)0xFF356DE8 = 0xe12fff1e” is wrong but everything else should be good.
Daniel Fort
Added EOSM2 to mph.c
Daniel Fort
Updated EOSM2 debugmsg.gdb file.
Daniel Fort
Added EOSM2.h file, copied from 100D.
Daniel Fort
Copied button codes from 100D to EOSM2.
Daniel Fort
Added EOSM2 in supported cameras list.
Daniel Fort
Added mpu registers to EOSM2 in model_list.c
Daniel Fort
Merged qemu into qemu-EOSM2-wip-1
Daniel Fort
Merged latest qemu commits
Daniel Fort
Merged in qemu commits
Daniel Fort
Daniel Fort
EOSM2 preliminary setup.
Alex
Merged in daniel_fort/magic-lantern/qemu-build-tweaks-2 (pull request #836) Qemu build tweaks 2 Approved-by: Daniel Fort <dan@digiola.com>
Daniel Fort
-s option not needed with uname.
Daniel Fort
Check for mounted EOS_DIGITAL disk image handled differently on OS X.
Daniel Fort
Merged qemu into qemu-build-tweaks-2
Daniel Fort
Merged qemu into qemu to prevent multiple heads.
Daniel Fort
Changed shebang for portability. Missed these two scripts in my last pull request.
Daniel Fort
OS X doesn’t require root permissions to mount disk image.
Daniel Fort
Use hdiutil on OS X systems.
Daniel Fort
Merged in daniel_fort/magic-lantern/qemu-build-tweaks-1 (pull request #834)
Alex
QEMU: updated reference data for sorted IDC tests on some models (100D, 700D, EOSM, 5D)
Alex
QEMU: 80D patches.gdb (required to run the stack trace check on a DIGIC 6 model with DryOS task switches)
Alex
QEMU logging: fix some rarely missed jumps (usually in return from interrupt)
Alex
QEMU logging: fix Thumb PC in call stack traces (for DIGIC 6)
Alex
QEMU test suite: check callstack consistency (whether verbose stack trace matches the call/return trace) (also checks context info, such as current task or interrupt)
Alex
QEMU: do not log UART messages when it's redirected to a file (-serial file:out.log)
Alex
QEMU: with -d calls, always align location information (insert a newline on very long lines) (updated tests)
Alex
QEMU: also log interrupt ID when using -d calls
Alex
QEMU: use verbose stack trace for DebugMsg and GDB scripts (each call on its own line - much more readable) to get callstack for every single DebugMsg, use "-d debugmsg,callstack,v" or, for GDB scripts: "-d callstack -s -S" for QEMU, "macro define PRINT_CALLSTACK 1" in the GDB script, without quotes)
Alex
QEMU: option to log DebugMsg calls natively, without GDB scripts (much faster; very similar to nkls' initial implementation)
Alex
QEMU: redirect the monitor console to qemu.monitor unix socket (to restore the old behavior, run with -monitor vc)
Alex
Merged in daniel_fort/magic-lantern/qemu-build-tweaks-1 (pull request #834) (fixes for building QEMU on Mac) QEMU build tweaks 1 Approved-by: Daniel Fort <dan@digiola.com>
Daniel Fort
Merged in latest qemu commits
Alex
QEMU: parameterized MPU spells for PROP_CARDn_STATUS; updated WriteProtect handling on most DIGIC 4/5 models (otherwise, these GUIs would show the card write-protected dialog)
Alex
QEMU: use timestamps to decide the relationship between MPU spells (only messages received shortly after a mpu_send call should be considered replies)
Alex
QEMU: warning about duplicate MPU spells (they will show where the communication may depend on state)
Alex
QEMU: include a description for each input MPU spell (updated extract_init_spells.py with definitions for some known spells)
Daniel Fort
Suppress printing an error message if the command isn’t found.
Daniel Fort
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.
Alex
QEMU: parameterized MPU spells for UILock and NotifyGUIEVent
Alex
QEMU: parameterized MPU spells (experimental)
Alex
QEMU: incomplete half-shutter emulation (fixme: it should show the metering indicator or close menus/dialogs)
Alex
QEMU: menu navigation works on 5D3 1.1.3
Alex
QEMU logging: minor cleanups
Alex
QEMU logging: moved ABI checking in its own routine (minor refactor)
Alex
QEMU logging: moved -tasks in its own routine (much faster) note: task switching locations differ on VxWorks models after this change (they are approximate anyway)
Alex
QEMU logging: option to enable verbosity only when autoexec.bin is loaded (useful for new ports; bootloader can be very verbose with certain logging settings)
Alex
QEMU: exposed callstack to GDB and ML guest code based on nkls' first implementation of DebugMsg helper assert in gdb scripts now always prints the call stack
Alex
GDB scrips: task switch logging helper (pure GDB)
Alex
QEMU logging: stronger test for ML stubs (fixes some non-function symbols that appear when compiling ML with -ggdb)
Alex
Experimental debug info in magiclantern elf file it allows mapping from code address to source line (example: eu-addr2line -s -S -e magiclantern 0x50d60) it should not end up in autoexec.bin or affect it in any way
Alex
QEMU logging: attempt to guess strings and named functions in call/return trace (adapted from dm-spy-experiments) (self-test results updated)
Alex
qemu-util now always available (in dryos.h) (these functions are only compiled with CONFIG_QEMU=y; otherwise they are just type-checked and optimized out)
Alex
boot-hack: fix boot with CONFIG_QEMU on some models (qprintf/vsnprintf reboots the camera because it's not yet initialized) also added a safeguard to prevent such mistakes
Alex
QEMU test suite: fix PowerShot tests using wrong debugmsg.gdb
Alex
QEMU logging: fix copy/paste error in ROM block autodetection
Alex
QEMU logging: explicit option to show task switches (rather than hijacking callstack)
Alex
QEMU test suite: list memory blocks copied from ROM during bootloader tests (both EOS and PowerShot firmwares)
Alex
QEMU logging: allow ROM block copying in arbitrary increments, up to 128-bit mixing memory access sizes is allowed too the 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 copying 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 but copying 16 bytes f/t offset 0, 4 bytes f/t 0x14 and then 4 bytes f/t 0x10 will…
Alex
QEMU logging: experimental option for finding memory blocks copied from ROM to RAM (only 32-bit sequential copies for now)
Alex
QEMU logging: fix memory logging selection in complex cases e.g. romr,ramw should only log ROM reads and RAM writes in simple cases (such as just romr or just ramw), hooks are installed only for the selected operation (read or write) in these cases, additional checks will be redundant however, with complex cases such as romr,ramw, hooks are installed for all reads and and all writes so we can no longer rely on the hooks (being installed or not) for filteri…
Alex
QEMU logging: fix task info on Eeko
Alex
QEMU logging: quiet some jumps that are not function calls (frequently used on Thumb-2)
Alex
QEMU: fix CSS in HTML logs from subdirectories
Alex
QEMU scripts: allow loading symbols from any ML target (e.g. minimal, installer)
Alex
QEMU: .current_task_addr for most models (where it was already known - copied from ML stubs or from debugmsg.gdb)
Alex
QEMU logging: experimental task switch detection (DIGIC 2-6)
Alex
QEMU logging: attempt to fix a rare crash when returning from interrupt
Alex
QEMU logging: fix VxWorks return from interrupt; refactored interrupt detection on DIGIC 6
Alex
QEMU test suite: fix call/return trace logs being trimmed way before the first interrupt (the deterministic part is usually much larger than previously covered)
Alex
QEMU test suite: also report nested interrupts
Alex
QEMU: fix minor regression in DIGIC 6 bootloader (introduced in 7f1ba92; some tests changed)
Alex
QEMU logging: minor rename
Alex
QEMU test suite: workaround for the non-determinism in the sorted IDC test (retry up to 5 times until it succeeds)
Alex
QEMU test suite: more tests for call/return trace and IDC scripts (including Thumb, interrupts, secondary cores) Not all models are passing.
Alex
QEMU: fix cache lockdown printf's (they should go to stderr)
Alex
QEMU: fix handling UART interrupts with serial redirected
Alex
QEMU: fine-tuned verbsity of various components (interrupts, digic timer, DMA, serial flash, CFATA)
Alex
QEMU logging: fix call identification on Thumb (eeko)
Alex
QEMU logging: fix crash on 5D3 eeko
Alex
QEMU: changed REG_PRINT_NUM so it no longer includes a newline; updated boot-hack and fixed regression in boot-check logs
Alex
QEMU: warn on ROM size mismatch
Alex
QEMU run_canon_fw.sh: clear screen on each run
Alex
QEMU logging: experimental symbol name loading from ML object files example (bash): . ./export_ml_syms.sh 500D.111; ./run_canon_fw.sh 500D,firmware="boot=1" ... fixme: QEMU elf loader patched in a not very clean way
Alex
QEMU logging: simplified function call detection a bit more (results should be unchanged)
Alex
QEMU logging: always guess function arguments located on the stack (-d calls now implies -d ramr)
Alex
QEMU logging: explicit option to export to IDC (-d idc)
Alex
QEMU logging: check R4-R11 and SP when returning from function calls (all registers now stored on the call stack)
Alex
QEMU logging: in IDC comments, record task name when available and drop prev_sp
Alex
QEMU logging: basic test for IDC (function list only) (useful when formatting changes)
Alex
QEMU test suite: nicer way to interrupt our background QEMU process
Alex
QEMU logging: simplified function call detection (results should be unchanged)
Alex
QEMU logging: indent callstack locations at 80 chars indent amount configurable at compile time tests updated
Alex
QEMU: 1300D current_task_addr
Alex
QEMU: initial GDB script for 1300D; display test
Alex
QEMU: initial support for Mac and clang in install scripts (to be tested)
Alex
QEMU: fix compiling with clang
Alex
QEMU test suite: removed basic GUI test (redundant)
Alex
QEMU test suite: tests for callstack and call/return trace
Alex
QEMU: disable gray noise that appeared until GUI initialization (faster)
Alex
QEMU logging: minor callstack speed optimization
Alex
QEMU logging: in call/return trace, print caller (from call stack) instead of raw LR
Alex
QEMU logging: callstack speed optimization
Alex
QEMU logging: fix handling nested interrupts in callstack
Alex
QEMU logging: initial call stack support for Thumb-2 (DIGIC 6)
Alex
QEMU logging: attempt to guess additional function arguments from RAM tracing (use -d calls,ram to enable this)
Alex
QEMU logging: print first 4 arguments and return value for all function calls (with -d calls)
Alex
QEMU: get stack limits of current DryOS task and print them on the call stack new API: eos_get_current_task_stack
Alex
QEMU logging: API for retrieving various parameters from the call stack (SP, stack frame size, call depth, function arguments) note: R0-R3 stored on the call stack API name: eos_callstack_get_caller_param
Alex
QEMU logging: fine-tune options; auto-enable dependencies
Alex
QEMU: indent memcheck and io_log messages according to call depth new API: eos_callstack_get_indent
Alex
QEMU memcheck: fix line wrapping in verbose messages about multitasked free calls (minor; visible with -d memchk,v)
Alex
QEMU logging: generic print_location; refactored memcheck to use it (eos_print_location)
Alex
QEMU logging: simple call stack printing API, used in memcheck when reporting errors (eos_callstack_print)
Alex
QEMU logging: experimental call stack reconstruction ideas from https://github.com/panda-re/panda/blob/master/panda/plugins/callstack_instr/USAGE.md fixme: requires -d calls,nochain -singlestep new APIs: eos_get_current_task_id, eos_callstack_indent
Alex
QEMU logging: refactored to split IDC and call logic
Alex
QEMU memcheck: split exec hook into components (malloc and memcpy for now; non-functional change)
Alex
QEMU memcheck: refactored with CPU env (easier to get register values; non-functional)
Alex
QEMU memcheck: refactored malloc list with a data structure (non-functional)
Alex
QEMU memcheck: identify blocks affected by heap errors (messages similar to valgrind)
Alex
QEMU memcheck: fix memcpy handling (do not copy allocation flags, only initialization; fix copying from ROM)
Alex
QEMU: AbortEDmac emulation
Alex
QEMU: basic model of EDMAC transfer delay
Alex
QEMU: gui/menu tests for 5D2 and 50D
Alex
QEMU: force line-buffered output for our messages
Alex
QEMU: a few more assertions for memcheck
Alex
QEMU: fix card formatting on 50D and 5D2; menu tests for 5D2
Alex
QEMU: fix CURRENT_CPU outside MMIO handlers (defaults to cpu0; fixes CF routines crashing when used with -d memchk) (may need to be changed for EOS M5, when its time comes)
Alex
QEMU: updated 5D2 MPU spells, thanks Ilia. Menu works! http://www.magiclantern.fm/forum/index.php?topic=9852.msg184191#msg184191
Alex
QEMU: GDB script for 5D2
Alex
QEMU: 50D menu navigation tests
Alex
QEMU: 50D menu navigation works!
Alex
QEMU: 50D button codes
Alex
QEMU: fix 50D CFATA and HDMI; GUI boots!
Alex
QEMU: 50D MPU spells, thanks jrm21 http://www.magiclantern.fm/forum/index.php?topic=9852.msg184191#msg184191
Alex
QEMU: minor speed optimization in serial_flash
Alex
QEMU: speed up test suite (large delays no longer needed)
Alex
QEMU: CFDMA write works on 5D2 (DCIM test passed!)
Alex
QEMU: fix CFDMA on 5D2 (only read works)
Alex
QEMU: made MPU/SF/SD/CF logging macros generic (in eos.h) -d sdcf for logging SD/CF messages
Alex
QEMU: configurable resolution for digic timer
Alex
QEMU: updated tests for faster card formatting (BUSY dialog no longer caught)
Alex
QEMU: trigger SDIO interrupt on errors as well (fixes semaphore timeout after CMD1; to be tested for side effects)
Alex
mpu: refactored verbosity; most messages now hidden by default (-d mpu or -d mpu,verbose or -d io,mpu etc to show them)
Alex
serial_flash: refactored verbosity; most messages now hidden by default (-d sflash shows them)
Alex
QEMU: fix memory logging on models with serial flash
Alex
QEMU: minor fixes in scripts
Alex
QEMU memcheck: fix printf's (should go to stderr)
Alex
QEMU memcheck: get ML stubs from environment variables
Alex
QEMU memchk: experimental TCM checking (catches even more null pointer bugs)
Alex
QEMU memchk: moved stubs in a data structure, for easier porting
Alex
QEMU: highly experimental memory checking tool (-d memchk) (stubs hardcoded for 500D)
Alex
Memory logging: fine-tuned messages
Alex
QEMU: moved our memory logging routines to logging.c
Alex
QEMU: moved our calls logging hook to separate file; preparing to add more tools
Alex
QEMU: hook called when execution a TranslationBlock (todo: move the hardcoded analysis tools from cpu-exec)
Alex
QEMU: use 64 bits for qemu_loglevel; renumbered and defined some more options for future use
Alex
QEMU: output all our messages to stderr (should fix colors getting mixed up)
Alex
QEMU: use macros for ANSI colors
Alex
QEMU: minor fix in UILock.h (todo: parameterized MPU messages)
Alex
QEMU: compile with code coverage (gcov); helper script for lcov
Alex
QEMU test suite: updated portable ROM dumper link; added 1300D
Alex
QEMU: log DMA memory accesses as well; self-test to make sure all writes are logged (the test works by rebuilding a second copy of the RAM from the write trace, and comparing with QEMU's copy)
Alex
QEMU: experimental logging of guest memory accesses (LDR/STR, RAM or ROM) didn't call it "memory tracing" as it doesn't use QEMU tracing API removed old TRACE_MEM code
Alex
QEMU: fix apparently random lock-up (interrupts no longer triggering, for no apparent reason) (bug introduced in 24909946bb90)
Alex
QEMU: fix io_log crash on get_current_task_name (to reproduce: 450D with -d io)
Alex
QEMU: experimental MPU support for 1300D (it seems to work, to some extent, but we need a startup log from a real camera to get further)
Alex
QEMU: flash model ID for 1300D (fixes startup assertion)
Alex
QEMU: initial support for 1300D, thanks adamnock
Alex
QEMU: model ROM as ROM device, rather than RAM (writes are allowed and logged)
Alex
QEMU: support for multiple firmware versions (e.g. 5D3 1.1.3 and 1.2.3) example: ./run_canon_fw.sh 5D3,firmware="113;boot=0"
Alex
QEMU: minor fixes for helper scripts
Alex
QEMU: allow arbitrary targets in run_ml_all_cams.sh (e.g. minimal); small fixes
Alex
QEMU: minor fixes for helper scripts
Alex
QEMU: save HTML logs to subdirectory
Alex
QEMU: helper scripts for automated tests on all ML cameras
491 commits not shown.