> Ralf> For a long time noone of you DECstation people has posted.
> Ralf> What's the status? There are some people in switzerland
> Ralf> that are working on R3000 stuff which will be very usefull
> Ralf> for the DEC.
> Well, we hope so :-)
Not to forget R3000 Indigos ...
> A little status report: our working version of the kernel is now moderately
> usable on our R3052-based (R3000 instruction set) board.
> I made major changes to the TLB code , which is now horrendously unefficient,
> but seems to work. We also changed various spots throughout the mips-specific
> parts to make them R3000 compatible and endianness-independent.
Indeed, as written the code wasn't the right thing to fit the R3000.
> The trouble is: our version is based on version 1.3.98 of the kernel. We
> would now like to integrate kernel updates up to 2.0.max and make our
> R3000 adaptations available.
Luckily we're living in a time of code freeze, so this won't be that hard.
> I suggest that some assembly-language files (for example head.S) be splitted
> into R3000 and R4000 versions because they really become cluttered with
> conditional directives.
Yes, you're completly right. My plan was to put all the code dealing with
exception handling from head.S into mips[1-4]/. The parts of machine and
prozessor specific initialization that are in head.S should be rewritten
to C for maintainability and go into <arch/mips/<machine>/setup.c and
arch/mips/kernel/setup.c. What will finally be left in head.S is more or
less nothing but initializing a few CPU register.
> Besides, we really need to have shared library support.
I'm still debugging. GCC, binutils and the dynamic linker had bugs. The
bugs in GCC are gone and since two days I finally have a set of binutils
where all the annoying bugs like abort when striping most files are
gone also; the dynamic linker is getting more reliable also.
> Does anybody have any hints on how to do all this in the most efficient
> way (if there's one :-) ?
The shared library stuff is the easy part to do for you: nothing to do
because the minimal required support is already in the kernel and the
userland is completly o32 ABI/MIPS ISA I.
For the rest just send me a diff using options -urN. I assume that most
of you patches can easily be integrated; we can then talk about how to
integrate the rest of the patches. I'm not yet as swamped with patches
as Linus is, so this will probably pretty painless for you.