Hacking EEPROMS (was: Reset command crashes the system)
dupuy at cs.columbia.edu
dupuy at cs.columbia.edu
Tue Dec 11 16:12:23 AEST 1990
|The problem with "reset" crashing the system turns out to be an EEPROM
|configuration problem. There's a location which identifies what type of
|frame buffer you have. I haved a cgsix (GX), and it was set to a be a
|routine color monitor (as if you had said "eeprom console=color"). Then,
|"reset" tries to talk to the board that is there, but it isn't.
|
| The byte to be configured is location 0x1f:
| 00 - monochrome monitor
| 10 - ttya
| 11 - ttyb
| 12 - color monitor and 3/60 plug-in color frame buffer
| 20 - P4 Color frame buffer
|
| Get to the PROM monitor (for example, "shutdown -hf now"). At the ">"
| prompt, change the value with the "q" command: >q 01f Your current value
| will be displayed. Enter "20", then a "." to end the patches. Reboot,
| and "reset" will be working correctly.
I'm curious what kind of system you did this on - I have one 3/60 with a
GX framebuffer, and although it's never run 4.1, I've had no problems with
"reset" - is this the Unix command, or the sun4c forth monitor command?
Anyhow, it's a ways to the console of this machine, and I'm very lazy
(plus somebody was probably using it, so I didn't want to shut it down to
the monitor level. Instead, I just used adb, as follows (adb doesn't seem
to be able to write a single byte for some reason):
# adb -w /dev/null /dev/eeprom
not core file = /dev/eeprom
0x1f/x
0x1f: 1212 # if you have a custom banner
0x1f/w0x2012
0x1f: 0x1212 = 0x2012
^D
# adb -w /dev/null /dev/eeprom
not core file = /dev/eeprom
0x1f/x
0x1f: 1200 # if you don't
0x1f/w0x2000
0x1f: 0x1200 = 0x2000
^D
# eeprom -c # to fix up the checksum
eeprom: diagnostic area checksum wrong
# eeprom
hwupdate=Tue Dec 19 15:16:54 1989
memsize=20
memtest=20
scrsize=1152x900
watchdog_reboot=true
default_boot=true
bootdev=le(0,0,0)
kbdtype=0
keyclick=false
console=b&w
custom_logo=true
banner=Columbia University Computer Science Dept. Sun-3/60C
diagdev=le(0,0,0)
diagpath=
ttya_no_rtsdtr=false
ttyb_no_rtsdtr=false
ttya_use_baud=false
ttyb_use_baud=false
ttya_baud=0
ttyb_baud=0
columns=0
rows=0
Well, eeprom seems confused, but it's still running 4.0.3, so who knows.
I guess that's why we have to use the prom monitor (or adb).
While I'm on the subject, what ever happened to the wonderful PROM User's
Manual (Sun Part Number 800-1736-10) which came with the 4.0 docuboxes,
but wasn't part of the spiffy 4.1 set? If you have a copy, it has great
tables describing everything from the Sun-2 to 386i (no Sun-4C [Campus],
alas).
In the past, I found out that the equally wonderful Floating-Point
Programmer's Guide had become the Numerical Computation Guide, and was
bundled with the unbundled Fortran compiler. Has the PROM Manual been
bundled with a new and unbundled assembler? :-)
inet: dupuy at cs.columbia.edu
uucp: ...!rutgers!cs.columbia.edu!dupuy
More information about the Comp.sys.sun
mailing list