1 /* 2 * Copyright (c) 1982 Regents of the University of California. 3 * All rights reserved. The Berkeley software License Agreement 4 * specifies the terms and conditions for redistribution. 5 * 6 * @(#)cpudata.c 6.5 (Berkeley) 09/17/85 7 */ 8 9 #include "pte.h" 10 11 #include "param.h" 12 13 #include "cpu.h" 14 #include "nexus.h" 15 #include "ioa.h" 16 #include "../vaxuba/ubareg.h" 17 18 /* 19 * Initialization of per-cpu data structures. 20 */ 21 22 /* 23 * These are the (fixed) addresses of the (last 8k bytes of) 24 * unibus memory for each of the possible unibus adapters. Note that the 25 * unibus memory addresses are actually indexed by the unibus adapter type code. 26 */ 27 #if VAX8600 28 caddr_t umaddr8600a[4] = { 29 (caddr_t) UMEMA8600(0), (caddr_t) UMEMA8600(1), 30 (caddr_t) UMEMA8600(2), (caddr_t) UMEMA8600(3), 31 }; 32 caddr_t umaddr8600b[4] = { 33 (caddr_t) UMEMB8600(0), (caddr_t) UMEMB8600(1), 34 (caddr_t) UMEMB8600(2), (caddr_t) UMEMB8600(3), 35 }; 36 #endif 37 #if VAX780 38 caddr_t umaddr780[4] = { 39 (caddr_t) UMEM780(0), (caddr_t) UMEM780(1), 40 (caddr_t) UMEM780(2), (caddr_t) UMEM780(3) 41 }; 42 #endif 43 #if VAX750 44 caddr_t umaddr750[2] = { 45 (caddr_t) UMEM750(0), (caddr_t) UMEM750(1), 46 }; 47 #endif 48 #if VAX730 49 caddr_t umaddr730[1] = { 50 (caddr_t) UMEM730 51 }; 52 #endif 53 54 /* 55 * Information to patch around the stupidity of configuration 56 * registers not returning types on some of the processors. 57 */ 58 #if VAX750 59 short nexty750[NNEX750] = { 60 NEX_MEM16, NEX_MEM16, NEX_MEM16, NEX_MEM16, 61 NEX_MBA, NEX_MBA, NEX_MBA, NEX_MBA, 62 NEX_UBA0, NEX_UBA1, NEX_ANY, NEX_ANY, 63 NEX_ANY, NEX_ANY, NEX_ANY, NEX_ANY 64 }; 65 #endif 66 #if VAX730 67 short nexty730[NNEX730] = { 68 NEX_MEM16, NEX_ANY, NEX_ANY, NEX_ANY, 69 NEX_ANY, NEX_ANY, NEX_ANY, NEX_ANY, 70 }; 71 #endif 72 73 #if VAX8600 74 struct persbi sbi8600[2] = { 75 { NNEX8600, NEXA8600, umaddr8600a, NBDP8600, 1, 0 }, 76 { NNEX8600, NEXB8600, umaddr8600b, NBDP8600, 1, 0 }, 77 }; 78 caddr_t ioaaddr8600[] = { IOA8600(0), IOA8600(1) }; 79 #endif 80 81 #if VAX780 82 struct persbi sbi780 = { 83 NNEX780, NEX780, umaddr780, NBDP780, 1, 0, 84 }; 85 short ioa780[] = { IOA_SBI780 }; 86 #endif 87 88 #if VAX750 89 struct persbi cmi750 = { 90 NNEX750, NEX750, umaddr750, NBDP750, 0, nexty750, 91 }; 92 short ioa750[] = { IOA_CMI750 }; 93 #endif 94 95 #if VAX730 96 struct persbi xxx730 = { 97 NNEX730, NEX730, umaddr730, NBDP730, 0, nexty730, 98 }; 99 short ioa730[] = { IOA_XXX730 }; 100 #endif 101 102 struct percpu percpu[] = { 103 #if VAX8600 104 { VAX_8600, 4, 2, ioaaddr8600, 512, (short *)0 }, 105 #endif 106 #if VAX780 107 { VAX_780, 2, 1, (caddr_t *)0, 0, ioa780 }, 108 #endif 109 #if VAX750 110 { VAX_750, 1, 1, (caddr_t *)0, 0, ioa750 }, 111 #endif 112 #if VAX730 113 { VAX_730, 1, 1, (caddr_t *)0, 0, ioa730 }, 114 #endif 115 0, 116 }; 117