[GSoC 2014 : ARM Port] Week #16
Hello everyone!
Here's a quick update for week 16. I didn't have internet access over the past few days due to a technical issue with my ISP and hence the delayed report.
TL;DR – The patch to prevent the kernel from overwriting the loader was merged last week. The next issues that need to be tackled are the KDL faulting when printing the backtrace and fixing an assertion that fails when initializing virtual memory.
Over the last week, the patch to prevent the kernel from overwriting the loader was merged into the Haiku source tree. Booting now proceeds until a double spinlock acquire occurs, which causes a KDL. Additionally, the kernel debugger also faults when printing the backtrace because the termination condition to stop retrieving the next stack frame is incorrect. x86 uses debug_memcpy in get_next_frame to determine if the next frame is accessible but using that in ARM causes a faulty memory access in memcpy(I guess the fault handler isn't work properly). Also, using debug_memcpy might not be the right solution since frames from before the kernel _start will be displayed(which aren't valid any longer). For now, I worked around this by checking that the frame pointer of current frame and previous frame do not differ by greater than 0x100000.
I believe that the double spinlock issue has been solved(thanks for the help pdziepak!) and hopefully the patch will be merged soon unless it's felt a better solution is required. Now, the fault is when asserting a particular condition when initializing virtual memory.
dnivra's blog
- [GSoC 2014 : ARM Port] Final report
- [GSoC 2014 : ARM Port] Week #16
- [GSoC 2014 : ARM Port] Week #15
- [GSoC 2014 : ARM Port] Week #14
- [GSoC 2014 : ARM Port] Week #12
- [GSoC 2014 : ARM Port] Week #11
- [GSoC 2014 : ARM Port] Week #10 (mid term update)
- [GSoC 2014 : ARM Port] Week #8
- [GSoC 2014 : ARM Port] Week #7
- [GSoC 2014: ARM Port] Week #6