[SunRescue] SPARCsystem 600MP needs an OS

James Lockwood lockwood at ISI.EDU
Sun Sep 5 00:46:20 CDT 1999


On Sat, 4 Sep 1999, Chris Sterling wrote:

> CPU #0 and CPU #2? both 60Mhz. Better than I expected... I got netbsd's
> miniroot to boot off a CD (though I cannot get it to do anything useful)
> according to the kernel messges, it's got a pair of 312MB drives. 

Dual SM61's then.  Those 312MB drives are probably Seagate/Imprimis/CDC
327's, they were the drives originally shipped with 4/330's.  You will
have a much easier time of it if you can install larger or faster drives,
those are slow by modern standards and a full OS installation will take up
both of them with little room to spare.

This will be a very nice machine when you get everything running, each
SM61 is comparable in speed to a 110MHz Sparc 5.  Together you have more
aggregate processing power than nearly any single-CPU pre-Ultra.

> I really don't have any use for the VME stuff. I've got Solaris 2.6 (5/98)
> on CD. Is there anywhere I can get a cheap copy of 2.5.1? 

Not sure.  I may have an extra copy but you should probably patch 2.6
instead.

> I've got other machines that could netboot this beast, Linux(x86) or
> Solaris 2.5.1(sparcbook 3GX) and 2.6(SS2). 
> 
> So, basicly I could patch the kernel on my SS2 running 2.6, and then
> netboot the beast from there?  Cool. Where do I start? 

First step: build an install server on one of the other systems, it
doesn't matter which.  This is documented in the Solaris manuals, but
basically you use the scripts in the "Tools" subdirectory of your 2.6
install CD to copy the files to your local drive and then run
add_install_client with the parameters for the SS600 (ethernet address, IP
address, hostname, architecture).  The SS600 is sun4m.

Next, try to netboot the SS600.  It should give you the exact same
"unsupported" message that you got before.  This is to sanity-check the
netboot installation.

Next, go into the root directory of the netboot image.  cd into
platform/sun4m/kernel in the netboot area (not relative to your root
directory) and run the following:

% echo "startup,500?ai" | adb unix |grep ss600
startup+0x6fc:  call    iam_ss600

(this address is from Solaris 7, you will get a different offset for 2.6)
Next use this address for the next instruction:

% echo "startup+0x6fc,10?ai" | adb unix
startup+0x6fc:
startup+0x6fc:  call    iam_ss600
startup+0x700:  nop
startup+0x704:  orcc    %g0, %o0, %g0
startup+0x708:  be      startup+0x724
startup+0x70c:  nop
startup+0x710:  sethi   %hi(0xf007bc00), %l0
startup+0x714:  call    startup+0x714
startup+0x718:  add     %l0, 0x1fc, %o0
startup+0x71c:  call    halt
startup+0x720:  clr     %o0
startup+0x724:  call    param_init
startup+0x728:  sethi   %hi(0x0), %l0
startup+0x72c:  ld      [%l0], %l0
startup+0x730:  cmp     %l0, 0x0
startup+0x734:  sethi   %hi(0xf025e000), %l0
startup+0x738:  be      startup+0x74c

Your output may look slightly different.  The key is the "call halt"
instruction, here at startup+0x71c.  Now we go for broke:

% adb -w unix
startup+0x71c?ai
startup+0x71c:
startup+0x71c:  call    halt
startup+0x71c?W 1000000
startup+0x71c:  0x7fffe945      =       0x1000000
startup+0x71c?ai
startup+0x71c:
startup+0x71c:  nop
$q

adb -w opens unix for writing.  The ?ai commands are to sanity check that
we're in the right place, the ?W command writes a nop into that location. 

Next step, netboot the SS600 and see if it boots into the install program.
It should and you should start the install process with your parameters,
but we're not out of the woods yet.  Tell it _not_ to reboot after
installation.

The kernel that is installed is not the same one as the one we modified.
After the installation is complete, go into /a/platform/sun4m/kernel and
repeat the previous steps.  The offset should be the same, but
double-check just in case.  After this, do a clean reboot and it should
come up with your patched kernel.  You will probably need to repeat this
procedure after every kernel patch, which is why it's nice to have a
patched netboot server handy, this makes it easy to recover if you forgot
to patch the new kernel before a reboot.

> Thanks man. I really appreciate the help! 

Glad to help.  The SS600 is my favorite vintage SPARC (followed by either
the 4/300 or SS2).

-James







More information about the rescue mailing list