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