Subject: PC PCI cards in a real machine
To: None <>
From: Lloyd Parkes <>
List: port-sparc64
Date: 02/24/2002 11:23:13
A few days ago I pulled the Promise ATA/66 PCI card from my PC and put it into 
my Ultra 10. I was getting a bit annoyed at the lack of Ultra DMA.

Much to my dismay I found out that the Promise card wasn't detected as an IDE 
card. I did some digging and started reading the Sun OpenBoot docs. I found 
out fairly quickly that Promise had a bogus PCI class code stored on the card, 
so I figured that was probably the problem and started looking out how I could 
ste^H^H^Hreuse the Sun IDE code to drive the Promise card. This started to 
look complicated.

Then I noticed that there was an FCode package called SUNW,builtin-drivers. I 
had a quick look in there and noticed that it seemed to contain a registry of 
PCI class codes. I added the Promise card's class code to this package, and 
all of a sudden the card worked.

Here is what I currently have in my nvramrc

	dev /packages/SUNW,builtin-drivers
	: class018000   
	8f 9 my-space + " config-b!" $call-parent class010100

This is copied straight from the Sun definitions for class01018a and 
class01018f (they are the Sun IDE controllers, and are identical).

Obviously this technique can be used to support a variety of cheap PCI cards 
that suffer from PC styles short cuts.