xref: /original-bsd/sys/vax/vax/cpudata.c (revision c219fbf0)
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