Undetected SiI 3112 PCI SATA Controller card - resolved

Erik Trulsson ertr1013 at student.uu.se
Sat Mar 22 06:43:13 PDT 2008

On Sat, Mar 22, 2008 at 05:09:10AM -0700, Andrew Fremantle wrote:
> 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?<br>

Interrupt-sharing should not be a problem. PCI is designed to handle
shared interrupts after all.  (That being said, there do exist cards
and drivers that do not handle shared interrupts very well, but that
is very much the exception rather than the rule.)

If there was some dirt or something that caused one or more of the pins
on the card from making proper contact with the slot, then that
could indeed have caused the problems you saw.

> <br>
> Thanks for the response.<br>
> <br>
> - Andrew<br>
> <br>
> Erik Trulsson wrote:
> <blockquote cite="mid:20080322110823.GA1502 at owl.midgard.homeip.net"
>   <pre wrap="">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: &lt;mass storage, RAID&gt; at device 11.0 (no driver attached)
>> According to the ata(4) manpage, the ata driver is supposed to support this 
>> chipset?
> 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.)
>> 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
> motherboard.
>>    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.)

<Insert your favourite quote here.>
Erik Trulsson
ertr1013 at student.uu.se

More information about the freebsd-questions mailing list