This guide provides instructions for reprogramming the IDPROM (Identification PROM) on various Sun workstation models, including sun4c, sun4m, sun4d, and sun4u architectures.

The IDPROM contains critical system identification information including the machine type, Ethernet MAC address, and serial number. When the NVRAM battery dies (which happens on all Sun workstations eventually), this information is lost and must be reprogrammed.

Prerequisites

Before attempting IDPROM modification, document your existing IDPROM data if possible:

  • SunOS 4.1.x: /usr/etc/devinfo -vp
  • Solaris 2.x: /usr/sbin/prtconf -vp
  • OpenBoot monitor: .idprom command at the ok prompt

Step 1: Access the OpenBoot Monitor

Go to the OpenBoot monitor (ok prompt). You can do this by turning on your machine and pressing Stop-A (or L1-A) to interrupt the boot sequence.

For new NVRAM chips, execute these commands first:

set-defaults
setenv diag-switch? false

Step 2: Understanding IDPROM Structure

The IDPROM consists of 16 bytes (0-f) with the following structure:

BytePurpose
0Format/version (always 01)
1Machine type (first byte of hostid)
2-4Ethernet address bytes 1-3 (always 08:00:20)
5-7Ethernet address bytes 4-6
8-bManufacturing date
c-eSerial number (last 3 bytes of hostid)
fChecksum (XOR of bytes 0-e)

Important: Don’t change the first byte of the hostid to something that doesn’t correspond to your system type.

Step 3: Programming with mkp

The mkp command uses the format:

<value> <location> mkp

Example: SPARCstation IPX

For an IPX system with hostid 57c0ffee and Ethernet address 08:00:20:c0:ff:ee, use the following commands:

01 0 mkp
57 1 mkp
08 2 mkp
00 3 mkp
20 4 mkp
c0 5 mkp
ff 6 mkp
ee 7 mkp
00 8 mkp
00 9 mkp
00 a mkp
00 b mkp
c0 c mkp
ff d mkp
ee e mkp

Step 4: Calculate and Store Checksum

After setting bytes 0-e, calculate and store the checksum with this command:

0 f 0 do i idprom@ xor loop f mkp

This computes the bitwise XOR of bytes 0-e and stores the result in byte f.

Step 5: Reboot

After modifications, reboot the system:

reset

Machine Type Reference

The first byte of the hostid identifies your system type. Use the correct value for your machine:

CodeSystem Model
01Sun 2/1x0
02Sun 2/50
11Sun 3/160
12Sun 3/50
13Sun 3/2x0
14Sun 3/110
17Sun 3/60
18Sun 3/E
21Sun 4/2x0
22Sun 4/1x0
23Sun 4/3x0
24Sun 4/4x0
31Sun 386i
41Sun 3/4x0
42Sun 3/80
51SPARCstation 1 (4/60)
52SPARCstation IPC (4/40)
53SPARCstation 1+ (4/65)
54SPARCstation SLC (4/20)
55SPARCstation 2 (4/75)
56SPARCstation ELC
57SPARCstation IPX (4/50)
61Sun 4/E
71Sun 4/6x0
72SPARCstation 10, SPARCstation 20
80SPARCstation Classic, LX, 4, 5, SS1000, Voyager, Ultra

Notes

  • The Ethernet address for Sun systems always begins with 08:00:20 (Sun’s OUI)
  • The last three bytes of the Ethernet address typically match the last three bytes of the hostid
  • If you don’t know your original hostid, you can create a new one, but be aware this may affect software licenses tied to the hostid