NeXTCube Backplane Hack
NeXTCube Backplane Hack
As a preface to this, I wanted to mention that I've done this very thing,
but was unable to setup the '030 board to bootp off of the '040 board.
Perhaps this is has something to do with my particularly old '030 boot ROM?
Any suggestions? If so, please email
me.
Other than that, this worked great for me!
This is taken from the Peanuts Archive,
specifically:
http://peanuts.leo.org/faq-serve/cache/187.html
-Brendan
68030 board in the same NeXTcube as a 68040 board?
DISCLAIMER: THE FOLLOWING PROCEDURE IS NOT SUPPORTED BY NEXT, INC. AND
WILL DEFINITELY VOID THE WARRANTY ON YOUR NEXT COMPUTER. FOLLOW IT AT
YOUR OWN RISK. I DISCLAIM ALL RESPONSIBILITIES FOR DAMAGES CAUSED BY
NEGLIGENCE IN FOLLOWING THE PROCEDURE. THERE IS NO GUARANTEE THAT THE
PROCEDURE WILL WORK ON ALL VERSIONS(?) OF THE NEXT CUBE HARDWARE. ALL I
KNOW IS THAT IT WORKED ON THE NEXT CUBE I WAS WORKING ON!!!! SO BEWARE.
Here we go! I'll first provide a description of the hardware I was using
and comment on what I accomplished and how I got the information on how
to do it!
The hardware included a NeXT cube with 660 MB drive, OD, etc., a 68040
upgrade board, and a 68030 motherboard. I successfully installed both the
68040 and 68030 boards on a SINGLE NeXT cube and linked them together
through their ethernet ports. The 68040 was configured as a boot server
and the 68030 was used as its client (booting off the network for lack of
an additional hard drive).
The procedure reconfigures slot #2 on the cube's back-plane as slot #0.
This provides two slots configured as #0, required for booting the two
motherboards. Once I determined what the slot pin-outs were (thanks to my
good friend John Chmielewski), it was a matter of time before the two
boards happily co-existed.
The procedure:
- First, follow the procedure on the NeXT User's Reference manual for
removing the system board (Appendix C: Opening the Cube, page 291 of
the 2.0 manual).
- Using the NeXT supplied screwdriver, remove the two screws that
attach the power-supply housing to the cube (the screws are located
on the lower part of the housing) and gently pull the housing out.
Set it aside in a safe place (away from kids and nosey friends!)
- Remove the two plastic grooved plates (used to slide the system
boards in) at each side of the inside bottom of the cube. (For each
plate, lift the side closest to the rear opening and gently pull
them out). Set them aside.
- Using the NeXT tool, remove three screws holding the back-plane to
the cube and then take the back-plane out of the cube. Let the cube
rest for a while.
Inspect the back-plane. You will see five bus slots (four vertical
and one horizontal). The horizontal slot connects the back-plane to
the power supply housing. We're only interested in the four vertical
slots. From the factory these slots are configured as 6, 2, 0, and 4
(starting from the left and going right with the horizontal slot at
the bottom).
The system board connects to slot #0 (which you've probably
noticed). Each slot contains three columns of 32 pins. Following is
an ASCII representation of one of the slots:
x y z C B A
o-o o 32 . . .
o-o o 31 . . .
o-o o 30 . . .
o-o o 29 . . .
28 . . .
.
.
.
3 . . .
2 . . .
1 . . .
...where x, y, and z are labeled GND, SID, and VCC, respectively.
The GND, SID, and VCC "holes" are used to configure the slot number
using simple binary encoding, where GND is logical zero, VCC is
logical one, and SID (for Slot-ID I guess) determines the current
bit state (one or zero).
Notice the four rows of GND, SID, VCC triads; each row is equivalent
to one bit position in the slot number, the bottom row bit position
0, the top row bit position 3. This gives a total of four bit
positions, or 16 possible slot numbers. To encode a slot number, you
need to connect an SID row to its corresponding GND or VCC row. For
example, the diagram below shows the configuration of the slots in
my cube's back-plane (you'll have to look very closely to see the
actual connections):
SLOT 6 SLOT 2 SLOT 0 SLOT 4
BIT 3: o-o o o-o o o-o o o-o o
BIT 2: o o-o o-o o o-o o o o-o
BIT 1: o o-o * o o-o * o-o o o-o o
BIT 0: o-o o o-o o o-o o o-o o
- To reconfigure slot 2 as slot 0, cut the trace between SID and VCC
for bit position 1 (see * o o-o * above) and connect SID to GND on
the same row. I used the SIMM removal tool supplied by NeXT in the
040 upgrade (talk about multi-purpose) to cut the trace! Very
gently, scrape the solder off between the two holes. Take a
paperclip, shape it to fit between the holes in SID and GND, and
trim it down to an even 1/4 inch (perfect fit)!
That's all there is to it. If for some reason you ever want to
revert to slot 2, just remove the paperclip from GND-SID and
reconnect it to SID-VCC.
- Now put the cube back together. First, re-install the back-plane
using its three connecting screws, then snap on the plastic plates,
and finally insert the power-supply housing and secure with its two
screws.
At this point the cube is ready to take on the two system boards (it
is up to you to determine where/how you want to use the two boards;
I'll explain how I used mine) ...
- I installed the 68040 in the original slot 0 and the 68030 in the
reconfigured slot 0 (previously slot 2). The 68040 was used as the
main processor board. I connected the 660 MB drive, the OD, and the
monitor to it.
NOTE: Before beginning the procedure, I went into the NeXT Monitor
on the 68030 and disabled the Sound out, SCSI tests and verbose test
mode and enabled serial port A as a console terminal. I also made
"en" the default boot device. I setup the 68040 as a boot server and
taught it about the 68030 (which took some time in getting it setup
properly).
- I connected the 68040 to the 68030 using a thin-ethernet cable and I
booted. First thing I noticed was that the 030 timed-out a couple of
times waiting for the 040 to tell it to boot. But after the 040 was
up, the 030 booted nicely.
That's all folks. Hope all this made some sense and people find it
useful.
Comments:
- To power off the cube, I have to first shutdown the 030 (I run "halt
-p" as root from a telnet connection and wait for the 030 to go
down), and I then power-down the 040. If you shut down the 040
before the 030, you'll have to pull the power plug to turn the
machine off. The cube will not power off if either of the two boards
is providing a load to the power-supply.
- Remember, I've only performed this procedure on one system. I do not
know what will happen on your system. So make sure you plan ahead
what your going to do and that you understand the procedure.
- I don't know what problems may arise when you add a board that uses
the NeXTbus, such as the NeXTdimension, or how it will behave. If
someone is courageous enough to perform the procedure and installs
another board, please post your results to the net.
Update:
To clear up some misunderstandings with the settings in the "p" command
of the NeXT monitor (these settings are only required for the system
board that doesn't have the NeXT display monitor connected):
- Sound out test must be "no"; the boot process will not proceed if
the monitor isn't connected to the board and this is set to "yes"
(the sound out tests will fail, aborting the boot procedure).
- SCSI tests should be "no" if you don't have SCSI devices attached to
the board (SCSI tests will fail otherwise, aborting the boot
procedure).
- Verbose test mode must be "no" for booting from the network. If set
to "yes", the boot process will timeout waiting for a BOOTP and
you'll be left in the monitor with no means of restarting the board
(except pulling the power plug)!
This is probably true also for booting from an OD that hasn't been
inserted (assuming the OD was attached to the board).
- Allow serial port A as alternate console if you want to view the
boot process (for problems and peace-of-mind).
- Other settings were not modified from their factory defaults or had
no effect on the procedure.
There is also a way in using 2 boards plus NeXTDimension board in one Cube.
I've run my "screw with the backplane trick" cube with:
| | 32MB-ND | | 64MB-040 | 40MB-030 |
without any problems. Using the od got the system warm, but never had a
problem. The cool part was having the printer on the 030. One day I tried
to dump an 040 into the 030 position, but I couldn't get it to boot. I
played for a couple minutes, but put the 030 back in and went on with
life...