Update: I reflashed the SCSI BIOS, see below
Update 28.03.21: Using a similar trick I made the other card usable
Recently I picked up a huge Compaq I/O card. It's a combo of three devices by the looks of it. (I will run a PCI sniffer later in this post). The GPU is an ATI Rage IIc PCI with a VGA output. There is an LSI 53C895 PCI-SCSI controller and an Intel SB82558B FastEthernet NIC.
The card also has a LOT of GPIOs: Four fan controllers, three temperature sensors, an unpopulated I2C connector and a NEC LCD controller... It's so big it has a handle on the side opposite to the bracket.
The back is mostly passives and some jellybean logic ICs. It's an 8 layer PCB, as indicated on the edge. There is no thieving visible, oddly enough. However the back of the Ultra 2 LVD SCSI connector has some amazing matched pairs maze.
The Compaq engineers designed a check in the card - it refuses to boot when inserted into an unsupported computer. Which sucks pretty much, as it would make a great addition to some build - 3 devices in one PCI slot, including a graphics card.
Searching the net I stumbled upon a Vogons thread describing someone with a similar card and a similar problem. Their card would not boot either unless inserted into a ProLiant.
They mentioned that reflashing the SCSI controller bios with a generic LSI version nearly worked for them
The SCSI BIOS has to be disassembled with all those Compaq proprietary features removed, but the easier way is just to replace it with a reference LSI SCSI BIOS. The latest I could find is v4.19, but it stores configuration data in NVRAM. Compaq engineers have designed a different NVRAM interface, so it doesn't work with the LSI BIOS. I have flashed the less functional v4.12 BIOS which doesn't store anything in NVRAM and it does work. I could boot to Windows XP and it picked up drivers just fine.
This gave me a hint that the problem might be lying in the SCSI bios. Having no flash programmer, I decided to simply remove the Flash chip...
...and the card booted just fine!
Probably as soon as I get my hands on a flash programmer, I'll flash the LSI bios version mentioned in the thread
In order to do that I have booted it in a Pentium-II MMX board I have lying around, since the card would not boot in my 486. The Pentium board has way more integrated peripherals (USB, IDE) on the PCI bus, so the results might be a bit blurry as it's hard to say what's integrated and what is not
PCI.EXE has found the following (part of the output related to the mobo chipset ommited):
Oddly enough there is a 21152AB chip on the board, but it's Intel branded - top right edge of the PCI connector. And the same case is with my quad Sun Microsystems NIC, that has a 21153-AC chip that is detected as DEC but branded Intel.
Having a programmer now, I decided to update the bios using the binaries from the Vogons thread.
The card works flawlessly
Unfortunately I couldnt play Quake due to lack of USB drivers for the test motherboard in Windows XP :(
Compaq card 2 hacks
Some time ago I got another large compaq PCI IO card. It seems to be older than the first card I got. The copyright date says "(c) 1999-2000 Compaq". Similar to the other one, it combines a VGA graphics card (ATi RAGE XL), a 10/100 ethernet interface (Intel GD82559) and an Ultra320 SCSI controller (LSI 53C895A). In the back of the card there are also some nonstandard connectors for the rest of the server it was to be used in.
I like these cards a lot, so I would like to use this one aswell. Unfortunately, just like newer one, the this one blocks the computer from booting when inserted. It does not display a "This card can only be used in a ProLiant server" message like the newer one did.
Fortunately it's known how to bypass that on the newer card, so I am going to try the same thing on this card. The newer card kept the "ProLiant-or-not" check code in the SCSI controller bios and booted fine when the SCSI bios flash memory was removed. Fair enough - let's try booting the card with the flash chip out :)
The computer did not POST at all at first, then I realized i took out the CR2032 coin cell that was in the card. I inserted it again and, after the test motherboard went past through it's POST dance, it greeted me with a very promising message:
"DISK BOOT FAILURE, INSERT SYSTEM DISK AND PRESS ENTER"
You might think this is a bad error message - but it confirms that the same trick can be used on the older card, as the "Am I a ProLiant?" code resides inside the SCSI bios. This message means that all the computer hardware and peripherals initialized successfully and the motherboard firmware has finished looking for a bootable device (and failed to find one).
Now I can look for a generic BIOS image for that SCSI controller. I couldn't find anything online so I found the rom image I flashed on the other card (8xx_64.rom, from a Symbios SDMS SCSI BIOS and Configuration Utility Version 4.19.00.). After installing that, the SCSI bios controller came back to life, and the card booted successfully!
That's all for now. Thanks for reading and feel free to check out other posts on my site