Hi, I should have posted something about this a while ago, but since starting a new job I haven’t had time to really dig into it properly like I had wanted to, so some of this might be inaccurate.
I found that at some point my Earthsea would start to freeze up either on boot or later, and since I had a debug header hooked up and working for testing MIDI stuff (thanks @ngwese!) I was able to do some debugging. It seems like interrupt B08 will sometimes start firing rapidly for no reason. I could be wrong, but it appears that the corresponding pin is not actually hooked up to anything at all.
I think the reason that freezing started happening is due to this change: https://github.com/monome/libavr32/commit/c38e268c22cc4c6740b1c8acd75c8407dd77d79e#diff-7399776b352924d1597912b88aee31cc - The change added posting the pin’s value to the events system, and on my Earthsea this happens too fast and causes the event queue to blow up sometimes, causing freezing.
My solution was to disable hooking up interrupt B08 (and B09 since the event handler seems unused on Earthsea) in the first place. Perhaps a flag on register_interrupts() in init_trilogy.c that Earthsea’s main() can set would work here.
Now, there might also be a separate freezing issue if the problem started in 1.8 as that change came into Earthsea in the commit right after the one tagged 1.8.