188
188
#define OPCODE_COMMON_GET_BEACON_STATE 70
189
189
#define OPCODE_COMMON_READ_TRANSRECV_DATA 73
190
190
#define OPCODE_COMMON_GET_PORT_NAME 77
191
#define OPCODE_COMMON_SET_INTERRUPT_ENABLE 89
191
192
#define OPCODE_COMMON_GET_PHY_DETAILS 102
192
193
#define OPCODE_COMMON_SET_DRIVER_FUNCTION_CAP 103
193
194
#define OPCODE_COMMON_GET_CNTL_ADDITIONAL_ATTRIBUTES 121
203
204
#define OPCODE_COMMON_GET_FN_PRIVILEGES 170
204
205
#define OPCODE_COMMON_READ_OBJECT 171
205
206
#define OPCODE_COMMON_WRITE_OBJECT 172
207
#define OPCODE_COMMON_GET_IFACE_LIST 194
206
208
#define OPCODE_COMMON_ENABLE_DISABLE_VF 196
208
210
#define OPCODE_ETH_RSS_CONFIG 1
366
368
u8 rsvd5[32]; /* dword 3*/
369
struct amap_cq_context_lancer {
371
struct amap_cq_context_v2 {
370
372
u8 rsvd0[12]; /* dword 0*/
371
373
u8 coalescwm[2]; /* dword 0*/
372
374
u8 nodelay; /* dword 0*/
472
474
#define BE_ETH_TX_RING_TYPE_STANDARD 2
473
475
#define BE_ULP1_NUM 1
475
/* Pseudo amap definition in which each bit of the actual structure is defined
476
* as a byte: used to calculate offset/shift/mask of each field */
477
struct amap_tx_context {
478
u8 if_id[16]; /* dword 0 */
479
u8 tx_ring_size[4]; /* dword 0 */
480
u8 rsvd1[26]; /* dword 0 */
481
u8 pci_func_id[8]; /* dword 1 */
482
u8 rsvd2[9]; /* dword 1 */
483
u8 ctx_valid; /* dword 1 */
484
u8 cq_id_send[16]; /* dword 2 */
485
u8 rsvd3[16]; /* dword 2 */
486
u8 rsvd4[32]; /* dword 3 */
487
u8 rsvd5[32]; /* dword 4 */
488
u8 rsvd6[32]; /* dword 5 */
489
u8 rsvd7[32]; /* dword 6 */
490
u8 rsvd8[32]; /* dword 7 */
491
u8 rsvd9[32]; /* dword 8 */
492
u8 rsvd10[32]; /* dword 9 */
493
u8 rsvd11[32]; /* dword 10 */
494
u8 rsvd12[32]; /* dword 11 */
495
u8 rsvd13[32]; /* dword 12 */
496
u8 rsvd14[32]; /* dword 13 */
497
u8 rsvd15[32]; /* dword 14 */
498
u8 rsvd16[32]; /* dword 15 */
501
477
struct be_cmd_req_eth_tx_create {
502
478
struct be_cmd_req_hdr hdr;
507
u8 context[sizeof(struct amap_tx_context) / 8];
508
489
struct phys_addr pages[8];
511
492
struct be_cmd_resp_eth_tx_create {
512
493
struct be_cmd_resp_hdr hdr;
517
500
/******************** Create RxQ ***************************/
607
590
u32 rx_in_range_errors; /* dword 10*/
608
591
u32 rx_out_range_errors; /* dword 11*/
609
592
u32 rx_frame_too_long; /* dword 12*/
610
u32 rx_address_mismatch_drops; /* dword 13*/
611
u32 rx_vlan_mismatch_drops; /* dword 14*/
593
u32 rx_address_filtered; /* dword 13*/
594
u32 rx_vlan_filtered; /* dword 14*/
612
595
u32 rx_dropped_too_small; /* dword 15*/
613
596
u32 rx_dropped_too_short; /* dword 16*/
614
597
u32 rx_dropped_header_too_small; /* dword 17*/
814
797
u32 rx_control_frames_unknown_opcode_hi;
815
798
u32 rx_in_range_errors;
816
799
u32 rx_out_of_range_errors;
817
u32 rx_address_mismatch_drops;
818
u32 rx_vlan_mismatch_drops;
800
u32 rx_address_filtered;
801
u32 rx_vlan_filtered;
819
802
u32 rx_dropped_too_small;
820
803
u32 rx_dropped_too_short;
821
804
u32 rx_dropped_header_too_small;
1108
1090
#define RSS_ENABLE_UDP_IPV4 0x10
1109
1091
#define RSS_ENABLE_UDP_IPV6 0x20
1093
#define L3_RSS_FLAGS (RXH_IP_DST | RXH_IP_SRC)
1094
#define L4_RSS_FLAGS (RXH_L4_B_0_1 | RXH_L4_B_2_3)
1111
1096
struct be_cmd_req_rss_config {
1112
1097
struct be_cmd_req_hdr hdr;
1705
1690
struct be_fat_conf_params set_params;
1708
#define RESOURCE_DESC_SIZE 72
1709
#define NIC_RESOURCE_DESC_TYPE_ID 0x41
1693
#define RESOURCE_DESC_SIZE 88
1694
#define NIC_RESOURCE_DESC_TYPE_V0 0x41
1695
#define NIC_RESOURCE_DESC_TYPE_V1 0x51
1710
1696
#define MAX_RESOURCE_DESC 4
1697
#define MAX_RESOURCE_DESC_V1 32
1712
1699
/* QOS unit number */
1773
1760
u8 func_param[MAX_RESOURCE_DESC * RESOURCE_DESC_SIZE];
1763
struct be_cmd_resp_get_profile_config_v1 {
1764
struct be_cmd_req_hdr hdr;
1766
u8 func_param[MAX_RESOURCE_DESC_V1 * RESOURCE_DESC_SIZE];
1776
1769
struct be_cmd_req_set_profile_config {
1777
1770
struct be_cmd_req_hdr hdr;
1786
struct be_cmd_req_intr_set {
1787
struct be_cmd_req_hdr hdr;
1793
1792
static inline bool check_privilege(struct be_adapter *adapter, u32 flags)
1795
1794
return flags & adapter->cmd_privileges ? true : false;
1797
/************** Get IFACE LIST *******************/
1804
struct be_cmd_req_get_iface_list {
1805
struct be_cmd_req_hdr hdr;
1808
struct be_cmd_resp_get_iface_list {
1809
struct be_cmd_req_hdr hdr;
1811
struct be_if_desc if_desc;
1798
1814
extern int be_pci_fnum_get(struct be_adapter *adapter);
1799
1815
extern int be_fw_wait_ready(struct be_adapter *adapter);
1800
1816
extern int be_cmd_mac_addr_query(struct be_adapter *adapter, u8 *mac_addr,
1816
1832
struct be_queue_info *mccq,
1817
1833
struct be_queue_info *cq);
1818
1834
extern int be_cmd_txq_create(struct be_adapter *adapter,
1819
struct be_queue_info *txq,
1820
struct be_queue_info *cq);
1835
struct be_tx_obj *txo);
1821
1836
extern int be_cmd_rxq_create(struct be_adapter *adapter,
1822
1837
struct be_queue_info *rxq, u16 cq_id,
1823
1838
u16 frag_size, u32 if_id, u32 rss, u8 *rss_id);
1844
1859
u32 tx_fc, u32 rx_fc);
1845
1860
extern int be_cmd_get_flow_control(struct be_adapter *adapter,
1846
1861
u32 *tx_fc, u32 *rx_fc);
1847
extern int be_cmd_query_fw_cfg(struct be_adapter *adapter,
1848
u32 *port_num, u32 *function_mode, u32 *function_caps);
1862
extern int be_cmd_query_fw_cfg(struct be_adapter *adapter, u32 *port_num,
1863
u32 *function_mode, u32 *function_caps, u16 *asic_rev);
1849
1864
extern int be_cmd_reset_function(struct be_adapter *adapter);
1850
1865
extern int be_cmd_rss_config(struct be_adapter *adapter, u8 *rsstable,
1866
u32 rss_hash_opts, u16 table_size);
1852
1867
extern int be_process_mcc(struct be_adapter *adapter);
1853
1868
extern int be_cmd_set_beacon_state(struct be_adapter *adapter,
1854
1869
u8 port_num, u8 beacon, u8 status, u8 state);
1913
1928
extern int be_cmd_query_port_name(struct be_adapter *adapter, u8 *port_name);
1914
1929
extern int be_cmd_get_func_config(struct be_adapter *adapter);
1915
1930
extern int be_cmd_get_profile_config(struct be_adapter *adapter, u32 *cap_flags,
1931
u16 *txq_count, u8 domain);
1918
1933
extern int be_cmd_set_profile_config(struct be_adapter *adapter, u32 bps,
1935
extern int be_cmd_get_if_id(struct be_adapter *adapter,
1936
struct be_vf_cfg *vf_cfg, int vf_num);
1920
1937
extern int be_cmd_enable_vf(struct be_adapter *adapter, u8 domain);
1938
extern int be_cmd_intr_set(struct be_adapter *adapter, bool intr_enable);