From 5a6a0aa2e75f249427fac59a0709c39f85dd9bf8 Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Tue, 8 Nov 1994 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1994-11-08 --- carrera/fns.h | 2 +- carrera/ns16552.h | 2 +- pc/devastar.c | 4 ++-- pc/ns16552.h | 13 ++++++++----- port/devns16552.c | 10 ++++++---- 5 files changed, 18 insertions(+), 13 deletions(-) diff --git a/carrera/fns.h b/carrera/fns.h index 216569fb7a79186f52efbd54c47a837d4709a7e2..160ad3e74ccfc482901d6de3e550d0911776ef2e 100644 --- a/carrera/fns.h +++ b/carrera/fns.h @@ -107,7 +107,7 @@ void Xdelay(int); void serialinit(void); void ns16552special(int, int, Queue**, Queue**, int (*)(Queue*, int)); -void ns16552setup(ulong, ulong); +void ns16552setup(ulong, ulong, char*); void ns16552intr(int); void etherintr(void); void iomapinit(void); diff --git a/carrera/ns16552.h b/carrera/ns16552.h index bd71ce809f2d34d460e65a2753c4fdaa7114454c..755e2fd0e222ce3be424adae6a07a50e9481fca0 100644 --- a/carrera/ns16552.h +++ b/carrera/ns16552.h @@ -13,7 +13,7 @@ ns16552install(void) return; already = 1; - ns16552setup(Uart1, UartFREQ); + ns16552setup(Uart1, UartFREQ, "eia0"); } #define RD(r) (*(uchar*)((Uart1+r)^7)) diff --git a/pc/devastar.c b/pc/devastar.c index d91d9399fc15a0fb135681d5a3588bbd1a779b90..a3c024b948a45604d5c55f74a64168d0fccad5c8 100644 --- a/pc/devastar.c +++ b/pc/devastar.c @@ -228,7 +228,6 @@ struct Astarchan CCB *ccb; /* control block */ /* buffers */ - Queue *iq; Queue *oq; @@ -268,8 +267,9 @@ astarreset(void) a->ramsize = 256*1024; else continue; + if(a->mem == 0) - a->mem = 0xD0000; + a->mem = 0xD4000; if(a->irq == 0) a->irq = 15; a->id = i; diff --git a/pc/ns16552.h b/pc/ns16552.h index 8166ff98b5b04fd7092618fe0ed8878d8768b229..2efab0289a835c5c1da12df9aa892c1320ad7ac7 100644 --- a/pc/ns16552.h +++ b/pc/ns16552.h @@ -14,7 +14,7 @@ enum #define uartwrreg(u,r,v) outb((u)->port + r, (u)->sticky[r] | (v)) #define uartrdreg(u,r) inb((u)->port + r) -void ns16552setup(ulong, ulong); +void ns16552setup(ulong, ulong, char*); /* * definition of an optional serial card @@ -87,6 +87,7 @@ ns16552install(void) int i, j, port; char *p; Scard *sc; + char name[NAMELEN]; static int already; if(already) @@ -94,9 +95,9 @@ ns16552install(void) already = 1; /* first two ports are always there and always the normal frequency */ - ns16552setup(0x3F8, UartFREQ); + ns16552setup(0x3F8, UartFREQ, "eia0"); setvec(Uart0vec, ns16552intrx, (void*)0); - ns16552setup(0x2F8, UartFREQ); + ns16552setup(0x2F8, UartFREQ, "eia1"); setvec(Uart1vec, ns16552intrx, (void*)1); /* set up a serial console */ @@ -128,7 +129,8 @@ ns16552install(void) setvec(Int0vec+sc->irq, mp008intr, sc); port = sc->port; for(j=0; j < sc->size; j++){ - ns16552setup(port, sc->freq); + sprint(name, "eia%d%2.2d", i, j); + ns16552setup(port, sc->freq, name); port += 8; } } else if(strcmp(sc->type, "com") == 0 || strcmp(sc->type, "COM") == 0){ @@ -139,7 +141,8 @@ ns16552install(void) */ if(sc->freq == 0) sc->freq = UartFREQ; - ns16552setup(sc->port, sc->freq); + sprint(name, "eia%d00", i); + ns16552setup(sc->port, sc->freq, name); setvec(Int0vec+sc->irq, ns16552intrx, (void*)(nuart-1)); } } diff --git a/port/devns16552.c b/port/devns16552.c index 42f5b573546c5150b0027522f225119ad443031c..eba6778eeac82b00c800622dd97bf3b8d90bed6f 100644 --- a/port/devns16552.c +++ b/port/devns16552.c @@ -75,6 +75,7 @@ struct Uart QLock; Uart *elist; /* next enabled interface */ + char name[NAMELEN]; uchar sticky[8]; /* sticky write register values */ ulong port; @@ -449,7 +450,7 @@ ns16552setup0(Uart *p) * called by main() to create a new duart */ void -ns16552setup(ulong port, ulong freq) +ns16552setup(ulong port, ulong freq, char *name) { Uart *p; @@ -458,6 +459,7 @@ ns16552setup(ulong port, ulong freq) p = xalloc(sizeof(Uart)); uart[nuart] = p; + strcpy(p->name, name); p->dev = nuart; nuart++; p->port = port; @@ -659,15 +661,15 @@ ns16552reset(void) dp = ns16552dir; for(i = 0; i < nuart; i++){ /* 3 directory entries per port */ - sprint(dp->name, "eia%d", i); + strcpy(dp->name, uart[i]->name); dp->qid.path = NETQID(i, Ndataqid); dp->perm = 0660; dp++; - sprint(dp->name, "eia%dctl", i); + sprint(dp->name, "%sctl", uart[i]->name); dp->qid.path = NETQID(i, Nctlqid); dp->perm = 0660; dp++; - sprint(dp->name, "eia%dstat", i); + sprint(dp->name, "%sstat", uart[i]->name); dp->qid.path = NETQID(i, Nstatqid); dp->perm = 0444; dp++;