On Wed, Jan 08, 2003 at 02:27:05PM +0100, Maciej W. Rozycki wrote:
> 32-bit R4k TLB flush functions use KSEG0 as an impossible (unmapped) VPN2
> value for invalidated TLB entries. 64-bit ones use KSEG0 as well, but
> here KSEG0 is a valid XKSEG (mapped) value as it gets interpreted as
> 0xc00000ff80000000 when written into cp0.EntryHi. The correct impossible
> (unmapped) VPN2 value for the 64-bit mode is XKPHYS.
That's a funny one. Historically the idea was to use KSEG0 because the
for KSEG0 the TLB is not used for translation. That already failed for
the Sibyte SB1 which is why we have to use different KSEG0 addresses for
each entry there.
> Here is a patch implementing it. The code runs fine on my R4400SC. OK
> to apply?
> BTW, show_tlb() (in the same file) is buggy and redundant --
> dump_tlb_all() is a correct equivalent. I'd like to remove show_tlb() --
Yes. I'd eventually like to move the tlb dump functions away from the
lib directory into the mm directory which seems to be more the right
place for them.