Linux MIPS Architecture development
 help / color / mirror / Atom feed
From: Daniel Jacobowitz <dan@debian.org>
To: Ralf Baechle <ralf@oss.sgi.com>
Cc: linux-mips@oss.sgi.com
Subject: Re: Can't build a CONFIG_CPU_NEVADA kernel
Date: Wed, 14 Mar 2001 14:05:29 -0500	[thread overview]
Message-ID: <20010314140529.A29525@nevyn.them.org> (raw)
In-Reply-To: <20010314195919.A1911@bacchus.dhis.org>; from ralf@oss.sgi.com on Wed, Mar 14, 2001 at 07:59:19PM +0100

On Wed, Mar 14, 2001 at 07:59:19PM +0100, Ralf Baechle wrote:
> On Wed, Mar 14, 2001 at 08:46:33AM -0500, Daniel Jacobowitz wrote:
> 
> > I've been trying for a couple of days now to build a MIPS kernel with
> > CONFIG_CPU_NEVADA, and I can't get it to work.  r4k_switch.S produces a
> > pile of "opcode not supported by processor" errors.
> 
> Known and unsolved problem.

> >         cfc1    tmp,  fcr31;                    \
> >         sdc1    $f0,  (THREAD_FPU + 0x000)(thread); \
> >         sdc1    $f2,  (THREAD_FPU + 0x010)(thread); \
> > 
> > 
> > The sdc1 instruction in binutils is flagged like this:
> >       if (mips_cpu == CPU_R4650)
> >         {
> >           as_bad (_("opcode not supported on this processor"));
> >           return;
> >         }
> > 
> > And the IVR sets CONFIG_CPU_NEVADA, which produces
> > ifdef CONFIG_CPU_NEVADA
> > GCCFLAGS        += -mcpu=r8000 -mips2 -Wa,--trap -mmad
> > endif
> > 
> > and -mmad becomes -m4650 to the assembler.
> 
> Which is pretty much bs because mmad may have been introduced with the
> R4640 / R4650 but isn't only available on this processor.  From an ISA
> view it's a processor specific extension and as such it should be
> controlled by a separate option.  Gcc has -mmad which is fine but passing
> it on to as as -m4650 is borken.

OK, so that needs to change.  That's pretty easy to do, at least in our
local toolchains.

> > I worked back in time in gcc, binutils, and kernel sources and I
> > couldn't figure out what's changed - I'm sure this worked at some
> > point.
> 
> You'll have to go back far in time.  I introduced the use of -mmad for
> Nevada-class CPUs in late summor '97.
> 
> As a second bug which makes this one even more annoying something like
> 
> 	.set	mips3
> 	sdc1    $f2, (a0)
> 	.set	mips0
> 
> also doesn't work - the assembler will still throw an "opcode not supported
> on this processor" message.  After all MIPS III means double precission fp.
> And passing additional assembler options with -Wa,foo doesn't help either
> in this case so without the necessary gcc / assembler changes this
> optimization is lost for now.

Does -mmad make a sufficient difference on these processors to bother
fixing it?

If it does, I can probably whip up a -mmad patch to binutils to allow
those opcodes - or I could introduce -mnevada, or whatever the
appropriate term would be, to mean "r8000 with the mad* extensions". 
In fact, that would probably be easiest, and sounds like the most
correct.

-- 
Daniel Jacobowitz                           Debian GNU/Linux Developer
Monta Vista Software                              Debian Security Team
                         "I am croutons!"

  reply	other threads:[~2001-03-14 19:06 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-03-14 13:46 Can't build a CONFIG_CPU_NEVADA kernel Daniel Jacobowitz
2001-03-14 18:59 ` Ralf Baechle
2001-03-14 19:05   ` Daniel Jacobowitz [this message]
2001-03-14 19:20     ` Ralf Baechle
2001-03-14 19:48       ` Jun Sun
2001-03-14 20:02         ` Ralf Baechle
2001-03-14 20:56       ` Daniel Jacobowitz
2001-03-14 22:11       ` Kevin D. Kissell
2001-03-14 22:11         ` Kevin D. Kissell
2001-03-14 22:47         ` Kevin D. Kissell
2001-03-14 22:47           ` Kevin D. Kissell
2001-03-15  1:50           ` Pete Popov
2001-03-15  8:01             ` Kevin D. Kissell
2001-03-15  8:01               ` Kevin D. Kissell
2001-03-16 14:04         ` Ralf Baechle
2001-03-16 14:04           ` Ralf Baechle
2001-03-16 18:02           ` Daniel Jacobowitz
2001-03-16 18:16             ` Ralf Baechle
2001-03-16 18:46           ` Kevin D. Kissell
2001-03-16 18:46             ` Kevin D. Kissell
2001-03-16 19:35             ` Ralf Baechle
2001-03-16 19:35               ` Ralf Baechle
2001-03-16 15:34         ` Ralf Baechle
2001-03-16 15:34           ` Ralf Baechle

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20010314140529.A29525@nevyn.them.org \
    --to=dan@debian.org \
    --cc=linux-mips@oss.sgi.com \
    --cc=ralf@oss.sgi.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox