|
|
1.1.1.2 ! root 1: /* 1.1 root 2: * Mach Operating System 3: * Copyright (c) 1993,1992,1991,1990,1989 Carnegie Mellon University 4: * All Rights Reserved. 1.1.1.2 ! root 5: * 1.1 root 6: * Permission to use, copy, modify and distribute this software and its 7: * documentation is hereby granted, provided that both the copyright 8: * notice and this permission notice appear in all copies of the 9: * software, derivative works or modified versions, and any portions 10: * thereof, and that both notices appear in supporting documentation. 1.1.1.2 ! root 11: * 1.1 root 12: * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" 13: * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR 14: * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. 1.1.1.2 ! root 15: * 1.1 root 16: * Carnegie Mellon requests users of this software to return to 1.1.1.2 ! root 17: * 1.1 root 18: * Software Distribution Coordinator or [email protected] 19: * School of Computer Science 20: * Carnegie Mellon University 21: * Pittsburgh PA 15213-3890 1.1.1.2 ! root 22: * 1.1 root 23: * any improvements or extensions that they make and grant Carnegie Mellon 24: * the rights to redistribute these changes. 25: */ 1.1.1.2 ! root 26: 1.1 root 27: #ifdef MACH_KERNEL 28: #include <mach_ttd.h> 29: #include <mach/std_types.h> 30: #else /* MACH_KERNEL */ 31: #include <cpus.h> 32: #include <platforms.h> 33: #include <generic.h> 34: #include <sys/param.h> 35: #include <mach/machine.h> 36: #include <machine/cpu.h> 37: #endif /* MACH_KERNEL */ 38: #ifdef LINUX_DEV 39: #include <i386/pic.h> 40: #endif 41: #include <i386/ipl.h> 42: #include <chips/busses.h> 43: 44: /* initialization typecasts */ 45: #define SPL_FIVE (vm_offset_t)SPL5 46: #define SPL_SIX (vm_offset_t)SPL6 47: #define SPL_TTY (vm_offset_t)SPLTTY 48: 49: 50: #include <hd.h> 51: #if NHD > 0 52: extern struct bus_driver hddriver; 53: extern int hdintr(); 54: #endif /* NHD */ 55: 56: #include <fd.h> 57: #if NFD > 0 58: extern struct bus_driver fddriver; 59: extern int fdintr(); 60: #endif /* NFD */ 61: 62: #include <aha.h> 63: #if NAHA > 0 64: extern struct bus_driver aha_driver; 65: extern int aha_intr(); 66: #endif /* NAHA */ 67: 68: #include <eaha.h> 69: #if NEAHA > 0 70: extern struct bus_driver eaha_driver; 71: extern int eaha_intr(); 72: #endif /* NEAHA */ 73: 74: #include <pc586.h> 75: #if NPC586 > 0 76: extern struct bus_driver pcdriver; 77: extern int pc586intr(); 78: #endif /* NPC586 */ 79: 80: #include <ne.h> 81: #if NNE > 0 82: extern struct bus_driver nedriver; 83: extern int neintr(); 1.1.1.2 ! root 84: #endif /* NNE */ 1.1 root 85: 86: #include <ns8390.h> 87: #if NNS8390 > 0 88: extern struct bus_driver ns8390driver; 89: extern int ns8390intr(); 90: #endif /* NNS8390 */ 91: 92: #include <at3c501.h> 93: #if NAT3C501 > 0 94: extern struct bus_driver at3c501driver; 95: extern int at3c501intr(); 96: #endif /* NAT3C501 */ 97: 98: #include <ul.h> 99: #if NUL > 0 100: extern struct bus_driver uldriver; 101: extern int ulintr(); 102: #endif 103: 104: #include <wd.h> 105: #if NWD > 0 106: extern struct bus_driver wddriver; 107: extern int wdintr(); 108: #endif 109: 110: #include <hpp.h> 111: #if NHPP > 0 112: extern struct bus_driver hppdriver; 113: extern int hppintr(); 114: #endif 115: 116: #include <com.h> 117: #if NCOM > 0 118: extern struct bus_driver comdriver; 119: extern int comintr(); 120: #endif /* NCOM */ 121: 122: #include <lpr.h> 123: #if NLPR > 0 124: extern struct bus_driver lprdriver; 125: extern int lprintr(); 126: #endif /* NLPR */ 127: 128: #include <wt.h> 129: #if NWT > 0 130: extern struct bus_driver wtdriver; 131: extern int wtintr(); 132: #endif /* NWT */ 133: 134: struct bus_ctlr bus_master_init[] = { 135: 1.1.1.2 ! root 136: /* driver name unit intr address len phys_address 1.1 root 137: adaptor alive flags spl pic */ 138: 139: #ifndef LINUX_DEV 140: #if NHD > 0 141: {&hddriver, "hdc", 0, hdintr, 0x1f0, 8, 0x1f0, 142: '?', 0, 0, SPL_FIVE, 14}, 143: 144: {&hddriver, "hdc", 1, hdintr, 0x170, 8, 0x170, 145: '?', 0, 0, SPL_FIVE, 15}, 146: #endif /* NHD > 0 */ 147: 148: #if NAHA > 0 149: {&aha_driver, "ahac", 0, aha_intr, 0x330, 4, 0x330, 150: '?', 0, 0, SPL_FIVE, 11}, 151: 152: #if NAHA > 1 153: 154: {&aha_driver, "ahac", 1, aha_intr, 0x234, 4, 0x234, 155: '?', 0, 0, SPL_FIVE, 12}, 156: {&aha_driver, "ahac", 1, aha_intr, 0x230, 4, 0x230, 157: '?', 0, 0, SPL_FIVE, 12}, 158: {&aha_driver, "ahac", 1, aha_intr, 0x134, 4, 0x134, 159: '?', 0, 0, SPL_FIVE, 12}, 160: {&aha_driver, "ahac", 1, aha_intr, 0x130, 4, 0x130, 161: '?', 0, 0, SPL_FIVE, 12}, 162: 163: #else 164: 165: {&aha_driver, "ahac", 0, aha_intr, 0x334, 4, 0x334, 166: '?', 0, 0, SPL_FIVE, 11}, 167: {&aha_driver, "ahac", 0, aha_intr, 0x234, 4, 0x234, 168: '?', 0, 0, SPL_FIVE, 11}, 169: {&aha_driver, "ahac", 0, aha_intr, 0x230, 4, 0x230, 170: '?', 0, 0, SPL_FIVE, 11}, 171: {&aha_driver, "ahac", 0, aha_intr, 0x134, 4, 0x134, 172: '?', 0, 0, SPL_FIVE, 11}, 173: {&aha_driver, "ahac", 0, aha_intr, 0x130, 4, 0x130, 174: '?', 0, 0, SPL_FIVE, 11}, 175: 176: #endif /* NAHA > 1 */ 177: #endif /* NAHA > 0*/ 178: 179: #if NEAHA > 0 180: {&eaha_driver, "eahac", 0, eaha_intr, 0x0000, 4, 0x0000, 181: '?', 0, 0, SPL_FIVE, 12}, 182: {&eaha_driver, "eahac", 0, eaha_intr, 0x1000, 4, 0x1000, 183: '?', 0, 0, SPL_FIVE, 12}, 184: {&eaha_driver, "eahac", 0, eaha_intr, 0x2000, 4, 0x2000, 185: '?', 0, 0, SPL_FIVE, 12}, 186: {&eaha_driver, "eahac", 0, eaha_intr, 0x3000, 4, 0x3000, 187: '?', 0, 0, SPL_FIVE, 12}, 188: {&eaha_driver, "eahac", 0, eaha_intr, 0x4000, 4, 0x4000, 189: '?', 0, 0, SPL_FIVE, 12}, 190: {&eaha_driver, "eahac", 0, eaha_intr, 0x5000, 4, 0x5000, 191: '?', 0, 0, SPL_FIVE, 12}, 192: {&eaha_driver, "eahac", 0, eaha_intr, 0x6000, 4, 0x6000, 193: '?', 0, 0, SPL_FIVE, 12}, 194: {&eaha_driver, "eahac", 0, eaha_intr, 0x7000, 4, 0x7000, 195: '?', 0, 0, SPL_FIVE, 12}, 196: {&eaha_driver, "eahac", 0, eaha_intr, 0x8000, 4, 0x8000, 197: '?', 0, 0, SPL_FIVE, 12}, 198: {&eaha_driver, "eahac", 0, eaha_intr, 0x9000, 4, 0x9000, 199: '?', 0, 0, SPL_FIVE, 12}, 200: {&eaha_driver, "eahac", 0, eaha_intr, 0xa000, 4, 0xa000, 201: '?', 0, 0, SPL_FIVE, 12}, 202: {&eaha_driver, "eahac", 0, eaha_intr, 0xb000, 4, 0xb000, 203: '?', 0, 0, SPL_FIVE, 12}, 204: {&eaha_driver, "eahac", 0, eaha_intr, 0xc000, 4, 0xc000, 205: '?', 0, 0, SPL_FIVE, 12}, 206: {&eaha_driver, "eahac", 0, eaha_intr, 0xd000, 4, 0xd000, 207: '?', 0, 0, SPL_FIVE, 12}, 208: {&eaha_driver, "eahac", 0, eaha_intr, 0xe000, 4, 0xe000, 209: '?', 0, 0, SPL_FIVE, 12}, 210: {&eaha_driver, "eahac", 0, eaha_intr, 0xf000, 4, 0xf000, 211: '?', 0, 0, SPL_FIVE, 12}, 212: #endif /* NEAHA > 0 */ 213: 214: #if NFD > 0 215: {&fddriver, "fdc", 0, fdintr, 0x3f2, 6, 0x3f2, 216: '?', 0, 0, SPL_FIVE, 6}, 217: 218: {&fddriver, "fdc", 1, fdintr, 0x372, 6, 0x372, 219: '?', 0, 0, SPL_FIVE, 10}, 220: #endif /* NFD > 0 */ 221: #endif /* ! LINUX_DEV */ 222: 223: 0 224: }; 225: 226: 227: struct bus_device bus_device_init[] = { 228: 1.1.1.2 ! root 229: /* driver name unit intr address am phys_address 1.1 root 230: adaptor alive ctlr slave flags *mi *next sysdep sysdep */ 231: 232: #ifndef LINUX_DEV 233: #if NHD > 0 234: {&hddriver, "hd", 0, hdintr, 0x104, 8, 0x1f0, 235: '?', 0, 0, 0, 0, 0, 0, SPL_FIVE, 14}, 236: {&hddriver, "hd", 1, hdintr, 0x118, 8, 0x1f0, 237: '?', 0, 0, 1, 0, 0, 0, SPL_FIVE, 14}, 238: {&hddriver, "hd", 2, hdintr, 0x104, 8, 0x170, /*??*/ 239: '?', 0, 1, 0, 0, 0, 0, SPL_FIVE, 15}, 240: {&hddriver, "hd", 3, hdintr, 0x118, 8, 0x170, 241: '?', 0, 1, 1, 0, 0, 0, SPL_FIVE, 15}, 242: #endif /* NHD > 0 */ 243: 244: #if NAHA > 0 245: { &aha_driver, "rz", 0, 0, 0x0,0, 0, '?', 0, 0, 0, 0, }, 246: { &aha_driver, "rz", 1, 0, 0x0,0, 0, '?', 0, 0, 1, 0, }, 247: { &aha_driver, "rz", 2, 0, 0x0,0, 0, '?', 0, 0, 2, 0, }, 248: { &aha_driver, "rz", 3, 0, 0x0,0, 0, '?', 0, 0, 3, 0, }, 249: { &aha_driver, "rz", 4, 0, 0x0,0, 0, '?', 0, 0, 4, 0, }, 250: { &aha_driver, "rz", 5, 0, 0x0,0, 0, '?', 0, 0, 5, 0, }, 251: { &aha_driver, "rz", 6, 0, 0x0,0, 0, '?', 0, 0, 6, 0, }, 252: { &aha_driver, "rz", 7, 0, 0x0,0, 0, '?', 0, 0, 7, 0, }, 253: 254: { &aha_driver, "tz", 0, 0, 0x0,0, 0, '?', 0, 0, 0, 0, }, 255: { &aha_driver, "tz", 1, 0, 0x0,0, 0, '?', 0, 0, 1, 0, }, 256: { &aha_driver, "tz", 2, 0, 0x0,0, 0, '?', 0, 0, 2, 0, }, 257: { &aha_driver, "tz", 3, 0, 0x0,0, 0, '?', 0, 0, 3, 0, }, 258: { &aha_driver, "tz", 4, 0, 0x0,0, 0, '?', 0, 0, 4, 0, }, 259: { &aha_driver, "tz", 5, 0, 0x0,0, 0, '?', 0, 0, 5, 0, }, 260: { &aha_driver, "tz", 6, 0, 0x0,0, 0, '?', 0, 0, 6, 0, }, 261: { &aha_driver, "tz", 7, 0, 0x0,0, 0, '?', 0, 0, 7, 0, }, 262: 263: #if NAHA > 1 264: 265: { &aha_driver, "rz", 8, 0, 0x0,0, 0, '?', 0, 1, 0, 0, }, 266: { &aha_driver, "rz", 9, 0, 0x0,0, 0, '?', 0, 1, 1, 0, }, 267: { &aha_driver, "rz", 10, 0, 0x0,0, 0, '?', 0, 1, 2, 0, }, 268: { &aha_driver, "rz", 11, 0, 0x0,0, 0, '?', 0, 1, 3, 0, }, 269: { &aha_driver, "rz", 12, 0, 0x0,0, 0, '?', 0, 1, 4, 0, }, 270: { &aha_driver, "rz", 13, 0, 0x0,0, 0, '?', 0, 1, 5, 0, }, 271: { &aha_driver, "rz", 14, 0, 0x0,0, 0, '?', 0, 1, 6, 0, }, 272: { &aha_driver, "rz", 15, 0, 0x0,0, 0, '?', 0, 1, 7, 0, }, 273: 274: { &aha_driver, "tz", 8, 0, 0x0,0, 0, '?', 0, 1, 0, 0, }, 275: { &aha_driver, "tz", 9, 0, 0x0,0, 0, '?', 0, 1, 1, 0, }, 276: { &aha_driver, "tz", 10, 0, 0x0,0, 0, '?', 0, 1, 2, 0, }, 277: { &aha_driver, "tz", 11, 0, 0x0,0, 0, '?', 0, 1, 3, 0, }, 278: { &aha_driver, "tz", 12, 0, 0x0,0, 0, '?', 0, 1, 4, 0, }, 279: { &aha_driver, "tz", 13, 0, 0x0,0, 0, '?', 0, 1, 5, 0, }, 280: { &aha_driver, "tz", 14, 0, 0x0,0, 0, '?', 0, 1, 6, 0, }, 281: { &aha_driver, "tz", 15, 0, 0x0,0, 0, '?', 0, 1, 7, 0, }, 282: #endif /* NAHA > 1 */ 283: #endif /* NAHA > 0 */ 284: 285: #if NEAHA > 0 286: { &eaha_driver, "rz", 0, 0, 0x0,0, 0, '?', 0, 0, 0, 0, }, 287: { &eaha_driver, "rz", 1, 0, 0x0,0, 0, '?', 0, 0, 1, 0, }, 288: { &eaha_driver, "rz", 2, 0, 0x0,0, 0, '?', 0, 0, 2, 0, }, 289: { &eaha_driver, "rz", 3, 0, 0x0,0, 0, '?', 0, 0, 3, 0, }, 290: { &eaha_driver, "rz", 4, 0, 0x0,0, 0, '?', 0, 0, 4, 0, }, 291: { &eaha_driver, "rz", 5, 0, 0x0,0, 0, '?', 0, 0, 5, 0, }, 292: { &eaha_driver, "rz", 6, 0, 0x0,0, 0, '?', 0, 0, 6, 0, }, 293: { &eaha_driver, "rz", 7, 0, 0x0,0, 0, '?', 0, 0, 7, 0, }, 294: 295: { &eaha_driver, "tz", 0, 0, 0x0,0, 0, '?', 0, 0, 0, 0, }, 296: { &eaha_driver, "tz", 1, 0, 0x0,0, 0, '?', 0, 0, 1, 0, }, 297: { &eaha_driver, "tz", 2, 0, 0x0,0, 0, '?', 0, 0, 2, 0, }, 298: { &eaha_driver, "tz", 3, 0, 0x0,0, 0, '?', 0, 0, 3, 0, }, 299: { &eaha_driver, "tz", 4, 0, 0x0,0, 0, '?', 0, 0, 4, 0, }, 300: { &eaha_driver, "tz", 5, 0, 0x0,0, 0, '?', 0, 0, 5, 0, }, 301: { &eaha_driver, "tz", 6, 0, 0x0,0, 0, '?', 0, 0, 6, 0, }, 302: { &eaha_driver, "tz", 7, 0, 0x0,0, 0, '?', 0, 0, 7, 0, }, 303: #endif /* NEAHA > 0*/ 304: 305: #if NFD > 0 306: {&fddriver, "fd", 0, fdintr, 0x3f2, 6, 0x3f2, 307: '?', 0, 0, 0, 0, 0, 0, SPL_FIVE, 6}, 308: {&fddriver, "fd", 1, fdintr, 0x3f2, 6, 0x3f2, 309: '?', 0, 0, 1, 0, 0, 0, SPL_FIVE, 6}, 310: 311: {&fddriver, "fd", 2, fdintr, 0x372, 6, 0x372, 312: '?', 0, 1, 0, 0, 0, 0, SPL_FIVE, 10}, 313: {&fddriver, "fd", 3, fdintr, 0x372, 6, 0x372, 314: '?', 0, 1, 1, 0, 0, 0, SPL_FIVE, 10}, 315: #endif /* NFD > 0 */ 316: 317: #if NPC586 > 0 318: /* For MACH Default */ 319: {&pcdriver, "pc", 0, pc586intr, 0xd0000, 0, 0xd0000, 320: '?', 0, -1, -1, 0, 0, 0, SPL_FIVE, 9}, 321: /* For Factory Default */ 322: {&pcdriver, "pc", 0, pc586intr, 0xc0000, 0, 0xc0000, 323: '?', 0, -1, -1, 0, 0, 0, SPL_FIVE, 5}, 324: /* For what Intel Ships */ 325: {&pcdriver, "pc", 0, pc586intr, 0xf00000, 0, 0xf00000, 326: '?', 0, -1, -1, 0, 0, 0, SPL_FIVE, 12}, 327: #endif /* NPC586 > 0 */ 328: 329: #if NNE > 0 330: {&nedriver, "ne", 0, neintr, 0x280,0x4000,0xd0000, 331: '?', 0, -1, -1, 0, 0, 0, SPL_SIX, 5}, 332: {&nedriver, "ne", 1, neintr, 0x300,0x4000,0xd0000, 333: '?', 0, -1, -1, 0, 0, 0, SPL_SIX, 10}, 1.1.1.2 ! root 334: #endif /* NNE > 0 */ 1.1 root 335: 336: #if NNS8390 > 0 337: /* "wd" and "el" */ 338: {&ns8390driver, "wd", 0, ns8390intr, 0x280,0x2000,0xd0000, 339: '?', 0, -1, -1, 0, 0, 0, SPL_SIX, 9}, 340: {&ns8390driver, "wd", 0, ns8390intr, 0x2a0,0x2000,0xd0000, 341: '?', 0, -1, -1, 0, 0, 0, SPL_SIX, 9}, 342: {&ns8390driver, "wd", 0, ns8390intr, 0x2e0,0x2000,0xd0000, 343: '?', 0, -1, -1, 0, 0, 0, SPL_SIX, 5}, 344: {&ns8390driver, "wd", 0, ns8390intr, 0x300,0x2000,0xd0000, 345: '?', 0, -1, -1, 0, 0, 0, SPL_SIX, 5}, 346: {&ns8390driver, "wd", 0, ns8390intr, 0x250,0x2000,0xd0000, 347: '?', 0, -1, -1, 0, 0, 0, SPL_SIX, 5}, 348: {&ns8390driver, "wd", 0, ns8390intr, 0x350,0x2000,0xd0000, 349: '?', 0, -1, -1, 0, 0, 0, SPL_SIX, 5}, 350: {&ns8390driver, "wd", 0, ns8390intr, 0x240,0x2000,0xd0000, 351: '?', 0, -1, -1, 0, 0, 0, SPL_SIX, 11}, 352: {&ns8390driver, "wd", 1, ns8390intr, 0x340,0x2000,0xe8000, 353: '?', 0, -1, -1, 0, 0, 0, SPL_SIX, 15}, 354: #endif /* NNS8390 > 0 */ 355: 356: #if NAT3C501 > 0 357: {&at3c501driver, "et", 0, at3c501intr, 0x300, 0,0x300, 358: '?', 0, -1, -1, 0, 0, 0, SPL_SIX, 9}, 359: #endif /* NAT3C501 > 0 */ 360: 361: #if NUL > 0 362: {&uldriver, "ul", 0, ulintr, 0, 0, 0, '?', 0, -1, -1, 0, 0, 0, SPL_SIX, 0}, 363: {&uldriver, "ul", 1, ulintr, 0, 0, 0, '?', 0, -1, -1, 0, 0, 0, SPL_SIX, 0}, 364: #endif 365: 366: #if NWD > 0 367: {&wddriver, "wd", 0, wdintr, 0, 0, 0, '?', 0, -1, -1, 0, 0, 0, SPL_SIX, 9}, 368: {&wddriver, "wd", 1, wdintr, 0, 0, 0, '?', 0, -1, -1, 0, 0, 0, SPL_SIX, 15}, 369: #endif 370: 371: #if NHPP > 0 372: {&hppdriver, "hpp", 0, hppintr, 0, 0, 0, '?', 0, -1, -1, 0, 0, 0, SPL_SIX, 0}, 373: {&hppdriver, "hpp", 1, hppintr, 0, 0, 0, '?', 0, -1, -1, 0, 0, 0, SPL_SIX, 0}, 374: #endif 375: #endif /* ! LINUX_DEV */ 376: 377: #if NCOM > 0 378: {&comdriver, "com", 0, comintr, 0x3f8, 8, 0x3f8, 379: '?', 0, -1, -1, 0, 0, 0, SPL_TTY, 4}, 380: {&comdriver, "com", 1, comintr, 0x2f8, 8, 0x2f8, 381: '?', 0, -1, -1, 0, 0, 0, SPL_TTY, 3}, 382: {&comdriver, "com", 2, comintr, 0x3e8, 8, 0x3e8, 383: '?', 0, -1, -1, 0, 0, 0, SPL_TTY, 5}, 384: #endif /* NCOM > 0 */ 385: 386: #ifndef LINUX_DEV 387: #if NLPR > 0 388: {&lprdriver, "lpr", 0, lprintr, 0x378, 3, 0x378, 389: '?', 0, -1, -1, 0, 0, 0, SPL_TTY, 7}, 390: {&lprdriver, "lpr", 0, lprintr, 0x278, 3, 0x278, 391: '?', 0, -1, -1, 0, 0, 0, SPL_TTY, 7}, 392: {&lprdriver, "lpr", 0, lprintr, 0x3bc, 3, 0x3bc, 393: '?', 0, -1, -1, 0, 0, 0, SPL_TTY, 7}, 394: #endif /* NLPR > 0 */ 395: 396: #if NWT > 0 397: {&wtdriver, "wt", 0, wtintr, 0x300, 2, 0x300, 398: '?', 0, -1, -1, 0, 0, 0, SPL_FIVE, 5}, 399: {&wtdriver, "wt", 0, wtintr, 0x288, 2, 0x288, 400: '?', 0, -1, -1, 0, 0, 0, SPL_FIVE, 5}, 401: {&wtdriver, "wt", 0, wtintr, 0x388, 2, 0x388, 402: '?', 0, -1, -1, 0, 0, 0, SPL_FIVE, 5}, 403: #endif /* NWT > 0 */ 404: #endif /* ! LINUX_DEV */ 405: 406: 0 407: }; 408: 409: /* 410: * probeio: 411: * 412: * Probe and subsequently attach devices out on the AT bus. 413: * 414: * 415: */ 416: void probeio(void) 417: { 418: register struct bus_device *device; 419: register struct bus_ctlr *master; 420: int i = 0; 421: 422: for (master = bus_master_init; master->driver; master++) 423: { 424: if (configure_bus_master(master->name, master->address, 425: master->phys_address, i, "atbus")) 426: i++; 427: } 428: 429: for (device = bus_device_init; device->driver; device++) 430: { 431: /* ignore what we (should) have found already */ 432: if (device->alive || device->ctlr >= 0) 433: continue; 434: if (configure_bus_device(device->name, device->address, 435: device->phys_address, i, "atbus")) 436: i++; 437: } 438: 439: #if MACH_TTD 440: /* 441: * Initialize Remote kernel debugger. 442: */ 443: ttd_init(); 444: #endif /* MACH_TTD */ 445: } 446: 447: void take_dev_irq( 448: struct bus_device *dev) 449: { 450: int pic = (int)dev->sysdep1; 451: 452: if (intpri[pic] == 0) { 453: iunit[pic] = dev->unit; 454: ivect[pic] = dev->intr; 455: intpri[pic] = (int)dev->sysdep; 456: form_pic_mask(); 457: } else { 458: printf("The device below will clobber IRQ %d.\n", pic); 459: printf("You have two devices at the same IRQ.\n"); 460: printf("This won't work. Reconfigure your hardware and try again.\n"); 461: printf("%s%d: port = %x, spl = %d, pic = %d.\n", 462: dev->name, dev->unit, dev->address, 463: dev->sysdep, dev->sysdep1); 464: while (1); 465: } 1.1.1.2 ! root 466: 1.1 root 467: } 468: 469: void take_ctlr_irq( 470: struct bus_ctlr *ctlr) 471: { 472: int pic = ctlr->sysdep1; 473: if (intpri[pic] == 0) { 474: iunit[pic] = ctlr->unit; 475: ivect[pic] = ctlr->intr; 476: intpri[pic] = (int)ctlr->sysdep; 477: form_pic_mask(); 478: } else { 479: printf("The device below will clobber IRQ %d.\n", pic); 480: printf("You have two devices at the same IRQ. This won't work.\n"); 481: printf("Reconfigure your hardware and try again.\n"); 482: while (1); 483: } 484: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.