Hey, one reason I wanted to get the code out there
ASAP was to allow someone to do just that!
The bulk of the emulator lives in its own directory,
arch/mips/fpu_emulator, and the arch/mips/kernel/traps.c
hook is very simple. There are, however, hooks that
need to be put into context switch, kgdb, and signal support
code here and there, and these key off some enhancements
we made to the CPU configuration code (e.g., there is
a mips_cpu data structure with an options field that
indicates the presence or absence of an FPU at
runtime). In theory, the emulator is capable of executing
kernel FPU instructions and register register references
as well as those from user mode, but it's considerably
more efficient if the kernel knows to reference the simulator
state instead. The work to merge all this into the SGI 2.3.xx
tree should not be too daunting, but it's not something that
MIPS is likely to take on internally any time soon.
From: Bradley D. LaRonde <firstname.lastname@example.org>
To: Kevin D. Kissell <email@example.com>; firstname.lastname@example.org
<email@example.com>; firstname.lastname@example.org <email@example.com>
Date: Thursday, February 10, 2000 11:06 AM
Subject: Re: Enhanced 2.2.12 MIPS Kernel Sources Available
>RFC: What about geting the same FPU emulation into SGI's tree?
>----- Original Message -----
>From: "Kevin D. Kissell" <firstname.lastname@example.org>
>To: <email@example.com>; <firstname.lastname@example.org>
>Sent: Wednesday, February 09, 2000 5:27 PM
>Subject: Enhanced 2.2.12 MIPS Kernel Sources Available
>> As many of you will have inferred, MIPS Technologies Inc
>> has been working on the MIPS/Linux kernel for the past
>> six months or so, driven by the need for a flexible software
>> platform for valdiation and characterisation of new MIPS
>> processor designs. Relatively early on, we made the difficult
>> decision not to try to track the SGI Linux repository: It was
>> too unstable, and the SGI activity is driven by a very
>> different set of goals. We therefore took the 2.2.12
>> kernel sources from kernel.org, and worked from there.
>> I've shared some of our bug findings and fixes with
>> the SGI mailing list, and still more of them with Ralf
>> directly, but a lot of other changes and improvements
>> have been made that will certainly be of interest to readers
>> of this list, particularly those targeting non-SGI platforms.
>> This kernel supports the new generation of 32-bit MIPS
>> CPUs with R4K exception models. This involved fairly
>> extensive changes to semaphore support and to TLB
>> and cache management routines. We know it works on
>> the MIPS 4Kc, and with appropriate additions to the
>> table of recognized CPUs in the (revised) CPU probe
>> code, it should run on the IDT 323xx, and Toshiba TX49
>> processor families as well.
>> It includes an integrated FPU emulator that handles
>> the full MIPS FP instruction set, and allows FPU-less
>> CPUs to run standard MIPS/Linux binaries.
>> It contains a number of endianness fixes in the kernel
>> and driver code, and is very stable in both configurations.
>> It contains platform support for the Algorithmics P-5064
>> and MIPS "Atlas" development boards, as well as the
>> SGI Indy.
>> This code is NOT a supported product of MIPS
>> Technologies Inc. It is being made available on an
>> "as is" basis subject to the ususal GPL. It should be
>> accessible via anonymous (and blind) FTP for a while at
>> and is archived on the Paralogos MIPS/Linux web site at
>> http://www.paralogos.com/mipslinux/. We'd be very interested
>> in any feedback, experimental results, and enhancements
>> that any of you may wish to provide, and I will answer
>> email questions to the extent that my time allows.
>> Kevin K.
>> Kevin D. Kissell
>> MIPS Technologies European Architecture Lab
>> Tel. +220.127.116.11.70.67
>> FAX. +18.104.22.168.70.68