On Wed, 2002-01-30 at 16:23, Matthew Dharm wrote: > The errata, unfortunately, doen't say. > > It does say that the suggested workaround is to use the TLBP operation > to look for a matching but invalid entry, and then branch to the > invalid handler if necessary. > > It also says that the CP0 Cause, EPC, BadVaddr and ENHI will wold the > values for the dstream TLB exception. In other words, it's all set up > for the invalid exception, but it jumps to the refill exception > instead. Looking at the linux side a bit closer, I don't think this can ever hit us. All the MIPS variants (that I'm familiar with) only use invalid TLB entries to flush the TLB, and in that case they set up the entries to be in KSEG0. The only way to trigger an invalid TLB op, then, is to try to do a load from a proper range in KSEG0 after a flush; in that case the right thing for the processor to do not a TLB invalid exception anyways, as there is no TLB-based translation required. We'd still segfault and die as a user process, of course, since you can't touch KSEG0, but that's good and proper. Anyone else see another case that would be a problem for us? -Justin
Attachment:
pgp00139.pgp
Description: PGP signature