am79900reg.h revision 256281
1/*	$NetBSD: am79900reg.h,v 1.8 2005/12/11 12:21:25 christos Exp $	*/
2
3/*-
4 * Copyright (c) 1998 The NetBSD Foundation, Inc.
5 * All rights reserved.
6 *
7 * This code is derived from software contributed to The NetBSD Foundation
8 * by Charles M. Hannum.
9 *
10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions
12 * are met:
13 * 1. Redistributions of source code must retain the above copyright
14 *    notice, this list of conditions and the following disclaimer.
15 * 2. Redistributions in binary form must reproduce the above copyright
16 *    notice, this list of conditions and the following disclaimer in the
17 *    documentation and/or other materials provided with the distribution.
18 * 3. All advertising materials mentioning features or use of this software
19 *    must display the following acknowledgement:
20 *        This product includes software developed by the NetBSD
21 *        Foundation, Inc. and its contributors.
22 * 4. Neither the name of The NetBSD Foundation nor the names of its
23 *    contributors may be used to endorse or promote products derived
24 *    from this software without specific prior written permission.
25 *
26 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
27 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
28 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
29 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
30 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
33 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
34 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
35 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
36 * POSSIBILITY OF SUCH DAMAGE.
37 */
38
39/*-
40 * Copyright (c) 1992, 1993
41 *	The Regents of the University of California.  All rights reserved.
42 *
43 * This code is derived from software contributed to Berkeley by
44 * Ralph Campbell and Rick Macklem.
45 *
46 * Redistribution and use in source and binary forms, with or without
47 * modification, are permitted provided that the following conditions
48 * are met:
49 * 1. Redistributions of source code must retain the above copyright
50 *    notice, this list of conditions and the following disclaimer.
51 * 2. Redistributions in binary form must reproduce the above copyright
52 *    notice, this list of conditions and the following disclaimer in the
53 *    documentation and/or other materials provided with the distribution.
54 * 3. Neither the name of the University nor the names of its contributors
55 *    may be used to endorse or promote products derived from this software
56 *    without specific prior written permission.
57 *
58 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
59 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
60 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
61 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
62 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
63 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
64 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
65 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
66 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
67 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
68 * SUCH DAMAGE.
69 *
70 *	@(#)if_lereg.h	8.1 (Berkeley) 6/10/93
71 */
72
73/* $FreeBSD: stable/10/sys/dev/le/am79900reg.h 155093 2006-01-31 14:48:58Z marius $ */
74
75#ifndef _DEV_LE_AM79900REG_H_
76#define	_DEV_LE_AM79900REG_H_
77
78/*
79 * Receive message descriptor
80 */
81struct lermd {
82	uint32_t	rmd0;
83	uint32_t	rmd1;
84	uint32_t	rmd2;
85	int32_t		rmd3;
86};
87
88/*
89 * Transmit message descriptor
90 */
91struct letmd {
92	uint32_t	tmd0;
93	uint32_t	tmd1;
94	uint32_t	tmd2;
95	int32_t		tmd3;
96};
97
98/*
99 * Initialization block
100 */
101struct leinit {
102	uint32_t	init_mode;	/* +0x0000 */
103	uint32_t	init_padr[2];	/* +0x0002 */
104	uint16_t	init_ladrf[4];	/* +0x0008 */
105	uint32_t	init_rdra;	/* +0x0010 */
106	uint32_t	init_tdra;	/* +0x0014 */
107	int32_t	 	pad;		/* Pad to 8 ints. */
108};
109
110/* Receive message descriptor 1 (rmd1_bits) */
111#define	LE_R1_OWN	(1U << 31)	/* LANCE owns the packet */
112#define	LE_R1_ERR	(1U << 30)	/* error summary */
113#define	LE_R1_FRAM	(1U << 29)	/* framing error */
114#define	LE_R1_OFLO	(1U << 28)	/* overflow error */
115#define	LE_R1_CRC	(1U << 27)	/* CRC error */
116#define	LE_R1_BUFF	(1U << 26)	/* buffer error */
117#define	LE_R1_STP	(1U << 25)	/* start of packet */
118#define	LE_R1_ENP	(1U << 24)	/* end of packet */
119#define	LE_R1_ONES	(0xfU << 12)	/* must be ones */
120#define	LE_R1_BCNT_MASK	(0xfff)		/* byte count mask */
121
122#define	LE_R1_BITS \
123    "\20\40OWN\37ERR\36FRAM\35OFLO\34CRC\33BUFF\32STP\31ENP"
124
125/* Transmit message descriptor 1 (tmd1_bits) */
126#define	LE_T1_OWN	(1U << 31)	/* LANCE owns the packet */
127#define	LE_T1_ERR	(1U << 30)	/* error summary */
128#define	LE_T1_ADD_FCS	(1U << 29)	/* add FCS (PCnet-PCI) */
129#define	LE_T1_NO_FCS	(1U << 29)	/* no FCS (ILACC) */
130#define	LE_T1_MORE	(1U << 28)	/* multiple collisions */
131#define	LE_T1_LTINT	(1U << 28)	/* transmit interrupt (if LTINTEN) */
132#define	LE_T1_ONE	(1U << 27)	/* single collision */
133#define	LE_T1_DEF	(1U << 26)	/* deferred transmit */
134#define	LE_T1_STP	(1U << 25)	/* start of packet */
135#define	LE_T1_ENP	(1U << 24)	/* end of packet */
136#define	LE_T1_ONES	(0xfU << 12)	/* must be ones */
137#define	LE_T1_BCNT_MASK	(0xfff)		/* byte count mask */
138
139#define	LE_T1_BITS \
140    "\20\40OWN\37ERR\36RES\35MORE\34ONE\33DEF\32STP\31ENP"
141
142/* Transmit message descriptor 3 (tmd3) */
143#define	LE_T2_BUFF	(1U << 31)	/* buffer error */
144#define	LE_T2_UFLO	(1U << 30)	/* underflow error */
145#define	LE_T2_EXDEF	(1U << 29)	/* excessive defferral */
146#define	LE_T2_LCOL	(1U << 28)	/* late collision */
147#define	LE_T2_LCAR	(1U << 27)	/* loss of carrier */
148#define	LE_T2_RTRY	(1U << 26)	/* retry error */
149#if 0
150#define	LE_T3_TDR_MASK	0x03ff		/* time domain reflectometry counter */
151#endif
152
153#define	LE_T3_BITS \
154    "\12\40BUFF\37UFLO\35LCOL\34LCAR\33RTRY"
155
156#endif /* !_DEV_LE_AM7990REG_H_ */
157