From owner-freebsd-bugs Sun Jun 4 16: 2: 8 2000 Delivered-To: freebsd-bugs@freebsd.org Received: from midten.fast.no (midten.fast.no [213.188.8.11]) by hub.freebsd.org (Postfix) with ESMTP id E394237BAA3 for ; Sun, 4 Jun 2000 16:01:58 -0700 (PDT) (envelope-from tegge@fast.no) Received: from fast.no (IDENT:tegge@midten.fast.no [213.188.8.11]) by midten.fast.no (8.9.3/8.9.3) with ESMTP id BAA71367; Mon, 5 Jun 2000 01:01:26 +0200 (CEST) Message-Id: <200006042301.BAA71367@midten.fast.no> To: ebd@oau.org Cc: support@comtrol.com, Tom.Hitchcock@comtrol.com, freebsd-bugs@FreeBSD.ORG Subject: Re: RocketPort PCI/Octa/DB25 vs. FreeBSD 3.4-STABLE From: Tor.Egge@fast.no In-Reply-To: Your message of "Sat, 3 Jun 2000 14:01:10 -0400 (EDT)" References: <200006031801.OAA00997@alfred.oau.org> X-Mailer: Mew version 1.70 on Emacs 19.34.1 Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Mon_Jun__5_01:00:44_2000)--" Content-Transfer-Encoding: 7bit Date: Mon, 05 Jun 2000 01:01:26 +0200 Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org ----Next_Part(Mon_Jun__5_01:00:44_2000)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit > I have isolated the second part, but have not yet come up with a > resolution. The setting lock devices are not working properly > (cualR0, ttylR0) with regards to the baud rate. If you set the lock device > to zero baud, it will only let you access the device at zero baud. The > same holds true for 1200, 2400, etc. The initial setting of this device > starts at 9600 baud. I have not been able to locate a value that allows > you to change the baud rate of the regular callout device (cuaR0) when > you access it. I don't know if this problem is in rp.c or tty.c. I will > keep trying to find it, but I would appreciate any assistance. MAKEDEV generates incorrect minor device numbers for {cua,tty}{i,l}R0. Locking of control characters is broken in rp.c. I suggest the following steps: - apply the enclosed patches - install the updated MAKEDEV - recreate the RocketPort device files by running the newly installed MAKEDEV - compile a new kernel - install the new kernel - reboot the machine - test The standard RocketPort driver in FreeBSD has some additional problems: - Only the first PCI RocketPort card works in a machine. - open() might cause a kernel panic instead of returning ENXIO if the device doesn't exist. - Tor Egge ----Next_Part(Mon_Jun__5_01:00:44_2000)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Description: "MAKEDEV patch" Index: MAKEDEV =================================================================== RCS file: /home/ncvs/src/etc/etc.i386/Attic/MAKEDEV,v retrieving revision 1.183.2.16 diff -u -r1.183.2.16 MAKEDEV --- MAKEDEV 1999/11/15 22:14:50 1.183.2.16 +++ MAKEDEV 2000/06/04 22:17:05 @@ -1057,8 +1057,8 @@ echo -n "Creating $ndevices devices for $i: " for dev in `jot $ndevices 0`;do mknod /dev/ttyR$Rnum c $major $MINOR - mknod /dev/ttylR$Rnum c $major `expr $MINOR + 32` - mknod /dev/ttyiR$Rnum c $major `expr $MINOR + 64` + mknod /dev/ttyiR$Rnum c $major `expr $MINOR + 32` + mknod /dev/ttylR$Rnum c $major `expr $MINOR + 64` Rnum=`expr $Rnum + 1` MINOR=`expr $MINOR + 1` done @@ -1080,8 +1080,8 @@ echo -n "Creating $ndevices devices for $i: " for dev in `jot $ndevices 0`;do mknod /dev/cuaR$Rnum c $major `expr $MINOR + 128` - mknod /dev/cualR$Rnum c $major `expr $MINOR + 128 + 32` - mknod /dev/cuaiR$Rnum c $major `expr $MINOR + 128 + 64` + mknod /dev/cuaiR$Rnum c $major `expr $MINOR + 128 + 32` + mknod /dev/cualR$Rnum c $major `expr $MINOR + 128 + 64` Rnum=`expr $Rnum + 1` MINOR=`expr $MINOR + 1` done ----Next_Part(Mon_Jun__5_01:00:44_2000)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Description: "rp.c patch" Index: rp.c =================================================================== RCS file: /home/ncvs/src/sys/i386/isa/rp.c,v retrieving revision 1.18 diff -u -r1.18 rp.c --- rp.c 1999/01/12 00:36:35 1.18 +++ rp.c 2000/06/04 22:14:43 @@ -1666,7 +1783,7 @@ dt->c_lflag = (tp->t_lflag & lt->c_lflag) | (dt->c_lflag & ~lt->c_lflag); for(cc = 0; cc < NCCS; ++cc) - if(lt->c_cc[cc] = tp->t_cc[cc]) + if(lt->c_cc[cc] != 0) dt->c_cc[cc] = tp->t_cc[cc]; if(lt->c_ispeed != 0) dt->c_ispeed = tp->t_ispeed; ----Next_Part(Mon_Jun__5_01:00:44_2000)---- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message