On 06/12/2012 11:20 PM, Alexander Heide wrote: > 2) The CPU hangs just after activating the MMU in boot module. My > actual solution is to exclude the highest 256MB (from 0xf0000000 > to 0xffffffff) from mapping down to 0x70000000 to 0x7fffffff. Why is > it necessary to mirror user-address-space (lower 2GB) to > kernel-address-space (upper 2GB) __entirely__? At this point I do not > really understand how the CPU with enabled MMU should interact with > peripherals - on accessing any peripheral address (from 0xf0000000 > upwards) this will be translated into 0x700...something?
I think the problem could be that the boot module is not ready to access I/O peripherals at the high addresses. I suppose that when you added the early_putchar() function, you basically also added the need for a sort of non-identity mapping support. In the kernel itself, kernel non-identity mapping is supported. The boot module uses its own primitive page tables and I am afraid it has only been implemented in the most straightforward way without accessing I/O above 2G in mind. Btw, the kernel is supposed to run on these page tables for a short time before it installs its own and becomes fully operational. > So, i ran out of steam. Is here something wrong with MMU > initialization/activation sequence or similar? As Martin already noted, it is hard to say. It may be just not ready for ARMv5 or you introduced some problem by the initial page table changes. One thing which comes to mind is that on ARMv4, we maintain the exception table at the high virtual address 0xffff0000 (we don't want to map page 0 in the kernel). I don't remember if this is compatible with ARMv5 or not. Obviously you have had enough steam to get you pretty far in the process of porting HelenOS to a new ARM machine with a new architecture without ever asking for help on this list - I am impressed. > My code modifications can be posted when required -(approx. 10,000 > lines). Let us know if our suggestions were of any help. If not, we shall see what to do then. As always, I am curious about your motives to port HelenOS to a new ARM device. Can you share a little bit with us? Jakub _______________________________________________ HelenOS-devel mailing list [email protected] http://lists.modry.cz/cgi-bin/listinfo/helenos-devel
