Meh, I got bored so I figured I'd go the extra mile here, and I'll even be extra nice at the risk of being accused of being aggressive again.
You say you have one drive hooked up to the controller? In that case, I would think that even RAID 0 is not being used. My reasoning for that is 1) all RAID levels require at least 2 disks, and 2) I happen to have a Sil3512, a newer version of that same card. The 3512 is a 2 port SATA2 controller that can handle JBOD, RAID 0 and 1. When I had one drive hooked up to mine, the card wouldn't allow me to specify a RAID level and just exported that single disk. When I had two drives hooked up to the controller, I could select a RAID level. JBOD wasn't one of the options I believe, but that's fine, because JBOD technically isn't RAID anyway.
In that case, the card exported both disks individually. Once I created a logical drive and specified a RAID level, the card once again exported a single (this time logical) disk.
This was all under Linux 2.6.25, btw. With a single drive connected, the disk was exported as /dev/sda. When two drives were connected, but no logical drives defined, I had /dev/sda and /dev/sdb. After I created a RAID mirror, I then had /dev/sda again, but this time since it is RAID-1, /dev/sda reflected the logical drive, and not the physical drives behind it. With RAID defined, there's no way to get to the individual drives behind the device. (Technically there is, but that is not important here.)
The way my card is set up currently, it just exports both disks. I don't use the RAID features of it at all, I prefer software RAID for most cases. I only point that out so you can better understand this snippet of my dmesg:
Code: Select all
sata_sil 0000:00:08.0: version 2.3
scsi0 : sata_sil
scsi1 : sata_sil
ata1: SATA max UDMA/100 mmio m512@0xec000000 tf 0xec000080 irq 16
ata2: SATA max UDMA/100 mmio m512@0xec000000 tf 0xec0000c0 irq 16
...
ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
ata1.00: ATA-7: ST3750640AS, 3.AAE, max UDMA/133
ata1.00: 1465149168 sectors, multi 16: LBA48 NCQ (depth 0/32)
ata1.00: configured for UDMA/100
ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
ata2.00: ATA-7: ST3750640AS, 3.AAE, max UDMA/133
ata2.00: 1465149168 sectors, multi 16: LBA48 NCQ (depth 0/32)
ata2.00: configured for UDMA/100
scsi 0:0:0:0: Direct-Access ATA ST3750640AS 3.AA PQ: 0 ANSI: 5
scsi 1:0:0:0: Direct-Access ATA ST3750640AS 3.AA PQ: 0 ANSI: 5
sd 0:0:0:0: [sda] 1465149168 512-byte hardware sectors (750156 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 0:0:0:0: [sda] 1465149168 512-byte hardware sectors (750156 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sda: unknown partition table
sd 0:0:0:0: [sda] Attached SCSI disk
sd 1:0:0:0: [sdb] 1465149168 512-byte hardware sectors (750156 MB)
sd 1:0:0:0: [sdb] Write Protect is off
sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 1:0:0:0: [sdb] 1465149168 512-byte hardware sectors (750156 MB)
sd 1:0:0:0: [sdb] Write Protect is off
sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sdb: sdb1
sd 1:0:0:0: [sdb] Attached SCSI disk
Here's the output of lspci on that machine. The SATA RAID card is the 3rd line.
Code: Select all
00:00.0 Host bridge: VIA Technologies, Inc. P4M266 Host Bridge
00:01.0 PCI bridge: VIA Technologies, Inc. VT8633 [Apollo Pro266 AGP]
00:08.0 RAID bus controller: Silicon Image, Inc. SiI 3512 [SATALink/SATARaid] Serial ATA Controller (rev 01)
00:0f.0 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06)
00:10.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81)
00:10.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81)
00:10.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81)
00:10.3 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81)
00:10.4 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 86)
00:10.5 Network controller: VIA Technologies, Inc. VT8237 Integrated Fast Ethernet Controller
00:11.0 ISA bridge: VIA Technologies, Inc. VT8237 ISA bridge [KT600/K8T800/K8T890 South]
00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller (rev 60)
00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 78)
01:00.0 VGA compatible controller: S3 Inc. VT8375 [ProSavage8 KM266/KL266]
Anyway, depending on what I stated above you can pretty easily determine how your card is set up. You could also simply check the card's BIOS by hitting ALT+S during boot.
And finally, under linux 2.6.26, both the 3112 and 3512 chipsets are handled by the sata_sil driver, which can be found in linux-2.6.26/drivers/ata/sata_sil.c. Looking at the first couple lines of that file, I found this comment:
Code: Select all
/*
* Documentation for SiI 3112:
* http://gkernel.sourceforge.net/specs/sii/3112A_SiI-DS-0095-B2.pdf.bz2
*
* Other errata and documentation available under NDA.
*/
There you go, that looks like a datasheet for your card. You may also want to look at the libata documentation, there
might be additional documentation there.
So, given all this information, and especially that datasheet, you should be able to write a driver for this card now. If I was doing that myself, I'd probably try to write it based solely off the 3112A datasheet. And don't forget to update the Wiki with implementation details. I'll go create a page for both cards and add a link to the datasheet now. I wonder if there's a datasheet for the 3512 as well. They may even be register compatible, who knows.