Undetected SiI 3112 PCI SATA Controller card - resolved

Andrew Fremantle freebsd at skyhawk.ca
Sat Mar 22 05:09:07 PDT 2008

   Thanks for the pointers.
   I'll pull the machine out again and do some hardware troubleshooting
   on it. If all else fails, I'll try altering ata-pci.h. Due to the
   crappy motherboard design, and existing add-on cards, this card is
   sharing an interrupt with the Promise Ultra/100 controller, which
   FreeBSD is detecting fine (there's nothing plugged into it). Could
   that possibly be related to this? Nevermind, all fixed. Pulled the
   card, aired the slot, put card back, works like a charm. I guess one
   pin wasn't connecting properly?
   Thanks for the response.
   - Andrew
   Erik Trulsson wrote:

On Sat, Mar 22, 2008 at 02:22:18AM -0700, Andrew Fremantle wrote:


I've got a machine with an SiI 3112 based (Definately Silicon Image, I'm 
97% certain it was 3112) PCI SATA controller board in it. The board was 
just installed, and is not working. I don't get a BIOS screen on startup 
for it, but it is shown in the PCI device listing. The board is an ASUS 
A7V, so it wouldn't at all surprise me if there's a problem with the BIOS.

This is all FreeBSD 6.3 has to say on the subject :
pci0: <mass storage, RAID> at device 11.0 (no driver attached)

According to the ata(4) manpage, the ata driver is supposed to support this 

Yes, it is supposed to be supported.  It is also generally considered to be
one of the crappiest and buggiest SATA controllers in existence.
(It was also one of the first native SATA controllers to the market, which
helps explain why it was used so much anyway.)


I found pciconf

pciconf gives the following output
none1 at pci0:11:0:        class=0x010400 card=0x61121095 chip=0x21121095 


Something is really wrong here.  For a SiI 3112 is should say
'chip=0x31121095'.  'chip=0x21121095' does not correspond to any known
chip.  If not even the PCI id is detected correctly then it looks like
something is wrong with the hardware - either the controller or the


rev=0x02 hdr=0x00
   vendor     = 'Silicon Image Inc (Was: CMD Technology Inc)'
   class      = mass storage
   subclass   = RAID

Is there a way to force the ata driver to treat this as an Si3112 and see 
what happens? I can't imagine this makes a difference, but there's actually 
3 ATA controllers in the machine - The VIA chipset, an integrated Promise 
Ultra/100, and now the SiI board.

You could go to sys/dev/ata/ata-pci.h and change the constant 0x31121095
into 0x21121095 and then recompile your kernel, and see what happens.
What will happen is most likely that some other problem will turn up with
that card, but you might get lucky (I just wouldn't count on it.)


More information about the freebsd-questions mailing list