From owner-FreeBSD-tech-jp@jp.freebsd.org  Sun Jun 11 08:07:16 2000
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id IAA22968;
	Sun, 11 Jun 2000 08:07:16 +0900 (JST)
	(envelope-from owner-FreeBSD-tech-jp@jp.FreeBSD.org)
Received: from serio.al.rim.or.jp (serio.al.rim.or.jp [202.247.191.123])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id IAA22963
	for <FreeBSD-tech-jp@jp.freebsd.org>; Sun, 11 Jun 2000 08:07:15 +0900 (JST)
	(envelope-from inagaki@tg.rim.or.jp)
Received: from mail1.rim.or.jp
	by serio.al.rim.or.jp (8.9.3/3.7W/HMX-12) id IAA26064
	for <FreeBSD-tech-jp@jp.freebsd.org>; Sun, 11 Jun 2000 08:07:19 +0900 (JST)
Received: from lunatic.kareidoscope.ne.jp (ngno005n023.ppp.infoweb.ne.jp [211.2.14.135]) by mail1.rim.or.jp (3.7W)
	id IAA26478 for <FreeBSD-tech-jp@jp.freebsd.org>; Sun, 11 Jun 2000 08:07:14 +0900 (JST)
Received: from localhost (localhost [127.0.0.1])
	by lunatic.kareidoscope.ne.jp (8.9.3/3.7W) with ESMTP id IAA11824
	for <FreeBSD-tech-jp@jp.freebsd.org>; Sun, 11 Jun 2000 08:02:39 +0900 (JST)
Date: Sun, 11 Jun 2000 08:02:39 +0900 (JST)
Message-Id: <20000611.080239.71086627.inagaki@tg.rim.or.jp>
To: FreeBSD-tech-jp@jp.freebsd.org
From: Kentaro Inagaki / =?iso-2022-jp?B?GyRCMHAzQBsoQiAbJEI3ckJATzobKEI=?=
 <inagaki@tg.rim.or.jp>
In-Reply-To: <20000603.000618.74749345.inagaki@tg.rim.or.jp>
References: <20000603.000618.74749345.inagaki@tg.rim.or.jp>
X-Mailer: Mew version 1.95b36 on Emacs 20.6 / Mule 4.0 (HANANOEN)
X-URL: http://www.tg.rim.or.jp/~inagaki/
Mime-Version: 1.0
Content-Type: Multipart/Mixed;
 boundary="--Next_Part(Sun_Jun_11_08:02:39_2000_571)--"
Content-Transfer-Encoding: 7bit
Reply-To: FreeBSD-tech-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+000315
X-Sequence: FreeBSD-tech-jp 2815
Subject: [FreeBSD-tech-jp 2815] Re: Hayes ESP isa card (high speed extend
 serial port)
Errors-To: owner-FreeBSD-tech-jp@jp.freebsd.org
Sender: owner-FreeBSD-tech-jp@jp.freebsd.org
X-Originator: inagaki@tg.rim.or.jp

----Next_Part(Sun_Jun_11_08:02:39_2000_571)--
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit

$B0p3@$G$9!#(B

$B$&$K$e$K$e$K$e!"$3$N%Q%C%A<:GT:n$@!#$@$+$i?7:n$G$9!#(B

