Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 13 Jun 2000 18:05:08 +0200 (CEST)
From:      "Bradley T. Hughes" <bhughes@trolltech.com>
To:        =?ISO-8859-1?Q?G=E9rard_Roudier?= <groudier@club-internet.fr>
Cc:        freebsd-stable@FreeBSD.ORG, freebsd-scsi@FreeBSD.ORG
Subject:   Re: Problem with newer sym driver on a Tekram DC-390U2W controller
Message-ID:  <Pine.BSF.4.21.0006131803220.202-100000@reticent.troll.no>
In-Reply-To: <Pine.LNX.4.10.10006131529260.213-100000@linux.local>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 13 Jun 2000, G=E9rard Roudier wrote:

>=20
> Hello,
>=20
> Thanks for the report and sorry for the breakage. Unfortunately I haven't
> any Tekram board and so, risk of device setup breakage is more likely to
> happen for these boards due to their proprietary NVRAM layout. Tekram use
> to speak highly of their success under notably Linux and seem to want to
> provide their own drivers. May-be, for this reason, they never sent me an=
y
> of their SYM53C8XX based SCSI boards for driver testing.

i tried tekram's drivers, but my machine would reboot itself randomly for
some odd reason... the sym driver has proven much more stable

> Well. I have an explanation of the breakage. The table used by the driver
> to translate the NVRAM sync. tag to sync. factor is probably wrong. The
> values seem to be rather ((sync. period)/4 in nano-seconds) than true SCS=
I
> sync. factors.
>=20
> Here it the offending table:
>=20
> static u_char Tekram_sync[16] =3D
> =09{25,31,37,43, 50,62,75,125, 12,15,18,21, 6,7,9,10};
>=20
> The below preliminar patch should work-around the problem:
>=20
> --- sym_hipd.c.0613=09Tue Jun 13 14:58:18 2000
> +++ sym_hipd.c=09Tue Jun 13 15:17:54 2000
> @@ -2960,11 +2960,15 @@
>  =09=09sym_nvram_setup_target (np, i, nvram);
> =20
>  =09=09/*
> -=09=09 *  For now, guess PPR support from the period.
> +=09=09 *  For now, guess PPR/DT support from the period=20
> +=09=09 *  and BUS width.
>  =09=09 */
> -=09=09if (tp->tinfo.user.period <=3D 9) {
> -=09=09=09tp->tinfo.user.options |=3D PPR_OPT_DT;
> -=09=09=09tp->tinfo.user.offset   =3D np->maxoffs_dt;
> +=09=09if (np->features & FE_ULTRA3) {
> +=09=09=09if (tp->tinfo.user.period <=3D 9=09&&
> +=09=09=09    tp->tinfo.user.width =3D=3D BUS_16_BIT) {
> +=09=09=09=09tp->tinfo.user.options |=3D PPR_OPT_DT;
> +=09=09=09=09tp->tinfo.user.offset   =3D np->maxoffs_dt;
> +=09=09=09}
>  =09=09}
> =20
>  =09=09if (!tp->usrtags)
> ----------------------- Cut there ----------------------

after applying this to the 1.6.1 driver from -CURRENT, everything works
great

[snip]

--
Bradley T. Hughes <bhughes@trolltech.com>
Waldemar Thranes gt. 98B N-0175 Oslo, Norway
Office: +47 21 60 48 92
Mobile: +47 92 01 97 81



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




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