1: #include "param.h" 2: #include <sys/systm.h> 3: #include "hk.h" 4: #include "hp.h" 5: #include "hs.h" 6: #include "rk.h" 7: #include "rl.h" 8: #include "rm.h" 9: #include "rp.h" 10: #include "xp.h" 11: 12: dev_t rootdev = makedev(6,0); 13: dev_t swapdev = makedev(6,1); 14: dev_t pipedev = makedev(6,0); 15: daddr_t swplo = (daddr_t) 0; 16: int nswap = 3200; 17: 18: #ifdef UCB_AUTOBOOT 19: /* 20: * If dumpdev is NODEV, no dumps will be taken automatically. 21: * dump can point to nodev, just to resolve the reference. 22: */ 23: dev_t dumpdev = NODEV; 24: daddr_t dumplo = (daddr_t) 0; 25: int nodev(); 26: int (*dump)() = nodev; 27: #endif UCB_AUTOBOOT 28: 29: /* 30: * Device configuration information. 31: */ 32: 33: #if NHK > 0 34: struct hkdevice *HKADDR = 0177440; 35: struct size hk_sizes[] = { 36: 5940, 0, /* cyl 0 - 89 */ 37: 2376, 90, /* cyl 90 - 125 */ 38: 45474, 126, /* cyl 126 - 814 */ 39: 18810, 126, /* cyl 126 - 410 */ 40: 0, 0, 41: 0, 0, 42: 27126, 0, /* cyl 0 - 410, whole RK06 */ 43: 53790, 0 /* cyl 0 - 814, whole RK07 */ 44: }; 45: #endif NHK 46: 47: #if NHP > 0 48: struct hpdevice *HPADDR = 0176700; 49: #endif 50: #if NHP > 0 || NXP > 0 51: struct size hp_sizes[] = { 52: 9614, 0, /* cyl 0 - 22 */ 53: 8778, 23, /* cyl 23 - 43 */ 54: 153406, 44, /* cyl 44 - 410 (rp04, rp05, rp06) */ 55: 168872, 411, /* cyl 411 - 814 (rp06) */ 56: 322278, 44, /* cyl 44 - 814 (rp06) */ 57: 0, 0, 58: 171798, 0, /* cyl 0 - 410 (whole rp04/5) */ 59: 340670, 0 /* cyl 0 - 814 (whole rp06) */ 60: }; 61: #endif NHP 62: 63: #if NHS > 0 64: struct hsdevice *HSADDR = 0172040; 65: #endif NHS 66: 67: struct dldevice *KLADDR = 0177560; 68: 69: #if NRK > 0 70: struct rkdevice *RKADDR = 0177400; 71: #endif NRK 72: 73: #if NRL > 0 74: struct rldevice *RLADDR = 0174400; 75: #endif NRL 76: 77: #if NRM > 0 78: struct rmdevice *RMADDR = 0176700; 79: #endif 80: #if NRM > 0 || NXP > 0 81: struct size rm_sizes[] = { 82: 4800, 0, /* cyl 0 - 29 */ 83: 4800, 30, /* cyl 30 - 59 */ 84: 122080, 60, /* cyl 60 - 822 */ 85: 62720, 60, /* cyl 60 - 451 */ 86: 59360, 452, /* cyl 452 - 822 */ 87: 0, 0, 88: 0, 0, 89: 131680, 0, /* cyl 0 - 822 */ 90: }; 91: #endif NRM 92: 93: #if NRP > 0 94: struct rpdevice *RPADDR = 0176710; 95: struct size rp_sizes[] = { 96: 10400, 0, /* cyl 0 - 51 */ 97: 5200, 52, /* cyl 52 - 77 */ 98: 67580, 78, /* cyl 78 - 414 */ 99: 0, 0, 100: 0, 0, 101: 0, 0, 102: 0, 0, 103: 83180, 0 /* cyl 0 - 414 */ 104: }; 105: #endif NRP 106: 107: #if NXP > 0 108: #include <sys/hpreg.h> 109: 110: /* RM05 */ 111: struct size rm5_sizes[] = { 112: 9120, 0, /* cyl 0 - 14 */ 113: 9120, 15, /* cyl 15 - 29 */ 114: 234080, 30, /* cyl 30 - 414 */ 115: 248064, 415, /* cyl 415 - 822 */ 116: 164160, 30, /* cyl 30 - 299 */ 117: 152000, 300, /* cyl 300 - 549 */ 118: 165376, 550, /* cyl 550 - 822 */ 119: 500384, 0 /* cyl 0 - 822 */ 120: }; 121: 122: /* Diva Comp V + Ampex 9300 in direct mode */ 123: struct size dv_sizes[] = { 124: 9405, 0, /* cyl 0 - 14 */ 125: 9405, 15, /* cyl 15 - 29 */ 126: 241395, 30, /* cyl 30 - 414 */ 127: 250800, 415, /* cyl 415 - 814 */ 128: 169290, 30, /* cyl 30 - 299 */ 129: 156750, 300, /* cyl 300 - 549 */ 130: 165528, 550, /* cyl 550 - 814 */ 131: 511005, 0 /* cyl 0 - 814 */ 132: }; 133: 134: /* 135: * Xp_controller structure: one line per controller. 136: * Only the address need be initialized in the controller structure 137: * if XP_PROBE is defined (at least the address for the root device); 138: * otherwise the flags must be here also. 139: * The XP_NOCC flag is set for RM02/03/05's (with no current cylinder 140: * register); XP_NOSEARCH is set for Diva's without the search command. 141: * The XP_RH70 flag need not be set here, the driver will always check that. 142: */ 143: struct xp_controller xp_controller[NXP_CONTROLLER] = { 144: /* 0 0 addr flags 0 */ 145: 0, 0, 0176700, XP_NOCC|XP_NOSEARCH, 0 146: }; 147: 148: /* 149: * Xp_drive structure: one entry per drive. 150: * The drive structure must be initialized if XP_PROBE is not enabled. 151: * Macros are provided in hpreg.h to initialize entries according 152: * to drive type, and controller and drive numbers. 153: * See those for examples on how to set up other types of drives. 154: * With XP_PROBE defined, xpslave will fill in this structure, 155: * and any initialization will be overridden. There is one exception; 156: * if the drive-type field is set, it will be used instead of the 157: * drive-type register to determine the drive's type. 158: */ 159: struct xp_drive xp_drive[NXP] = { 160: #ifndef XP_PROBE 161: RM02_INIT(0,0), /* RM02, controller 0, drive 0 */ 162: RM02_INIT(0,1), /* RM02, controller 0, drive 1 */ 163: RM05X_INIT(0,2) /* 815-cyl RM05, controller 0, drive 2 */ 164: #endif XP_PROBE 165: }; 166: #endif NXP