> : I know this is not difficult code, but if you want some code for this,
> : look in decstation.S... you may also want to create a deskstation.S
> : and use a link script as I have done for the DEC, rather than have
> : this kind of machine-specific code appear in head.S
> I rather hoped that all ARC BIOS machines would copy down the
> interrupt hanlders and load at KSEG0 + 1M. I really don't want to
> create a link script, but I'll take a look at the stuff to make sure
> that this is what I really want. :-) I certainly will do it in such a
> way that it won't break the DECstation.
> A stated goal early on was to have one kernel that could boot on all
> of the supported machines. I don't know if we can hit that goal with
> all of the machines, but I rather hoped the ARC BIOS based machines
> would be cool with that. I'd rather not branch off the deskstation to
> that large degree, since it is bascially the same as the other
> machines once a few sillinesses have been eliminated. And yes, the
> current code needs to be cleaned up by me so that some of the sillier
> ifdefs go away...
At some point we might have to code a more flexible loading system anyway.
ARC systems only guarantee to have 4k (or was it even less) of memory at
physical address 0x0; the rest of their memory might as well be at some
different address. When we want to have a universal kernel for all R4000
machines we'll have to write a real ELF loader anyway.
I'm currently tweaking the R4000 stuff from mips2 to mips3/mips4 to build a new
execution model for user mode stuff. R3000 binaries (all the currently
distributed user stuff) will run unchanged but using 64 bit CPU features will
be possible; some disabled code in the kernel can be reenabled and other code
can run again with interrupts enabled.