sms@wlv.imsd.contel.com (Steven M. Schultz) (05/18/91)
Subject: Part 9 of 22 /boot,/mdec,[T]MSCP updates Index: /sys/<many>, /usr/src/etc/<several> 2.11BSD Description: Repeat-By: Fix: See part 0 (the README) for the Description, the Reason and the instructions on how update your system. This is part 9 of 22 The RL02 driver could not be used in the GENERIC kernel on a UNIBUS system. *** /usr/src/sys/pdpuba/rl.c.old Tue Apr 3 13:26:00 1990 --- /usr/src/sys/pdpuba/rl.c Wed Apr 24 20:51:12 1991 *************** *** 32,37 **** --- 32,39 ---- struct rldevice *RLADDR; + static int q22bae = 1; + struct buf rrlbuf[NRL]; /* Raw header for each drive */ struct buf rlutab[NRL]; /* Seek structure for each device */ struct buf rltab; *************** *** 274,282 **** rladdr->rlda = (rl.chn << 6) | rl.sn; rladdr->rlba = (caddr_t)rl.rl_un.w[1]; rladdr->rlmp = -(rl.bpart >> 1); ! #ifdef Q22 ! rladdr->rlbae = rl.rl_un.w[0]; ! #endif rladdr->rlcs = rl.com | (rl.rl_un.w[0] & 03) << 4; #ifdef UCB_METER if (rl_dkn >= 0) { --- 276,285 ---- rladdr->rlda = (rl.chn << 6) | rl.sn; rladdr->rlba = (caddr_t)rl.rl_un.w[1]; rladdr->rlmp = -(rl.bpart >> 1); ! if (q22bae == 1) ! q22bae = (fioword(&rladdr->rlbae) == -1 ? -1 : 0); ! if (q22bae == 0) ! rladdr->rlbae = rl.rl_un.w[0]; rladdr->rlcs = rl.com | (rl.rl_un.w[0] & 03) << 4; #ifdef UCB_METER if (rl_dkn >= 0) { *************** *** 458,466 **** } else { #endif rladdr->rlba = loint(paddr); ! #ifdef Q22 ! rladdr->rlbae = hiint(paddr); ! #endif com |= (hiint(paddr) & 03) << 4; #ifdef UNIBUS_MAP } --- 461,470 ---- } else { #endif rladdr->rlba = loint(paddr); ! if (q22bae == 1) ! q22bae = (fioword(&rladdr->rlbae) == -1 ? -1:0); ! if (q22bae == 0) ! rladdr->rlbae = hiint(paddr); com |= (hiint(paddr) & 03) << 4; #ifdef UNIBUS_MAP }
sms@wlv.imsd.contel.com (Steven M. Schultz) (05/18/91)
Subject: Part 12 of 22 /boot,/mdec,[T]MSCP updates Index: /sys/<many>, /usr/src/etc/<several> 2.11BSD Description: Repeat-By: Fix: See part 0 (the README) for the Description, the Reason and the instructions on how update your system. This is part 12 of 22 Used the delay() routine instead of the macro to save space. Partitions were changed for the Fuji160 (RM2X drive type). For the GENERIC kernel the address of the drive type variable is printed and a delay of 10 seconds is performed to give time to halt the processor before accessing the disc. *** /usr/src/sys/pdpuba/xp.c.old Tue Apr 3 09:48:00 1990 --- /usr/src/sys/pdpuba/xp.c Fri May 10 21:54:44 1991 *************** *** 3,9 **** * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * ! * @(#)xp.c 1.1 (2.10BSD Berkeley) 12/1/86 */ /* --- 3,9 ---- * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * ! * @(#)xp.c 1.2 (2.11BSD) 5/4/91 */ /* *************** *** 230,239 **** 9600, 0, /* a: cyl 0 - 29 */ 9600, 30, /* b: cyl 30 - 59 */ 244160, 60, /* c: cyl 60 - 822 */ ! 125440, 60, /* d: cyl 60 - 451 */ ! 118720, 452, /* e: cyl 452 - 822 */ ! 59520, 452, /* f: cyl 452 - 637 */ ! 59200, 638, /* g: cyl 638 - 822 */ 263360, 0, /* h: cyl 0 - 822 */ }, dv_sizes[8] = { /* Diva Comp V, Ampex 9300 in direct mode */ 9405, 0, /* a: cyl 0 - 14 */ --- 230,239 ---- 9600, 0, /* a: cyl 0 - 29 */ 9600, 30, /* b: cyl 30 - 59 */ 244160, 60, /* c: cyl 60 - 822 */ ! 164800, 60, /* d: cyl 60 - 574 */ ! 79360, 575, /* e: cyl 575 - 822 */ ! 39680, 575, /* f: cyl 575 - 698 */ ! 39680, 699, /* g: cyl 699 - 822 */ 263360, 0, /* h: cyl 0 - 822 */ }, dv_sizes[8] = { /* Diva Comp V, Ampex 9300 in direct mode */ 9405, 0, /* a: cyl 0 - 14 */ *************** *** 295,300 **** --- 295,304 ---- register int i; register struct hpdevice *xpaddr; + #if (PDP11 == GENERIC) + printf("\nxp_drive=0%o xp_controller=0%o\n",xp_drive,xp_controller); + delay(10000000L); /* 10 secs to halt and patch xp_drive */ + #endif for (i = 0; i < NXPC; i++) if (((xpaddr = xp_controller[i].xp_addr) == 0) || (xpattach(xpaddr, i) == 0)) *************** *** 381,390 **** xpaddr->hpcs1.w = 0; xpaddr->hpcs2.w = j; xpaddr->hpcs1.w = HP_GO; /* testing... */ ! { ! int x = 6000; ! while (--x); /* delay */ ! } dummy = xpaddr->hpds; if (xpaddr->hpcs2.w & HPCS2_NED) { xpaddr->hpcs2.w = HPCS2_CLR; --- 385,391 ---- xpaddr->hpcs1.w = 0; xpaddr->hpcs2.w = j; xpaddr->hpcs1.w = HP_GO; /* testing... */ ! delay(6000L); dummy = xpaddr->hpds; if (xpaddr->hpcs2.w & HPCS2_NED) { xpaddr->hpcs2.w = HPCS2_CLR; *************** *** 1128,1134 **** } #endif /* Emulex controller emulating two RM03's needs a delay */ ! DELAY(50000L); while (xpaddr->hpcs1.w & HP_GO) continue; if (xpaddr->hpcs1.w & HP_TRE) { --- 1129,1135 ---- } #endif /* Emulex controller emulating two RM03's needs a delay */ ! delay(50000L); while (xpaddr->hpcs1.w & HP_GO) continue; if (xpaddr->hpcs1.w & HP_TRE) {
sms@wlv.imsd.contel.com (Steven M. Schultz) (05/18/91)
Subject: Part 13 of 22 /boot,/mdec,[T]MSCP updates Index: /sys/<many>, /usr/src/etc/<several> 2.11BSD Description: Repeat-By: Fix: See part 0 (the README) for the Description, the Reason and the instructions on how update your system. This is part 13 of 22 The existence of a UNIBUS MAP is tested rather than being assumed. *** /usr/src/sys/sys/sys_net.c.old Wed Dec 19 10:16:49 1990 --- /usr/src/sys/sys/sys_net.c Sun Mar 17 01:14:29 1991 *************** *** 122,138 **** * This is early in the systems life, so there had better be * sufficient UMRs available! */ ! miostart = miobase; ! s = (int)btoub(miosize); ! first = NETUBAA(s); ! mioumr = (ubadr_t)first << 13; ! ubp = &UBMAP[first]; ! paddr = ctob((ubadr_t)miostart); ! while (s--) { ! ubp->ub_lo = loint(paddr); ! ubp->ub_hi = hiint(paddr); ! ubp++; ! paddr += (ubadr_t)UBPAGE; } #endif UNIBUS_MAP --- 122,140 ---- * This is early in the systems life, so there had better be * sufficient UMRs available! */ ! if (mfkd(&ubmap)) { ! miostart = miobase; ! s = (int)btoub(miosize); ! first = NETUBAA(s); ! mioumr = (ubadr_t)first << 13; ! ubp = &UBMAP[first]; ! paddr = ctob((ubadr_t)miostart); ! while (s--) { ! ubp->ub_lo = loint(paddr); ! ubp->ub_hi = hiint(paddr); ! ubp++; ! paddr += (ubadr_t)UBPAGE; ! } } #endif UNIBUS_MAP