Subject: Re: FP emulation patch available

From: "Kevin D. Kissell" <[email-masked]>
Date: Sun, 12 Mar 2000 22:52:00 +0100

>After some minor patches it works fine on an R3000A (tested on a DECstation
>5000/133 with 2.3.47) but my Mobilon (R3912) still bombs out horribly.
>Unfortunately there is no fully functional serial driver for the R3912 yet so
>all I am able to tell is that this box crashes so badly that even the CPU
>internal LCD controller is going wild.
>
>Either there are more differences between an R3000 and an R3900 core as
>I am aware of (quite likely), or this may have something to do with the fact
that
>the R3912 definately has no FPU.

The R3900 is quite different in a number of details from the R3900A.
It has a different ISA (MIPS II+ instead of MIPS I), a different pipeline
and a different CP0 implementation.  And the R3912 has its rather
peculiar set of on-chip peripherals with, if memory serves, a somewhat
obnoxious memory map. Do you have a set of documentation for the
R3912?  I do, but I don't know when I will have time to check it against
the R3000 Linux code.

>Kevin, please forgive me this question, but has the Linux integration of
>the FPU emulation code been tested on MIPS CPUs without FPU?

Yes.  Of course.  What kind of amateur fire-and-forget hacker do you take
me for?!! ;-)   Specifically, we've run it on the MIPS 4Kc core.  Both big and
little endian.  We also ran it on R4400 Indys and R5260 Algorithmics platforms
with the FPUs disabled in software.  I'm not saying that it's perfect - I know
it cannot be - but the emulator does not get invoked until very late in the
boot process, just before init fires up, so if you're dieing early on, whatever
it is, it ain't the emulator, and it isn't the lack of FP.  Even without an
emulator, the 2.2.12 kernel will get as far as trying to run init on an FPU-less
machine.

            Regards,

            Kevin K.

---

From: Harald Koerfgen <[email-masked]>
Date: Mon, 13 Mar 2000 23:22:42 +0100 (MET)

> R3912?  I do, but I don't know when I will have time to check it against

Yes, I have documentation for the R3912. In fact, if I am allowed to say
this, I wrote most of the R3000 and all of the R3912 code so far in Linux 8)
 
> me for?!! ;-)   Specifically, we've run it on the MIPS 4Kc core.  Both big
> and little endian.  We also ran it on R4400 Indys and R5260 Algorithmics
> platforms with the FPUs disabled in software. 

That's exactly what I am wondering about. Does it make a difference for the
emulator if the CPU has an FPU (disabled, obviously) or not?

Personally, I don't have any idea why the emulator works perfectly on an R3000
but not on an R3912.

> I'm not saying that it's perfect - I know it cannot be - but the emulator
> does not get invoked until very late in the boot process, just before init
> fires up, so if you're dieing early on, whatever it is, it ain't the
> emulator, and it isn't the lack of FP.  Even without an emulator, the
> 2.2.12 kernel will get as far as trying to run init on an FPU-less
> machine.

Oh I see, I should have made myself more clear. I have a root filesystem on a
CF card based on declinuxroot (a cut down RedHat 5.1) and my Mobilon boots all
the way through to the login prompt if I delete the fsck from the initscripts.

Booting into single user mode I can easily verify that tools like df or e2fsck
are bombing out with floating point exeptions. My "tests" with the emulator
have been so far: Does df survive? What does fsck do? and things like that.
Well, with the emulator all these tools make the Mobilon crash. Hard. So hard
that even the reset button doesn't work.

Anyway, it looks like we will going to have a fully functional serial driver
soon and that should make debugging somewhat easier.

-- 
Regards,
Harald