Linux MIPS Architecture development
 help / color / mirror / Atom feed
From: "Kevin D. Kissell" <kevink@mips.com>
To: "Pete Popov" <ppopov@mvista.com>, "Steve Johnson" <stevej@ridgerun.com>
Cc: <linux-mips@oss.sgi.com>
Subject: Re: floating point on Nevada cpu
Date: Fri, 26 Jan 2001 11:14:38 +0100	[thread overview]
Message-ID: <010601c08780$d0b8a7a0$0deca8c0@Ulysses> (raw)
In-Reply-To: 3A706A22.6B760617@mvista.com

> >     We had a problem in user-space apps all showing 0 for floating-point
> > results because we hadn't set the ST0_FR bit to 0, and we had a
mis-match
> > between user libraries (MIPS3k-compatible) and the floating point
registers.
> > We noticed the problem when we couldn't run "ps" or "rm" correctly and
tracked
> > it down from some old postings by Ralf and friends.  Maybe this is your
> > problem, too?
> >
> >     I added this to our setup call:
> >
> >     set_cp0_status(ST0_FR, 0);
>
> Problem solved before I finished my first cup of coffee. Thanks!
>
> I bet this problem will show up here and there depending on how the boot
> code sets cp0.  Seems like adding the above line in a mips generic init
> routine would be a good thing.

I had essentially the same problem at MIPS a year or two ago,
and I could have *sworn* that my fix, which ORed ST0_FR into
the initial Status register value set in the startup assembly code,
had made it into the standard distributions.  It's at about line 530
of head.S, where a term is added to make the instruction

li t1,~(ST0_CU1|ST0_CU2|ST0_CU3|ST0_KX|ST0_SX|ST0_FR)

I spent days thinking it was a mipsel library problem,
because it only turned up when I tried exercising a
little-endian version of the same kernel that worked
sell big-endian on the Indy.  But of course it was all
due to the mipsel system having a boot-prom that
cleverly enabled all the FP registers for me...

            Kevin K.

WARNING: multiple messages have this Message-ID (diff)
From: "Kevin D. Kissell" <kevink@mips.com>
To: Pete Popov <ppopov@mvista.com>, Steve Johnson <stevej@ridgerun.com>
Cc: linux-mips@oss.sgi.com
Subject: Re: floating point on Nevada cpu
Date: Fri, 26 Jan 2001 11:14:38 +0100	[thread overview]
Message-ID: <010601c08780$d0b8a7a0$0deca8c0@Ulysses> (raw)
Message-ID: <20010126101438.X3D1YCkdgGKTYFpFeCaSi9lXgrfusokzqOEdLQo_7_M@z> (raw)
In-Reply-To: 3A706A22.6B760617@mvista.com

> >     We had a problem in user-space apps all showing 0 for floating-point
> > results because we hadn't set the ST0_FR bit to 0, and we had a
mis-match
> > between user libraries (MIPS3k-compatible) and the floating point
registers.
> > We noticed the problem when we couldn't run "ps" or "rm" correctly and
tracked
> > it down from some old postings by Ralf and friends.  Maybe this is your
> > problem, too?
> >
> >     I added this to our setup call:
> >
> >     set_cp0_status(ST0_FR, 0);
>
> Problem solved before I finished my first cup of coffee. Thanks!
>
> I bet this problem will show up here and there depending on how the boot
> code sets cp0.  Seems like adding the above line in a mips generic init
> routine would be a good thing.

I had essentially the same problem at MIPS a year or two ago,
and I could have *sworn* that my fix, which ORed ST0_FR into
the initial Status register value set in the startup assembly code,
had made it into the standard distributions.  It's at about line 530
of head.S, where a term is added to make the instruction

li t1,~(ST0_CU1|ST0_CU2|ST0_CU3|ST0_KX|ST0_SX|ST0_FR)

I spent days thinking it was a mipsel library problem,
because it only turned up when I tried exercising a
little-endian version of the same kernel that worked
sell big-endian on the Indy.  But of course it was all
due to the mipsel system having a boot-prom that
cleverly enabled all the FP registers for me...

            Kevin K.

  reply	other threads:[~2001-01-26 10:11 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-01-25  2:28 floating point on Nevada cpu Pete Popov
2001-01-25  2:33 ` Justin Carlson
2001-01-25  2:52   ` Pete Popov
2001-01-25  2:57     ` Justin Carlson
2001-01-25  2:57       ` Justin Carlson
2001-01-25  3:05   ` Pete Popov
2001-01-25  3:16     ` Justin Carlson
2001-01-25 14:54       ` Steve Johnson
2001-01-25 18:02         ` Pete Popov
2001-01-26 10:14           ` Kevin D. Kissell [this message]
2001-01-26 10:14             ` Kevin D. Kissell
2001-01-26 13:01             ` Steve Johnson
2001-01-26 13:57               ` Kevin D. Kissell
2001-01-26 13:57                 ` Kevin D. Kissell
2001-01-27 19:16             ` Ralf Baechle
2001-01-27 19:16               ` Ralf Baechle
2001-01-25 17:26       ` Ralf Baechle
2001-01-25 20:01         ` Justin Carlson
2001-01-25 22:12 ` Ralf Baechle
2001-01-26  7:53   ` Carsten Langgaard
  -- strict thread matches above, loose matches on Subject: below --
2001-01-25 17:37 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='010601c08780$d0b8a7a0$0deca8c0@Ulysses' \
    --to=kevink@mips.com \
    --cc=linux-mips@oss.sgi.com \
    --cc=ppopov@mvista.com \
    --cc=stevej@ridgerun.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