Port-mips archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: __atomic_test_and_set() and mips o32 - help wanted
Hi Simon,
> > Just trap and emulate LL/SC in the kernel for user software; it's trivial
> > for UP and lets software benefit from actual machine instructions when run
> > on newer hardware (which is the vast majority nowadays).
>
> Heh, very simple solution... and we already emulate ll/sc!
Great! So all you need is to strap GCC for producing these instructions
in gcc/config.gcc, by setting `with_llsc=yes' for your target triplets of
interest (you can still override it at the command line at GCC invocation
if you need that for any reason). See the existing pattern there.
You may have to do some juggling with the configuration of the libraries,
but I suspect that'll be enough for GCC to avoid emitting libcalls for any
atomic operations missing otherwise.
> > NB it's the 58x0 that's SMP; the 5400 along with 5500 are ordinary UP
> > Q-bus boxes and you can actually swap the CPU modules between them.
>
> That'll teach me for not double checking. I've never seen a 58x0 (or a
> 5400), but I still for some reason have four 5500's in my garage.
Nice! Make sure you've got any NVRAM batteries removed if you keep the
boxes in storage as they'll leak and cause corrosion to creep down the
connecting wires. Also there might be electrolytic capacitor leaks in the
PSU.
I've got only one 5500 in my lab; conversely it's been fully operational
with its PSU partially recapped so as to avoid electrolyte leaks and for
several years now it's been permanently wired for remote control in terms
of both the power supply and the console, and obviously on Ethernet too.
Sadly too much other stuff has prevented me from progressing with this
project, but I'll get back to it sometime. Long-term I plan to wire it to
my FDDI ring as well.
You can't actually tell a 5400 and 5500 apart unless you look at the
internals (of course the badge *might* be correct too, but who knows).
As I recall as many as three standard Q-bus boxes were supported to house
either system. You could swap the CPU module for a VAX 4000 model 200
too. I actually have the latter one too next to my 5500 and saving for
the badges the're identical from the outside, housed in a BA430 enclosure
each.
FWIW I've never seen a 58x0 either.
Maciej
Home |
Main Index |
Thread Index |
Old Index