xref: /csrg-svn/sys/vax/mba/mbavar.h (revision 2332)
1*2332Swnj /*	mbavar.h	4.3	02/03/81	*/
260Sbill 
31907Swnj #if VAX==780
460Sbill /*
560Sbill  * VAX Massbus adapter registers
660Sbill  */
760Sbill 
8*2332Swnj struct mba_drv
9*2332Swnj {
10*2332Swnj 	int	mbd_cs1;
11*2332Swnj 	int	mbd_ds;
12*2332Swnj 	int	mbd_er1;
13*2332Swnj 	int	mbd_mr1;
14*2332Swnj 	int	mbd_as;
15*2332Swnj 	int	mbd_da;
16*2332Swnj #define	mbd_fc	mbd_da
17*2332Swnj 	int	mbd_dt;
18*2332Swnj 	int	mbd_la;
19*2332Swnj #define	mbd_ck	mbd_la
20*2332Swnj 	int	mbd_sn;
21*2332Swnj 	int	mbd_of;
22*2332Swnj #define	mbd_tc	mbd_of
23*2332Swnj 	int	mbd_fill[22];
24*2332Swnj };
25*2332Swnj /*
26*2332Swnj  * Bits in mbd_dt.
27*2332Swnj  */
28*2332Swnj #define	MBDT_NSA	0x8000		/* not sector addressible */
29*2332Swnj #define	MBDT_TAP	0x4000		/* is a tape */
30*2332Swnj #define	MBDT_MOH	0x2000		/* moving head */
31*2332Swnj #define	MBDT_7CH	0x1000		/* 7 channel */
32*2332Swnj #define	MBDT_DRQ	0x800		/* drive request required */
33*2332Swnj #define	MBDT_SPR	0x400		/* slave present */
34*2332Swnj 
35*2332Swnj #define	MBDT_TYPE	0x1ff
36*2332Swnj #define	MBDT_MASK	(MBDT_NSA|MBDT_TAP|MBDT_TYPE)
37*2332Swnj 
38*2332Swnj #define	MBDT_RP04	020
39*2332Swnj #define	MBDT_RP05	021
40*2332Swnj #define	MBDT_RP06	022
41*2332Swnj #define	MBDT_RP07	042
42*2332Swnj #define	MBDT_RM03	024
43*2332Swnj #define	MBDT_RM05	027
44*2332Swnj #define	MBDT_RM80	026
45*2332Swnj 
46*2332Swnj #define	MBDT_TM03	050
47*2332Swnj #define	MBDT_TE16	051
48*2332Swnj #define	MBDT_TU45	052
49*2332Swnj #define	MBDT_TU77	054
50*2332Swnj #define	MBDT_TU78	0140
51*2332Swnj 
52*2332Swnj /*
53*2332Swnj  * Bits in mbd_ds.
54*2332Swnj  */
55*2332Swnj #define	MBD_DRY		0x80
56*2332Swnj #define	MBD_MOL		0x1000
57*2332Swnj #define	MBD_DPR		0x100
58*2332Swnj #define	MBD_ERR		0x4000
59*2332Swnj 
60*2332Swnj #define	MBD_WCOM	0x30
61*2332Swnj #define	MBD_RCOM	0x38
62*2332Swnj #define	MBD_GO		0x1
63*2332Swnj 
6460Sbill struct mba_regs
6560Sbill {
6660Sbill 	int	mba_csr;
6760Sbill 	int	mba_cr;
6860Sbill 	int	mba_sr;
6960Sbill 	int	mba_var;
7060Sbill 	int	mba_bcr;
71583Sbill 	int	mba_dr;
72583Sbill 	int	mba_pad1[250];
73*2332Swnj 	struct	mba_drv mba_drv[8];
74583Sbill 	struct	pte mba_map[256];
75*2332Swnj 	int	mba_pad2[256*5];
7660Sbill };
7760Sbill 
78583Sbill #define	MBAINIT		0x1
791279Sbill #define	MBAIE		0x4
8060Sbill 
811279Sbill #define	MBAEBITS	0xe0770
8260Sbill 
83583Sbill #define	PHYSMBA0	((struct mba_regs *)0x20010000)
84583Sbill #define	PHYSMBA1	((struct mba_regs *)0x20012000)
8560Sbill 
86*2332Swnj #define	mbadev(mba,unit)	((struct device *)&mba->mba_drv[unit])
8760Sbill 
88583Sbill #ifdef KERNEL
89583Sbill struct mba_info
90583Sbill {
91583Sbill 	struct	mba_regs *mi_loc;	/* virtual mba */
92583Sbill 	struct	mba_regs *mi_phys;	/* physical mba */
93583Sbill 	struct	pte *mi_map;		/* page table base for nexus */
94583Sbill };
9560Sbill 
961279Sbill #define	MBA0		((struct mba_regs *)0x80064000)
971279Sbill #define	MBA1		((struct mba_regs *)0x80066000)
98583Sbill 
99583Sbill int	mbanum[];
100583Sbill struct	mba_info mbainfo[];
101583Sbill int	mbaact;
102583Sbill #endif
1031907Swnj #endif
104