usr/src/uts/common/sys/fibre-channel/fca/qlge/qlge.h
author Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
Mon, 05 Apr 2010 05:20:48 -0600
changeset 12073 05ba1c0d6140
parent 10997 2ff33cc68aa6
child 12319 450834a921de
permissions -rw-r--r--
6923815 Implement FMA functionality in qlge driver 6936309 qlge 1.03 performance is only at about 2G in Sparc M series systems
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10997
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
     1
/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
     2
 * CDDL HEADER START
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
     3
 *
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
     4
 * The contents of this file are subject to the terms of the
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
     5
 * Common Development and Distribution License (the "License").
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
     6
 * You may not use this file except in compliance with the License.
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
     7
 *
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
     8
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
     9
 * or http://www.opensolaris.org/os/licensing.
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    10
 * See the License for the specific language governing permissions
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    11
 * and limitations under the License.
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    12
 *
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    13
 * When distributing Covered Code, include this CDDL HEADER in each
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    14
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    15
 * If applicable, add the following below this CDDL HEADER, with the
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    16
 * fields enclosed by brackets "[]" replaced with your own identifying
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    17
 * information: Portions Copyright [yyyy] [name of copyright owner]
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    18
 *
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    19
 * CDDL HEADER END
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    20
 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    21
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    22
/*
12073
05ba1c0d6140 6923815 Implement FMA functionality in qlge driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents: 10997
diff changeset
    23
 * Copyright 2010 QLogic Corporation. All rights reserved.
10997
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    24
 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    25
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    26
#ifndef _QLGE_H
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    27
#define	_QLGE_H
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    28
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    29
#ifdef __cplusplus
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    30
extern "C" {
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    31
#endif
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    32
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    33
#include <sys/ddi.h>
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    34
#include <sys/sunddi.h>
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    35
#include <sys/sunmdi.h>
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    36
#include <sys/modctl.h>
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    37
#include <sys/pci.h>
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    38
#include <sys/dlpi.h>
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    39
#include <sys/sdt.h>
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    40
#include <sys/mac_provider.h>
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    41
#include <sys/mac.h>
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    42
#include <sys/mac_flow.h>
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    43
#include <sys/mac_ether.h>
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    44
#include <sys/vlan.h>
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    45
#include <sys/netlb.h>
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    46
#include <sys/kmem.h>
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    47
#include <sys/file.h>
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    48
#include <sys/proc.h>
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    49
#include <sys/callb.h>
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    50
#include <sys/disp.h>
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    51
#include <sys/strsun.h>
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    52
#include <sys/ethernet.h>
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    53
#include <sys/miiregs.h>
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    54
#include <sys/kstat.h>
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    55
#include <sys/byteorder.h>
12073
05ba1c0d6140 6923815 Implement FMA functionality in qlge driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents: 10997
diff changeset
    56
#include <sys/ddifm.h>
05ba1c0d6140 6923815 Implement FMA functionality in qlge driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents: 10997
diff changeset
    57
#include <sys/fm/protocol.h>
05ba1c0d6140 6923815 Implement FMA functionality in qlge driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents: 10997
diff changeset
    58
#include <sys/fm/util.h>
05ba1c0d6140 6923815 Implement FMA functionality in qlge driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents: 10997
diff changeset
    59
#include <sys/fm/io/ddi.h>
10997
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    60
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    61
#include <qlge_hw.h>
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    62
#include <qlge_dbg.h>
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    63
#include <qlge_open.h>
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    64
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    65
#define	ADAPTER_NAME		"qlge"
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    66
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    67
/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    68
 * Local Macro Definitions.
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    69
 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    70
#ifdef  TRUE
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    71
#undef  TRUE
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    72
#endif
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    73
#define	TRUE	1
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    74
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    75
#ifdef  FALSE
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    76
#undef  FALSE
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    77
#endif
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    78
#define	FALSE	0
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    79
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    80
/* #define QLGE_TRACK_BUFFER_USAGE */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    81
/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    82
 * byte order, sparc is big endian, x86 is little endian,
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    83
 * but PCI is little endian only
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    84
 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    85
#ifdef sparc
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    86
#define	cpu_to_le64(x)	BSWAP_64(x)
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    87
#define	cpu_to_le32(x)	BSWAP_32(x)
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    88
#define	cpu_to_le16(x)	BSWAP_16(x)
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    89
#define	le64_to_cpu(x)	cpu_to_le64(x)
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    90
#define	le32_to_cpu(x)	cpu_to_le32(x)
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    91
#define	le16_to_cpu(x)	cpu_to_le16(x)
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    92
#else
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    93
#define	cpu_to_le64(x)	(x)
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    94
#define	cpu_to_le32(x)	(x)
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    95
#define	cpu_to_le16(x)	(x)
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    96
#define	le64_to_cpu(x)	(x)
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    97
#define	le32_to_cpu(x)	(x)
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    98
#define	le16_to_cpu(x)	(x)
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
    99
#endif
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   100
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   101
/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   102
 * Macros to help code, maintain, etc.
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   103
 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   104
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   105
#define	LSB(x)			(uint8_t)(x)
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   106
#define	MSB(x)			(uint8_t)((uint16_t)(x) >> 8)
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   107
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   108
#define	MSW(x)			(uint16_t)((uint32_t)(x) >> 16)
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   109
#define	LSW(x)			(uint16_t)(x)
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   110
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   111
#define	MS32(x)			(uint32_t)((uint32_t)(x) >> 32)
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   112
#define	LS32(x)			(uint32_t)(x)
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   113
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   114
#define	MSW_LSB(x)		(uint8_t)(LSB(MSW(x)))
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   115
#define	MSW_MSB(x)		(uint8_t)(MSB(MSW(x)))
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   116
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   117
#define	LSD(x)			(uint32_t)(x)
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   118
#define	MSD(x)			(uint32_t)((uint64_t)(x) >> 32)
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   119
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   120
#define	SHORT_TO_LONG(a, b)	(uint32_t)((uint16_t)b << 16 | (uint16_t)a)
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   121
#define	CHAR_TO_SHORT(a, b)	(uint16_t)((uint8_t)b << 8 | (uint8_t)a)
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   122
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   123
#define	SWAP_ENDIAN_16(x)	((LSB(x) << 8) | MSB(x))
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   124
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   125
#define	SWAP_ENDIAN_32(x)	((SWAP_ENDIAN_16(LSW(x)) << 16) | \
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   126
				    SWAP_ENDIAN_16(MSW(x)))
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   127
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   128
#define	SWAP_ENDIAN_64(x)	((SWAP_ENDIAN_32(LS32(x)) << 32) | \
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   129
				    SWAP_ENDIAN_32(MS32(x)))
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   130
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   131
#define	QL_MIN(x, y)		((x < y) ? x : y)
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   132
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   133
#define	CARRIER_ON(qlge)	mac_link_update((qlge)->mh, LINK_STATE_UP)
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   134
#define	CARRIER_OFF(qlge)	mac_link_update((qlge)->mh, LINK_STATE_DOWN)
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   135
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   136
/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   137
 * qlge local function return status codes
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   138
 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   139
#define	QL_ERROR		1
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   140
#define	QL_SUCCESS		0
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   141
/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   142
 * Solaris version compatibility definitions.
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   143
 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   144
#define	QL_GET_LBOLT(timer)	timer = ddi_get_lbolt()
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   145
#define	QL_DMA_XFER_COUNTER	(uint64_t)0xffffffff
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   146
#define	QL_DRIVER_NAME(dip)	ddi_driver_name(ddi_get_parent(dip))
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   147
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   148
#define	MINOR_NODE_FLAG		8
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   149
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   150
/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   151
 * Host adapter default definitions.
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   152
 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   153
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   154
/* Timeout timer counts in seconds (must greater than 1 second). */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   155
#define	USEC_PER_TICK		drv_hztousec(1)
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   156
#define	TICKS_PER_SEC		drv_usectohz(1000000)
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   157
#define	QL_ONE_SEC_DELAY	1000000
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   158
#define	QL_ONE_MSEC_DELAY	1000
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   159
#define	TX_TIMEOUT		3*TICKS_PER_SEC
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   160
/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   161
 * DMA attributes definitions.
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   162
 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   163
#define	QL_DMA_LOW_ADDRESS		(uint64_t)0
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   164
#define	QL_DMA_HIGH_64BIT_ADDRESS	(uint64_t)0xffffffffffffffffull
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   165
#define	QL_DMA_HIGH_32BIT_ADDRESS	(uint64_t)0xffffffff
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   166
#define	QL_DMA_ADDRESS_ALIGNMENT	(uint64_t)8
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   167
#define	QL_DMA_ALIGN_8_BYTE_BOUNDARY	(uint64_t)BIT_3
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   168
#define	QL_DMA_RING_ADDRESS_ALIGNMENT	(uint64_t)64
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   169
#define	QL_DMA_ALIGN_64_BYTE_BOUNDARY	(uint64_t)BIT_6
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   170
#define	QL_DMA_BURSTSIZES		0xfff
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   171
#define	QL_DMA_MIN_XFER_SIZE		1
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   172
#define	QL_DMA_MAX_XFER_SIZE		(uint64_t)0xffffffff
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   173
#define	QL_DMA_SEGMENT_BOUNDARY		(uint64_t)0xffffffff
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   174
#define	QL_DMA_GRANULARITY		1
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   175
#define	QL_DMA_XFER_FLAGS		0
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   176
#define	QL_MAX_COOKIES			16
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   177
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   178
/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   179
 * ISP PCI Configuration.
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   180
 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   181
#define	QL_INTR_INTERVAL	128	/* default interrupt interval 128us */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   182
#define	QL_INTR_PKTS		8	/* default packet count threshold 8us */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   183
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   184
/* GLD */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   185
#define	QL_STREAM_OPS(dev_ops, attach, detach)	\
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   186
	DDI_DEFINE_STREAM_OPS(dev_ops, nulldev, nulldev, attach, detach, \
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   187
	    nodev, NULL, D_MP, NULL, ql_quiesce)
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   188
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   189
#define	QL_GET_DEV(dip)		((qlge_t *)(ddi_get_driver_private(dip)))
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   190
#define	RESUME_TX(tx_ring)		mac_tx_update(tx_ring->qlge->mh);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   191
#define	RX_UPSTREAM(rx_ring, mp)	mac_rx(rx_ring->qlge->mh, \
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   192
					    rx_ring->qlge->handle, mp);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   193
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   194
/* GLD DMA */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   195
extern ddi_device_acc_attr_t ql_dev_acc_attr;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   196
extern ddi_device_acc_attr_t ql_desc_acc_attr;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   197
extern ddi_device_acc_attr_t ql_buf_acc_attr;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   198
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   199
struct dma_info {
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   200
	void		 *vaddr;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   201
	ddi_dma_handle_t dma_handle;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   202
	ddi_acc_handle_t acc_handle;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   203
	uint64_t	 dma_addr;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   204
	size_t		 mem_len; /* allocated size */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   205
	offset_t	 offset;  /* relative to handle	*/
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   206
};
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   207
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   208
/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   209
 * Sync a DMA area described by a dma_info
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   210
 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   211
#define	DMA_SYNC(area, flag)	((void) ddi_dma_sync((area).dma_handle,	\
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   212
				    (area).offset, (area).mem_len, (flag)))
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   213
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   214
/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   215
 * Find the (kernel virtual) address of block of memory
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   216
 * described by a dma_info
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   217
 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   218
#define	DMA_VPTR(area)		((area).vaddr)
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   219
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   220
/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   221
 * Zero a block of memory described by a dma_info
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   222
 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   223
#define	DMA_ZERO(area)		bzero(DMA_VPTR(area), (area).mem_len)
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   224
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   225
#define	MAX_SG_ELEMENTS		16
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   226
#define	QL_MAX_TX_DMA_HANDLES	MAX_SG_ELEMENTS
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   227
#define	TOTAL_SG_ELEMENTS	(MAX_SG_ELEMENTS + TX_DESC_PER_IOCB)
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   228
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   229
/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   230
 * ISP PCI Configuration.
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   231
 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   232
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   233
/* Initialize steps */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   234
#define	INIT_SOFTSTATE_ALLOC 		BIT_0
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   235
#define	INIT_REGS_SETUP			BIT_1
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   236
#define	INIT_DOORBELL_REGS_SETUP	BIT_2
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   237
#define	INIT_MAC_ALLOC			BIT_3
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   238
#define	INIT_PCI_CONFIG_SETUP   	BIT_4
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   239
#define	INIT_SETUP_RINGS		BIT_5
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   240
#define	INIT_MEMORY_ALLOC		BIT_6
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   241
#define	INIT_INTR_ALLOC			BIT_7
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   242
#define	INIT_ADD_INTERRUPT		BIT_8
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   243
#define	INIT_LOCKS_CREATED		BIT_9
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   244
#define	INIT_ADD_SOFT_INTERRUPT		BIT_10
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   245
#define	INIT_MUTEX			BIT_11
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   246
#define	ADAPTER_INIT			BIT_12
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   247
#define	INIT_MAC_REGISTERED		BIT_13
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   248
#define	INIT_KSTATS			BIT_14
12073
05ba1c0d6140 6923815 Implement FMA functionality in qlge driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents: 10997
diff changeset
   249
#define	INIT_FM				BIT_15
05ba1c0d6140 6923815 Implement FMA functionality in qlge driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents: 10997
diff changeset
   250
#define	INIT_ADAPTER_UP			BIT_16
05ba1c0d6140 6923815 Implement FMA functionality in qlge driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents: 10997
diff changeset
   251
#define	INIT_ALLOC_RX_BUF		BIT_17
05ba1c0d6140 6923815 Implement FMA functionality in qlge driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents: 10997
diff changeset
   252
#define	INIT_INTR_ENABLED		BIT_18
10997
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   253
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   254
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   255
#define	LS_64BITS(x)	(uint32_t)(0xffffffff & ((uint64_t)x))
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   256
#define	MS_64BITS(x)	(uint32_t)(0xffffffff & (((uint64_t)x)>>16>>16))
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   257
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   258
typedef uint64_t dma_addr_t;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   259
extern int ql_quiesce(dev_info_t *dip);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   260
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   261
/*
12073
05ba1c0d6140 6923815 Implement FMA functionality in qlge driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents: 10997
diff changeset
   262
 * LSO can support up to 65535 bytes of data, but can not be sent in one IOCB
10997
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   263
 * which only has 8 TX OALs, additional OALs must be applied separately.
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   264
 */
12073
05ba1c0d6140 6923815 Implement FMA functionality in qlge driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents: 10997
diff changeset
   265
#define	QL_LSO_MAX		65535 /* Maximum supported LSO data Length */
10997
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   266
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   267
enum tx_mode_t {
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   268
	USE_DMA,
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   269
	USE_COPY
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   270
};
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   271
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   272
#define	QL_MAX_COPY_LENGTH	256
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   273
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   274
#define	MAX_FRAGMENTS_IN_IOCB	7
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   275
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   276
#ifndef VLAN_ID_MASK
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   277
#define	VLAN_ID_MASK		0x0fffu
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   278
#endif
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   279
#ifndef VLAN_TAGSZ
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   280
#define	VLAN_TAGSZ		4
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   281
#endif
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   282
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   283
#ifndef	ETHERTYPE_VLAN
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   284
#define	ETHERTYPE_VLAN		0x8100
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   285
#endif
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   286
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   287
#ifndef	MBLKL
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   288
#define	MBLKL(mp)	((uintptr_t)(mp)->b_wptr - (uintptr_t)(mp)->b_rptr)
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   289
#endif
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   290
/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   291
 * Checksum Offload
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   292
 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   293
#define	TCP_CKSUM_OFFSET	16
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   294
#define	UDP_CKSUM_OFFSET	6
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   295
#define	IPPROTO_IPv6OVERv4	41
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   296
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   297
/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   298
 * Driver must be in one of these states
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   299
 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   300
enum mac_state {
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   301
	QL_MAC_INIT,		/* in the initialization stage */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   302
	QL_MAC_ATTACHED,	/* driver attached */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   303
	QL_MAC_STARTED,		/* interrupt enabled, driver is ready */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   304
	QL_MAC_BRINGDOWN,	/* in the bring down process */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   305
	QL_MAC_STOPPED,		/* stoped, no more interrupts */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   306
	QL_MAC_DETACH,		/* to be detached */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   307
	QL_MAC_SUSPENDED
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   308
};
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   309
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   310
/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   311
 * Soft Request Flag
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   312
 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   313
#define	NEED_HW_RESET	BIT_0	/* need hardware reset */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   314
#define	NEED_MPI_RESET	BIT_1	/* need MPI RISC reset */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   315
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   316
/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   317
 * (Internal) return values from ioctl subroutines
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   318
 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   319
enum ioc_reply {
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   320
	IOC_INVAL = -1,			/* bad, NAK with EINVAL	*/
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   321
	IOC_DONE,			/* OK, reply sent	*/
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   322
	IOC_ACK,			/* OK, just send ACK	*/
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   323
	IOC_REPLY,			/* OK, just send reply	*/
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   324
	IOC_RESTART_ACK,		/* OK, restart & ACK	*/
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   325
	IOC_RESTART_REPLY		/* OK, restart & reply	*/
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   326
};
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   327
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   328
/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   329
 * Link Speed,in Mbps
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   330
 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   331
#define	SPEED_10		10
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   332
#define	SPEED_100		100
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   333
#define	SPEED_1000		1000
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   334
#define	SPEED_10G		10000
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   335
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   336
/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   337
 * Multicast List
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   338
 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   339
typedef struct {
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   340
	struct ether_addr	addr;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   341
	unsigned char		reserved[2];
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   342
} ql_multicast_addr;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   343
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   344
#define	MAX_MULTICAST_LIST_SIZE	128
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   345
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   346
typedef struct {
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   347
	struct ether_addr	addr;		/* in canonical form	*/
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   348
	boolean_t		set;		/* B_TRUE => valid	*/
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   349
} qlge_mac_addr_t;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   350
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   351
#define	MAX_UNICAST_LIST_SIZE	128
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   352
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   353
/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   354
 * Device kstate structure.
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   355
 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   356
enum {
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   357
	QL_KSTAT_CHIP = 0,
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   358
	QL_KSTAT_LINK,
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   359
	QL_KSTAT_REG,
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   360
	QL_KSTAT_COUNT
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   361
};
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   362
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   363
/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   364
 * Register Bit Set/Reset
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   365
 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   366
enum {
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   367
	BIT_SET = 0,
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   368
	BIT_RESET
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   369
};
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   370
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   371
/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   372
 * Flash Image Search State
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   373
 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   374
enum {	STOP_SEARCH,		/* Image address bad, no more search */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   375
	CONTINUE_SEARCH,	/* Image address ok, continue search */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   376
	LAST_IMAGE_FOUND	/* Found last image and FLTDS address */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   377
};
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   378
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   379
/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   380
 * Loop Back Modes
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   381
 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   382
enum {	QLGE_LOOP_NONE,
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   383
	QLGE_LOOP_INTERNAL_PARALLEL,
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   384
	QLGE_LOOP_INTERNAL_SERIAL,
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   385
	QLGE_LOOP_EXTERNAL_PHY
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   386
};
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   387
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   388
/* for soft state routine */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   389
typedef struct {
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   390
	offset_t	index;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   391
	char		*name;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   392
} ql_ksindex_t;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   393
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   394
struct bq_desc {
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   395
	struct		dma_info bd_dma;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   396
	struct		bq_desc *next;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   397
	struct		rx_ring *rx_ring;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   398
	mblk_t		*mp;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   399
	frtn_t		rx_recycle;	/* recycle function - called after mp */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   400
					/* is to be freed by OS */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   401
	uint16_t	index;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   402
	uint16_t	free_buf;	/* Set to indicate the buffer is */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   403
					/* being freed, new one should not */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   404
					/* be allocated */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   405
	uint32_t	upl_inuse;	/* buffer in use by upper layers */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   406
};
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   407
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   408
#define	VM_PAGE_SIZE		4096
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   409
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   410
#define	QLGE_POLL_ALL		-1
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   411
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   412
#define	SMALL_BUFFER_SIZE	512
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   413
#define	LARGE_BUFFER_SIZE	4096
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   414
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   415
#define	MAX_TX_WAIT_COUNT	1000
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   416
#define	MAX_RX_WAIT_COUNT	25	/* 25 second */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   417
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   418
#define	MIN_BUFFERS_ARM_COUNT	16
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   419
#define	MIN_BUFFERS_FREE_COUNT	32	/* If free buffer count go over this */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   420
					/* value, arm the chip */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   421
/* if less than 16 free lrg buf nodes in the free list, then */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   422
/* rx has to use copy method to send packets upstream */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   423
#define	RX_COPY_MODE_THRESHOLD	(MIN_BUFFERS_ARM_COUNT/4)
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   424
/* if there are more than TX_STOP_THRESHOLD free tx buffers, try to send it */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   425
#define	TX_STOP_THRESHOLD	16
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   426
#define	TX_RESUME_THRESHOLD	8
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   427
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   428
struct tx_ring_desc {
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   429
	struct ob_mac_iocb_req *queue_entry;	/* tx descriptor of this */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   430
	struct dma_info		dma_mem_area;	/* tx buffer */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   431
	ddi_dma_handle_t	tx_dma_handle[QL_MAX_TX_DMA_HANDLES];
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   432
	int			tx_dma_handle_used;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   433
	enum tx_mode_t		tx_type;	/* map mode or copy mode */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   434
	mblk_t			*mp;		/* requested sending packet */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   435
	uint32_t		index;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   436
	caddr_t			copy_buffer;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   437
	uint64_t		copy_buffer_dma_addr;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   438
	struct dma_info		oal_dma;	/* oal is premapped */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   439
	uint64_t		oal_dma_addr;	/* oal dma address premapped */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   440
	uint32_t		tx_bytes;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   441
	void			*oal;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   442
};
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   443
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   444
struct tx_ring {
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   445
	struct qlge		*qlge;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   446
	struct dma_info		wqicb_dma;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   447
	uint16_t		cq_id;		/* completion (rx) queue for */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   448
						/* tx completions */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   449
	uint8_t			wq_id;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   450
	uint32_t		wq_size;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   451
	uint32_t		wq_len;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   452
	kmutex_t		tx_lock;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   453
	struct dma_info		wq_dma;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   454
	volatile uint32_t	tx_free_count;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   455
	uint32_t		tx_mode;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   456
	boolean_t		queue_stopped;	/* Tx no resource */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   457
	uint32_t		*prod_idx_db_reg;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   458
	uint16_t		prod_idx;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   459
	uint32_t		*valid_db_reg;	/* PCI doorbell mem area + 4 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   460
	struct tx_ring_desc	*wq_desc;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   461
				/* shadow copy of consumer idx */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   462
	uint32_t		*cnsmr_idx_sh_reg;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   463
				/* dma-shadow copy consumer */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   464
	uint64_t		cnsmr_idx_sh_reg_dma;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   465
	uint32_t		defer;	/* tx no resource */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   466
	uint64_t		obytes;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   467
	uint64_t		opackets;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   468
	uint32_t		errxmt;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   469
	uint64_t		brdcstxmt;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   470
	uint64_t		multixmt;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   471
	uint64_t		tx_fail_dma_bind;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   472
	uint64_t		tx_no_dma_handle;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   473
	uint64_t		tx_no_dma_cookie;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   474
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   475
	enum mac_state		mac_flags;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   476
};
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   477
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   478
struct bq_element {
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   479
uint32_t addr_lo;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   480
uint32_t addr_hi;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   481
};
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   482
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   483
/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   484
 * Type of inbound queue.
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   485
 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   486
