On Mon, Feb 01, 2010 at 02:50:27PM +0000, Maciej W. Rozycki wrote: > > Write a value with all bits set to c0_entryhi, then read it back again. > > The set bits in the VPN2 bitfield will indicate the size of the virtual > > address range supported. The MIPS64 documentation also calls this value > > SEGBITS. The nice thing about this probe is that it is supported for > > all 64-bit MIPS processors except the R8000 which has an entirely different > > TLB scheme anyway. > > > > Similarly it is possible to probe the physical address range in either > > c0_entrylo0 or c0_entrylo1. This is also of interest on 32-bit processors. > > Indeed -- IIRC the architecture spec calls this value PABITS. I wasn't > sure about the legacy processors -- if that works with them too, then it's > even better. The probing method was undocumented until MIPS64 but if you look at the format of the EntryLo register it's always been possible. The R10000 needs special treatment though - it has the UC (Uncache Attribute) field in the bits 62..63 of EntryLo; this field needs to be ignored. Ralf