October 29, 2024

Sun 3/80 -- serial console

Serial port "A" is the 25 pin connector towards the middle of the sun3/80. The 25 pin connector towards the right side is the parallel port.

I have a USB to serial "cable" with a 25 pin end. I grab a null modem gadget and a male to male conversion and connect it all up. My gadget is a P12303 device and linux sees it as /dev/ttyUSB0

The above photo shows a Sun 3/80 as they are used in 2024. I hear the screams already regarding static issues. The board is actually supported on a pie pan along with some insulating material, so it isn't as bad as it looks.

I fire up picocom at 9600 baud, 8 data, 1 stop, no parity. Nothing is happening, so I remove the null modem.

I use Ctrl-A Ctrl-| in picocom to send a break and I get a response!

*** break sent ***

Abort at 0xFEFF23E8.
>
>
>?
Monitor: Invalid command.
>help
Boot PROM Monitor Commands

----------------------------------------------------------------------------
a [digit]                                | Open CPU Addr Reg (0-7)
b [dev([cntrl],[unit],[part])]           | Boot a file
c [addr]                                 | Continue program at Addr
d [digit]                                | Open CPU Data Reg (0-7)
e [addr]                                 | Open Addr as 16 bit word
f [beg_addr] [end_addr] [patt] [bwl]     | Fill Memory
g [addr]                                 | Go to Address
h                                        | Display this Help Menu
k [number]                               | Reset (0)CPU, (1)PMMU, (2)System
l [addr]                                 | Open Addr as 32 bit long
m [A] [B] [addr]                         | Open TIA or TIB Table
----------------------------------------------------------------------------
Hit Any Key to Continue through Help Menu
----------------------------------------------------------------------------

o [addr]                                 | Open Addr as 8 bit byte
p [addr]                                 | Open Page Map
q [addr]                                 | Open EEPROM
r [reg]                                  | Open CPU Regs (i.e. PC)
s [digit]                                | Set/Query Function Code (0-7)
t [y/n/c]                                | Trace: Yes/No/Continue
u [arg]                                  | Select Console Device
v [beg_addr] [end_addr] [bwl]            | Display Memory
w [addr] [string]                        | Vector
x                                        | Extended Diag Tests
z [addr]                                 | Set Breakpoint
^a                                       | Display Phys and Virtual Addresses
^t [addr]                                | Translate virtual addr to physical
^r                                       | Read On Board Device Registers
----------------------------------------------------------------------------
Very nice, we can talk to the ROM monitor.

Cycle power

I turn power off and then on and see:
Sun-3/80 Boot PROM Selftest (Rev. 3.0.2)
 (Press  to abort tests or  for the Loop Menu)
System Enable Register Read Test {pass 0x00000001}  00:24:53
PROM Checksum Test {pass 0x00000001}  00:24:53
TOD [Clock/Calender] Test {pass 0x00000001}  00:24:54
I/O Mapper RAM Write/Write/Read Test {pass 0x00000001}  00:24:54
I/O Mapper RAM Address Test {pass 0x00000001}  00:24:54
I/O Mapper RAM 3-Pattern Test {pass 0x00000001}  00:24:55

Memory Address Test {pass 0x00000001}  00:24:56 0
Memory Read Byte Alignment Test {pass 0x00000001}  00:25:11
Memory Write Byte Alignment Test {pass 0x00000001}  00:25:11
Bus Error Register Test {pass 0x00000001}  00:25:12
Level 1 Interrupt Test {pass 0x00000001}  00:25:12
Level 2 Interrupt Test {pass 0x00000001}  00:25:12
Level 3 Interrupt Test {pass 0x00000001}  00:25:13
Parity Memory Forced Error Test {pass 0x00000001}  00:25:13
Configuration Memory Check  {pass 0x00000001}  00:25:14
LANCE Controller Check  {pass 0x00000001}  00:25:14
ESP SCSI Controller Check  {pass 0x00000001}  00:25:15
Floppy Controller Check  {pass 0x00000001}  00:25:15
Printer Controller Check  {pass 0x00000001}  00:25:16


END OF SELFTEST # 0x00000001 (SELFTEST PASSED).
#PASSED = 0x00000001, #FAILED = 0x00000000


Type a Character within 10 seconds to enter the Menu Tests...(e for echo mode)
No Keyboard Found: Using RS232 Port A as input!
Selftest Completed.

Sun Workstation, Model Sun-3/80 Series.
ROM Rev 3.0.2, 16MB memory installed
ID PROM invalid.
Auto-boot in progress...
ERROR: missing or invalid ID prom
ERROR: missing or invalid ID prom
le: No Carrier
ERROR: missing or invalid ID prom
le: No Carrier
ERROR: missing or invalid ID prom
Requesting Internet address for 0:0:0:0:0:0
All this is nice. It does not leave me at the monitor prompt. I need to send a "break" using Ctrl-A Ctrl-| via picocom

What this tells us

This board has been sitting in a box for at least 10 years. It is now running, which tells us that it is basically functional. The 68030 is doing what it should, the ROM contents are valid (I presume the ROM does some kind of checksum on itself). The serial port works. Also the four 4M memory sticks I snapped in place last night seem to work. I have 0x10 megabytes (16 megabytes) of ram, and it passed whatever test the ROM hits it with.

The 10 second character option

I read the messages and see the invitation to type something. So I cycle power again and pay attention. This gives me the following:
----------------------------------------------------------------------------
Extended Diagnostics Main Menu:
----------------------------------------------------------------------------
le - AMD Ethernet Test
mk - Mouse/Keyboard Ports Test
rs - Serial Ports Test
----------------------------------------------------------------------------
Cmd==>
If I type "q" it takes me back to the regular ROM menu. Typing "k 2" is the same as a power cycle, so I can avoid