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 = %ROOTDEV%; 13: dev_t swapdev = %SWAPDEV%; 14: dev_t pipedev = %PIPEDEV%; 15: daddr_t swplo = (daddr_t) %SWPLO%; 16: int nswap = %NSWAP%; 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 = %DUMPDEV%; 24: daddr_t dumplo = (daddr_t) %DUMPLO%; 25: int %DUMPROUTINE%(); 26: int (*dump)() = %DUMPROUTINE%; 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: /* SI Eagle */ 123: struct size si_sizes[] = { 124: 11520, 0, /* cyl 0 - 11 */ 125: 11520, 12, /* cyl 12 - 23 */ 126: 474240, 24, /* cyl 24 - 517 */ 127: 92160, 518, /* cyl 518 - 613 */ 128: 214080, 614, /* cyl 614 - 836, reserve 5 cyls */ 129: 0, 0, 130: 0, 0, 131: 808320, 0 /* cyl 0 - 841 (everything) */ 132: }; 133: 134: /* Diva Comp V + Ampex 9300 in direct mode */ 135: struct size dv_sizes[] = { 136: 9405, 0, /* cyl 0 - 14 */ 137: 9405, 15, /* cyl 15 - 29 */ 138: 241395, 30, /* cyl 30 - 414 */ 139: 250800, 415, /* cyl 415 - 814 */ 140: 169290, 30, /* cyl 30 - 299 */ 141: 156750, 300, /* cyl 300 - 549 */ 142: 165528, 550, /* cyl 550 - 814 */ 143: 511005, 0 /* cyl 0 - 814 */ 144: }; 145: 146: /* 147: * Xp_controller structure: one line per controller. 148: * Only the address need be initialized in the controller structure 149: * if XP_PROBE is defined (at least the address for the root device); 150: * otherwise the flags must be here also. 151: * The XP_NOCC flag is set for RM02/03/05's (with no current cylinder 152: * register); XP_NOSEARCH is set for Diva's without the search command. 153: * The XP_RH70 flag need not be set here, the driver will always check that. 154: */ 155: struct xp_controller xp_controller[NXP_CONTROLLER] = { 156: /* 0 0 addr flags 0 */ 157: 0, 0, 0176700, XP_NOCC|XP_NOSEARCH, 0 158: }; 159: 160: /* 161: * Xp_drive structure: one entry per drive. 162: * The drive structure must be initialized if XP_PROBE is not enabled. 163: * Macros are provided in hpreg.h to initialize entries according 164: * to drive type, and controller and drive numbers. 165: * See those for examples on how to set up other types of drives. 166: * With XP_PROBE defined, xpslave will fill in this structure, 167: * and any initialization will be overridden. There is one exception; 168: * if the drive-type field is set, it will be used instead of the 169: * drive-type register to determine the drive's type. 170: */ 171: struct xp_drive xp_drive[NXP] = { 172: #ifndef XP_PROBE 173: RM02_INIT(0,0), /* RM02, controller 0, drive 0 */ 174: RM02_INIT(0,1), /* RM02, controller 0, drive 1 */ 175: RM05X_INIT(0,2) /* 815-cyl RM05, controller 0, drive 2 */ 176: #endif XP_PROBE 177: }; 178: #endif NXP