GUI: Fix Tomato RAF theme for all builds. Compilation typo.
[tomato.git] / release / src-rt-6.x.4708 / linux / linux-2.6.36 / drivers / scsi / bfa / include / bfi / bfi_ioc.h
blob21d0b0d53bf4050d82b9446f76a0b729b781c9b7
1 /*
2 * Copyright (c) 2005-2009 Brocade Communications Systems, Inc.
3 * All rights reserved
4 * www.brocade.com
6 * Linux driver for Brocade Fibre Channel Host Bus Adapter.
8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License (GPL) Version 2 as
10 * published by the Free Software Foundation
12 * This program is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * General Public License for more details.
18 #ifndef __BFI_IOC_H__
19 #define __BFI_IOC_H__
21 #include "bfi.h"
22 #include <defs/bfa_defs_ioc.h>
24 #pragma pack(1)
26 enum bfi_ioc_h2i_msgs {
27 BFI_IOC_H2I_ENABLE_REQ = 1,
28 BFI_IOC_H2I_DISABLE_REQ = 2,
29 BFI_IOC_H2I_GETATTR_REQ = 3,
30 BFI_IOC_H2I_DBG_SYNC = 4,
31 BFI_IOC_H2I_DBG_DUMP = 5,
34 enum bfi_ioc_i2h_msgs {
35 BFI_IOC_I2H_ENABLE_REPLY = BFA_I2HM(1),
36 BFI_IOC_I2H_DISABLE_REPLY = BFA_I2HM(2),
37 BFI_IOC_I2H_GETATTR_REPLY = BFA_I2HM(3),
38 BFI_IOC_I2H_READY_EVENT = BFA_I2HM(4),
39 BFI_IOC_I2H_HBEAT = BFA_I2HM(5),
42 /**
43 * BFI_IOC_H2I_GETATTR_REQ message
45 struct bfi_ioc_getattr_req_s {
46 struct bfi_mhdr_s mh;
47 union bfi_addr_u attr_addr;
50 struct bfi_ioc_attr_s {
51 wwn_t mfg_pwwn; /* Mfg port wwn */
52 wwn_t mfg_nwwn; /* Mfg node wwn */
53 mac_t mfg_mac; /* Mfg mac */
54 u16 rsvd_a;
55 wwn_t pwwn;
56 wwn_t nwwn;
57 mac_t mac; /* PBC or Mfg mac */
58 u16 rsvd_b;
59 char brcd_serialnum[STRSZ(BFA_MFG_SERIALNUM_SIZE)];
60 u8 pcie_gen;
61 u8 pcie_lanes_orig;
62 u8 pcie_lanes;
63 u8 rx_bbcredit; /* receive buffer credits */
64 u32 adapter_prop; /* adapter properties */
65 u16 maxfrsize; /* max receive frame size */
66 char asic_rev;
67 u8 rsvd_c;
68 char fw_version[BFA_VERSION_LEN];
69 char optrom_version[BFA_VERSION_LEN];
70 struct bfa_mfg_vpd_s vpd;
71 u32 card_type; /* card type */
74 /**
75 * BFI_IOC_I2H_GETATTR_REPLY message
77 struct bfi_ioc_getattr_reply_s {
78 struct bfi_mhdr_s mh; /* Common msg header */
79 u8 status; /* cfg reply status */
80 u8 rsvd[3];
83 /**
84 * Firmware memory page offsets
86 #define BFI_IOC_SMEM_PG0_CB (0x40)
87 #define BFI_IOC_SMEM_PG0_CT (0x180)
89 /**
90 * Firmware trace offset
92 #define BFI_IOC_TRC_OFF (0x4b00)
93 #define BFI_IOC_TRC_ENTS 256
95 #define BFI_IOC_FW_SIGNATURE (0xbfadbfad)
96 #define BFI_IOC_MD5SUM_SZ 4
97 struct bfi_ioc_image_hdr_s {
98 u32 signature; /* constant signature */
99 u32 rsvd_a;
100 u32 exec; /* exec vector */
101 u32 param; /* parameters */
102 u32 rsvd_b[4];
103 u32 md5sum[BFI_IOC_MD5SUM_SZ];
107 * BFI_IOC_I2H_READY_EVENT message
109 struct bfi_ioc_rdy_event_s {
110 struct bfi_mhdr_s mh; /* common msg header */
111 u8 init_status; /* init event status */
112 u8 rsvd[3];
115 struct bfi_ioc_hbeat_s {
116 struct bfi_mhdr_s mh; /* common msg header */
117 u32 hb_count; /* current heart beat count */
121 * IOC hardware/firmware state
123 enum bfi_ioc_state {
124 BFI_IOC_UNINIT = 0, /* not initialized */
125 BFI_IOC_INITING = 1, /* h/w is being initialized */
126 BFI_IOC_HWINIT = 2, /* h/w is initialized */
127 BFI_IOC_CFG = 3, /* IOC configuration in progress */
128 BFI_IOC_OP = 4, /* IOC is operational */
129 BFI_IOC_DISABLING = 5, /* IOC is being disabled */
130 BFI_IOC_DISABLED = 6, /* IOC is disabled */
131 BFI_IOC_CFG_DISABLED = 7, /* IOC is being disabled;transient */
132 BFI_IOC_FAIL = 8, /* IOC heart-beat failure */
133 BFI_IOC_MEMTEST = 9, /* IOC is doing memtest */
136 #define BFI_IOC_ENDIAN_SIG 0x12345678
138 enum {
139 BFI_ADAPTER_TYPE_FC = 0x01, /* FC adapters */
140 BFI_ADAPTER_TYPE_MK = 0x0f0000, /* adapter type mask */
141 BFI_ADAPTER_TYPE_SH = 16, /* adapter type shift */
142 BFI_ADAPTER_NPORTS_MK = 0xff00, /* number of ports mask */
143 BFI_ADAPTER_NPORTS_SH = 8, /* number of ports shift */
144 BFI_ADAPTER_SPEED_MK = 0xff, /* adapter speed mask */
145 BFI_ADAPTER_SPEED_SH = 0, /* adapter speed shift */
146 BFI_ADAPTER_PROTO = 0x100000, /* prototype adapaters */
147 BFI_ADAPTER_TTV = 0x200000, /* TTV debug capable */
148 BFI_ADAPTER_UNSUPP = 0x400000, /* unknown adapter type */
151 #define BFI_ADAPTER_GETP(__prop, __adap_prop) \
152 (((__adap_prop) & BFI_ADAPTER_ ## __prop ## _MK) >> \
153 BFI_ADAPTER_ ## __prop ## _SH)
154 #define BFI_ADAPTER_SETP(__prop, __val) \
155 ((__val) << BFI_ADAPTER_ ## __prop ## _SH)
156 #define BFI_ADAPTER_IS_PROTO(__adap_type) \
157 ((__adap_type) & BFI_ADAPTER_PROTO)
158 #define BFI_ADAPTER_IS_TTV(__adap_type) \
159 ((__adap_type) & BFI_ADAPTER_TTV)
160 #define BFI_ADAPTER_IS_UNSUPP(__adap_type) \
161 ((__adap_type) & BFI_ADAPTER_UNSUPP)
162 #define BFI_ADAPTER_IS_SPECIAL(__adap_type) \
163 ((__adap_type) & (BFI_ADAPTER_TTV | BFI_ADAPTER_PROTO | \
164 BFI_ADAPTER_UNSUPP))
167 * BFI_IOC_H2I_ENABLE_REQ & BFI_IOC_H2I_DISABLE_REQ messages
169 struct bfi_ioc_ctrl_req_s {
170 struct bfi_mhdr_s mh;
171 u8 ioc_class;
172 u8 rsvd[3];
176 * BFI_IOC_I2H_ENABLE_REPLY & BFI_IOC_I2H_DISABLE_REPLY messages
178 struct bfi_ioc_ctrl_reply_s {
179 struct bfi_mhdr_s mh; /* Common msg header */
180 u8 status; /* enable/disable status */
181 u8 rsvd[3];
184 #define BFI_IOC_MSGSZ 8
186 * H2I Messages
188 union bfi_ioc_h2i_msg_u {
189 struct bfi_mhdr_s mh;
190 struct bfi_ioc_ctrl_req_s enable_req;
191 struct bfi_ioc_ctrl_req_s disable_req;
192 struct bfi_ioc_getattr_req_s getattr_req;
193 u32 mboxmsg[BFI_IOC_MSGSZ];
197 * I2H Messages
199 union bfi_ioc_i2h_msg_u {
200 struct bfi_mhdr_s mh;
201 struct bfi_ioc_rdy_event_s rdy_event;
202 u32 mboxmsg[BFI_IOC_MSGSZ];
205 #pragma pack()
207 #endif /* __BFI_IOC_H__ */