Quoting "Erik J. Green" <erik@greendragon.org>: > How can this work in the existing head.S for a mapped kernel? Wouldn't other > machines have the same problem, where the location for kernelsp is within the > non-writeable segment? > And a followup to my followup: =) Later in the boot, in tlb-andes.c, the andes_tlb_init function re-sets CP0_wired to 0 (and pagemask to 4k), then the local_flush_tlb_all function overwrites the TLB entry for the kernel, causing an immediate halt to things. Am I correct in thinking the 16M page size initally set up in head.S (with CONFIG_MAPPED_KERNEL=1) was so the mapped kernel could get to the point of setting up the TLB "for real" later on? If so, how is the switch to 4k pages supposed to work? I can see the existing code working if local_tlb_flush_all is running out of unmapped memory, but in my case I would think the "starter" TLB entry would need to be preserved until a replacement is created. Thanks again, Erik -- Erik J. Green erik@greendragon.org