enum {
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   487
	DEFAULT_Q = 2,		/* Handles slow queue and chip/MPI events. */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   488
	TX_Q = 3,		/* Handles outbound completions. */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   489
	RX_Q = 4,		/* Handles inbound completions. */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   490
};
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   491
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   492
struct rx_ring {
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   493
	struct dma_info		cqicb_dma;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   494
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   495
	/* GLD required flags */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   496
	uint64_t		ring_gen_num;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   497
	/* statistics */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   498
	uint64_t		rx_packets;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   499
	uint64_t		rx_bytes;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   500
	uint32_t		frame_too_long;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   501
	uint32_t		frame_too_short;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   502
	uint32_t		fcs_err;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   503
	uint32_t		rx_packets_dropped_no_buffer;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   504
	uint32_t		rx_pkt_dropped_mac_unenabled;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   505
	volatile uint32_t	rx_indicate;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   506
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   507
	/* miscellaneous */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   508
	int			type; /* DEFAULT_Q, TX_Q, RX_Q */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   509
	kmutex_t		rx_lock;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   510
	uint32_t		irq;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   511
	struct qlge		*qlge;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   512
	uint32_t		cpu;	/* Which CPU this should run on. */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   513
	enum mac_state		mac_flags;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   514
	/* completion queue */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   515
	struct dma_info		cq_dma;	/* virtual addr and phy addr */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   516
	uint32_t		cq_size;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   517
	uint32_t		cq_len;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   518
	uint16_t		cq_id;
12073
05ba1c0d6140 6923815 Implement FMA functionality in qlge driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents: 10997
diff changeset
   519
	off_t			prod_idx_sh_reg_offset;
10997
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   520
	volatile uint32_t	*prod_idx_sh_reg;	/* Shadowed prod reg */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   521
	uint64_t		prod_idx_sh_reg_dma;	/* Physical address */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   522
	uint32_t		*cnsmr_idx_db_reg;	/* PCI db mem area 0 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   523
	uint32_t		cnsmr_idx;		/* current sw idx */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   524
	struct net_rsp_iocb	*curr_entry;	/* next entry on queue */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   525
	uint32_t		*valid_db_reg;	/* PCI doorbell mem area + 4 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   526
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   527
	/* large buffer queue */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   528
	uint32_t 		lbq_len;		/* entry count */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   529
	uint32_t		lbq_size;		/* size in bytes */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   530
	uint32_t		lbq_buf_size;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   531
	struct dma_info		lbq_dma;		/* lbq dma info */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   532
	uint64_t		*lbq_base_indirect;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   533
	uint64_t		lbq_base_indirect_dma;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   534
	kmutex_t 		lbq_lock;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   535
	struct bq_desc		**lbuf_in_use;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   536
	volatile uint32_t	lbuf_in_use_count;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   537
	struct bq_desc		**lbuf_free;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   538
	volatile uint32_t	lbuf_free_count;	/* free lbuf desc cnt */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   539
	uint32_t		*lbq_prod_idx_db_reg; /* PCI db mem area+0x18 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   540
	uint32_t		lbq_prod_idx;	/* current sw prod idx */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   541
	uint32_t		lbq_curr_idx;	/* next entry we expect */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   542
	uint32_t		lbq_free_tail;	/* free tail */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   543
	uint32_t		lbq_free_head;	/* free head */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   544
	uint32_t		lbq_use_tail;	/* inuse tail */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   545
	uint32_t		lbq_use_head;	/* inuse head */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   546
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   547
	struct bq_desc		*lbq_desc;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   548
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   549
	/* small buffer queue */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   550
	uint32_t		sbq_len;		/* entry count */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   551
	uint32_t		sbq_size;	/* size in bytes of queue */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   552
	uint32_t		sbq_buf_size;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   553
	struct dma_info		sbq_dma; 		/* sbq dma info */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   554
	uint64_t		*sbq_base_indirect;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   555
	uint64_t		sbq_base_indirect_dma;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   556
	kmutex_t		sbq_lock;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   557
	struct bq_desc		**sbuf_in_use;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   558
	volatile uint32_t	sbuf_in_use_count;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   559
	struct bq_desc		**sbuf_free;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   560
	volatile uint32_t	sbuf_free_count; /* free buffer desc cnt */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   561
	uint32_t		*sbq_prod_idx_db_reg; /* PCI db mem area+0x1c */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   562
	uint32_t		sbq_prod_idx;	/* current sw prod idx */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   563
	uint32_t		sbq_curr_idx;	/* next entry we expect */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   564
	uint32_t		sbq_free_tail;	/* free tail */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   565
	uint32_t		sbq_free_head;	/* free head */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   566
	uint32_t		sbq_use_tail;	/* inuse tail */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   567
	uint32_t		sbq_use_head;	/* inuse head */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   568
	struct bq_desc		*sbq_desc;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   569
	/* for test purpose */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   570
	uint32_t		rx_failed_sbq_allocs;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   571
	uint32_t		rx_failed_lbq_allocs;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   572
	uint32_t		sbuf_copy_count;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   573
	uint32_t		lbuf_copy_count;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   574
12073
05ba1c0d6140 6923815 Implement FMA functionality in qlge driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents: 10997
diff changeset
   575
#ifdef QLGE_PERFORMANCE
05ba1c0d6140 6923815 Implement FMA functionality in qlge driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents: 10997
diff changeset
   576
	uint32_t		hist[8];
05ba1c0d6140 6923815 Implement FMA functionality in qlge driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents: 10997
diff changeset
   577
#endif
10997
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   578
};
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   579
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   580
struct intr_ctx {
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   581
	struct	qlge		*qlge;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   582
	uint32_t		intr;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   583
	uint32_t		hooked;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   584
	uint32_t		intr_en_mask;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   585
	uint32_t		intr_dis_mask;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   586
	uint32_t		intr_read_mask;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   587
				/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   588
				 * It's incremented for
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   589
				 * each irq handler that is scheduled.
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   590
				 * When each handler finishes it
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   591
				 * decrements irq_cnt and enables
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   592
				 * interrupts if it's zero.
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   593
				 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   594
	uint32_t		irq_cnt;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   595
	uint_t			(*handler)(caddr_t, caddr_t);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   596
};
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   597
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   598
struct tx_buf_desc {
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   599
	uint64_t		addr;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   600
	uint32_t		len;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   601
#define	TX_DESC_LEN_MASK	0x000fffff
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   602
#define	TX_DESC_C		0x40000000
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   603
#define	TX_DESC_E		0x80000000
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   604
};
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   605
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   606
typedef struct qlge {
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   607
	/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   608
	 * Solaris adapter configuration data
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   609
	 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   610
	dev_info_t		*dip;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   611
	int			instance;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   612
	ddi_acc_handle_t	dev_handle;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   613
	caddr_t			iobase;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   614
	ddi_acc_handle_t	dev_doorbell_reg_handle;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   615
	caddr_t			doorbell_reg_iobase;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   616
	pci_cfg_t		pci_cfg;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   617
	ddi_acc_handle_t	pci_handle;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   618
	uint32_t		page_size;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   619
	uint32_t		sequence;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   620
	struct intr_ctx		intr_ctx[MAX_RX_RINGS];
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   621
	struct dma_info		ricb_dma;
12073
05ba1c0d6140 6923815 Implement FMA functionality in qlge driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents: 10997
diff changeset
   622
	/* fault management capabilities */
05ba1c0d6140 6923815 Implement FMA functionality in qlge driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents: 10997
diff changeset
   623
	int			fm_capabilities;
05ba1c0d6140 6923815 Implement FMA functionality in qlge driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents: 10997
diff changeset
   624
	boolean_t		fm_enable;
10997
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   625
	enum mac_state		mac_flags;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   626
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   627
	volatile uint32_t	cfg_flags;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   628
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   629
#define	CFG_JUMBLE_PACKET		BIT_1
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   630
#define	CFG_RX_COPY_MODE		BIT_2
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   631
#define	CFG_SUPPORT_MULTICAST		BIT_3
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   632
#define	CFG_HW_UNABLE_PSEUDO_HDR_CKSUM	BIT_4
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   633
#define	CFG_CKSUM_HEADER_IPv4		BIT_5
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   634
#define	CFG_CKSUM_PARTIAL		BIT_6
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   635
#define	CFG_CKSUM_FULL_IPv4		BIT_7
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   636
#define	CFG_CKSUM_FULL_IPv6		BIT_8
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   637
#define	CFG_LSO				BIT_9
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   638
#define	CFG_SUPPORT_SCATTER_GATHER	BIT_10
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   639
#define	CFG_ENABLE_SPLIT_HEADER		BIT_11
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   640
#define	CFG_ENABLE_EXTENDED_LOGGING	BIT_15
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   641
	uint32_t			chksum_cap;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   642
	volatile uint32_t		flags;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   643
#define	CFG_CHIP_8100			BIT_16
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   644
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   645
#define	CFG_IST(qlge, cfgflags)		(qlge->cfg_flags & cfgflags)
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   646
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   647
	/* For Shadow Registers, used by adapter to write to host memory */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   648
	struct dma_info		host_copy_shadow_dma_attr;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   649
	/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   650
	 * Extra 2x8 bytes memory saving large/small buf queue base address
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   651
	 * for each CQICB and read by chip, new request since 8100
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   652
	 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   653
	struct dma_info		buf_q_ptr_base_addr_dma_attr;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   654
	/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   655
	 * Debugging
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   656
	 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   657
	uint32_t		ql_dbgprnt;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   658
	/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   659
	 * GLD
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   660
	 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   661
	mac_handle_t		mh;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   662
	mac_resource_handle_t	handle;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   663
	ql_stats_t		stats;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   664
	kstat_t			*ql_kstats[QL_KSTAT_COUNT];
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   665
	/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   666
	 * mutex
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   667
	 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   668
	kmutex_t		gen_mutex;	/* general adapter mutex */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   669
	kmutex_t		hw_mutex;	/* common hw(nvram)access */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   670
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   671
	/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   672
	 * Generic timer
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   673
	 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   674
	timeout_id_t		ql_timer_timeout_id;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   675
	clock_t			ql_timer_ticks;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   676
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   677
	/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   678
	 * Interrupt
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   679
	 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   680
	int			intr_type;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   681
	/* for legacy interrupt */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   682
	ddi_iblock_cookie_t	iblock_cookie;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   683
	/* for MSI and Fixed interrupts */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   684
	ddi_intr_handle_t	*htable;	/* For array of interrupts */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   685
	int			intr_cnt; /* # of intrs actually allocated */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   686
	uint_t			intr_pri;	/* Interrupt priority */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   687
	int			intr_cap;	/* Interrupt capabilities */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   688
	size_t			intr_size;	/* size of the allocated  */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   689
						/* interrupt handlers */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   690
	/* Power management context. */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   691
	uint8_t			power_level;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   692
#define	LOW_POWER_LEVEL		(BIT_1 | BIT_0)
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   693
#define	MAX_POWER_LEVEL		0
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   694
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   695
	/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   696
	 * General NIC
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   697
	 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   698
	uint32_t		xgmac_sem_mask;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   699
	uint32_t		xgmac_sem_bits;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   700
	uint32_t		func_number;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   701
	uint32_t		fn0_net;	/* network function 0 port */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   702
	uint32_t		fn1_net;	/* network function 1 port */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   703
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   704
	uint32_t		mtu;
12073
05ba1c0d6140 6923815 Implement FMA functionality in qlge driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents: 10997
diff changeset
   705
	uint32_t		max_frame_size;
10997
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   706
	uint32_t		port_link_state;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   707
	uint32_t		speed;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   708
	uint16_t		link_type;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   709
	uint32_t		duplex;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   710
	uint32_t		pause;	/* flow-control mode */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   711
	uint32_t		loop_back_mode;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   712
	uint32_t		lso_enable;
12073
05ba1c0d6140 6923815 Implement FMA functionality in qlge driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents: 10997
diff changeset
   713
	uint32_t		dcbx_enable;	/* dcbx mode */
10997
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   714
	/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   715
	 * PCI status
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   716
	 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   717
	uint16_t		vendor_id;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   718
	uint16_t		device_id;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   719
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   720
	/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   721
	 * Multicast list
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   722
	 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   723
	uint32_t		multicast_list_count;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   724
	ql_multicast_addr	multicast_list[MAX_MULTICAST_LIST_SIZE];
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   725
	boolean_t		multicast_promisc;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   726
	/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   727
	 * MAC address information
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   728
	 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   729
	struct ether_addr	dev_addr; /* ethernet address read from nvram */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   730
	qlge_mac_addr_t		unicst_addr[MAX_UNICAST_LIST_SIZE];
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   731
	uint32_t		unicst_total; /* total unicst addresses */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   732
	uint32_t		unicst_avail;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   733
	/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   734
	 * Soft Interrupt handlers
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   735
	 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   736
	/* soft interrupt handle for MPI interrupt */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   737
	ddi_softint_handle_t	mpi_event_intr_hdl;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   738
	/* soft interrupt handle for asic reset */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   739
	ddi_softint_handle_t	asic_reset_intr_hdl;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   740
	/* soft interrupt handle for mpi reset */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   741
	ddi_softint_handle_t	mpi_reset_intr_hdl;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   742
	/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   743
	 * IOCTL
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   744
	 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   745
	/* new ioctl admin flags to work around the 1024 max data copy in&out */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   746
	caddr_t			ioctl_buf_ptr;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   747
	uint32_t		ioctl_buf_lenth;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   748
	uint16_t		expected_trans_times;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   749
	uint32_t		ioctl_total_length;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   750
	uint32_t		ioctl_transferred_bytes;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   751
	ql_mpi_coredump_t	ql_mpi_coredump;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   752
	/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   753
	 * Mailbox lock and flags
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   754
	 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   755
	boolean_t		fw_init_complete;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   756
	kmutex_t		mbx_mutex;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   757
	boolean_t		mbx_wait_completion;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   758
	kcondvar_t		cv_mbx_intr;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   759
	mbx_data_t 		received_mbx_cmds;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   760
	uint_t			max_read_mbx;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   761
	firmware_version_info_t		fw_version_info;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   762
	phy_firmware_version_info_t	phy_version_info;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   763
	port_cfg_info_t			port_cfg_info;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   764
	struct dma_info			ioctl_buf_dma_attr;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   765
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   766
	/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   767
	 * Flash
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   768
	 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   769
	uint32_t		flash_fltds_addr;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   770
	uint32_t		flash_flt_fdt_index;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   771
	uint32_t		flash_fdt_addr;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   772
	uint32_t		flash_fdt_size;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   773
	uint32_t		flash_flt_nic_config_table_index;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   774
	uint32_t		flash_nic_config_table_addr;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   775
	uint32_t		flash_nic_config_table_size;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   776
	uint32_t		flash_vpd_addr;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   777
	ql_flash_info_t		flash_info;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   778
	ql_fltds_t		fltds;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   779
	ql_flt_t		flt;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   780
	uint16_t		flash_len;	/* size of Flash memory */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   781
	ql_nic_config_t		nic_config;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   782
	flash_desc_t		fdesc;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   783
	/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   784
	 * TX / RX
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   785
	 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   786
	clock_t			last_tx_time;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   787
	boolean_t		rx_copy;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   788
	uint16_t		rx_coalesce_usecs;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   789
	uint16_t		rx_max_coalesced_frames;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   790
	uint16_t		tx_coalesce_usecs;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   791
	uint16_t		tx_max_coalesced_frames;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   792
	uint32_t		payload_copy_thresh;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   793
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   794
	uint32_t		xg_sem_mask;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   795
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   796
	uint32_t		ip_hdr_offset;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   797
	uint32_t		selected_tx_ring;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   798
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   799
	struct rx_ring		rx_ring[MAX_RX_RINGS];
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   800
	struct tx_ring		tx_ring[MAX_TX_RINGS];
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   801
	uint32_t		rx_polls[MAX_RX_RINGS];
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   802
	uint32_t		rx_interrupts[MAX_RX_RINGS];
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   803
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   804
	int 			tx_ring_size;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   805
	int 			rx_ring_size;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   806
	uint32_t		rx_ring_count;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   807
	uint32_t		rss_ring_count;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   808
	uint32_t		tx_ring_first_cq_id;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   809
	uint32_t		tx_ring_count;
12073
05ba1c0d6140 6923815 Implement FMA functionality in qlge driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents: 10997
diff changeset
   810
	uint32_t		isr_stride;
10997
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   811
#ifdef QLGE_TRACK_BUFFER_USAGE
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   812
	/* Count no of times the buffers fell below 32 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   813
	uint32_t		rx_sb_low_count[MAX_RX_RINGS];
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   814
	uint32_t		rx_lb_low_count[MAX_RX_RINGS];
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   815
	uint32_t		cq_low_count[MAX_RX_RINGS];
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   816
#endif
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   817
} qlge_t;
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   818
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   819
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   820
/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   821
 * Reconfiguring the network devices requires the net_config privilege
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   822
 * in Solaris 10+.
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   823
 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   824
extern int secpolicy_net_config(const cred_t *, boolean_t);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   825
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   826
/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   827
 * Global Function Prototypes in qlge_dbg.c source file.
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   828
 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   829
extern int ql_fw_dump(qlge_t *);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   830
extern uint8_t ql_get8(qlge_t *, uint32_t);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   831
extern uint16_t ql_get16(qlge_t *, uint32_t);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   832
extern uint32_t ql_get32(qlge_t *, uint32_t);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   833
extern void ql_put8(qlge_t *, uint32_t, uint8_t);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   834
extern void ql_put16(qlge_t *, uint32_t, uint16_t);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   835
extern void ql_put32(qlge_t *, uint32_t, uint32_t);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   836
extern uint32_t ql_read_reg(qlge_t *, uint32_t);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   837
extern void ql_write_reg(qlge_t *, uint32_t, uint32_t);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   838
extern void ql_dump_all_contrl_regs(qlge_t *);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   839
extern int ql_wait_reg_bit(qlge_t *, uint32_t, uint32_t, int, uint32_t);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   840
extern void ql_dump_pci_config(qlge_t *);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   841
extern void ql_dump_host_pci_regs(qlge_t *);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   842
extern void ql_dump_req_pkt(qlge_t *, struct ob_mac_iocb_req *, void *, int);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   843
extern void ql_dump_cqicb(qlge_t *, struct cqicb_t *);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   844
extern void ql_dump_wqicb(qlge_t *, struct wqicb_t *);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   845
extern void ql_gld3_init(qlge_t *, mac_register_t *);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   846
enum ioc_reply ql_chip_ioctl(qlge_t *, queue_t *, mblk_t *);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   847
enum ioc_reply ql_loop_ioctl(qlge_t *, queue_t *, mblk_t *, struct iocblk *);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   848
extern int ql_8xxx_binary_core_dump(qlge_t *, ql_mpi_coredump_t *);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   849
/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   850
 * Global Data in qlge.c source file.
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   851
 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   852
extern void qlge_delay(clock_t usecs);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   853
extern int ql_sem_spinlock(qlge_t *, uint32_t);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   854
extern void ql_sem_unlock(qlge_t *, uint32_t);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   855
extern int ql_sem_lock(qlge_t *, uint32_t, uint32_t);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   856
extern int ql_init_misc_registers(qlge_t *);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   857
extern int ql_init_mem_resources(qlge_t *);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   858
extern int ql_do_start(qlge_t *);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   859
extern int ql_do_stop(qlge_t *);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   860
extern int ql_add_to_multicast_list(qlge_t *, uint8_t *ep);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   861
extern int ql_remove_from_multicast_list(qlge_t *, uint8_t *);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   862
extern void ql_set_promiscuous(qlge_t *, int);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   863
extern void ql_get_hw_stats(qlge_t *);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   864
extern int ql_send_common(struct tx_ring *, mblk_t *);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   865
extern void ql_wake_asic_reset_soft_intr(qlge_t *);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   866
extern void ql_write_doorbell_reg(qlge_t *, uint32_t *, uint32_t);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   867
extern uint32_t ql_read_doorbell_reg(qlge_t *, uint32_t *);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   868
extern int ql_set_mac_addr_reg(qlge_t *, uint8_t *, uint32_t, uint16_t);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   869
extern int ql_read_xgmac_reg(qlge_t *, uint32_t, uint32_t *);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   870
extern void ql_enable_completion_interrupt(qlge_t *, uint32_t);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   871
extern mblk_t *ql_ring_rx_poll(void *, int);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   872
extern void ql_disable_completion_interrupt(qlge_t *qlge, uint32_t intr);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   873
extern mblk_t *ql_ring_tx(void *arg, mblk_t *mp);
12073
05ba1c0d6140 6923815 Implement FMA functionality in qlge driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents: 10997
diff changeset
   874
extern uint8_t ql_tx_hashing(qlge_t *qlge, caddr_t bp);
10997
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   875
extern void ql_atomic_set_32(volatile uint32_t *target, uint32_t newval);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   876
extern uint32_t ql_atomic_read_32(volatile uint32_t *target);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   877
extern void ql_restart_timer(qlge_t *qlge);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   878
/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   879
 * Global Function Prototypes in qlge_flash.c source file.
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   880
 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   881
extern int ql_sem_flash_lock(qlge_t *);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   882
extern void ql_sem_flash_unlock(qlge_t *);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   883
extern int qlge_load_flash(qlge_t *, uint8_t *, uint32_t, uint32_t);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   884
extern int qlge_dump_fcode(qlge_t *, uint8_t *, uint32_t, uint32_t);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   885
extern int ql_flash_vpd(qlge_t *qlge, uint8_t *buf);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   886
extern int ql_get_flash_params(qlge_t *qlge);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   887
/*
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   888
 * Global Function Prototypes in qlge_mpi.c source file.
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   889
 */
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   890
extern void ql_do_mpi_intr(qlge_t *qlge);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   891
extern int ql_reset_mpi_risc(qlge_t *);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   892
extern int ql_get_fw_state(qlge_t *, uint32_t *);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   893
extern int qlge_get_link_status(qlge_t *, struct qlnic_link_status_info *);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   894
extern int ql_mbx_test(qlge_t *qlge);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   895
extern int ql_mbx_test2(qlge_t *qlge);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   896
extern int ql_get_port_cfg(qlge_t *qlge);
12073
05ba1c0d6140 6923815 Implement FMA functionality in qlge driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents: 10997
diff changeset
   897
extern int ql_set_mpi_port_config(qlge_t *qlge, port_cfg_info_t new_cfg);
05ba1c0d6140 6923815 Implement FMA functionality in qlge driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents: 10997
diff changeset
   898
extern int ql_set_loop_back_mode(qlge_t *qlge);
05ba1c0d6140 6923815 Implement FMA functionality in qlge driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents: 10997
diff changeset
   899
extern int ql_set_pause_mode(qlge_t *qlge);
10997
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   900
extern int ql_get_LED_config(qlge_t *);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   901
extern int ql_dump_sfp(qlge_t *, void *bp, int mode);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   902
extern int ql_set_IDC_Req(qlge_t *, uint8_t dest_functions, uint8_t timeout);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   903
extern void ql_write_flash_test(qlge_t *qlge, uint32_t testAddr);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   904
extern void ql_write_flash_test2(qlge_t *qlge, uint32_t testAddr);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   905
extern int ql_get_firmware_version(qlge_t *,
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   906
    struct qlnic_mpi_version_info *);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   907
extern int ql_read_processor_data(qlge_t *, uint32_t, uint32_t *);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   908
extern int ql_write_processor_data(qlge_t *, uint32_t, uint32_t);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   909
extern int ql_read_risc_ram(qlge_t *, uint32_t, uint64_t, uint32_t);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   910
extern int ql_trigger_system_error_event(qlge_t *qlge);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   911
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   912
extern void ql_core_dump(qlge_t *);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   913
extern void ql_dump_crash_record(qlge_t *);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   914
extern void ql_dump_buf(char *, uint8_t *, uint8_t, uint32_t);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   915
extern void ql_printf(const char *, ...);
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   916
12073
05ba1c0d6140 6923815 Implement FMA functionality in qlge driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents: 10997
diff changeset
   917
/*
05ba1c0d6140 6923815 Implement FMA functionality in qlge driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents: 10997
diff changeset
   918
 * Global Function Prototypes in qlge_gld.c source file.
05ba1c0d6140 6923815 Implement FMA functionality in qlge driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents: 10997
diff changeset
   919
 */
05ba1c0d6140 6923815 Implement FMA functionality in qlge driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents: 10997
diff changeset
   920
extern int ql_unicst_set(qlge_t *qlge, const uint8_t *macaddr, int slot);
05ba1c0d6140 6923815 Implement FMA functionality in qlge driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents: 10997
diff changeset
   921
05ba1c0d6140 6923815 Implement FMA functionality in qlge driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents: 10997
diff changeset
   922
/*
05ba1c0d6140 6923815 Implement FMA functionality in qlge driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents: 10997
diff changeset
   923
 * Global Function Prototypes in qlge_fm.c source file.
05ba1c0d6140 6923815 Implement FMA functionality in qlge driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents: 10997
diff changeset
   924
 */
05ba1c0d6140 6923815 Implement FMA functionality in qlge driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents: 10997
diff changeset
   925
extern void ql_fm_ereport(qlge_t *qlge, char *detail);
05ba1c0d6140 6923815 Implement FMA functionality in qlge driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents: 10997
diff changeset
   926
extern int ql_fm_check_acc_handle(ddi_acc_handle_t handle);
05ba1c0d6140 6923815 Implement FMA functionality in qlge driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents: 10997
diff changeset
   927
extern int ql_fm_check_dma_handle(ddi_dma_handle_t handle);
05ba1c0d6140 6923815 Implement FMA functionality in qlge driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents: 10997
diff changeset
   928
05ba1c0d6140 6923815 Implement FMA functionality in qlge driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents: 10997
diff changeset
   929
10997
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   930
#ifdef __cplusplus
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   931
}
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   932
#endif
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   933
2ff33cc68aa6 PSARC/2009/525 qlge - QLogic PCIe converged NIC driver
Sukumar Swaminathan <Sukumar.Swaminathan@Sun.COM>
parents:
diff changeset
   934
#endif /* _QLGE_H */