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