From owner-freebsd-scsi Tue May 2 13:21: 1 2000 Delivered-To: freebsd-scsi@freebsd.org Received: from front1m.grolier.fr (front1m.grolier.fr [195.36.216.51]) by hub.freebsd.org (Postfix) with ESMTP id 7453A37B813 for ; Tue, 2 May 2000 13:20:56 -0700 (PDT) (envelope-from groudier@club-internet.fr) Received: from ppp-169-76.villette.club-internet.fr (ppp-169-76.villette.club-internet.fr [195.36.169.76]) by front1m.grolier.fr (8.9.3/No_Relay+No_Spam_MGC990224) with ESMTP id WAA02940; Tue, 2 May 2000 22:20:47 +0200 (MET DST) Date: Tue, 2 May 2000 21:55:34 +0200 (CEST) From: =?ISO-8859-1?Q?G=E9rard_Roudier?= X-Sender: groudier@linux.local To: Thomas Faehnle Cc: freebsd-scsi@FreeBSD.ORG Subject: Re: sym driver doesn't like 53c810a In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=ISO-8859-1 Content-Transfer-Encoding: QUOTED-PRINTABLE Sender: owner-freebsd-scsi@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org Hello, All `sym' driver versions love the 53c810a, for the reason I have such a=20 controller on my developement machine. :) On Tue, 2 May 2000, Thomas Faehnle wrote: > Hi, >=20 > I'm having trouble getting the sym driver to work with a 53c810a > (no-name board), chip rev. 0x11. The board works fine with the ncr > driver, however (under both FreeBSD and Linux). >=20 > I tried both the version that came with the 4.0-RELEASE and 1.5.0 (with > and without the XXXX_DEBUG_GENERIC_SUPPORT_XXX option). >=20 > Output is as follows: >=20 > 4.0-RELEASE > ----------- >=20 > sym0: <810a> port 0x6000-0x60ff mem 0xe1000000-0xe10000ff irq 15 at devic= e 9.0 on pci0 > sym0: No NVRAM, ID 7, Fast-10, SE, parity checking > pci0: at 11.0 irq 9 > [...] > unknown2: at port 0x200 on isa0 > unknown3: at port 0x300-0x301 on isa0 > sym0:8: ERROR (c0:0) (8-0-0) (40/3) @ (script 40:4300001c). DSTAT=3D0xc0 bit 0x40 means MASTER DATA PARITY ERROR detected. Manual says approximatively: chip detects a data parity error on PCI when acting as a master or a PCI target device signals a parity error during a data phase. > sym0: script cmd =3D f3100004 > sym0: regdump: ca 00 00 03 47 40 08 1f 00 08 00 00 80 00 08 02 00 50 e8 0= 3 00 ff ff ff. > sym0: PCI STATUS =3D 0x8100 PCI STATUS =3D 0x8100 Bit 0x8000: PCI specs say this bit must be set by the device whenever it detects a parity error even if parity error is disabled. The `sym' enables PCI parity checking as most PCI device drivers seem not to do. For ncr/symbios chips both bit 1<<6 in PCI command register and=20 bit 1<<3 in CTEST4 IO register must be set. You can either hack the `sym'driver for it not to enable PCI parity checking for the PCI device, or use the `ncr', or try to find what is triggerring the PCI parity error in your hardware and try to fix it. For the hacking of `sym' you can edit sym_conf.h on your own decision obviously: (below is the relevant section) -- /* * PCI parity checking. * It should not be an option, but some poor or broken=20 * PCI-HOST bridges have been reported to make problems=20 * when this feature is enabled. * Setting this option to 0 tells the driver not to=20 * enable the checking against PCI parity. */ #ifndef SYM_SETUP_PCI_PARITY #define SYM_SETUP_PCI_PARITY=09(1) #endif -- The default setting for PCI parity checking in `sym' will obviously=20 stay _enabled_ in the repository. I would recommend you to look into the possible settings of your MB chipset (core logic) and avoid any PCI optimization that seems so great that it could well be broken in the first place. For example using some asynchronous PCI clocking feature supported by some non-Intel chipsets has been reported to trigger PCI problems, at least with 53c8xx PCI devices. Regards, G=E9rard. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-scsi" in the body of the message