Hi Jean,
Although I have not looked at your code at all, the issue that you describe matches exactly the same issue which i encountered when porting my own project to the ARM / Raspberry Pi 2. In my case, the problem was that the processor boots initially in hypervisor mode, which has very limited MMU capabilities, which means all virtual addressing does not work in that mode, even if you configured it correctly in page tables. To discover this I had to look in the linux kernel boot code, because this behavior is not clearly documented anywhere. Take a look at this linux kernel source to see the example:
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/compressed/head.S
I spend more than a week debugging MMU code in qemu and hardware before i discovered this. I hope this helps save you time.
Regards,
Niek
So far I've got U-Boot loading and launching the kernel. The kernel hangs after trying to jump to kmain in high virtual addresses. The MMU is somehow not active even though it is enabled in SCR (System Control Register) ; I double-checked every single line of code, register and page entry against ARM reference documentation and dumped them over the UART to check their real values. It doesn't make any sense, especially since the same kernel runs well beyond pre_init() on QEMU's raspi2 emulation.
I decided to stop working on real hardware for the time being and work inside the emulator instead, since at least I can make progress with it.
--
You received this message because you are subscribed to the Google Groups "minix3" group.
To unsubscribe from this group and stop receiving emails from it, send an email to minix3+un...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
In my case, the problem was that the processor boots initially in hypervisor mode, which has very limited MMU capabilities, which means all virtual addressing does not work in that mode, even if you configured it correctly in page tables.
Now I have to find out why I end up with no runnable processes.
Now I have to find out why I end up with no runnable processes.I'm really curious about this... what was the issue?