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-- |
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 */ |