if_sbnireg.h revision 86752
1221337Sdim/* 2221337Sdim * Copyright (c) 1997-2001 Granch, Ltd. All rights reserved. 3221337Sdim * Author: Denis I.Timofeev <timofeev@granch.ru> 4221337Sdim * 5221337Sdim * Redistributon and use in source and binary forms, with or without 6221337Sdim * modification, are permitted provided that the following conditions 7221337Sdim * are met: 8221337Sdim * 1. Redistributions of source code must retain the above copyright 9223017Sdim * notice unmodified, this list of conditions, and the following 10221337Sdim * disclaimer. 11221337Sdim * 2. Redistributions in binary form must reproduce the above copyright 12221337Sdim * notice, this list of conditions and the following disclaimer in the 13221337Sdim * documentation and/or other materials provided with the distribution. 14221337Sdim * 15221337Sdim * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 16221337Sdim * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17221337Sdim * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18221337Sdim * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19221337Sdim * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20221337Sdim * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21221337Sdim * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22221337Sdim * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23221337Sdim * LIABILITY, OR TORT (INCLUDING NEIGENCE OR OTHERWISE) ARISING IN ANY WAY 24221337Sdim * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25221337Sdim * SUCH DAMAGE. 26221337Sdim * 27221337Sdim * $FreeBSD: head/sys/dev/sbni/if_sbnireg.h 86752 2001-11-21 22:29:35Z fjoe $ 28221337Sdim */ 29221337Sdim 30221337Sdim/* 31223017Sdim * We don't have registered vendor id yet... 32221337Sdim */ 33223017Sdim#define SBNI_PCI_VENDOR 0x55 34223017Sdim#define SBNI_PCI_DEVICE 0x9f 35221337Sdim 36221337Sdim#define ISA_MODE 0x00 37221337Sdim#define PCI_MODE 0x01 38221337Sdim 39221337Sdim#define SBNI_PORTS 4 40221337Sdim 41221337Sdimenum sbni_reg { 42221337Sdim CSR0 = 0, 43221337Sdim CSR1 = 1, 44221337Sdim DAT = 2 45221337Sdim}; 46221337Sdim 47221337Sdim/* CSR0 mapping */ 48221337Sdimenum { 49221337Sdim BU_EMP = 0x02, 50221337Sdim RC_CHK = 0x04, 51221337Sdim CT_ZER = 0x08, 52221337Sdim TR_REQ = 0x10, 53221337Sdim TR_RDY = 0x20, 54221337Sdim EN_INT = 0x40, 55221337Sdim RC_RDY = 0x80 56221337Sdim}; 57221337Sdim 58221337Sdim 59221337Sdim/* CSR1 mapping */ 60221337Sdim#define PR_RES 0x80 61221337Sdim 62221337Sdimstruct sbni_csr1 { 63221337Sdim unsigned rxl : 5; 64221337Sdim unsigned rate : 2; 65221337Sdim unsigned : 1; 66221337Sdim}; 67221337Sdim 68221337Sdim 69221337Sdim 70221337Sdim#define FRAME_ACK_MASK (u_int16_t)0x7000 71221337Sdim#define FRAME_LEN_MASK (u_int16_t)0x03FF 72221337Sdim#define FRAME_FIRST (u_int16_t)0x8000 73221337Sdim#define FRAME_RETRY (u_int16_t)0x0800 74221337Sdim 75221337Sdim#define FRAME_SENT_BAD (u_int16_t)0x4000 76221337Sdim#define FRAME_SENT_OK (u_int16_t)0x3000 77221337Sdim 78221337Sdim 79221337Sdimenum { 80221337Sdim FL_WAIT_ACK = 1, 81221337Sdim FL_NEED_RESEND = 2, 82221337Sdim FL_PREV_OK = 4, 83221337Sdim FL_SLOW_MODE = 8 84221337Sdim}; 85221337Sdim 86221337Sdim 87221337Sdimenum { 88221337Sdim DEFAULT_IOBASEADDR = 0x210, 89221337Sdim DEFAULT_INTERRUPTNUMBER = 5, 90221337Sdim DEFAULT_RATE = 0, 91221337Sdim DEFAULT_FRAME_LEN = 1012 92221337Sdim}; 93221337Sdim 94221337Sdim#define DEF_RXL_DELTA -1 95221337Sdim#define DEF_RXL 0xf 96221337Sdim 97221337Sdim#define SBNI_SIG 0x5a 98221337Sdim 99221337Sdim#define SBNI_MIN_LEN (ETHER_MIN_LEN - 4) 100221337Sdim#define SBNI_MAX_FRAME 1023 101221337Sdim 102221337Sdim#define SBNI_HZ 18 /* ticks to wait for pong or packet */ 103221337Sdim /* sbni watchdog called SBNI_HZ times per sec. */ 104221337Sdim 105221337Sdim#define TR_ERROR_COUNT 32 106221337Sdim#define CHANGE_LEVEL_START_TICKS 4 107221337Sdim