# SiI 3726 - SATA Port Multiplier



## blink (Dec 14, 2009)

Forgive me in advance for sounding stupid, today is my first day with freebsd from a few years with debian and gentoo linux.  I'm trying it because opensolaris doesn't support port multipliers with my card (or maybe not even at all) and I'm switching to ZFS.

I installed using 8.0-RELEASE GENERIC amd64.

I have a SiI 3132 PCIe card with two esata cables to a Sans Digital TR8M-B 8 bay enclosure.  dmesg output shows that it has two SiI 3726 controllers (1 for each set of 4 disks). When I boot up, only one port/cable/port multiplier set is detected properly and show up as being connected via LED on the enclosure, disks added to /dev as ad6 through 10 and partitions shown too. The other set of disks don't show up as connected on the enclosure's LED display, nor do they appear in /dev

If I disconnect the sata cable from the missing set, the kernel detects the port multiplier but doesn't enumerate the missing disks and add them to /dev.

Is there a way to avoid unplugging the non-working set from the card and plugging back in to have the enclosure show them connected? How does one enumerate disks after they've been connected and show as much on the enclosure? Lastly, I have an ICH9 chipset, which I think supports port multiplication, should I just switch off the SiI 3132 and use the builtin esata?

dmesg output

output after unplugging, plugging sata cable for missing drives:

```
ata2: SiI 3726 (rev=1706) Port Multiplier with 6 (5) ports
```
Thanks for even a nudge in the right direction!


----------



## blink (Dec 14, 2009)

*atacontrol list and /dev disks*

After booting:

```
atacontrol list
ATA channel 2:
    Master:      no device present
    Slave:       no device present
ATA channel 3:
    Master:  ad6 <ST31000340AS/SD1A> SATA revision 2.x
    Slave:   ad7 <ST31000340AS/SD1A> SATA revision 2.x
ATA channel 4:
    Master: acd0 <HL-DT-STDVD-RAM GSA-H55N/1.01> ATA/ATAPI revision 5
    Slave:       no device present
ATA channel 5:
    Master: ad10 <SAMSUNG HD103UJ/1AA01109> SATA revision 2.x
    Slave:       no device present
ATA channel 6:
    Master:      no device present
    Slave:       no device present
ATA channel 7:
    Master:      no device present
    Slave:       no device present
ATA channel 8:
    Master:      no device present
    Slave:       no device present
ATA channel 9:
    Master:      no device present
    Slave:       no device present
ATA channel 10:
    Master:      no device present
    Slave:       no device present
```
disks (formatted on previous machine, not here):

```
ls /dev|grep ad
ad10
ad10s1
ad10s1a
ad10s1b
ad10s1d
ad10s1e
ad10s1f
ad6
ad6s1
ad7
ad7s1
ad8
ad8s1
ad9
ad9s1
```


----------



## aragon (Dec 14, 2009)

Until very recently, FreeBSD didn't support port multipliers either.  It got support for them literally this past month, and you will need to upgrade to 8.0-STABLE to get the new code.

Read the handbook to learn how to upgrade FreeBSD to 8.0-STABLE.

Once upgraded, you'll need a custom kernel config with ahci(4) enabled.


----------



## phoenix (Dec 14, 2009)

Wouldn't you also need the siis(4) driver, to support the port multiplier?


----------



## blink (Dec 15, 2009)

Like I said, early days with freebsd. I will try that too, before replying.

It's odd though that it works with one set using the port multiplier, just not the other set out of the box.
Thanks for the tips. I'll try and post my progress.


----------



## blink (Dec 19, 2009)

I've installed the new kernel and world for 8.0-STABLE and the disks all show up fine when ahci and siis support is added (the system drive switched from ad10 to ada0 during that switch, so if anybody follows be sure to switch your fstab or have the install CD around to get a working shell)

This issue is resolved. thanks!


----------

