summaryrefslogtreecommitdiffstats
path: root/sys/pc98
diff options
context:
space:
mode:
authorkato <kato@FreeBSD.org>1998-12-30 08:09:11 +0000
committerkato <kato@FreeBSD.org>1998-12-30 08:09:11 +0000
commit73edf934d91b1865b86d80f53e5d5dd7790aa4d9 (patch)
tree546d897a99fc7c42f12c14f0c6342cbff9da45f6 /sys/pc98
parentc3a2261141ae3ce18e4cf0b1057d6a9c24cc92e7 (diff)
downloadFreeBSD-src-73edf934d91b1865b86d80f53e5d5dd7790aa4d9.zip
FreeBSD-src-73edf934d91b1865b86d80f53e5d5dd7790aa4d9.tar.gz
Sync with sys/i386/isa/sio.c revision 1.220.
Diffstat (limited to 'sys/pc98')
-rw-r--r--sys/pc98/cbus/sio.c159
-rw-r--r--sys/pc98/pc98/sio.c159
2 files changed, 2 insertions, 316 deletions
diff --git a/sys/pc98/cbus/sio.c b/sys/pc98/cbus/sio.c
index e5dc784..80c260d 100644
--- a/sys/pc98/cbus/sio.c
+++ b/sys/pc98/cbus/sio.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* from: @(#)com.c 7.5 (Berkeley) 5/16/91
- * $Id: sio.c,v 1.69 1998/11/23 07:49:03 kato Exp $
+ * $Id: sio.c,v 1.70 1998/12/08 08:18:59 kato Exp $
*/
#include "opt_comconsole.h"
@@ -416,9 +416,6 @@ static timeout_t comwakeup;
static void disc_optim __P((struct tty *tp, struct termios *t,
struct com_s *com));
-#ifdef DSI_SOFT_MODEM
-static int LoadSoftModem __P((int unit,int base_io, u_long size, u_char *ptr));
-#endif /* DSI_SOFT_MODEM */
static char driver_name[] = "sio";
@@ -1274,12 +1271,6 @@ sioattach(isdp)
/* attempt to determine UART type */
printf("sio%d: type", unit);
-#ifdef DSI_SOFT_MODEM
- if((inb(iobase+7) ^ inb(iobase+7)) & 0x80) {
- printf(" Digicom Systems, Inc. SoftModem");
- goto determined_type;
- }
-#endif /* DSI_SOFT_MODEM */
#ifndef PC98
#ifdef COM_MULTIPORT
@@ -2251,34 +2242,6 @@ sioioctl(dev, cmd, data, flag, p)
case TIOCGWINSZ:
bzero(data, sizeof(struct winsize));
return (0);
-#ifdef DSI_SOFT_MODEM
- /*
- * Download micro-code to Digicom modem.
- */
- case TIOCDSIMICROCODE:
- {
- u_long l;
- u_char *p,*pi;
-
- pi = (u_char*)(*(caddr_t*)data);
- error = copyin(pi,&l,sizeof l);
- if(error)
- {return error;};
- pi += sizeof l;
-
- p = malloc(l,M_TEMP,M_NOWAIT);
- if(!p)
- {return ENOBUFS;}
- error = copyin(pi,p,l);
- if(error)
- {free(p,M_TEMP); return error;};
- if(error = LoadSoftModem(
- MINOR_TO_UNIT(mynor),iobase,l,p))
- {free(p,M_TEMP); return error;}
- free(p,M_TEMP);
- return(0);
- }
-#endif /* DSI_SOFT_MODEM */
default:
return (ENOTTY);
}
@@ -3494,126 +3457,6 @@ siocnputc(dev, c)
splx(s);
}
-#ifdef DSI_SOFT_MODEM
-/*
- * The magic code to download microcode to a "Connection 14.4+Fax"
- * modem from Digicom Systems Inc. Very magic.
- */
-
-#define DSI_ERROR(str) { ptr = str; goto error; }
-static int
-LoadSoftModem(int unit, int base_io, u_long size, u_char *ptr)
-{
- int int_c,int_k;
- int data_0188, data_0187;
-
- /*
- * First see if it is a DSI SoftModem
- */
- if(!((inb(base_io+7) ^ inb(base_io+7)) & 0x80))
- return ENODEV;
-
- data_0188 = inb(base_io+4);
- data_0187 = inb(base_io+3);
- outb(base_io+3,0x80);
- outb(base_io+4,0x0C);
- outb(base_io+0,0x31);
- outb(base_io+1,0x8C);
- outb(base_io+7,0x10);
- outb(base_io+7,0x19);
-
- if(0x18 != (inb(base_io+7) & 0x1A))
- DSI_ERROR("dsp bus not granted");
-
- if(0x01 != (inb(base_io+7) & 0x01)) {
- outb(base_io+7,0x18);
- outb(base_io+7,0x19);
- if(0x01 != (inb(base_io+7) & 0x01))
- DSI_ERROR("program mem not granted");
- }
-
- int_c = 0;
-
- while(1) {
- if(int_c >= 7 || size <= 0x1800)
- break;
-
- for(int_k = 0 ; int_k < 0x800; int_k++) {
- outb(base_io+0,*ptr++);
- outb(base_io+1,*ptr++);
- outb(base_io+2,*ptr++);
- }
-
- size -= 0x1800;
- int_c++;
- }
-
- if(size > 0x1800) {
- outb(base_io+7,0x18);
- outb(base_io+7,0x19);
- if(0x00 != (inb(base_io+7) & 0x01))
- DSI_ERROR("program data not granted");
-
- for(int_k = 0 ; int_k < 0x800; int_k++) {
- outb(base_io+1,*ptr++);
- outb(base_io+2,0);
- outb(base_io+1,*ptr++);
- outb(base_io+2,*ptr++);
- }
-
- size -= 0x1800;
-
- while(size > 0x1800) {
- for(int_k = 0 ; int_k < 0xC00; int_k++) {
- outb(base_io+1,*ptr++);
- outb(base_io+2,*ptr++);
- }
- size -= 0x1800;
- }
-
- if(size < 0x1800) {
- for(int_k=0;int_k<size/2;int_k++) {
- outb(base_io+1,*ptr++);
- outb(base_io+2,*ptr++);
- }
- }
-
- } else if (size > 0) {
- if(int_c == 7) {
- outb(base_io+7,0x18);
- outb(base_io+7,0x19);
- if(0x00 != (inb(base_io+7) & 0x01))
- DSI_ERROR("program data not granted");
- for(int_k = 0 ; int_k < size/3; int_k++) {
- outb(base_io+1,*ptr++);
- outb(base_io+2,0);
- outb(base_io+1,*ptr++);
- outb(base_io+2,*ptr++);
- }
- } else {
- for(int_k = 0 ; int_k < size/3; int_k++) {
- outb(base_io+0,*ptr++);
- outb(base_io+1,*ptr++);
- outb(base_io+2,*ptr++);
- }
- }
- }
- outb(base_io+7,0x11);
- outb(base_io+7,3);
-
- outb(base_io+4,data_0188 & 0xfb);
-
- outb(base_io+3,data_0187);
-
- return 0;
-error:
- printf("sio%d: DSI SoftModem microcode load failed: <%s>\n",unit,ptr);
- outb(base_io+7,0x00); \
- outb(base_io+3,data_0187); \
- outb(base_io+4,data_0188); \
- return EIO;
-}
-#endif /* DSI_SOFT_MODEM */
/*
* support PnP cards if we are using 'em
diff --git a/sys/pc98/pc98/sio.c b/sys/pc98/pc98/sio.c
index e5dc784..80c260d 100644
--- a/sys/pc98/pc98/sio.c
+++ b/sys/pc98/pc98/sio.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* from: @(#)com.c 7.5 (Berkeley) 5/16/91
- * $Id: sio.c,v 1.69 1998/11/23 07:49:03 kato Exp $
+ * $Id: sio.c,v 1.70 1998/12/08 08:18:59 kato Exp $
*/
#include "opt_comconsole.h"
@@ -416,9 +416,6 @@ static timeout_t comwakeup;
static void disc_optim __P((struct tty *tp, struct termios *t,
struct com_s *com));
-#ifdef DSI_SOFT_MODEM
-static int LoadSoftModem __P((int unit,int base_io, u_long size, u_char *ptr));
-#endif /* DSI_SOFT_MODEM */
static char driver_name[] = "sio";
@@ -1274,12 +1271,6 @@ sioattach(isdp)
/* attempt to determine UART type */
printf("sio%d: type", unit);
-#ifdef DSI_SOFT_MODEM
- if((inb(iobase+7) ^ inb(iobase+7)) & 0x80) {
- printf(" Digicom Systems, Inc. SoftModem");
- goto determined_type;
- }
-#endif /* DSI_SOFT_MODEM */
#ifndef PC98
#ifdef COM_MULTIPORT
@@ -2251,34 +2242,6 @@ sioioctl(dev, cmd, data, flag, p)
case TIOCGWINSZ:
bzero(data, sizeof(struct winsize));
return (0);
-#ifdef DSI_SOFT_MODEM
- /*
- * Download micro-code to Digicom modem.
- */
- case TIOCDSIMICROCODE:
- {
- u_long l;
- u_char *p,*pi;
-
- pi = (u_char*)(*(caddr_t*)data);
- error = copyin(pi,&l,sizeof l);
- if(error)
- {return error;};
- pi += sizeof l;
-
- p = malloc(l,M_TEMP,M_NOWAIT);
- if(!p)
- {return ENOBUFS;}
- error = copyin(pi,p,l);
- if(error)
- {free(p,M_TEMP); return error;};
- if(error = LoadSoftModem(
- MINOR_TO_UNIT(mynor),iobase,l,p))
- {free(p,M_TEMP); return error;}
- free(p,M_TEMP);
- return(0);
- }
-#endif /* DSI_SOFT_MODEM */
default:
return (ENOTTY);
}
@@ -3494,126 +3457,6 @@ siocnputc(dev, c)
splx(s);
}
-#ifdef DSI_SOFT_MODEM
-/*
- * The magic code to download microcode to a "Connection 14.4+Fax"
- * modem from Digicom Systems Inc. Very magic.
- */
-
-#define DSI_ERROR(str) { ptr = str; goto error; }
-static int
-LoadSoftModem(int unit, int base_io, u_long size, u_char *ptr)
-{
- int int_c,int_k;
- int data_0188, data_0187;
-
- /*
- * First see if it is a DSI SoftModem
- */
- if(!((inb(base_io+7) ^ inb(base_io+7)) & 0x80))
- return ENODEV;
-
- data_0188 = inb(base_io+4);
- data_0187 = inb(base_io+3);
- outb(base_io+3,0x80);
- outb(base_io+4,0x0C);
- outb(base_io+0,0x31);
- outb(base_io+1,0x8C);
- outb(base_io+7,0x10);
- outb(base_io+7,0x19);
-
- if(0x18 != (inb(base_io+7) & 0x1A))
- DSI_ERROR("dsp bus not granted");
-
- if(0x01 != (inb(base_io+7) & 0x01)) {
- outb(base_io+7,0x18);
- outb(base_io+7,0x19);
- if(0x01 != (inb(base_io+7) & 0x01))
- DSI_ERROR("program mem not granted");
- }
-
- int_c = 0;
-
- while(1) {
- if(int_c >= 7 || size <= 0x1800)
- break;
-
- for(int_k = 0 ; int_k < 0x800; int_k++) {
- outb(base_io+0,*ptr++);
- outb(base_io+1,*ptr++);
- outb(base_io+2,*ptr++);
- }
-
- size -= 0x1800;
- int_c++;
- }
-
- if(size > 0x1800) {
- outb(base_io+7,0x18);
- outb(base_io+7,0x19);
- if(0x00 != (inb(base_io+7) & 0x01))
- DSI_ERROR("program data not granted");
-
- for(int_k = 0 ; int_k < 0x800; int_k++) {
- outb(base_io+1,*ptr++);
- outb(base_io+2,0);
- outb(base_io+1,*ptr++);
- outb(base_io+2,*ptr++);
- }
-
- size -= 0x1800;
-
- while(size > 0x1800) {
- for(int_k = 0 ; int_k < 0xC00; int_k++) {
- outb(base_io+1,*ptr++);
- outb(base_io+2,*ptr++);
- }
- size -= 0x1800;
- }
-
- if(size < 0x1800) {
- for(int_k=0;int_k<size/2;int_k++) {
- outb(base_io+1,*ptr++);
- outb(base_io+2,*ptr++);
- }
- }
-
- } else if (size > 0) {
- if(int_c == 7) {
- outb(base_io+7,0x18);
- outb(base_io+7,0x19);
- if(0x00 != (inb(base_io+7) & 0x01))
- DSI_ERROR("program data not granted");
- for(int_k = 0 ; int_k < size/3; int_k++) {
- outb(base_io+1,*ptr++);
- outb(base_io+2,0);
- outb(base_io+1,*ptr++);
- outb(base_io+2,*ptr++);
- }
- } else {
- for(int_k = 0 ; int_k < size/3; int_k++) {
- outb(base_io+0,*ptr++);
- outb(base_io+1,*ptr++);
- outb(base_io+2,*ptr++);
- }
- }
- }
- outb(base_io+7,0x11);
- outb(base_io+7,3);
-
- outb(base_io+4,data_0188 & 0xfb);
-
- outb(base_io+3,data_0187);
-
- return 0;
-error:
- printf("sio%d: DSI SoftModem microcode load failed: <%s>\n",unit,ptr);
- outb(base_io+7,0x00); \
- outb(base_io+3,data_0187); \
- outb(base_io+4,data_0188); \
- return EIO;
-}
-#endif /* DSI_SOFT_MODEM */
/*
* support PnP cards if we are using 'em
OpenPOWER on IntegriCloud