42718.net 90s dial-up ISP & vintage computer homelab files.42718.net stats
42718.net / articles / 3com-3c996-to-sgi
3COM-3C996-TO-SGI(1)42718.net articles3COM-3C996-TO-SGI(1)

NAME

3com-3c996-to-sgi – Turning an HP A6825A into an SGI gigabit card

Date2026-10-25 SubtitleRecoding 3Com 3C996B-T (BCM5701) boards so IRIX's tg driver will bind them Authorrutger
The three boards. The two HP A6825A (BCM5701) at the top convert fine; the 5703 at the bottom looks similar but is a hard no-go.
The three boards. The two HP A6825A (BCM5701) at the top convert fine; the 5703 at the bottom looks similar but is a hard no-go.

1. Why

IRIX only binds its tg driver to boards whose PCI subsystem ID is in if_tg.o's table. SGI's P/N 9210289 is a BCM5701 with subsystem 10a9:8011; HP's A6825A is the same BCM5701 (a rebadged 3Com 3C996B-T) with HP's ID (103c:128a) in the NVRAM. Rewrite the NVRAM and IRIX sees an SGI card.

2. What you need

  • a Linux box with a PCI-X slot and ethtool (the Altix 350 here)
  • the card, and a backup of its NVRAM before you touch it
  • the script: tg3-sgi-recode.sh.gz on files.42718.net

3. Telling the boards apart

On the Altix the base I/O card carries the IOC4, the QLogic SCSI and the onboard BCM5701 together on bus 0001:00, so anything on another bus is an add-on card. lspci -vnn shows the subsystem:

0002:00:01.0  BCM5701 rev 15   Subsystem: Hewlett-Packard BCM5701 1000Base-T [103c:128a]
0002:00:02.0  BCM5703X rev 02  Subsystem: Broadcom NetXtreme BCM5703 [14e4:0009]

The 5703 is the same shape, same connector and same era, but the chip's own PCI device ID is baked into silicon and is not in IRIX's table. No amount of NVRAM editing helps. Only a 5701 converts.

4. What the script does

[paragraph: scan, inspect, backup with ethtool -e, patch subsystem vendor/device to 10a9/8011, recompute the manufacturing-block CRC32, give it a MAC under SGI's OUI 08:00:69, dry run, flash with ethtool -E, verify; restore puts the backup back]

# ./tg3-sgi-recode.sh scan
# ./tg3-sgi-recode.sh backup eth1
# ./tg3-sgi-recode.sh dry eth1
# ./tg3-sgi-recode.sh flash eth1 --yes
[paste a real run here]

A raw NVRAM dump on a 5701 is slow. It looks like a hang; it is not. Give it a few minutes before you reach for the reset button.

5. Gotchas

  • 8011 is the single-port BCM5701 (P/N 9210289). 8013, which the forum

thread suggests, is the dual-port BCM5704 (P/N 9470434). The driver object settled that, not the thread.

  • Keep the NVRAM dumps; they are the only way back.
  • tail -c on old coreutils (SLES 11) silently returns nothing; the script

slices od output instead.

6. In the SGI

Both converted boards came up as tg0 in dave's PCI cardcage. Making the new card the primary interface is in howto/primary-interface-irix.

[hinv -c network output here]

SOURCES

SEE ALSO

howto/primary-interface-irix, systems/dave, systems/lucy

42718.net2026-10-253COM-3C996-TO-SGI(1)
Written in Markdown, edited with vi on IRIX, built 2026-10-29 with mksite. No database was harmed.  ·  files.42718.net