Re: R4000 end-of-page bug

"Stephen M. Rumble" <[email protected]> Thu, 5 Mar 2009 12:20:04 -0800
Newsgroups gmane.os.netbsd.ports.sgimips
Message-ID <[email protected]>
On Mar 5, 2009, at 11:55 AM, Frank Wille wrote:

> So I'm wondering if we have workarounds for all known R4000-bugs?  
> What about
> the "end-of-page" bug, for example? Does our gcc take care of it?  
> And I
> didn't see an -mfix-r4000 option in the Makefiles either, for the  
> other
> workarounds.

We don't have a workaround for the EOP bug. It should really be  
handled by the toolchain, but I don't think the gnu toolchain does (at  
least, it didn't a few years ago). It's probably very easy to solve  
for somebody familiar with that code, but that's definitely not me.

IRIX appears to work around it in the kernel by scanning potentially  
executable pages and wiring down the next page such that the 'not  
present in tlb' condition no longer holds. Of course, this has  
limitations if more than a handful of pages could trigger the bug. I'm  
pretty sure SGI fixed it in the toolchain and did this for backward  
compatibility.

Have you checked the dmesg to confirm that you're running a broken  
cpu? I think R4000's less than revision 2.2 have it.

As for other R4k bugs, I have no idea. I didn't think they were quite  
as nasty.

Steve