reticulatedpines / magiclantern_simplified

A Git based version of Magic Lantern, for those unwilling or unable to work using Mercurial. The vast majority of branches have been removed, with those thought to be important brought in individually and merged.
GNU General Public License v2.0
142 stars 47 forks source link

850D with MMU remap enabled crashes LV #106

Closed reticulatedpines closed 8 months ago

reticulatedpines commented 1 year ago

850D MMU code works (tested locally, repo has the patch disabled in mmu_patches.h). However, even with no patch enabled (possibly only with? Haven't yet tested with enabled), attempting to enter LV immediately fails and hangs the cam, with a crash log created.

Two logs so far observed:

ASSERT: nullptr
at MainFrame::ConcurrentFlow.c:421, **INT-1Bh**:e058906f
lv:1 mode:1

Or:

ASSERT: nullptr
at AutoExposure::EosAE_MainState.c:2497, EosAE:227290b
lv:1 mode:1

Possibly this relates to kitor's problems with MMU builds on EVF cams, LV probably gets automatically started.

reticulatedpines commented 8 months ago

This might be related to a mistake I made with the raw vs shifted version of cpu ID, used with send_software_interrupt(). This is probably meaning cpu1 is never woken up. If it's running AE stuff then this might fit the symptoms.

reticulatedpines commented 8 months ago

The culprit was more simple. Moving MMU tables inside magiclantern.bin fixed it, so presumably LV uses the "safe" regions previously chosen for 850D, making MMU unit fault when the tables got trashed.