Started 4 yr 9 mo ago
Took 12 min

Success Build #556 - 70D.112 (Mar 7, 2019 12:54:22 PM)

magiclantern-Nightly.2018Dec24.70D112.zip
7 passed, 2 failed.
Build Artifacts
Changes
  1. QEMU: imported scnprintf/vscnprintf from Linux kernel and fixed incorrect usage in previous code
    (adapted commit e8bb011b) (detail / hgweb)
  2. QEMU: fixed indentation of multiline debug strings (-d debugmsg) (detail / hgweb)
  3. 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). (detail / hgweb)
  4. QEMU: fixed TCM size info (broken in df56963);
    simplified condition for 946_PRBS size info (detail / hgweb)
  5. 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. (detail / hgweb)
  6. QEMU: print PC when taking an exception (detail / hgweb)
  7. QEMU install: option to to keep or replace existing sd.img and cf.img, if any (detail / hgweb)
  8. QEMU install: always use qemu-eos as username (detail / hgweb)
  9. QEMU: updated SD/CF image with the latest portable display test
    (19f18f0 from recovery branch) (detail / hgweb)
  10. 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 (detail / hgweb)
  11. 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 (detail / hgweb)
  12. 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. (detail / hgweb)
  13. GDB scripts: fixed CURRENT_ISR on A1100 (detail / hgweb)
  14. 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. (detail / hgweb)
  15. QEMU: fixed CURRENT_TASK for 5D (both GDB script and model_list.c) (detail / hgweb)
  16. QEMU: updated CURRENT_ISR for EOS M5; workaround for current_task_addr (detail / hgweb)
  17. GDB scripts: updated formatting of CURRENT_ISR on 200D, 800D, 77D, 6D2, 750D
    (non-functional) (detail / hgweb)
  18. 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) (detail / hgweb)
  19. MPU spells: fix possible buffer overflow when interpreting messages (detail / hgweb)
  20. 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. (detail / hgweb)
  21. QEMU test suite: minor fix
    (colors incorrect if QEMU was already running) (detail / hgweb)
  22. 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. (detail / hgweb)
  23. QEMU: log all unhandled MMIO events, even if they repeat
    (this "feature" interferes with debugging; was present since the first commit, in 2013) (detail / hgweb)
  24. QEMU: fix overflow in eos_ml_helpers.c (qprintf) (detail / hgweb)
  25. QEMU: fixed shift warning in logging.c
    (found with UBSan) (detail / hgweb)
  26. QEMU: fixed shift warnings in disas.c
    (found with UBSan) (detail / hgweb)
  27. QEMU: fixed buffer overflow warning in serial_flash.c
    (found with ASan; not affecting well-behaved code) (detail / hgweb)
  28. QEMU: fixed underflow in logging.c
    (found with ASan) (detail / hgweb)
  29. QEMU: fixed underflow in debugmsg.c
    (found with ASan) (detail / hgweb)
  30. QEMU: fixed shift warnings in logging.c
    (found with UBSan) (detail / hgweb)
  31. QEMU: fixed shift warnings in eos.c
    (found with UBSan) (detail / hgweb)
  32. QEMU: workaround for compiling with -fsanitize=undefined in digic.c
    (possibly gcc bug) (detail / hgweb)
  33. QEMU: imported https://github.com/qemu/qemu/commit/30628cb12de

    Fixes compilation with -fsanitize=undefined (detail / hgweb)
  34. 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 (detail / hgweb)
  35. configure_eos.sh: fix passing arguments containing spaces (detail / hgweb)
  36. QEMU: debug message for sd_blk_write, similar to sd_blk_read
    (not compiled by default; uncomment DEBUG_SD in sd.c to enable) (detail / hgweb)
  37. 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 (detail / hgweb)
  38. 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 (detail / hgweb)
  39. annotate_mpu_log: allow operation with button codes from another camera model (detail / hgweb)
  40. annotate_mpu_log: also label unknown GUI events (detail / hgweb)
  41. 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 (detail / hgweb)
  42. QEMU: unified 650D and 700D button definitions (detail / hgweb)
  43. QEMU: removed rear scrollwheel emulation from Rebel models
    (they were auto-generated) (detail / hgweb)
  44. QEMU: GMT_GUICMD_CLOSE_SLOT_COVER, GMT_GUICMD_CLOSE_BATT_COVER, GMT_GUICMD_LOCK_ON
    (common to all models; definitions only for now) (detail / hgweb)
  45. QEMU: comments for Q button on 60D, 600D, 1100D, 550D
    (600D/1100D use a different button code in LiveView; emulation is not fully correct) (detail / hgweb)
  46. QEMU: enabled old-style zoom button events for 5D3 and 6D
    (apparently still used internally, during GUI mode changes) (detail / hgweb)
  47. 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. (detail / hgweb)
  48. QEMU: fix RATE and PicStyle buttons for 5D3 (detail / hgweb)
  49. GDB scripts: log calls to named functions
    (useful for initial porting experiments; stubs for 5D3, 5D4, 80D, 200D) (detail / hgweb)
  50. GDB scripts: misc cosmetic tweaks (detail / hgweb)
  51. GDB scripts: silence all tbreak messages
    (with helpers to silence any other messages) (detail / hgweb)
  52. GDB scripts: export state object definitions as Python code
    (useful to create state machine diagrams and other automated analysis) (detail / hgweb)
  53. 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. (detail / hgweb)
  54. GDB scripts: xxd wrapper
    https://stackoverflow.com/questions/9233095/memory-dump-formatted-like-xxd-from-gdb (detail / hgweb)
  55. GDB scripts: ADTG/CMOS/ENGIO logging helpers
    (stubs for 60D and EOSM2) (detail / hgweb)
  56. GDB scripts: moved whitespace placeholder to a function; fixed alignment on multi-core models (detail / hgweb)
  57. 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) (detail / hgweb)
  58. QEMU: CF bit in ClockEnable register (detail / hgweb)
  59. backtrace: redirect debug messages to QEMU console, rather than discarding them (detail / hgweb)

Started by user Alex

Revision: 22b8a70f76872c666248bec3870921e6f6c8bf99

Upstream Builds