xref: /csrg-svn/sys/tahoe/vba/vbaparam.h (revision 25930)
1*25930Ssam /*	vbaparam.h	1.1	86/01/21	*/
2*25930Ssam 
3*25930Ssam /*
4*25930Ssam  * Parameters related to the VERSAbus i/o configuration.
5*25930Ssam  */
6*25930Ssam 
7*25930Ssam /*
8*25930Ssam  * VERSAbus i/o devices use either memory mapped interfaces
9*25930Ssam  * or mapped i/o register banks, or some of both.  Page tables
10*25930Ssam  * are allocated at boot time by each device driver, as needed.
11*25930Ssam  * VMEMmap is used to map a fixed size portion of the VERSAbus
12*25930Ssam  * i/o space, while VMEMmap1 maps dynamically defined portions
13*25930Ssam  * for devices which utilize shared i/o memory.  VBmap is used
14*25930Ssam  * for mapping kernel intermediate buffers for DMA devices which
15*25930Ssam  * are incapable of utilizing user virtual addresses or which
16*25930Ssam  * require page aligned i/o buffers.  The size of the VMEMmap1
17*25930Ssam  * VBmap tables must be large enough for the needs of all devices
18*25930Ssam  * in the system.
19*25930Ssam  */
20*25930Ssam extern	struct pte VMEMmap[], VMEMmap1[];
21*25930Ssam extern	caddr_t	vmem1, vmemend;
22*25930Ssam extern	struct pte VBmap[];
23*25930Ssam extern	caddr_t vbbase, vbend;
24*25930Ssam 
25*25930Ssam /*
26*25930Ssam  * The following constants define the fixed size map of the
27*25930Ssam  * VERSAbus i/o space.  The values should reflect the range
28*25930Ssam  * of i/o addresses used by all the controllers handled in
29*25930Ssam  * the system as specified in the ubminit structure in ioconf.c.
30*25930Ssam  */
31*25930Ssam #define VBIOBASE	0xfff00000	/* base of VERSAbus address space */
32*25930Ssam #define VBIOEND		0xffffee45	/* last address in mapped space */
33*25930Ssam /* number of entries in the system page pable for i/o space */
34*25930Ssam #define VBIOSIZE	btoc(VBIOEND-VBIOBASE)
35*25930Ssam 
36*25930Ssam /*
37*25930Ssam  * Page table map sizes.
38*25930Ssam  *
39*25930Ssam  * Current VBmap allotments are:
40*25930Ssam  *	4 vd controllers	32+1 pte's
41*25930Ssam  *	2 cy controllers	32+1 pte's
42*25930Ssam  * Current VBMEMmap allotments are:
43*25930Ssam  *	2 ace controllers	32+1 pte's
44*25930Ssam  */
45*25930Ssam #define	VBPTSIZE	(((4*(32+1))+2*(32+1)+3) &~ 3)
46*25930Ssam #define	VBMEMSIZE	((2*(32+1)+3) &~ 3)
47