SiS 1183 SATA controller support

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

SiS 1183 SATA controller support

Loganaden Velvindron-3
Switching to IDE mode on the Asus P5SD2-VM activates
a weird chipset known as the SiS 1183.

pciide1 at pci0 dev 5 function 0 vendor "SiS", unknown product 0x1183 rev 0x03: DMA (unsupported), channel 0 wired to native-PCI, channel 1 wired to native-PCI
pciide1: using apic 1 int 17 for native-PCI interrupt
wd0 at pciide1 channel 0 drive 0: <Hitachi HDP725025GLA380>
wd0: 16-sector PIO, LBA48, 238475MB, 488397168 sectors
pciide1: channel 1 ignored (not responding; disabled or no drives?)

The best thing I could find that resembles programming
documentation is this:
http://old.nabble.com/-PATCH--sata_sis%3A-support-for-SiS-966-chipset-td6095608.html

It says that the 0x1183 (and the 0x1182, 0x1180) behave
almost exactly as the SiS 180.

There are some differences between the OpenBSD's sis 180
support and Linux.

OpenBSD uses a generic sata_chip_map whereas Linux
uses quirks for power management & port status.

Using sata_chip_map() is enough to get UDMA 6 support
and speed disk transfers without any hangup up to now.

The SiS 1183 is weird in the sense that it shows as an
IDE device when in fact, it's a SATA controller. I don't
see any reason why this is necessary.

dmesg:
pciide1 at pci0 dev 5 function 0 "SiS 1183 SATA" rev 0x03: DMA
pciide1: using apic 1 int 17 for native-PCI interrupt
wd0 at pciide1 channel 0 drive 0: <Hitachi HDP725025GLA380>
wd0: 16-sector PIO, LBA48, 238475MB, 488397168 sectors
wd0(pciide1:0:0): using PIO mode 4, Ultra-DMA mode 6

diff:
Index: sys/dev/pci/pcidevs
===================================================================
RCS file: /cvs/src/sys/dev/pci/pcidevs,v
retrieving revision 1.1629
diff -u -p -r1.1629 pcidevs
--- sys/dev/pci/pcidevs 2 Jan 2012 10:29:43 -0000 1.1629
+++ sys/dev/pci/pcidevs 3 Jan 2012 17:36:51 -0000
@@ -5129,6 +5129,7 @@ product SIS 964 0x0964 964 ISA
 product SIS 965 0x0965 965 ISA
 product SIS 966 0x0966 966 ISA
 product SIS 968 0x0968 968 ISA
+product SIS 1183 0x1183 1183 SATA
 product SIS 1184 0x1184 1184 RAID
 product SIS 1185 0x1185 1185 AHCI
 product SIS 5300 0x5300 540 VGA

Index: sys/dev/pci/pciide.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/pciide.c,v
retrieving revision 1.335
diff -u -p -r1.335 pciide.c
--- sys/dev/pci/pciide.c 12 Nov 2011 18:39:23 -0000 1.335
+++ sys/dev/pci/pciide.c 3 Jan 2012 17:37:20 -0000
@@ -749,6 +749,10 @@ const struct pciide_product_desc pciide_
  { PCI_PRODUCT_SIS_182, /* SIS 182 SATA */
   0,
   sata_chip_map
+ },
+ { PCI_PRODUCT_SIS_1183, /* SIS 1183 SATA */
+  0,
+  sata_chip_map
  }
 };

Reply | Threaded
Open this post in threaded view
|

Re: SiS 1183 SATA controller support

Chris Cappuccio
Loganaden Velvindron [[hidden email]] wrote:
>
> The SiS 1183 is weird in the sense that it shows as an
> IDE device when in fact, it's a SATA controller. I don't
> see any reason why this is necessary.
>

The physical interface is unimportant. The software interface is the same, unless you force the chip into AHCI mode. And that's only if it even supports AHCI!

--
There are only three sports: bullfighting, motor racing, and mountaineering; all the rest are merely games. - E. Hemingway

Reply | Threaded
Open this post in threaded view
|

Re: SiS 1183 SATA controller support

Jonathan Gray
In reply to this post by Loganaden Velvindron-3
On Tue, Jan 03, 2012 at 12:56:46PM -0500, Loganaden Velvindron wrote:

> Switching to IDE mode on the Asus P5SD2-VM activates
> a weird chipset known as the SiS 1183.
>
> pciide1 at pci0 dev 5 function 0 vendor "SiS", unknown product 0x1183 rev 0x03: DMA (unsupported), channel 0 wired to native-PCI, channel 1 wired to native-PCI
> pciide1: using apic 1 int 17 for native-PCI interrupt
> wd0 at pciide1 channel 0 drive 0: <Hitachi HDP725025GLA380>
> wd0: 16-sector PIO, LBA48, 238475MB, 488397168 sectors
> pciide1: channel 1 ignored (not responding; disabled or no drives?)
>
> The best thing I could find that resembles programming
> documentation is this:
> http://old.nabble.com/-PATCH--sata_sis%3A-support-for-SiS-966-chipset-td6095608.html
>
> It says that the 0x1183 (and the 0x1182, 0x1180) behave
> almost exactly as the SiS 180.
>
> There are some differences between the OpenBSD's sis 180
> support and Linux.
>
> OpenBSD uses a generic sata_chip_map whereas Linux
> uses quirks for power management & port status.
>
> Using sata_chip_map() is enough to get UDMA 6 support
> and speed disk transfers without any hangup up to now.
>
> The SiS 1183 is weird in the sense that it shows as an
> IDE device when in fact, it's a SATA controller. I don't
> see any reason why this is necessary.
>
> dmesg:
> pciide1 at pci0 dev 5 function 0 "SiS 1183 SATA" rev 0x03: DMA
> pciide1: using apic 1 int 17 for native-PCI interrupt
> wd0 at pciide1 channel 0 drive 0: <Hitachi HDP725025GLA380>
> wd0: 16-sector PIO, LBA48, 238475MB, 488397168 sectors
> wd0(pciide1:0:0): using PIO mode 4, Ultra-DMA mode 6

Thanks, I've committed this.  I considered adding the 1182 as well
but Linux has some additional link init code that is only used on
the 1182, so I've omitted it for now.