Drew Eckhardt bubbles:
> Speaking of kernel development for the MIPS : we need to start a discussion
> on how to best make the kernel sources multi-architecture, so that one
> release of Linux runs on MIPS, Intel, and Motorola platforms.
I've already started this. I have the root source dir. Under it is
common/ with everything that's machine independant (filesystems, most
syscalls, etc). There's another tree with cpu/arch, eg, i386/isa,
m68k/common, m68k/amiga, mips/common, mips/riscy, mips/idt and so on.
Currently I have a i386/isa with all the obviously intel specific stuff
in it (most things with __asm__(), dma, interrupt device drivers and so
on), and common with everything else. It almost compiles, but I haven't
upgraded it to pl11. Once it compiles, I want to try and move some
of the more gratuitous dependancies into portable code (like the asm()
in printf for doing a divide).
The include dir is also split, with the machine dependant stuff being
looked at before the common. Of course, common code will include machine
dependancies from headers.
I think the port should avoid unnecessary changes to linux itself - it
should be a port and nothing more. That doesn't exclude architecture
specific optimisations, but they are not necessary for the initial port.
Once its done, then other changes can happen. This means that there
should be as much shared code as possible (which is why each cpu has a
common directory). Also, the port will be for little endian mips, and
the tlb stuff will look like the intel mmu, because its easy to do so,
and there's no efficiency problems from doing so. Using this approach
there can be a maximum of sharing with the intel linux.
I'm mostly interested in coordinating the initial port; that is getting
core of linux running on a mips chip. I think it should be done by a very
small number of people in close communication, with a strong direction.
After that, it's easy to get more people working at once on porting device
drivers, essential usermode stuff (libraries), and so on. From there,
it's everyone go.
I'd like to get a mips platform to start porting with before any hardware
is built, so there is something solid to start with -- there's little
enough time to make this compeditive as it is.
> The AMIGA people didn't bother to do this, so they need a different
> kernel distribution and can never take advantage of new features
> when they're added.
Yes, I was dissapointed by this. The whole port looked a quite hackish.
It wasn't even very useful to find out where they had found intel
specific stuff, because they didn't localize it but just replaced it
with Moto things. But it does work, I gather, and that's a start.
Perhaps when we have a good multi-architecture tree the moto stuff will
slot in easily. I notice that they are trying to make it work on the
Amiga, ST and Mac.