govern@houxf.UUCP (07/07/83)
I have a VAX running 4.1BSD, and I want to use the KMC's. When I used USG, one kmc drove the dz's, and the other ran a Remote Job Entry (RJE) line. Under BSD, I can't get the kmc's to interrupt, and I don't have the "kmc" man page. I do have some (supposedly correct) kmc driver software. Here is the relevant part of my config-file: cpu "VAX780" controller uba0 at nexus ? device kmc0 at uba0 csr 0160260 vector kmcrint kmcxint device kmc1 at uba0 csr 0160270 vector kmcrint kmcxint pseudo-device vpm Can someone send my a man page? What should I look for to get the kmc's interrupting? Thanks; Bill Stewart houxf!govern ucbvax!ihnp4!houxf!govern decvax!duke!burl!houxf!govern
lat@wbux5.UUCP (07/08/83)
In kmc.c you have to make sure that the vector number and the last three numbers of the address correspond to the actual vector and address of your kmc(s). Here is our config line: device kmc0 at uba? csr 0760200 vector kmcrint kmcxint the vector for our kmc is 410 (you will find the address and vector numbers inside the expansion cabinet) and here are the lines from our kmc.c: switch( reg ) { case 020003400200: cvec = 0410; break; case 020003400060: cvec = 0340; break; case 020003400070: cvec = 0350; break; default: printf("bad kmc probe, reg=%o\n",reg); Laurie wbux5!lat
mikeg@mprvaxa.UUCP (07/09/83)
cvec can be set without hardwiring the csr/vector pairs by downloading
a small program to the KMC. here is the 'probe' code to do so:
kmcprobe(reg)
caddr_t reg;
{
register int br, cvec;
register struct kmcdevice *kmcaddr = (struct kmcdevice *)reg;
#ifdef lint
br = 0; cvec = br; br = cvec;
#endif
spl7();
kmcaddr->bsel1 = MCLR;
spl0();
kmcaddr->bsel1 = ROMI;
kmcaddr->sel4 = BUS_RQ;
kmcaddr->sel6 = 0121111; /* mov csr4,obr */
kmcaddr->bsel1 = ROMI|STEP;
DELAY(5);
kmcaddr->bsel1 = 0;
return(1);
}
Michael Ghesquiere
Microtel Pacific Research
..!ubc-vision!mprvaxa!mikeg