Subject: Part 12 of 22 /boot,/mdec,[T]MSCP updates Index: /sys/, /usr/src/etc/ 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) {