powerpc/mm: Unify PTE_RPN_SHIFT and _PAGE_CHG_MASK definitions
[linux-2.6] / drivers / staging / benet / fwcmd_common_bmap.h
1 /*
2  * Copyright (C) 2005 - 2008 ServerEngines
3  * All rights reserved.
4  *
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU General Public License version 2
7  * as published by the Free Software Foundation.  The full GNU General
8  * Public License is included in this distribution in the file called COPYING.
9  *
10  * Contact Information:
11  * linux-drivers@serverengines.com
12  *
13  * ServerEngines
14  * 209 N. Fair Oaks Ave
15  * Sunnyvale, CA 94085
16  */
17 /*
18  * Autogenerated by srcgen version: 0127
19  */
20 #ifndef __fwcmd_common_bmap_h__
21 #define __fwcmd_common_bmap_h__
22 #include "fwcmd_types_bmap.h"
23 #include "fwcmd_hdr_bmap.h"
24
25 #if defined(__BIG_ENDIAN)
26    /* Physical Address. */
27 struct PHYS_ADDR {
28         union {
29                 struct {
30                         u32 lo; /* DWORD 0 */
31                         u32 hi; /* DWORD 1 */
32                 } __packed;     /* unnamed struct */
33                 u32 dw[2];      /* dword union */
34         };                      /* unnamed union */
35 } __packed ;
36
37
38 #else
39    /* Physical Address. */
40 struct PHYS_ADDR {
41         union {
42                 struct {
43                         u32 lo; /* DWORD 0 */
44                         u32 hi; /* DWORD 1 */
45                 } __packed;     /* unnamed struct */
46                 u32 dw[2];      /* dword union */
47         };                      /* unnamed union */
48 } __packed ;
49
50 struct BE_LINK_STATUS {
51         u8 mac0_duplex;
52         u8 mac0_speed;
53         u8 mac1_duplex;
54         u8 mac1_speed;
55         u8 mgmt_mac_duplex;
56         u8 mgmt_mac_speed;
57         u8 active_port;
58         u8 rsvd0;
59         u8 mac0_fault;
60         u8 mac1_fault;
61         u16 rsvd1;
62 } __packed;
63 #endif
64
65 struct FWCMD_COMMON_ANON_170_REQUEST {
66         u32 rsvd0;
67 } __packed;
68
69 union LINK_STATUS_QUERY_PARAMS {
70         struct BE_LINK_STATUS response;
71         struct FWCMD_COMMON_ANON_170_REQUEST request;
72 } __packed;
73
74 /*
75  *  Queries the the link status for all ports.  The valid values below
76  *  DO NOT indicate that  a particular duplex or speed is supported by
77  *  BladeEngine. These enumerations simply  list all possible duplexes
78  *  and speeds for any port. Consult BladeEngine product  documentation
79  *  for the supported parameters.
80  */
81 struct FWCMD_COMMON_NTWK_LINK_STATUS_QUERY {
82         union FWCMD_HEADER header;
83         union LINK_STATUS_QUERY_PARAMS params;
84 } __packed;
85
86 struct FWCMD_COMMON_ANON_171_REQUEST {
87         u8 type;
88         u8 port;
89         u8 mac1;
90         u8 permanent;
91 } __packed;
92
93 struct FWCMD_COMMON_ANON_172_RESPONSE {
94         struct MAC_ADDRESS_FORMAT mac;
95 } __packed;
96
97 union NTWK_MAC_QUERY_PARAMS {
98         struct FWCMD_COMMON_ANON_171_REQUEST request;
99         struct FWCMD_COMMON_ANON_172_RESPONSE response;
100 } __packed;
101
102 /* Queries one MAC address.  */
103 struct FWCMD_COMMON_NTWK_MAC_QUERY {
104         union FWCMD_HEADER header;
105         union NTWK_MAC_QUERY_PARAMS params;
106 } __packed;
107
108 struct MAC_SET_PARAMS_IN {
109         u8 type;
110         u8 port;
111         u8 mac1;
112         u8 invalidate;
113         struct MAC_ADDRESS_FORMAT mac;
114 } __packed;
115
116 struct MAC_SET_PARAMS_OUT {
117         u32 rsvd0;
118 } __packed;
119
120 union MAC_SET_PARAMS {
121         struct MAC_SET_PARAMS_IN request;
122         struct MAC_SET_PARAMS_OUT response;
123 } __packed;
124
125 /* Sets a MAC address.  */
126 struct FWCMD_COMMON_NTWK_MAC_SET {
127         union FWCMD_HEADER header;
128         union MAC_SET_PARAMS params;
129 } __packed;
130
131 /* MAC address list. */
132 struct NTWK_MULTICAST_MAC_LIST {
133         u8 byte[6];
134 } __packed;
135
136 struct FWCMD_COMMON_NTWK_MULTICAST_SET_REQUEST_PAYLOAD {
137         u16 num_mac;
138         u8 promiscuous;
139         u8 rsvd0;
140         struct NTWK_MULTICAST_MAC_LIST mac[32];
141 } __packed;
142
143 struct FWCMD_COMMON_ANON_174_RESPONSE {
144         u32 rsvd0;
145 } __packed;
146
147 union FWCMD_COMMON_ANON_173_PARAMS {
148         struct FWCMD_COMMON_NTWK_MULTICAST_SET_REQUEST_PAYLOAD request;
149         struct FWCMD_COMMON_ANON_174_RESPONSE response;
150 } __packed;
151
152 /*
153  *  Sets multicast address hash. The MPU will merge the MAC address lists
154  *  from all clients,  including the networking and storage functions.
155  *  This command may fail if the final merged  list of MAC addresses exceeds
156  *  32 entries.
157  */
158 struct FWCMD_COMMON_NTWK_MULTICAST_SET {
159         union FWCMD_HEADER header;
160         union FWCMD_COMMON_ANON_173_PARAMS params;
161 } __packed;
162
163 struct FWCMD_COMMON_NTWK_VLAN_CONFIG_REQUEST_PAYLOAD {
164         u16 num_vlan;
165         u8 promiscuous;
166         u8 rsvd0;
167         u16 vlan_tag[32];
168 } __packed;
169
170 struct FWCMD_COMMON_ANON_176_RESPONSE {
171         u32 rsvd0;
172 } __packed;
173
174 union FWCMD_COMMON_ANON_175_PARAMS {
175         struct FWCMD_COMMON_NTWK_VLAN_CONFIG_REQUEST_PAYLOAD request;
176         struct FWCMD_COMMON_ANON_176_RESPONSE response;
177 } __packed;
178
179 /*
180  *  Sets VLAN tag filter. The MPU will merge the VLAN tag list from all
181  *  clients, including  the networking and storage functions. This command
182  *  may fail if the final vlan_tag array  (from all functions) is longer
183  *  than 32 entries.
184  */
185 struct FWCMD_COMMON_NTWK_VLAN_CONFIG {
186         union FWCMD_HEADER header;
187         union FWCMD_COMMON_ANON_175_PARAMS params;
188 } __packed;
189
190 struct RING_DESTROY_REQUEST {
191         u16 ring_type;
192         u16 id;
193         u8 bypass_flush;
194         u8 rsvd0;
195         u16 rsvd1;
196 } __packed;
197
198 struct FWCMD_COMMON_ANON_190_RESPONSE {
199         u32 rsvd0;
200 } __packed;
201
202 union FWCMD_COMMON_ANON_189_PARAMS {
203         struct RING_DESTROY_REQUEST request;
204         struct FWCMD_COMMON_ANON_190_RESPONSE response;
205 } __packed;
206 /*
207  *  Command for destroying any ring. The connection(s) using the ring should
208  *  be quiesced  before destroying the ring.
209  */
210 struct FWCMD_COMMON_RING_DESTROY {
211         union FWCMD_HEADER header;
212         union FWCMD_COMMON_ANON_189_PARAMS params;
213 } __packed;
214
215 struct FWCMD_COMMON_ANON_192_REQUEST {
216         u16 num_pages;
217         u16 rsvd0;
218         struct CQ_CONTEXT_AMAP context;
219         struct PHYS_ADDR pages[4];
220 } __packed ;
221
222 struct FWCMD_COMMON_ANON_193_RESPONSE {
223         u16 cq_id;
224 } __packed ;
225
226 union FWCMD_COMMON_ANON_191_PARAMS {
227         struct FWCMD_COMMON_ANON_192_REQUEST request;
228         struct FWCMD_COMMON_ANON_193_RESPONSE response;
229 } __packed ;
230
231 /*
232  *  Command for creating a completion queue. A Completion Queue must span
233  *  at least 1 page and  at most 4 pages. Each completion queue entry
234  *  is 16 bytes regardless of CQ entry format.  Thus the ring must be
235  *  at least 256 entries deep (corresponding to 1 page) and can be at
236  *   most 1024 entries deep (corresponding to 4 pages). The number of
237  *  pages posted must  contain the CQ ring size as encoded in the context.
238  *
239  */
240 struct FWCMD_COMMON_CQ_CREATE {
241         union FWCMD_HEADER header;
242         union FWCMD_COMMON_ANON_191_PARAMS params;
243 } __packed ;
244
245 struct FWCMD_COMMON_ANON_198_REQUEST {
246         u16 num_pages;
247         u16 rsvd0;
248         struct EQ_CONTEXT_AMAP context;
249         struct PHYS_ADDR pages[8];
250 } __packed ;
251
252 struct FWCMD_COMMON_ANON_199_RESPONSE {
253         u16 eq_id;
254 } __packed ;
255
256 union FWCMD_COMMON_ANON_197_PARAMS {
257         struct FWCMD_COMMON_ANON_198_REQUEST request;
258         struct FWCMD_COMMON_ANON_199_RESPONSE response;
259 } __packed ;
260
261 /*
262  *  Command for creating a event queue. An Event Queue must span at least
263  *  1 page and at most  8 pages. The number of pages posted must contain
264  *  the EQ ring. The ring is defined by  the size of the EQ entries (encoded
265  *  in the context) and the number of EQ entries (also  encoded in the
266  *  context).
267  */
268 struct FWCMD_COMMON_EQ_CREATE {
269         union  FWCMD_HEADER header;
270         union FWCMD_COMMON_ANON_197_PARAMS params;
271 } __packed ;
272
273 struct FWCMD_COMMON_ANON_201_REQUEST {
274         u16 cq_id;
275         u16 bcmc_cq_id;
276         u16 num_pages;
277         u16 rsvd0;
278         struct PHYS_ADDR pages[2];
279 } __packed;
280
281 struct FWCMD_COMMON_ANON_202_RESPONSE {
282         u16 id;
283 } __packed;
284
285 union FWCMD_COMMON_ANON_200_PARAMS {
286         struct FWCMD_COMMON_ANON_201_REQUEST request;
287         struct FWCMD_COMMON_ANON_202_RESPONSE response;
288 } __packed;
289
290 /*
291  *  Command for creating Ethernet receive ring.  An ERX ring contains ETH_RX_D
292  *  entries (8  bytes each). An ERX ring must be 1024 entries deep
293  *  (corresponding to 2 pages).
294  */
295 struct FWCMD_COMMON_ETH_RX_CREATE {
296         union FWCMD_HEADER header;
297         union FWCMD_COMMON_ANON_200_PARAMS params;
298 } __packed;
299
300 struct FWCMD_COMMON_ANON_204_REQUEST {
301         u16 num_pages;
302         u8 ulp_num;
303         u8 type;
304         struct ETX_CONTEXT_AMAP context;
305         struct PHYS_ADDR pages[8];
306 } __packed ;
307
308 struct FWCMD_COMMON_ANON_205_RESPONSE {
309         u16 cid;
310         u8 ulp_num;
311         u8 rsvd0;
312 } __packed ;
313
314 union FWCMD_COMMON_ANON_203_PARAMS {
315         struct FWCMD_COMMON_ANON_204_REQUEST request;
316         struct FWCMD_COMMON_ANON_205_RESPONSE response;
317 } __packed ;
318
319 /*
320  *  Command for creating an Ethernet transmit ring.  An ETX ring contains
321  *  ETH_WRB entries (16  bytes each). An ETX ring must be at least 256
322  *  entries deep (corresponding to 1 page)  and at most 2k entries deep
323  *  (corresponding to 8 pages).
324  */
325 struct FWCMD_COMMON_ETH_TX_CREATE {
326         union FWCMD_HEADER header;
327         union FWCMD_COMMON_ANON_203_PARAMS params;
328 } __packed ;
329
330 struct FWCMD_COMMON_ANON_222_REQUEST {
331         u16 num_pages;
332         u16 rsvd0;
333         struct MCC_RING_CONTEXT_AMAP context;
334         struct PHYS_ADDR pages[8];
335 } __packed ;
336
337 struct FWCMD_COMMON_ANON_223_RESPONSE {
338         u16 id;
339 } __packed ;
340
341 union FWCMD_COMMON_ANON_221_PARAMS {
342         struct FWCMD_COMMON_ANON_222_REQUEST request;
343         struct FWCMD_COMMON_ANON_223_RESPONSE response;
344 } __packed ;
345
346 /*
347  *  Command for creating the MCC ring. An MCC ring must be at least 16
348  *  entries deep  (corresponding to 1 page) and at most 128 entries deep
349  *  (corresponding to 8 pages).
350  */
351 struct FWCMD_COMMON_MCC_CREATE {
352         union FWCMD_HEADER header;
353         union FWCMD_COMMON_ANON_221_PARAMS params;
354 } __packed ;
355
356 struct GET_QOS_IN {
357         u32 qos_params_rsvd;
358 } __packed;
359
360 struct GET_QOS_OUT {
361         u32 max_bits_per_second_NIC;
362         u32 max_packets_per_second_NIC;
363         u32 max_ios_per_second_iSCSI;
364         u32 max_bytes_per_second_iSCSI;
365         u16 domain_VLAN_tag;
366         u16 fabric_domain_ID;
367         u32 qos_params_oem[4];
368 } __packed;
369
370 union GET_QOS_PARAMS {
371         struct GET_QOS_IN request;
372         struct GET_QOS_OUT response;
373 } __packed;
374
375 /* QOS/Bandwidth settings per domain. Applicable only in VMs.  */
376 struct FWCMD_COMMON_GET_QOS {
377         union FWCMD_HEADER header;
378         union GET_QOS_PARAMS params;
379 } __packed;
380
381 struct SET_QOS_IN {
382         u32 valid_flags;
383         u32 max_bits_per_second_NIC;
384         u32 max_packets_per_second_NIC;
385         u32 max_ios_per_second_iSCSI;
386         u32 max_bytes_per_second_iSCSI;
387         u16 domain_VLAN_tag;
388         u16 fabric_domain_ID;
389         u32 qos_params_oem[4];
390 } __packed;
391
392 struct SET_QOS_OUT {
393         u32 qos_params_rsvd;
394 } __packed;
395
396 union SET_QOS_PARAMS {
397         struct SET_QOS_IN request;
398         struct SET_QOS_OUT response;
399 } __packed;
400
401 /* QOS/Bandwidth settings per domain. Applicable only in VMs.  */
402 struct FWCMD_COMMON_SET_QOS {
403         union FWCMD_HEADER header;
404         union SET_QOS_PARAMS params;
405 } __packed;
406
407 struct SET_FRAME_SIZE_IN {
408         u32 max_tx_frame_size;
409         u32 max_rx_frame_size;
410 } __packed;
411
412 struct SET_FRAME_SIZE_OUT {
413         u32 chip_max_tx_frame_size;
414         u32 chip_max_rx_frame_size;
415 } __packed;
416
417 union SET_FRAME_SIZE_PARAMS {
418         struct SET_FRAME_SIZE_IN request;
419         struct SET_FRAME_SIZE_OUT response;
420 } __packed;
421
422 /* Set frame size command. Only host domain may issue this command.  */
423 struct FWCMD_COMMON_SET_FRAME_SIZE {
424         union FWCMD_HEADER header;
425         union SET_FRAME_SIZE_PARAMS params;
426 } __packed;
427
428 struct FORCE_FAILOVER_IN {
429         u32 move_to_port;
430         u32 failover_config;
431 } __packed;
432
433 struct FWCMD_COMMON_ANON_231_RESPONSE {
434         u32 rsvd0;
435 } __packed;
436
437 union FWCMD_COMMON_ANON_230_PARAMS {
438         struct FORCE_FAILOVER_IN request;
439         struct FWCMD_COMMON_ANON_231_RESPONSE response;
440 } __packed;
441
442 /*
443  *  Use this command to control failover in BladeEngine. It may be used
444  *  to failback to a  restored port or to forcibly move traffic from
445  *  one port to another. It may also be used  to enable or disable the
446  *  automatic failover feature. This command can only be issued by  domain
447  *  0.
448  */
449 struct FWCMD_COMMON_FORCE_FAILOVER {
450         union FWCMD_HEADER header;
451         union FWCMD_COMMON_ANON_230_PARAMS params;
452 } __packed;
453
454 struct FWCMD_COMMON_ANON_240_REQUEST {
455         u64 context;
456 } __packed;
457
458 struct FWCMD_COMMON_ANON_241_RESPONSE {
459         u64 context;
460 } __packed;
461
462 union FWCMD_COMMON_ANON_239_PARAMS {
463         struct FWCMD_COMMON_ANON_240_REQUEST request;
464         struct FWCMD_COMMON_ANON_241_RESPONSE response;
465 } __packed;
466
467 /*
468  *  This command can be used by clients as a no-operation request. Typical
469  *  uses for drivers  are as a heartbeat mechanism, or deferred processing
470  *  catalyst. The ARM will always  complete this command with a good completion.
471  *  The 64-bit parameter is not touched by the  ARM processor.
472  */
473 struct FWCMD_COMMON_NOP {
474         union FWCMD_HEADER header;
475         union FWCMD_COMMON_ANON_239_PARAMS params;
476 } __packed;
477
478 struct NTWK_RX_FILTER_SETTINGS {
479         u8 promiscuous;
480         u8 ip_cksum;
481         u8 tcp_cksum;
482         u8 udp_cksum;
483         u8 pass_err;
484         u8 pass_ckerr;
485         u8 strip_crc;
486         u8 mcast_en;
487         u8 bcast_en;
488         u8 mcast_promiscuous_en;
489         u8 unicast_en;
490         u8 vlan_promiscuous;
491 } __packed;
492
493 union FWCMD_COMMON_ANON_242_PARAMS {
494         struct NTWK_RX_FILTER_SETTINGS request;
495         struct NTWK_RX_FILTER_SETTINGS response;
496 } __packed;
497
498 /*
499  *  This command is used to modify the ethernet receive filter configuration.
500  *  Only domain 0  network function drivers may issue this command. The
501  *  applied configuration is returned in  the response payload. Note:
502  *  Some receive packet filter settings are global on  BladeEngine and
503  *  can affect both the storage and network function clients that the
504  *   BladeEngine hardware and firmware serve. Additionaly, depending
505  *  on the revision of  BladeEngine, some ethernet receive filter settings
506  *  are dependent on others. If a  dependency exists between settings
507  *  for the BladeEngine revision, and the command request  settings do
508  *  not meet the dependency requirement, the invalid settings will not
509  *  be  applied despite the comand succeeding. For example: a driver may
510  *  request to enable  broadcast packets, but not enable multicast packets.
511  *  On early revisions of BladeEngine,  there may be no distinction between
512  *  broadcast and multicast filters, so broadcast could  not be enabled
513  *  without enabling multicast. In this scenario, the comand would still
514  *   succeed, but the response payload would indicate the previously
515  *  configured broadcast  and multicast setting.
516  */
517 struct FWCMD_COMMON_NTWK_RX_FILTER {
518         union FWCMD_HEADER header;
519         union FWCMD_COMMON_ANON_242_PARAMS params;
520 } __packed;
521
522
523 struct FWCMD_COMMON_ANON_244_REQUEST {
524         u32 rsvd0;
525 } __packed;
526
527 struct FWCMD_COMMON_GET_FW_VERSION_RESPONSE_PAYLOAD {
528         u8 firmware_version_string[32];
529         u8 fw_on_flash_version_string[32];
530 } __packed;
531
532 union FWCMD_COMMON_ANON_243_PARAMS {
533         struct FWCMD_COMMON_ANON_244_REQUEST request;
534         struct FWCMD_COMMON_GET_FW_VERSION_RESPONSE_PAYLOAD response;
535 } __packed;
536
537 /* This comand retrieves the firmware version.  */
538 struct FWCMD_COMMON_GET_FW_VERSION {
539         union FWCMD_HEADER header;
540         union FWCMD_COMMON_ANON_243_PARAMS params;
541 } __packed;
542
543 struct FWCMD_COMMON_ANON_246_REQUEST {
544         u16 tx_flow_control;
545         u16 rx_flow_control;
546 } __packed;
547
548 struct FWCMD_COMMON_ANON_247_RESPONSE {
549         u32 rsvd0;
550 } __packed;
551
552 union FWCMD_COMMON_ANON_245_PARAMS {
553         struct FWCMD_COMMON_ANON_246_REQUEST request;
554         struct FWCMD_COMMON_ANON_247_RESPONSE response;
555 } __packed;
556
557 /*
558  *  This comand is used to program BladeEngine flow control behavior.
559  *  Only the host  networking driver is allowed to use this comand.
560  */
561 struct FWCMD_COMMON_SET_FLOW_CONTROL {
562         union FWCMD_HEADER header;
563         union FWCMD_COMMON_ANON_245_PARAMS params;
564 } __packed;
565
566 struct FWCMD_COMMON_ANON_249_REQUEST {
567         u32 rsvd0;
568 } __packed;
569
570 struct FWCMD_COMMON_ANON_250_RESPONSE {
571         u16 tx_flow_control;
572         u16 rx_flow_control;
573 } __packed;
574
575 union FWCMD_COMMON_ANON_248_PARAMS {
576         struct FWCMD_COMMON_ANON_249_REQUEST request;
577         struct FWCMD_COMMON_ANON_250_RESPONSE response;
578 } __packed;
579
580 /* This comand is used to read BladeEngine flow control settings.  */
581 struct FWCMD_COMMON_GET_FLOW_CONTROL {
582         union FWCMD_HEADER header;
583         union FWCMD_COMMON_ANON_248_PARAMS params;
584 } __packed;
585
586 struct EQ_DELAY_PARAMS {
587         u32 eq_id;
588         u32 delay_in_microseconds;
589 } __packed;
590
591 struct FWCMD_COMMON_ANON_257_REQUEST {
592         u32 num_eq;
593         u32 rsvd0;
594         struct EQ_DELAY_PARAMS delay[16];
595 } __packed;
596
597 struct FWCMD_COMMON_ANON_258_RESPONSE {
598         u32 delay_resolution_in_microseconds;
599         u32 delay_max_in_microseconds;
600 } __packed;
601
602 union MODIFY_EQ_DELAY_PARAMS {
603         struct FWCMD_COMMON_ANON_257_REQUEST request;
604         struct FWCMD_COMMON_ANON_258_RESPONSE response;
605 } __packed;
606
607 /* This comand changes the EQ delay for a given set of EQs.  */
608 struct FWCMD_COMMON_MODIFY_EQ_DELAY {
609         union FWCMD_HEADER header;
610         union MODIFY_EQ_DELAY_PARAMS params;
611 } __packed;
612
613 struct FWCMD_COMMON_ANON_260_REQUEST {
614         u32 rsvd0;
615 } __packed;
616
617 struct BE_FIRMWARE_CONFIG {
618         u16 be_config_number;
619         u16 asic_revision;
620         u32 nic_ulp_mask;
621         u32 tulp_mask;
622         u32 iscsi_ulp_mask;
623         u32 rdma_ulp_mask;
624         u32 rsvd0[4];
625         u32 eth_tx_id_start;
626         u32 eth_tx_id_count;
627         u32 eth_rx_id_start;
628         u32 eth_rx_id_count;
629         u32 tpm_wrbq_id_start;
630         u32 tpm_wrbq_id_count;
631         u32 tpm_defq_id_start;
632         u32 tpm_defq_id_count;
633         u32 iscsi_wrbq_id_start;
634         u32 iscsi_wrbq_id_count;
635         u32 iscsi_defq_id_start;
636         u32 iscsi_defq_id_count;
637         u32 rdma_qp_id_start;
638         u32 rdma_qp_id_count;
639         u32 rsvd1[8];
640 } __packed;
641
642 union FWCMD_COMMON_ANON_259_PARAMS {
643         struct FWCMD_COMMON_ANON_260_REQUEST request;
644         struct BE_FIRMWARE_CONFIG response;
645 } __packed;
646
647 /*
648  *  This comand queries the current firmware configuration parameters.
649  *   The static  configuration type is defined by be_config_number. This
650  *  differentiates different  BladeEngine builds, such as iSCSI Initiator
651  *  versus iSCSI Target.  For a given static  configuration, the Upper
652  *  Layer Protocol (ULP) processors may be reconfigured to support  different
653  *  protocols. Each ULP processor supports one or more protocols. The
654  *  masks  indicate which processors are configured for each protocol.
655  *   For a given static  configuration, the number of TCP connections
656  *  supported for each protocol may vary. The  *_id_start and *_id_count
657  *  variables define a linear range of IDs that are available for  each
658  *  supported protocol. The *_id_count may be used by the driver to allocate
659  *  the  appropriate number of connection resources. The *_id_start may
660  *  be used to map the  arbitrary range of IDs to a zero-based range
661  *  of indices.
662  */
663 struct FWCMD_COMMON_FIRMWARE_CONFIG {
664         union FWCMD_HEADER header;
665         union FWCMD_COMMON_ANON_259_PARAMS params;
666 } __packed;
667
668 struct FWCMD_COMMON_PORT_EQUALIZATION_PARAMS {
669         u32 emph_lev_sel_port0;
670         u32 emph_lev_sel_port1;
671         u8 xaui_vo_sel;
672         u8 xaui_state;
673         u16 rsvd0;
674         u32 xaui_eq_vector;
675 } __packed;
676
677 struct FWCMD_COMMON_ANON_262_REQUEST {
678         u32 rsvd0;
679 } __packed;
680
681 union FWCMD_COMMON_ANON_261_PARAMS {
682         struct FWCMD_COMMON_ANON_262_REQUEST request;
683         struct FWCMD_COMMON_PORT_EQUALIZATION_PARAMS response;
684 } __packed;
685
686 /*
687  *  This comand can be used to read XAUI equalization parameters. The
688  *  ARM firmware applies  default equalization parameters during initialization.
689  *  These parameters may be  customer-specific when derived from the
690  *  SEEPROM. See SEEPROM_DATA for equalization  specific fields.
691  */
692 struct FWCMD_COMMON_GET_PORT_EQUALIZATION {
693         union FWCMD_HEADER header;
694         union FWCMD_COMMON_ANON_261_PARAMS params;
695 } __packed;
696
697 struct FWCMD_COMMON_ANON_264_RESPONSE {
698         u32 rsvd0;
699 } __packed;
700
701 union FWCMD_COMMON_ANON_263_PARAMS {
702         struct FWCMD_COMMON_PORT_EQUALIZATION_PARAMS request;
703         struct FWCMD_COMMON_ANON_264_RESPONSE response;
704 } __packed;
705
706 /*
707  *  This comand can be used to set XAUI equalization parameters. The ARM
708  *  firmware applies  default equalization parameters during initialization.
709  *  These parameters may be  customer-specific when derived from the
710  *  SEEPROM. See SEEPROM_DATA for equalization  specific fields.
711  */
712 struct FWCMD_COMMON_SET_PORT_EQUALIZATION {
713         union FWCMD_HEADER header;
714         union FWCMD_COMMON_ANON_263_PARAMS params;
715 } __packed;
716
717 #endif /* __fwcmd_common_bmap_h__ */