This confused me for a bit but now I have got it all sorted out.
Any virtual address greater than 0x80000000 does NOT go through the TLB. So all you have to do in allock_pages is find an open slot in your coremap and return paddr + 0x80000000. No need to write into your TLB or any processes page tables.
Hope this clears up any confusion between User Mode virtual addresses and Kernel Mode virtual addresses
- FlounderingZ
According to mips/include/vm.h, there is a TLB mapping 0xc0000000 and beyond - so maybe 0x80000000 - 0xbfffffff don't go through the TLB?
ReplyDelete