Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 2 May 2000 21:55:34 +0200 (CEST)
From:      =?ISO-8859-1?Q?G=E9rard_Roudier?= <groudier@club-internet.fr>
To:        Thomas Faehnle <tf@wurbl.wn.bawue.de>
Cc:        freebsd-scsi@FreeBSD.ORG
Subject:   Re: sym driver doesn't like 53c810a
Message-ID:  <Pine.LNX.4.10.10005022121490.1582-100000@linux.local>
In-Reply-To: <E12meVh-0001LE-00@wurbl.bk.int>

next in thread | previous in thread | raw e-mail | index | archive | help

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: <ATI Mach64-GP graphics accelerator> at 11.0 irq 9
> [...]
> unknown2: <Game Port> at port 0x200 on isa0
> unknown3: <MPU401> 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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.LNX.4.10.10005022121490.1582-100000>