On Sat, Jan 14, 2012 at 08:56:58AM -0500, Loganaden Velvindron wrote:
> On Wed, Jan 04, 2012 at 02:55:04PM +1100, Jonathan Gray wrote:
> > On Mon, Jan 02, 2012 at 04:35:39PM -0500, Loganaden Velvindron wrote:
> > > Attaching any CDROM/DVDRIVE causes this error message
> > > when mouting a disk.
> > > 
> > > cd0(pciide0:0:1): timeout
> > > type: atapi
> > > c_bcount : 2048
> > > c_skip : 0
> > > 
> > > The machine then freezes and a hard reboot is necessary.
> > > 
> > > This issue has been reported by 2 users in the past:
> > > http://archives.neohapsis.com/archives/openbsd/2005-11/0782.html
> > > ``
> > > > > cd0(pciide0:0:0): timeout
> > > > > type: atapi
> > > > > c_bcount: 0
> > > > > c_skip: 0
> > > > > cd0(pciide0:0:0): timeout
> > > > > type: atapi
> > > > > c_bcount: 32
> > > 
> > > A workaround was to disable pciide:
> > > UKC> disable pciide*
> > > 59 pciide* disabled
> > > UKC> quit
> > > Continuing... 
> > > 
> > > Looking closely, these problems occur with this variant of the SiS 5513
> > > EIDE chipset:
> > > pciide0 at pci0 dev 2 function 5 "SiS 5513 EIDE" rev 0x01: 5597/5598: 
> > > DMA, chann
> > > el 0 wired to compatibility, channel 1 wired to compatibility
> > > atapiscsi0 at pciide0 channel 0 drive 1
> > > scsibus0 at atapiscsi0: 2 targets
> > > cd0 at scsibus0 targ 0 lun 0: <ATAPI, CD-ROM 52X, 172A> ATAPI 5/cdrom 
> > > removable
> > > cd0(pciide0:0:1): using PIO mode 4, DMA mode 2
> > > 
> > > By disabling dma, the issue goes away.
> > > 
> > > Looking at pciide.c shows that there are 2 variants of the 5597/5598:
> > > The one with rev 0xd0 which support UDMA and the previous versions
> > > with no support for UltraDMA. To be more precise UDMA exists but it's
> > > buggy.
> > > 
> > > It appears that rev 0x01 has a buggy DMA support. Falling back to PIO
> > > works fine. The diff disables DMA silently but not enabling DMA 
> > > capabilities
> > > on rev 0x01 of 5597/5598.
> > 
> > Disabling DMA is quite a large hammer, it seems more likely the timings need
> > to be adjusted or some config space io needs to happen.  I can't see any
> > revision specific errata in the FreeBSD/Linux code.
> 
> Chris (chris@) tracked down the problem. According to:
> http://svn.netlabs.org/repos/xata/ATA/tags/v1.8.11/doc/ChipList.txt
> Variants below 0xd0 have a problem using UDMA.
> 
> Mine is hooked to this:
> pcib0 at pci0 dev 2 function 0 "SiS 968 ISA" rev 0x01
> 
> What's needed is to add it to the sis_hostbr table.
> pciide0 at pci0 dev 2 function 5 "SiS 5513 EIDE" rev 0x01: 968: DMA, channel 
> 0 wired to compatibility, channel 1 wired to compatibility
> avail mem = 2042195968 (1947MB)
> pcib0 at pci0 dev 2 function 0 "SiS 968 ISA" rev 0x01
> pciide0 at pci0 dev 2 function 5 "SiS 5513 EIDE" rev 0x01: 968: DMA, channel 
> 0 wired to compatibility, channel 1 wired to compatibility
> 
> (Huge thanks to Chris :-))

Ah yes, I'd forgotten the horrors of the sis part of pciide.  I wish they'd
stop making chipsets already.

Which Chris by the way?  Chris Cappuccio?

Anyway, I'll likely commit the diff with the addition of 966 tomorrow,
(the 967 doesn't seem to exist).

Index: pciide.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/pciide.c,v
retrieving revision 1.336
diff -u -p -r1.336 pciide.c
--- pciide.c    4 Jan 2012 03:38:59 -0000       1.336
+++ pciide.c    14 Jan 2012 14:12:40 -0000
@@ -4966,7 +4966,9 @@ static struct sis_hostbr_type {
        {PCI_PRODUCT_SIS_962, 0x00, 6, "962", SIS_TYPE_133NEW},
        {PCI_PRODUCT_SIS_963, 0x00, 6, "963", SIS_TYPE_133NEW},
        {PCI_PRODUCT_SIS_964, 0x00, 6, "964", SIS_TYPE_133NEW},
-       {PCI_PRODUCT_SIS_965, 0x00, 6, "965", SIS_TYPE_133NEW}
+       {PCI_PRODUCT_SIS_965, 0x00, 6, "965", SIS_TYPE_133NEW},
+       {PCI_PRODUCT_SIS_966, 0x00, 6, "966", SIS_TYPE_133NEW},
+       {PCI_PRODUCT_SIS_968, 0x00, 6, "968", SIS_TYPE_133NEW}
 };
 
 static struct sis_hostbr_type *sis_hostbr_type_match;

Reply via email to