$B<B$O$3$N%\!<%IBgNL$N%P%C%U%!$,:\$C$F$$$k$N$G(B FIFO $B$K$I$NDxEY(B
$B%G!<%?$,N/$C$?$i3d$j9~$_$r$+$1$k$+$N@_Dj$G(B 1,64,256,512 $B$r;H(B
$B$($^$9!#(B

$B$,!";H$C$F$J$+$C$?$N$G$J$s$G$@$m$&$H;W$C$FNI$/8+$?$i$=$s$J$G(B
$B$+$$%G!<%?%P!<%9%H$r07$($J$$$C$FGc$$$F$"$C$?$G$9!#(B

$B2y$7$$$N$G%P%C%U%!NL$rA}$d$7$F%H%j%,%l%Y%k$r(B 64 $B$K@_Dj$7$F$_(B
$B$?$H$3$m$J$s$NLdBj$b$J$/F0$$$F$$$k$h$&$G$9!#(B

$BC/$+8!>Z$7$F$_$^$;$s$+!)(B

# $B;~4V$,$"$C$?$iF~=PNO%a%b%j$r;H$C$?%P!<%9%HE>Aw$r<BAu$7$F$_(B
# $B$?$$$G$9!#(B
----
Kentaro Inagaki / $B0p3@(B $B7rB@O:(B
ZOB Station BBS (TELNET: zmm.zob.ne.jp) zob23368(zob13052)/seraph

----Next_Part(Sun_Jun_11_08:02:39_2000_571)--
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="esp.patch"

--- ic/esp.h.orig	Sat Jun 10 21:01:46 2000
+++ ic/esp.h	Sat Jun 10 17:28:00 2000
@@ -59,6 +59,7 @@
 #define	ESP_SETFLOWTYPE	0x08	/* set type of flow-control (2 bytes) */
 #define	ESP_SETRXFLOW	0x0a	/* set Rx FIFO flow control levels (4 bytes) */
 #define	ESP_SETMODE	0x10	/* set board mode (1 byte) */
+#define ESP_SETCLOCK	0x23	/* set UART clock prescaler */
 
 /* Mode bits (ESP_SETMODE). */
 #define	ESP_MODE_FIFO	0x02	/* act like a 16550 (compatibility mode) */
--- sio.c.orig	Mon May 29 23:23:30 2000
+++ sio.c	Sat Jun 10 18:49:38 2000
@@ -1267,7 +1267,8 @@
 		 * XXX flow control should be set in comparam(), not here.
 		 */
 		outb(com->esp_port + ESP_CMD1, ESP_SETMODE);
-		outb(com->esp_port + ESP_CMD2, ESP_MODE_RTS | ESP_MODE_FIFO);
+		outb(com->esp_port + ESP_CMD2, ESP_MODE_RTS | \
+		     ESP_MODE_FIFO | ESP_MODE_SCALE);
 
 		/* Set RTS/CTS flow control. */
 		outb(com->esp_port + ESP_CMD1, ESP_SETFLOWTYPE);
@@ -1280,6 +1281,10 @@
 		outb(com->esp_port + ESP_CMD2, LOBYTE(768));
 		outb(com->esp_port + ESP_CMD2, HIBYTE(512));
 		outb(com->esp_port + ESP_CMD2, LOBYTE(512));
+
+		/* Set UART clock prescaler. */
+		outb(com->esp_port + ESP_CMD1, ESP_SETCLOCK);
+		outb(com->esp_port + ESP_CMD2, 1);
 	}
 #endif /* COM_ESP */
 	sio_setreg(com, com_fifo, 0);
@@ -2315,8 +2320,12 @@
 		 * protocols shouldn't expect anything better since modem
 		 * latencies are larger.
 		 */
+#ifdef COM_ESP
+		com->fifo_image = FIFO_ENABLE | FIFO_RX_MEDL;
+#else
 		com->fifo_image = t->c_ospeed <= 4800
 				  ? FIFO_ENABLE : FIFO_ENABLE | FIFO_RX_HIGH;
+#endif
 #ifdef COM_ESP
 		/*
 		 * The Hayes ESP card needs the fifo DMA mode bit set
@@ -2447,7 +2456,11 @@
 	 * (about 3 ticks if input flow control is not used or not honoured,
 	 * but a bit less for CS5-CS7 modes).
 	 */
+#ifdef COM_ESP
+	cp4ticks = speed / 10 / hz * 8;
+#else
 	cp4ticks = speed / 10 / hz * 4;
+#endif
 	for (ibufsize = 128; ibufsize < cp4ticks;)
 		ibufsize <<= 1;
 	if (ibufsize == com->ibufsize) {

----Next_Part(Sun_Jun_11_08:02:39_2000_571)----
