|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. ! 3: * ! 4: * @APPLE_LICENSE_HEADER_START@ ! 5: * ! 6: * The contents of this file constitute Original Code as defined in and ! 7: * are subject to the Apple Public Source License Version 1.1 (the ! 8: * "License"). You may not use this file except in compliance with the ! 9: * License. Please obtain a copy of the License at ! 10: * http://www.apple.com/publicsource and read it before using this file. ! 11: * ! 12: * This Original Code and all software distributed under the License are ! 13: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER ! 14: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, ! 15: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, ! 16: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the ! 17: * License for the specific language governing rights and limitations ! 18: * under the License. ! 19: * ! 20: * @APPLE_LICENSE_HEADER_END@ ! 21: */ ! 22: /* ! 23: * Copyright 1996 1995 by Open Software Foundation, Inc. 1997 1996 1995 1994 1993 1992 1991 ! 24: * All Rights Reserved ! 25: * ! 26: * Permission to use, copy, modify, and distribute this software and ! 27: * its documentation for any purpose and without fee is hereby granted, ! 28: * provided that the above copyright notice appears in all copies and ! 29: * that both the copyright notice and this permission notice appear in ! 30: * supporting documentation. ! 31: * ! 32: * OSF DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE ! 33: * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS ! 34: * FOR A PARTICULAR PURPOSE. ! 35: * ! 36: * IN NO EVENT SHALL OSF BE LIABLE FOR ANY SPECIAL, INDIRECT, OR ! 37: * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM ! 38: * LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT, ! 39: * NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION ! 40: * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ! 41: * ! 42: */ ! 43: /* ! 44: * Copyright 1996 1995 by Apple Computer, Inc. 1997 1996 1995 1994 1993 1992 1991 ! 45: * All Rights Reserved ! 46: * ! 47: * Permission to use, copy, modify, and distribute this software and ! 48: * its documentation for any purpose and without fee is hereby granted, ! 49: * provided that the above copyright notice appears in all copies and ! 50: * that both the copyright notice and this permission notice appear in ! 51: * supporting documentation. ! 52: * ! 53: * APPLE COMPUTER DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE ! 54: * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS ! 55: * FOR A PARTICULAR PURPOSE. ! 56: * ! 57: * IN NO EVENT SHALL APPLE COMPUTER BE LIABLE FOR ANY SPECIAL, INDIRECT, OR ! 58: * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM ! 59: * LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT, ! 60: * NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION ! 61: * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ! 62: */ ! 63: /* ! 64: * MKLINUX-1.0DR2 ! 65: */ ! 66: /* ! 67: * PMach Operating System ! 68: * Copyright (c) 1995 Santa Clara University ! 69: * All Rights Reserved. ! 70: */ ! 71: /* ! 72: * Mach Operating System ! 73: * Copyright (c) 1991,1990,1989 Carnegie Mellon University ! 74: * All Rights Reserved. ! 75: * ! 76: * Permission to use, copy, modify and distribute this software and its ! 77: * documentation is hereby granted, provided that both the copyright ! 78: * notice and this permission notice appear in all copies of the ! 79: * software, derivative works or modified versions, and any portions ! 80: * thereof, and that both notices appear in supporting documentation. ! 81: * ! 82: * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" ! 83: * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR ! 84: * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. ! 85: * ! 86: * Carnegie Mellon requests users of this software to return to ! 87: * ! 88: * Software Distribution Coordinator or [email protected] ! 89: * School of Computer Science ! 90: * Carnegie Mellon University ! 91: * Pittsburgh PA 15213-3890 ! 92: * ! 93: * any improvements or extensions that they make and grant Carnegie Mellon ! 94: * the rights to redistribute these changes. ! 95: */ ! 96: /* ! 97: * File: if_3c501.h ! 98: * Author: Philippe Bernadat ! 99: * Date: 1989 ! 100: * Copyright (c) 1989 OSF Research Institute ! 101: * ! 102: * 3COM Etherlink 3C501 Mach Ethernet drvier ! 103: */ ! 104: /* ! 105: Copyright 1990 by Open Software Foundation, ! 106: Cambridge, MA. ! 107: ! 108: All Rights Reserved ! 109: ! 110: Permission to use, copy, modify, and distribute this software and ! 111: its documentation for any purpose and without fee is hereby granted, ! 112: provided that the above copyright notice appears in all copies and ! 113: that both the copyright notice and this permission notice appear in ! 114: supporting documentation, and that the name of OSF or Open Software ! 115: Foundation not be used in advertising or publicity pertaining to ! 116: distribution of the software without specific, written prior ! 117: permission. ! 118: ! 119: OSF DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE ! 120: INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, ! 121: IN NO EVENT SHALL OSF BE LIABLE FOR ANY SPECIAL, INDIRECT, OR ! 122: CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM ! 123: LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT, ! 124: NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION ! 125: WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ! 126: */ ! 127: ! 128: #ifdef KERNEL ! 129: #include <sys/cdefs.h> ! 130: #endif ! 131: ! 132: ! 133: #define ENETPAD(n) char n[15] ! 134: ! 135: /* 0x50f0a000 */ ! 136: struct mace_board { ! 137: volatile unsigned char rcvfifo; /* 00 receive fifo */ ! 138: ENETPAD(epad0); ! 139: volatile unsigned char xmtfifo; /* 01 transmit fifo */ ! 140: ENETPAD(epad1); ! 141: volatile unsigned char xmtfc; /* 02 transmit frame control */ ! 142: ENETPAD(epad2); ! 143: volatile unsigned char xmtfs; /* 03 transmit frame status */ ! 144: ENETPAD(epad3); ! 145: volatile unsigned char xmtrc; /* 04 transmit retry count */ ! 146: ENETPAD(epad4); ! 147: volatile unsigned char rcvfc; /* 05 receive frame control -- 4 bytes */ ! 148: ENETPAD(epad5); ! 149: volatile unsigned char rcvfs; /* 06 receive frame status */ ! 150: ENETPAD(epad6); ! 151: volatile unsigned char fifofc; /* 07 fifo frame count */ ! 152: ENETPAD(epad7); ! 153: volatile unsigned char ir; /* 08 interrupt */ ! 154: ENETPAD(epad8); ! 155: volatile unsigned char imr; /* 09 interrupt mask */ ! 156: ENETPAD(epad9); ! 157: volatile unsigned char pr; /* 10 poll */ ! 158: ENETPAD(epad10); ! 159: volatile unsigned char biucc; /* 11 bus interface unit configuration control */ ! 160: ENETPAD(epad11); ! 161: volatile unsigned char fifocc; /* 12 fifo configuration control */ ! 162: ENETPAD(epad12); ! 163: volatile unsigned char maccc; /* 13 media access control configuration control */ ! 164: ENETPAD(epad13); ! 165: volatile unsigned char plscc; /* 14 physical layer signalling configuration control */ ! 166: ENETPAD(epad14); ! 167: volatile unsigned char phycc; /* 15 physical layer configuration control */ ! 168: ENETPAD(epad15); ! 169: volatile unsigned char chipid1; /* 16 chip identification LSB */ ! 170: ENETPAD(epad16); ! 171: volatile unsigned char chipid2; /* 17 chip identification MSB */ ! 172: ENETPAD(epad17); ! 173: volatile unsigned char iac; /* 18 internal address configuration */ ! 174: ENETPAD(epad18); ! 175: volatile unsigned char res1; /* 19 */ ! 176: ENETPAD(epad19); ! 177: volatile unsigned char ladrf; /* 20 logical address filter -- 8 bytes */ ! 178: ENETPAD(epad20); ! 179: volatile unsigned char padr; /* 21 physical address -- 6 bytes */ ! 180: ENETPAD(epad21); ! 181: volatile unsigned char res2; /* 22 */ ! 182: ENETPAD(epad22); ! 183: volatile unsigned char res3; /* 23 */ ! 184: ENETPAD(epad23); ! 185: volatile unsigned char mpc; /* 24 missed packet count */ ! 186: ENETPAD(epad24); ! 187: volatile unsigned char res4; /* 25 */ ! 188: ENETPAD(epad25); ! 189: volatile unsigned char rntpc; /* 26 runt packet count */ ! 190: ENETPAD(epad26); ! 191: volatile unsigned char rcvcc; /* 27 receive collision count */ ! 192: ENETPAD(epad27); ! 193: volatile unsigned char res5; /* 28 */ ! 194: ENETPAD(epad28); ! 195: volatile unsigned char utr; /* 29 user test */ ! 196: ENETPAD(epad29); ! 197: volatile unsigned char res6; /* 30 */ ! 198: ENETPAD(epad30); ! 199: volatile unsigned char res7; /* 31 */ ! 200: }; ! 201: ! 202: /* ! 203: * Chip Revisions.. ! 204: */ ! 205: ! 206: #define MACE_REVISION_B0 0x0940 ! 207: #define MACE_REVISION_A2 0x0941 ! 208: ! 209: /* xmtfc */ ! 210: #define XMTFC_DRTRY 0X80 ! 211: #define XMTFC_DXMTFCS 0x08 ! 212: #define XMTFC_APADXNT 0x01 ! 213: ! 214: /* xmtfs */ ! 215: #define XMTFS_XNTSV 0x80 ! 216: #define XMTFS_XMTFS 0x40 ! 217: #define XMTFS_LCOL 0x20 ! 218: #define XMTFS_MORE 0x10 ! 219: #define XMTFS_ONE 0x08 ! 220: #define XMTFS_DEFER 0x04 ! 221: #define XMTFS_LCAR 0x02 ! 222: #define XMTFS_RTRY 0x01 ! 223: ! 224: /* xmtrc */ ! 225: #define XMTRC_EXDEF 0x80 ! 226: ! 227: /* rcvfc */ ! 228: #define RCVFC_LLRCV 0x08 ! 229: #define RCVFC_M_R 0x04 ! 230: #define RCVFC_ASTRPRCV 0x01 ! 231: ! 232: /* rcvfs */ ! 233: #define RCVFS_OFLO 0x80 ! 234: #define RCVFS_CLSN 0x40 ! 235: #define RCVFS_FRAM 0x20 ! 236: #define RCVFS_FCS 0x10 ! 237: #define RCVFS_REVCNT 0x0f ! 238: ! 239: /* fifofc */ ! 240: #define FIFOCC_XFW_8 0x00 ! 241: #define FIFOCC_XFW_16 0x40 ! 242: #define FIFOCC_XFW_32 0x80 ! 243: #define FIFOCC_XFW_XX 0xc0 ! 244: #define FIFOCC_RFW_16 0x00 ! 245: #define FIFOCC_RFW_32 0x10 ! 246: #define FIFOCC_RFW_64 0x20 ! 247: #define FIFOCC_RFW_XX 0x30 ! 248: #define FIFOCC_XFWU 0x08 ! 249: #define FIFOCC_RFWU 0x04 ! 250: #define FIFOCC_XBRST 0x02 ! 251: #define FIFOCC_RBRST 0x01 ! 252: ! 253: ! 254: /* ir */ ! 255: #define IR_JAB 0x80 ! 256: #define IR_BABL 0x40 ! 257: #define IR_CERR 0x20 ! 258: #define IR_RCVCCO 0x10 ! 259: #define IR_RNTPCO 0x08 ! 260: #define IR_MPCO 0x04 ! 261: #define IR_RCVINT 0x02 ! 262: #define IR_XMTINT 0x01 ! 263: ! 264: /* imr */ ! 265: #define IMR_MJAB 0x80 ! 266: #define IMR_MBABL 0x40 ! 267: #define IMR_MCERR 0x20 ! 268: #define IMR_MRCVCCO 0x10 ! 269: #define IMR_MRNTPCO 0x08 ! 270: #define IMR_MMPCO 0x04 ! 271: #define IMR_MRCVINT 0x02 ! 272: #define IMR_MXMTINT 0x01 ! 273: ! 274: /* pr */ ! 275: #define PR_XMTSV 0x80 ! 276: #define PR_TDTREQ 0x40 ! 277: #define PR_RDTREQ 0x20 ! 278: ! 279: /* biucc */ ! 280: #define BIUCC_BSWP 0x40 ! 281: #define BIUCC_XMTSP04 0x00 ! 282: #define BIUCC_XMTSP16 0x10 ! 283: #define BIUCC_XMTSP64 0x20 ! 284: #define BIUCC_XMTSP112 0x30 ! 285: #define BIUCC_SWRST 0x01 ! 286: ! 287: /* fifocc */ ! 288: #define FIFOCC_XMTFW08W 0x00 ! 289: #define FIFOCC_XMTFW16W 0x40 ! 290: #define FIFOCC_XMTFW32W 0x80 ! 291: ! 292: #define FIFOCC_RCVFW16 0x00 ! 293: #define FIFOCC_RCVFW32 0x10 ! 294: #define FIFOCC_RCVFW64 0x20 ! 295: ! 296: #define FIFOCC_XMTFWU 0x08 ! 297: #define FIFOCC_RCVFWU 0x04 ! 298: #define FIFOCC_XMTBRST 0x02 ! 299: #define FIFOCC_RCVBRST 0x01 ! 300: ! 301: /* maccc */ ! 302: #define MACCC_PROM 0x80 ! 303: #define MACCC_DXMT2PD 0x40 ! 304: #define MACCC_EMBA 0x20 ! 305: #define MACCC_DRCVPA 0x08 ! 306: #define MACCC_DRCVBC 0x04 ! 307: #define MACCC_ENXMT 0x02 ! 308: #define MACCC_ENRCV 0x01 ! 309: ! 310: /* plscc */ ! 311: #define PLSCC_XMTSEL 0x08 ! 312: #define PLSCC_AUI 0x00 ! 313: #define PLSCC_TENBASE 0x02 ! 314: #define PLSCC_DAI 0x04 ! 315: #define PLSCC_GPSI 0x06 ! 316: #define PLSCC_ENPLSIO 0x01 ! 317: ! 318: /* phycc */ ! 319: #define PHYCC_LNKFL 0x80 ! 320: #define PHYCC_DLNKTST 0x40 ! 321: #define PHYCC_REVPOL 0x20 ! 322: #define PHYCC_DAPC 0x10 ! 323: #define PHYCC_LRT 0x08 ! 324: #define PHYCC_ASEL 0x04 ! 325: #define PHYCC_RWAKE 0x02 ! 326: #define PHYCC_AWAKE 0x01 ! 327: ! 328: /* iac */ ! 329: #define IAC_ADDRCHG 0x80 ! 330: #define IAC_PHYADDR 0x04 ! 331: #define IAC_LOGADDR 0x02 ! 332: ! 333: /* utr */ ! 334: #define UTR_RTRE 0x80 ! 335: #define UTR_RTRD 0x40 ! 336: #define UTR_RPA 0x20 ! 337: #define UTR_FCOLL 0x10 ! 338: #define UTR_RCVFCSE 0x08 ! 339: ! 340: #define UTR_NOLOOP 0x00 ! 341: #define UTR_EXTLOOP 0x02 ! 342: #define UTR_INLOOP 0x04 ! 343: #define UTR_INLOOP_M 0x06 ! 344: ! 345: #define ENET_PHYADDR_LEN 6 ! 346: #define ENET_HEADER 14 ! 347: ! 348: #define BFRSIZ 2048 ! 349: #define ETHER_ADD_SIZE 6 /* size of a MAC address */ ! 350: #define DSF_LOCK 1 ! 351: #define DSF_RUNNING 2 ! 352: #define MOD_ENAL 1 ! 353: #define MOD_PROM 2 ! 354: ! 355: /* ! 356: * MACE Chip revision codes ! 357: */ ! 358: #define MACERevA2 0x0941 ! 359: #define MACERevB0 0x0940 ! 360: ! 361: #ifdef KERNEL ! 362: int mace_delmulti __P((register struct ifreq *, register struct arpcom *, ! 363: struct ether_addr *)); ! 364: int mace_addmulti __P((register struct ifreq *, register struct arpcom *)); ! 365: void mace_sync_mcast __P((register struct ifnet *)); ! 366: void mace_sync_promisc __P((register struct ifnet *)); ! 367: #endif /* KERNEL */ ! 368:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.