On Wed, Aug 07, 2002 at 04:04:16PM +0100, Stewart Brodie wrote:
> linux_2_4 branch question: In config-shared.in, and previously in config.in,
> whether or not the CPU has prefetch instructions seems to be dependent only
> on whether CONFIG_MIPS32 is y. However, this causes our kernel builds to die
> when compiling memcpy.S because the compiler is objecting to the pref/prefx
> instructions. The gcc 2.96 compiler options we are using are -mtune=r4600
> and -mips2.
> Is it simply the case that the processors on all the boards supported in the
> MIPS builds all support prefetch? At the moment, I've just put a specific
> check in for our particular processor to stop CONFIG_CPU_HAS_PREFETCH from
> being set to y and that stops the problem. In earlier (2.4.17 pre-release)
> kernels, whether or not to define PREF/PREFX as pref/prefx or the empty
> string was determined on a stricter set of criteria based around actual CPU
> types rather than a blanket check on being a 32-bit MIPS.
The MIPS32 architecture specifies a prefetch instruction. So it's correct
(though not necessarily alway the most efficient thing) to assume your
system has this instruction available. The compiler option -mips2 which
you're specifying however tells the tools that you do not have that
instruction, so is wrong.