xref: /original-bsd/sys/vax/mba/mbavar.h (revision c0a83f90)
1 /*	mbavar.h	4.3	02/03/81	*/
2 
3 #if VAX==780
4 /*
5  * VAX Massbus adapter registers
6  */
7 
8 struct mba_drv
9 {
10 	int	mbd_cs1;
11 	int	mbd_ds;
12 	int	mbd_er1;
13 	int	mbd_mr1;
14 	int	mbd_as;
15 	int	mbd_da;
16 #define	mbd_fc	mbd_da
17 	int	mbd_dt;
18 	int	mbd_la;
19 #define	mbd_ck	mbd_la
20 	int	mbd_sn;
21 	int	mbd_of;
22 #define	mbd_tc	mbd_of
23 	int	mbd_fill[22];
24 };
25 /*
26  * Bits in mbd_dt.
27  */
28 #define	MBDT_NSA	0x8000		/* not sector addressible */
29 #define	MBDT_TAP	0x4000		/* is a tape */
30 #define	MBDT_MOH	0x2000		/* moving head */
31 #define	MBDT_7CH	0x1000		/* 7 channel */
32 #define	MBDT_DRQ	0x800		/* drive request required */
33 #define	MBDT_SPR	0x400		/* slave present */
34 
35 #define	MBDT_TYPE	0x1ff
36 #define	MBDT_MASK	(MBDT_NSA|MBDT_TAP|MBDT_TYPE)
37 
38 #define	MBDT_RP04	020
39 #define	MBDT_RP05	021
40 #define	MBDT_RP06	022
41 #define	MBDT_RP07	042
42 #define	MBDT_RM03	024
43 #define	MBDT_RM05	027
44 #define	MBDT_RM80	026
45 
46 #define	MBDT_TM03	050
47 #define	MBDT_TE16	051
48 #define	MBDT_TU45	052
49 #define	MBDT_TU77	054
50 #define	MBDT_TU78	0140
51 
52 /*
53  * Bits in mbd_ds.
54  */
55 #define	MBD_DRY		0x80
56 #define	MBD_MOL		0x1000
57 #define	MBD_DPR		0x100
58 #define	MBD_ERR		0x4000
59 
60 #define	MBD_WCOM	0x30
61 #define	MBD_RCOM	0x38
62 #define	MBD_GO		0x1
63 
64 struct mba_regs
65 {
66 	int	mba_csr;
67 	int	mba_cr;
68 	int	mba_sr;
69 	int	mba_var;
70 	int	mba_bcr;
71 	int	mba_dr;
72 	int	mba_pad1[250];
73 	struct	mba_drv mba_drv[8];
74 	struct	pte mba_map[256];
75 	int	mba_pad2[256*5];
76 };
77 
78 #define	MBAINIT		0x1
79 #define	MBAIE		0x4
80 
81 #define	MBAEBITS	0xe0770
82 
83 #define	PHYSMBA0	((struct mba_regs *)0x20010000)
84 #define	PHYSMBA1	((struct mba_regs *)0x20012000)
85 
86 #define	mbadev(mba,unit)	((struct device *)&mba->mba_drv[unit])
87 
88 #ifdef KERNEL
89 struct mba_info
90 {
91 	struct	mba_regs *mi_loc;	/* virtual mba */
92 	struct	mba_regs *mi_phys;	/* physical mba */
93 	struct	pte *mi_map;		/* page table base for nexus */
94 };
95 
96 #define	MBA0		((struct mba_regs *)0x80064000)
97 #define	MBA1		((struct mba_regs *)0x80066000)
98 
99 int	mbanum[];
100 struct	mba_info mbainfo[];
101 int	mbaact;
102 #endif
103 #endif
104