From owner-freebsd-stable Tue Jun 13 9: 5:17 2000 Delivered-To: freebsd-stable@freebsd.org Received: from reticent.troll.no (reticent.troll.no [195.0.254.28]) by hub.freebsd.org (Postfix) with SMTP id 080C937B51E for ; Tue, 13 Jun 2000 09:05:10 -0700 (PDT) (envelope-from bhughes@trolltech.com) Received: (qmail 207 invoked by uid 1001); 13 Jun 2000 16:05:09 -0000 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 13 Jun 2000 16:05:09 -0000 Date: Tue, 13 Jun 2000 18:05:08 +0200 (CEST) From: "Bradley T. Hughes" X-Sender: bhughes@reticent.troll.no To: =?ISO-8859-1?Q?G=E9rard_Roudier?= Cc: freebsd-stable@FreeBSD.ORG, freebsd-scsi@FreeBSD.ORG Subject: Re: Problem with newer sym driver on a Tekram DC-390U2W controller 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-stable@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG 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 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