xref: /csrg-svn/sys/vax/uba/tmscpreg.h (revision 49567)
1*49567Sbostic /*-
2*49567Sbostic  * Copyright (c) 1991 The Regents of the University of California.
3*49567Sbostic  * All rights reserved.
4*49567Sbostic  *
5*49567Sbostic  * %sccs.include.redist.c%
6*49567Sbostic  *
7*49567Sbostic  *	@(#)tmscpreg.h	7.2 (Berkeley) 05/09/91
8*49567Sbostic  */
926128Skarels 
1026128Skarels /*	@(#)tmscpreg.h	1.1	11/2/84	84/09/25	*/
1126128Skarels 
1227469Skjd /****************************************************************
1327469Skjd  *								*
1427469Skjd  *        Licensed from Digital Equipment Corporation 		*
1527469Skjd  *                       Copyright (c) 				*
1627469Skjd  *               Digital Equipment Corporation			*
1727469Skjd  *                   Maynard, Massachusetts 			*
1827469Skjd  *                         1985, 1986 				*
1927469Skjd  *                    All rights reserved. 			*
2027469Skjd  *								*
2127469Skjd  *        The Information in this software is subject to change *
2227469Skjd  *   without notice and should not be construed as a commitment *
2327469Skjd  *   by  Digital  Equipment  Corporation.   Digital   makes  no *
2427469Skjd  *   representations about the suitability of this software for *
2527469Skjd  *   any purpose.  It is supplied "As Is" without expressed  or *
2627469Skjd  *   implied  warranty. 					*
2727469Skjd  *								*
2827469Skjd  *        If the Regents of the University of California or its *
2927469Skjd  *   licensees modify the software in a manner creating  	*
3027469Skjd  *   diriviative copyright rights, appropriate copyright  	*
3127469Skjd  *   legends may be placed on  the drivative work in addition   *
3227469Skjd  *   to that set forth above. 					*
3327469Skjd  *								*
3427469Skjd  ****************************************************************/
3526128Skarels /*
3626128Skarels  * TMSCP registers and structures
3726128Skarels  */
3826128Skarels 
3926128Skarels struct tmscpdevice {
4026128Skarels 	short	tmscpip;	/* initialization and polling */
4126128Skarels 	short	tmscpsa;	/* status and address */
4226128Skarels };
4326128Skarels 
4426128Skarels #define	TMSCP_ERR		0100000	/* error bit */
4526128Skarels #define	TMSCP_STEP4	0040000	/* step 4 has started */
4626128Skarels #define	TMSCP_STEP3	0020000	/* step 3 has started */
4726128Skarels #define	TMSCP_STEP2	0010000	/* step 2 has started */
4826128Skarels #define	TMSCP_STEP1	0004000	/* step 1 has started */
4926128Skarels #define	TMSCP_NV		0002000	/* no host settable interrupt vector */
5026128Skarels #define	TMSCP_QB		0001000	/* controller supports Q22 bus */
5126128Skarels #define	TMSCP_DI		0000400	/* controller implements diagnostics */
5226136Skarels #define	TMSCP_OD		0000200	/* port allows odd host addr's in the buffer descriptor */
5326128Skarels #define	TMSCP_IE		0000200	/* interrupt enable */
5426128Skarels #define	TMSCP_MP		0000100	/* port supports address mapping */
5526136Skarels #define	TMSCP_LF		0000002	/* host requests last fail response packet */
5626136Skarels #define	TMSCP_PI		0000001	/* host requests adapter purge interrupts */
5726128Skarels #define	TMSCP_GO		0000001	/* start operation, after init */
5826128Skarels 
5926128Skarels 
6026128Skarels /*
6126128Skarels  * TMSCP Communications Area
6226128Skarels  */
6326128Skarels 
6426128Skarels struct tmscpca {
6526128Skarels 	short	ca_xxx1;	/* unused */
6626128Skarels 	char	ca_xxx2;	/* unused */
6726128Skarels 	char	ca_bdp;		/* BDP to purge */
6826128Skarels 	short	ca_cmdint;	/* command queue transition interrupt flag */
6926128Skarels 	short	ca_rspint;	/* response queue transition interrupt flag */
7026128Skarels 	long	ca_rspdsc[NRSP];/* response descriptors */
7126128Skarels 	long	ca_cmddsc[NCMD];/* command descriptors */
7226128Skarels };
7326128Skarels 
7426128Skarels #define	ca_ringbase	ca_rspdsc[0]
7526128Skarels 
7626128Skarels #define	TMSCP_OWN	0x80000000	/* port owns this descriptor (else host
7726128Skarels  owns it) */
7826136Skarels #define	TMSCP_INT	0x40000000	/* allow interrupt on ring transition */
7926128Skarels 
8026136Skarels #define	TMSCP_MAP	0x80000000	/* modifier for mapped buffer descriptors */
8126128Skarels 
8226128Skarels /*
8326128Skarels  * TMSCP packet info (same as MSCP)
8426128Skarels  */
8526128Skarels struct mscp_header {
8626128Skarels 	short	tmscp_msglen;	/* length of MSCP packet */
8726128Skarels 	char	tmscp_credits;	/* low 4 bits: credits, high 4 bits: msgtype */
8826128Skarels 	char	tmscp_vcid;	/* virtual circuit id (connection id) */
8926128Skarels };
90