[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: help needed to get XFree86 4.1.0 working on MIPS



On Thu, Jul 19, 2001 at 03:38:44AM -0400, Christopher C. Chimelis wrote:
> 
> On Thu, 19 Jul 2001, Stephen Frost wrote:
> 
> > > Ryan Murray reported to me that a 4.1 compile on mips fails.
> > 
> > 	This is an update to this issue.
> > 
> > 	After adding another parameter to RANGE ('0' for pci domain) and
> > 	attempting to compile I ran into a few other problems.  First
> > 	off, write_mem_barrier was undefined under MIPS.  After looking
> > 	at some other archs I went ahead and defined it for MIPS as:
> > 
> > #define write_mem_barrier /* NOP */
> 
> Double-check your arch manual.  At least on alpha, we have a memory
> barrier instruction that's not a nop (and alpha is similar to mips in some
> ways, so I'd verify that).  I have an R4400 manual around here
> somewhere...if I get time, I'll look for it and look it up as well.
This is what the kernel does for non write-back-caches:
#define mb()						\
 __asm__ __volatile__(					\
	"# prevent instructions being moved around\n\t"	\
	".set\tnoreorder\n\t"				\
	"# 8 nops to fool the R4400 pipeline\n\t"	\
	"nop;nop;nop;nop;nop;nop;nop;nop\n\t"		\
	".set\treorder"					\
	: /* no output */				\
	: /* no input */				\
	: "memory")
 #define rmb() mb()
 #define wmb() mb()
So IMHO this is the way to go for non wb cpus. For wb cpus the kernel
flushes the caches, but calls this "overly paranoid" anyway.
 -- Guido



Reply to: