Subject: PC PCI cards in a real machine
To: None <port-sparc64@netbsd.org>
From: Lloyd Parkes <lloyd@must-have-coffee.gen.nz>
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
;
device-end
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.
Cheers,
Lloyd