There is some ports done for armv6, armv7 and armv8. T ports I have found for the armv7 and armv8 are not complete.
They missing multitasking, and don't recover from a ilegal memory access done by user mode processes (the os just hangs).
Because of the above issues, the preempt (multitasking) test and the sbrk test (process memory grow) fail.
The preempt test is usually commented out so people just trying didn't notice the missing multitasking feature.
The sbrk test os just hangs after a data abort exception.
After some time reading the code, its a simple base code of unix, not many files, and making experiences I manage to put the multitasking working, and manage to do all tests without hanging the os.
But the sbrk test still not full complete, i just manage to kill the offending usr processes, the sbrktest child's and sbrktest, and the os continues running without crash or hang. But sbrktest dont run until the end of the code, its killed before.
In xv6 x86 in original code, the sbrktest its not killed, just the child's, and sbrktest continues running until the end of the code.
This different behavior is the main issue.
There are also some more tests implemented in xv6 x86 original code, that are missing in arm versions. The code is portable, but i don't know if these ones fail, need copy the code, compile and run, just to see.
The missing tests list.
So, i need help in my main issue, different behavior of the sbrktest
- the updated arm version, don't hangs and sbrktest don't full complete;
- the x86 version don't hangs and sbrktest full complete;
Code for real machine
Code for qemu vexpress-a15 (quick run for debugging) when problem its not related directly related with raspberry hardware pi devices.
I hope some one could help to get a proper working xv6 on armv7 world, to use in raspeberry pi 2 and 3.
if you have any questions feel free to ask.