.. | .. |
---|
1 | | -// SPDX-License-Identifier: GPL-2.0+ |
---|
| 1 | +/* SPDX-License-Identifier: GPL-2.0+ */ |
---|
2 | 2 | // Copyright (c) 2016-2017 Hisilicon Limited. |
---|
3 | 3 | |
---|
4 | 4 | #ifndef __HCLGE_CMD_H |
---|
5 | 5 | #define __HCLGE_CMD_H |
---|
6 | 6 | #include <linux/types.h> |
---|
7 | 7 | #include <linux/io.h> |
---|
| 8 | +#include <linux/etherdevice.h> |
---|
| 9 | +#include "hnae3.h" |
---|
8 | 10 | |
---|
9 | 11 | #define HCLGE_CMDQ_TX_TIMEOUT 30000 |
---|
| 12 | +#define HCLGE_CMDQ_CLEAR_WAIT_TIME 200 |
---|
| 13 | +#define HCLGE_DESC_DATA_LEN 6 |
---|
10 | 14 | |
---|
11 | 15 | struct hclge_dev; |
---|
12 | 16 | struct hclge_desc { |
---|
.. | .. |
---|
18 | 22 | __le16 flag; |
---|
19 | 23 | __le16 retval; |
---|
20 | 24 | __le16 rsv; |
---|
21 | | - __le32 data[6]; |
---|
| 25 | + __le32 data[HCLGE_DESC_DATA_LEN]; |
---|
22 | 26 | }; |
---|
23 | 27 | |
---|
24 | 28 | struct hclge_cmq_ring { |
---|
.. | .. |
---|
41 | 45 | HCLGE_CMD_NO_AUTH = 1, |
---|
42 | 46 | HCLGE_CMD_NOT_SUPPORTED = 2, |
---|
43 | 47 | HCLGE_CMD_QUEUE_FULL = 3, |
---|
| 48 | + HCLGE_CMD_NEXT_ERR = 4, |
---|
| 49 | + HCLGE_CMD_UNEXE_ERR = 5, |
---|
| 50 | + HCLGE_CMD_PARA_ERR = 6, |
---|
| 51 | + HCLGE_CMD_RESULT_ERR = 7, |
---|
| 52 | + HCLGE_CMD_TIMEOUT = 8, |
---|
| 53 | + HCLGE_CMD_HILINK_ERR = 9, |
---|
| 54 | + HCLGE_CMD_QUEUE_ILLEGAL = 10, |
---|
| 55 | + HCLGE_CMD_INVALID = 11, |
---|
44 | 56 | }; |
---|
45 | 57 | |
---|
46 | 58 | enum hclge_cmd_status { |
---|
.. | .. |
---|
53 | 65 | struct hclge_misc_vector { |
---|
54 | 66 | u8 __iomem *addr; |
---|
55 | 67 | int vector_irq; |
---|
| 68 | + char name[HNAE3_INT_NAME_LEN]; |
---|
56 | 69 | }; |
---|
57 | 70 | |
---|
58 | 71 | struct hclge_cmq { |
---|
.. | .. |
---|
78 | 91 | HCLGE_OPC_QUERY_PF_RSRC = 0x0023, |
---|
79 | 92 | HCLGE_OPC_QUERY_VF_RSRC = 0x0024, |
---|
80 | 93 | HCLGE_OPC_GET_CFG_PARAM = 0x0025, |
---|
| 94 | + HCLGE_OPC_PF_RST_DONE = 0x0026, |
---|
| 95 | + HCLGE_OPC_QUERY_VF_RST_RDY = 0x0027, |
---|
81 | 96 | |
---|
82 | 97 | HCLGE_OPC_STATS_64_BIT = 0x0030, |
---|
83 | 98 | HCLGE_OPC_STATS_32_BIT = 0x0031, |
---|
84 | 99 | HCLGE_OPC_STATS_MAC = 0x0032, |
---|
| 100 | + HCLGE_OPC_QUERY_MAC_REG_NUM = 0x0033, |
---|
| 101 | + HCLGE_OPC_STATS_MAC_ALL = 0x0034, |
---|
85 | 102 | |
---|
86 | 103 | HCLGE_OPC_QUERY_REG_NUM = 0x0040, |
---|
87 | 104 | HCLGE_OPC_QUERY_32_BIT_REG = 0x0041, |
---|
88 | 105 | HCLGE_OPC_QUERY_64_BIT_REG = 0x0042, |
---|
| 106 | + HCLGE_OPC_DFX_BD_NUM = 0x0043, |
---|
| 107 | + HCLGE_OPC_DFX_BIOS_COMMON_REG = 0x0044, |
---|
| 108 | + HCLGE_OPC_DFX_SSU_REG_0 = 0x0045, |
---|
| 109 | + HCLGE_OPC_DFX_SSU_REG_1 = 0x0046, |
---|
| 110 | + HCLGE_OPC_DFX_IGU_EGU_REG = 0x0047, |
---|
| 111 | + HCLGE_OPC_DFX_RPU_REG_0 = 0x0048, |
---|
| 112 | + HCLGE_OPC_DFX_RPU_REG_1 = 0x0049, |
---|
| 113 | + HCLGE_OPC_DFX_NCSI_REG = 0x004A, |
---|
| 114 | + HCLGE_OPC_DFX_RTC_REG = 0x004B, |
---|
| 115 | + HCLGE_OPC_DFX_PPP_REG = 0x004C, |
---|
| 116 | + HCLGE_OPC_DFX_RCB_REG = 0x004D, |
---|
| 117 | + HCLGE_OPC_DFX_TQP_REG = 0x004E, |
---|
| 118 | + HCLGE_OPC_DFX_SSU_REG_2 = 0x004F, |
---|
| 119 | + |
---|
| 120 | + HCLGE_OPC_QUERY_DEV_SPECS = 0x0050, |
---|
89 | 121 | |
---|
90 | 122 | /* MAC command */ |
---|
91 | 123 | HCLGE_OPC_CONFIG_MAC_MODE = 0x0301, |
---|
92 | 124 | HCLGE_OPC_CONFIG_AN_MODE = 0x0304, |
---|
93 | | - HCLGE_OPC_QUERY_AN_RESULT = 0x0306, |
---|
94 | 125 | HCLGE_OPC_QUERY_LINK_STATUS = 0x0307, |
---|
95 | 126 | HCLGE_OPC_CONFIG_MAX_FRM_SIZE = 0x0308, |
---|
96 | 127 | HCLGE_OPC_CONFIG_SPEED_DUP = 0x0309, |
---|
| 128 | + HCLGE_OPC_QUERY_MAC_TNL_INT = 0x0310, |
---|
| 129 | + HCLGE_OPC_MAC_TNL_INT_EN = 0x0311, |
---|
| 130 | + HCLGE_OPC_CLEAR_MAC_TNL_INT = 0x0312, |
---|
97 | 131 | HCLGE_OPC_SERDES_LOOPBACK = 0x0315, |
---|
| 132 | + HCLGE_OPC_CONFIG_FEC_MODE = 0x031A, |
---|
98 | 133 | |
---|
99 | 134 | /* PFC/Pause commands */ |
---|
100 | 135 | HCLGE_OPC_CFG_MAC_PAUSE_EN = 0x0701, |
---|
.. | .. |
---|
126 | 161 | HCLGE_OPC_TM_PRI_SCH_MODE_CFG = 0x0813, |
---|
127 | 162 | HCLGE_OPC_TM_QS_SCH_MODE_CFG = 0x0814, |
---|
128 | 163 | HCLGE_OPC_TM_BP_TO_QSET_MAPPING = 0x0815, |
---|
| 164 | + HCLGE_OPC_ETS_TC_WEIGHT = 0x0843, |
---|
| 165 | + HCLGE_OPC_QSET_DFX_STS = 0x0844, |
---|
| 166 | + HCLGE_OPC_PRI_DFX_STS = 0x0845, |
---|
| 167 | + HCLGE_OPC_PG_DFX_STS = 0x0846, |
---|
| 168 | + HCLGE_OPC_PORT_DFX_STS = 0x0847, |
---|
| 169 | + HCLGE_OPC_SCH_NQ_CNT = 0x0848, |
---|
| 170 | + HCLGE_OPC_SCH_RQ_CNT = 0x0849, |
---|
| 171 | + HCLGE_OPC_TM_INTERNAL_STS = 0x0850, |
---|
| 172 | + HCLGE_OPC_TM_INTERNAL_CNT = 0x0851, |
---|
| 173 | + HCLGE_OPC_TM_INTERNAL_STS_1 = 0x0852, |
---|
129 | 174 | |
---|
130 | 175 | /* Packet buffer allocate commands */ |
---|
131 | 176 | HCLGE_OPC_TX_BUFF_ALLOC = 0x0901, |
---|
.. | .. |
---|
141 | 186 | /* TQP commands */ |
---|
142 | 187 | HCLGE_OPC_CFG_TX_QUEUE = 0x0B01, |
---|
143 | 188 | HCLGE_OPC_QUERY_TX_POINTER = 0x0B02, |
---|
144 | | - HCLGE_OPC_QUERY_TX_STATUS = 0x0B03, |
---|
| 189 | + HCLGE_OPC_QUERY_TX_STATS = 0x0B03, |
---|
| 190 | + HCLGE_OPC_TQP_TX_QUEUE_TC = 0x0B04, |
---|
145 | 191 | HCLGE_OPC_CFG_RX_QUEUE = 0x0B11, |
---|
146 | 192 | HCLGE_OPC_QUERY_RX_POINTER = 0x0B12, |
---|
147 | | - HCLGE_OPC_QUERY_RX_STATUS = 0x0B13, |
---|
| 193 | + HCLGE_OPC_QUERY_RX_STATS = 0x0B13, |
---|
148 | 194 | HCLGE_OPC_STASH_RX_QUEUE_LRO = 0x0B16, |
---|
149 | 195 | HCLGE_OPC_CFG_RX_QUEUE_LRO = 0x0B17, |
---|
150 | 196 | HCLGE_OPC_CFG_COM_TQP_QUEUE = 0x0B20, |
---|
151 | 197 | HCLGE_OPC_RESET_TQP_QUEUE = 0x0B22, |
---|
152 | 198 | |
---|
| 199 | + /* PPU commands */ |
---|
| 200 | + HCLGE_OPC_PPU_PF_OTHER_INT_DFX = 0x0B4A, |
---|
| 201 | + |
---|
153 | 202 | /* TSO command */ |
---|
154 | 203 | HCLGE_OPC_TSO_GENERIC_CONFIG = 0x0C01, |
---|
| 204 | + HCLGE_OPC_GRO_GENERIC_CONFIG = 0x0C10, |
---|
155 | 205 | |
---|
156 | 206 | /* RSS commands */ |
---|
157 | 207 | HCLGE_OPC_RSS_GENERIC_CONFIG = 0x0D01, |
---|
.. | .. |
---|
175 | 225 | HCLGE_OPC_MAC_VLAN_REMOVE = 0x1001, |
---|
176 | 226 | HCLGE_OPC_MAC_VLAN_TYPE_ID = 0x1002, |
---|
177 | 227 | HCLGE_OPC_MAC_VLAN_INSERT = 0x1003, |
---|
| 228 | + HCLGE_OPC_MAC_VLAN_ALLOCATE = 0x1004, |
---|
178 | 229 | HCLGE_OPC_MAC_ETHTYPE_ADD = 0x1010, |
---|
179 | 230 | HCLGE_OPC_MAC_ETHTYPE_REMOVE = 0x1011, |
---|
180 | | - HCLGE_OPC_MAC_VLAN_MASK_SET = 0x1012, |
---|
181 | 231 | |
---|
182 | | - /* Multicast linear table commands */ |
---|
183 | | - HCLGE_OPC_MTA_MAC_MODE_CFG = 0x1020, |
---|
184 | | - HCLGE_OPC_MTA_MAC_FUNC_CFG = 0x1021, |
---|
185 | | - HCLGE_OPC_MTA_TBL_ITEM_CFG = 0x1022, |
---|
186 | | - HCLGE_OPC_MTA_TBL_ITEM_QUERY = 0x1023, |
---|
| 232 | + /* MAC VLAN commands */ |
---|
| 233 | + HCLGE_OPC_MAC_VLAN_SWITCH_PARAM = 0x1033, |
---|
187 | 234 | |
---|
188 | 235 | /* VLAN commands */ |
---|
189 | 236 | HCLGE_OPC_VLAN_FILTER_CTRL = 0x1100, |
---|
190 | 237 | HCLGE_OPC_VLAN_FILTER_PF_CFG = 0x1101, |
---|
191 | 238 | HCLGE_OPC_VLAN_FILTER_VF_CFG = 0x1102, |
---|
| 239 | + |
---|
| 240 | + /* Flow Director commands */ |
---|
| 241 | + HCLGE_OPC_FD_MODE_CTRL = 0x1200, |
---|
| 242 | + HCLGE_OPC_FD_GET_ALLOCATION = 0x1201, |
---|
| 243 | + HCLGE_OPC_FD_KEY_CONFIG = 0x1202, |
---|
| 244 | + HCLGE_OPC_FD_TCAM_OP = 0x1203, |
---|
| 245 | + HCLGE_OPC_FD_AD_OP = 0x1204, |
---|
192 | 246 | |
---|
193 | 247 | /* MDIO command */ |
---|
194 | 248 | HCLGE_OPC_MDIO_CONFIG = 0x1900, |
---|
.. | .. |
---|
196 | 250 | /* QCN commands */ |
---|
197 | 251 | HCLGE_OPC_QCN_MOD_CFG = 0x1A01, |
---|
198 | 252 | HCLGE_OPC_QCN_GRP_TMPLT_CFG = 0x1A02, |
---|
199 | | - HCLGE_OPC_QCN_SHAPPING_IR_CFG = 0x1A03, |
---|
| 253 | + HCLGE_OPC_QCN_SHAPPING_CFG = 0x1A03, |
---|
200 | 254 | HCLGE_OPC_QCN_SHAPPING_BS_CFG = 0x1A04, |
---|
201 | 255 | HCLGE_OPC_QCN_QSET_LINK_CFG = 0x1A05, |
---|
202 | 256 | HCLGE_OPC_QCN_RP_STATUS_GET = 0x1A06, |
---|
.. | .. |
---|
208 | 262 | |
---|
209 | 263 | /* Led command */ |
---|
210 | 264 | HCLGE_OPC_LED_STATUS_CFG = 0xB000, |
---|
| 265 | + |
---|
| 266 | + /* clear hardware resource command */ |
---|
| 267 | + HCLGE_OPC_CLEAR_HW_RESOURCE = 0x700B, |
---|
| 268 | + |
---|
| 269 | + /* NCL config command */ |
---|
| 270 | + HCLGE_OPC_QUERY_NCL_CONFIG = 0x7011, |
---|
| 271 | + |
---|
| 272 | + /* M7 stats command */ |
---|
| 273 | + HCLGE_OPC_M7_STATS_BD = 0x7012, |
---|
| 274 | + HCLGE_OPC_M7_STATS_INFO = 0x7013, |
---|
| 275 | + HCLGE_OPC_M7_COMPAT_CFG = 0x701A, |
---|
| 276 | + |
---|
| 277 | + /* SFP command */ |
---|
| 278 | + HCLGE_OPC_GET_SFP_EEPROM = 0x7100, |
---|
| 279 | + HCLGE_OPC_GET_SFP_EXIST = 0x7101, |
---|
| 280 | + HCLGE_OPC_GET_SFP_INFO = 0x7104, |
---|
| 281 | + |
---|
| 282 | + /* Error INT commands */ |
---|
| 283 | + HCLGE_MAC_COMMON_INT_EN = 0x030E, |
---|
| 284 | + HCLGE_TM_SCH_ECC_INT_EN = 0x0829, |
---|
| 285 | + HCLGE_SSU_ECC_INT_CMD = 0x0989, |
---|
| 286 | + HCLGE_SSU_COMMON_INT_CMD = 0x098C, |
---|
| 287 | + HCLGE_PPU_MPF_ECC_INT_CMD = 0x0B40, |
---|
| 288 | + HCLGE_PPU_MPF_OTHER_INT_CMD = 0x0B41, |
---|
| 289 | + HCLGE_PPU_PF_OTHER_INT_CMD = 0x0B42, |
---|
| 290 | + HCLGE_COMMON_ECC_INT_CFG = 0x1505, |
---|
| 291 | + HCLGE_QUERY_RAS_INT_STS_BD_NUM = 0x1510, |
---|
| 292 | + HCLGE_QUERY_CLEAR_MPF_RAS_INT = 0x1511, |
---|
| 293 | + HCLGE_QUERY_CLEAR_PF_RAS_INT = 0x1512, |
---|
| 294 | + HCLGE_QUERY_MSIX_INT_STS_BD_NUM = 0x1513, |
---|
| 295 | + HCLGE_QUERY_CLEAR_ALL_MPF_MSIX_INT = 0x1514, |
---|
| 296 | + HCLGE_QUERY_CLEAR_ALL_PF_MSIX_INT = 0x1515, |
---|
| 297 | + HCLGE_CONFIG_ROCEE_RAS_INT_EN = 0x1580, |
---|
| 298 | + HCLGE_QUERY_CLEAR_ROCEE_RAS_INT = 0x1581, |
---|
| 299 | + HCLGE_ROCEE_PF_RAS_INT_CMD = 0x1584, |
---|
| 300 | + HCLGE_QUERY_ROCEE_ECC_RAS_INFO_CMD = 0x1585, |
---|
| 301 | + HCLGE_QUERY_ROCEE_AXI_RAS_INFO_CMD = 0x1586, |
---|
| 302 | + HCLGE_IGU_EGU_TNL_INT_EN = 0x1803, |
---|
| 303 | + HCLGE_IGU_COMMON_INT_EN = 0x1806, |
---|
| 304 | + HCLGE_TM_QCN_MEM_INT_CFG = 0x1A14, |
---|
| 305 | + HCLGE_PPP_CMD0_INT_CMD = 0x2100, |
---|
| 306 | + HCLGE_PPP_CMD1_INT_CMD = 0x2101, |
---|
| 307 | + HCLGE_MAC_ETHERTYPE_IDX_RD = 0x2105, |
---|
| 308 | + HCLGE_NCSI_INT_EN = 0x2401, |
---|
211 | 309 | }; |
---|
212 | 310 | |
---|
213 | 311 | #define HCLGE_TQP_REG_OFFSET 0x80000 |
---|
.. | .. |
---|
255 | 353 | u8 rsv; |
---|
256 | 354 | }; |
---|
257 | 355 | |
---|
258 | | -#define HCLGE_TC_NUM 8 |
---|
| 356 | +#define HCLGE_MAX_TC_NUM 8 |
---|
259 | 357 | #define HCLGE_TC0_PRI_BUF_EN_B 15 /* Bit 15 indicate enable or not */ |
---|
260 | 358 | #define HCLGE_BUF_UNIT_S 7 /* Buf size is united by 128 bytes */ |
---|
261 | 359 | struct hclge_tx_buff_alloc_cmd { |
---|
262 | | - __le16 tx_pkt_buff[HCLGE_TC_NUM]; |
---|
| 360 | + __le16 tx_pkt_buff[HCLGE_MAX_TC_NUM]; |
---|
263 | 361 | u8 tx_buff_rsv[8]; |
---|
264 | 362 | }; |
---|
265 | 363 | |
---|
266 | 364 | struct hclge_rx_priv_buff_cmd { |
---|
267 | | - __le16 buf_num[HCLGE_TC_NUM]; |
---|
| 365 | + __le16 buf_num[HCLGE_MAX_TC_NUM]; |
---|
268 | 366 | __le16 shared_buf; |
---|
269 | 367 | u8 rsv[6]; |
---|
270 | 368 | }; |
---|
271 | 369 | |
---|
| 370 | +enum HCLGE_CAP_BITS { |
---|
| 371 | + HCLGE_CAP_UDP_GSO_B, |
---|
| 372 | + HCLGE_CAP_QB_B, |
---|
| 373 | + HCLGE_CAP_FD_FORWARD_TC_B, |
---|
| 374 | + HCLGE_CAP_PTP_B, |
---|
| 375 | + HCLGE_CAP_INT_QL_B, |
---|
| 376 | + HCLGE_CAP_SIMPLE_BD_B, |
---|
| 377 | + HCLGE_CAP_TX_PUSH_B, |
---|
| 378 | + HCLGE_CAP_PHY_IMP_B, |
---|
| 379 | + HCLGE_CAP_TQP_TXRX_INDEP_B, |
---|
| 380 | + HCLGE_CAP_HW_PAD_B, |
---|
| 381 | + HCLGE_CAP_STASH_B, |
---|
| 382 | +}; |
---|
| 383 | + |
---|
| 384 | +#define HCLGE_QUERY_CAP_LENGTH 3 |
---|
272 | 385 | struct hclge_query_version_cmd { |
---|
273 | 386 | __le32 firmware; |
---|
274 | | - __le32 firmware_rsv[5]; |
---|
| 387 | + __le32 hardware; |
---|
| 388 | + __le32 rsv; |
---|
| 389 | + __le32 caps[HCLGE_QUERY_CAP_LENGTH]; /* capabilities of device */ |
---|
275 | 390 | }; |
---|
276 | 391 | |
---|
277 | 392 | #define HCLGE_RX_PRIV_EN_B 15 |
---|
.. | .. |
---|
310 | 425 | u32 enable; /* Enable TC private buffer or not */ |
---|
311 | 426 | }; |
---|
312 | 427 | |
---|
313 | | -#define HCLGE_MAX_TC_NUM 8 |
---|
314 | 428 | struct hclge_shared_buf { |
---|
315 | 429 | struct hclge_waterline self; |
---|
316 | 430 | struct hclge_tc_thrd tc_thrd[HCLGE_MAX_TC_NUM]; |
---|
.. | .. |
---|
343 | 457 | #define HCLGE_PF_MAC_NUM_MASK 0x3 |
---|
344 | 458 | #define HCLGE_PF_STATE_MAIN BIT(HCLGE_PF_STATE_MAIN_B) |
---|
345 | 459 | #define HCLGE_PF_STATE_DONE BIT(HCLGE_PF_STATE_DONE_B) |
---|
| 460 | +#define HCLGE_VF_RST_STATUS_CMD 4 |
---|
| 461 | + |
---|
346 | 462 | struct hclge_func_status_cmd { |
---|
347 | | - __le32 vf_rst_state[4]; |
---|
| 463 | + __le32 vf_rst_state[HCLGE_VF_RST_STATUS_CMD]; |
---|
348 | 464 | u8 pf_state; |
---|
349 | 465 | u8 mac_id; |
---|
350 | 466 | u8 rsv1; |
---|
.. | .. |
---|
365 | 481 | #define HCLGE_PF_VEC_NUM_M GENMASK(7, 0) |
---|
366 | 482 | __le16 pf_intr_vector_number; |
---|
367 | 483 | __le16 pf_own_fun_number; |
---|
368 | | - __le32 rsv[3]; |
---|
| 484 | + __le16 tx_buf_size; |
---|
| 485 | + __le16 dv_buf_size; |
---|
| 486 | + __le32 rsv[2]; |
---|
369 | 487 | }; |
---|
370 | 488 | |
---|
371 | 489 | #define HCLGE_CFG_OFFSET_S 0 |
---|
.. | .. |
---|
395 | 513 | #define HCLGE_CFG_RSS_SIZE_M GENMASK(31, 24) |
---|
396 | 514 | #define HCLGE_CFG_SPEED_ABILITY_S 0 |
---|
397 | 515 | #define HCLGE_CFG_SPEED_ABILITY_M GENMASK(7, 0) |
---|
| 516 | +#define HCLGE_CFG_SPEED_ABILITY_EXT_S 10 |
---|
| 517 | +#define HCLGE_CFG_SPEED_ABILITY_EXT_M GENMASK(15, 10) |
---|
| 518 | +#define HCLGE_CFG_UMV_TBL_SPACE_S 16 |
---|
| 519 | +#define HCLGE_CFG_UMV_TBL_SPACE_M GENMASK(31, 16) |
---|
| 520 | + |
---|
| 521 | +#define HCLGE_CFG_CMD_CNT 4 |
---|
398 | 522 | |
---|
399 | 523 | struct hclge_cfg_param_cmd { |
---|
400 | 524 | __le32 offset; |
---|
401 | 525 | __le32 rsv; |
---|
402 | | - __le32 param[4]; |
---|
| 526 | + __le32 param[HCLGE_CFG_CMD_CNT]; |
---|
403 | 527 | }; |
---|
404 | 528 | |
---|
405 | 529 | #define HCLGE_MAC_MODE 0x0 |
---|
.. | .. |
---|
503 | 627 | u8 rsv[20]; |
---|
504 | 628 | }; |
---|
505 | 629 | |
---|
| 630 | +struct hclge_pf_rst_sync_cmd { |
---|
| 631 | +#define HCLGE_PF_RST_ALL_VF_RDY_B 0 |
---|
| 632 | + u8 all_vf_ready; |
---|
| 633 | + u8 rsv[23]; |
---|
| 634 | +}; |
---|
| 635 | + |
---|
506 | 636 | #define HCLGE_CFG_SPEED_S 0 |
---|
507 | 637 | #define HCLGE_CFG_SPEED_M GENMASK(5, 0) |
---|
508 | 638 | |
---|
.. | .. |
---|
515 | 645 | #define HCLGE_CFG_MAC_SPEED_CHANGE_EN_B 0 |
---|
516 | 646 | u8 mac_change_fec_en; |
---|
517 | 647 | u8 rsv[22]; |
---|
518 | | -}; |
---|
519 | | - |
---|
520 | | -#define HCLGE_QUERY_SPEED_S 3 |
---|
521 | | -#define HCLGE_QUERY_AN_B 0 |
---|
522 | | -#define HCLGE_QUERY_DUPLEX_B 2 |
---|
523 | | - |
---|
524 | | -#define HCLGE_QUERY_SPEED_M GENMASK(4, 0) |
---|
525 | | -#define HCLGE_QUERY_AN_M BIT(HCLGE_QUERY_AN_B) |
---|
526 | | -#define HCLGE_QUERY_DUPLEX_M BIT(HCLGE_QUERY_DUPLEX_B) |
---|
527 | | - |
---|
528 | | -struct hclge_query_an_speed_dup_cmd { |
---|
529 | | - u8 an_syn_dup_speed; |
---|
530 | | - u8 pause; |
---|
531 | | - u8 rsv[23]; |
---|
532 | 648 | }; |
---|
533 | 649 | |
---|
534 | 650 | #define HCLGE_RING_ID_MASK GENMASK(9, 0) |
---|
.. | .. |
---|
547 | 663 | u8 rsv[20]; |
---|
548 | 664 | }; |
---|
549 | 665 | |
---|
| 666 | +struct hclge_sfp_info_cmd { |
---|
| 667 | + __le32 speed; |
---|
| 668 | + u8 query_type; /* 0: sfp speed, 1: active speed */ |
---|
| 669 | + u8 active_fec; |
---|
| 670 | + u8 autoneg; /* autoneg state */ |
---|
| 671 | + u8 autoneg_ability; /* whether support autoneg */ |
---|
| 672 | + __le32 speed_ability; /* speed ability for current media */ |
---|
| 673 | + __le32 module_type; |
---|
| 674 | + u8 rsv[8]; |
---|
| 675 | +}; |
---|
| 676 | + |
---|
| 677 | +#define HCLGE_MAC_CFG_FEC_AUTO_EN_B 0 |
---|
| 678 | +#define HCLGE_MAC_CFG_FEC_MODE_S 1 |
---|
| 679 | +#define HCLGE_MAC_CFG_FEC_MODE_M GENMASK(3, 1) |
---|
| 680 | +#define HCLGE_MAC_CFG_FEC_SET_DEF_B 0 |
---|
| 681 | +#define HCLGE_MAC_CFG_FEC_CLR_DEF_B 1 |
---|
| 682 | + |
---|
| 683 | +#define HCLGE_MAC_FEC_OFF 0 |
---|
| 684 | +#define HCLGE_MAC_FEC_BASER 1 |
---|
| 685 | +#define HCLGE_MAC_FEC_RS 2 |
---|
| 686 | +struct hclge_config_fec_cmd { |
---|
| 687 | + u8 fec_mode; |
---|
| 688 | + u8 default_config; |
---|
| 689 | + u8 rsv[22]; |
---|
| 690 | +}; |
---|
| 691 | + |
---|
550 | 692 | #define HCLGE_MAC_UPLINK_PORT 0x100 |
---|
551 | 693 | |
---|
552 | 694 | struct hclge_config_max_frm_size_cmd { |
---|
.. | .. |
---|
560 | 702 | HCLGE_MAC_VLAN_UPDATE, /* Modify other fields of this table */ |
---|
561 | 703 | HCLGE_MAC_VLAN_REMOVE, /* Remove a entry through mac_vlan key */ |
---|
562 | 704 | HCLGE_MAC_VLAN_LKUP, /* Lookup a entry through mac_vlan key */ |
---|
| 705 | +}; |
---|
| 706 | + |
---|
| 707 | +enum hclge_mac_vlan_add_resp_code { |
---|
| 708 | + HCLGE_ADD_UC_OVERFLOW = 2, /* ADD failed for UC overflow */ |
---|
| 709 | + HCLGE_ADD_MC_OVERFLOW, /* ADD failed for MC overflow */ |
---|
563 | 710 | }; |
---|
564 | 711 | |
---|
565 | 712 | #define HCLGE_MAC_VLAN_BIT0_EN_B 0 |
---|
.. | .. |
---|
584 | 731 | u8 rsv2[6]; |
---|
585 | 732 | }; |
---|
586 | 733 | |
---|
587 | | -#define HCLGE_VLAN_MASK_EN_B 0 |
---|
588 | | -struct hclge_mac_vlan_mask_entry_cmd { |
---|
589 | | - u8 rsv0[2]; |
---|
590 | | - u8 vlan_mask; |
---|
591 | | - u8 rsv1; |
---|
592 | | - u8 mac_mask[6]; |
---|
593 | | - u8 rsv2[14]; |
---|
| 734 | +#define HCLGE_UMV_SPC_ALC_B 0 |
---|
| 735 | +struct hclge_umv_spc_alc_cmd { |
---|
| 736 | + u8 allocate; |
---|
| 737 | + u8 rsv1[3]; |
---|
| 738 | + __le32 space_size; |
---|
| 739 | + u8 rsv2[16]; |
---|
594 | 740 | }; |
---|
595 | 741 | |
---|
596 | 742 | #define HCLGE_MAC_MGR_MASK_VLAN_B BIT(0) |
---|
597 | 743 | #define HCLGE_MAC_MGR_MASK_MAC_B BIT(1) |
---|
598 | 744 | #define HCLGE_MAC_MGR_MASK_ETHERTYPE_B BIT(2) |
---|
599 | | -#define HCLGE_MAC_ETHERTYPE_LLDP 0x88cc |
---|
600 | 745 | |
---|
601 | 746 | struct hclge_mac_mgr_tbl_entry_cmd { |
---|
602 | 747 | u8 flags; |
---|
603 | 748 | u8 resp_code; |
---|
604 | 749 | __le16 vlan_tag; |
---|
605 | | - __le32 mac_addr_hi32; |
---|
606 | | - __le16 mac_addr_lo16; |
---|
| 750 | + u8 mac_addr[ETH_ALEN]; |
---|
607 | 751 | __le16 rsv1; |
---|
608 | 752 | __le16 ethter_type; |
---|
609 | 753 | __le16 egress_port; |
---|
.. | .. |
---|
615 | 759 | u8 rsv3[2]; |
---|
616 | 760 | }; |
---|
617 | 761 | |
---|
618 | | -#define HCLGE_CFG_MTA_MAC_SEL_S 0 |
---|
619 | | -#define HCLGE_CFG_MTA_MAC_SEL_M GENMASK(1, 0) |
---|
620 | | -#define HCLGE_CFG_MTA_MAC_EN_B 7 |
---|
621 | | -struct hclge_mta_filter_mode_cmd { |
---|
622 | | - u8 dmac_sel_en; /* Use lowest 2 bit as sel_mode, bit 7 as enable */ |
---|
623 | | - u8 rsv[23]; |
---|
624 | | -}; |
---|
625 | | - |
---|
626 | | -#define HCLGE_CFG_FUNC_MTA_ACCEPT_B 0 |
---|
627 | | -struct hclge_cfg_func_mta_filter_cmd { |
---|
628 | | - u8 accept; /* Only used lowest 1 bit */ |
---|
629 | | - u8 function_id; |
---|
630 | | - u8 rsv[22]; |
---|
631 | | -}; |
---|
632 | | - |
---|
633 | | -#define HCLGE_CFG_MTA_ITEM_ACCEPT_B 0 |
---|
634 | | -#define HCLGE_CFG_MTA_ITEM_IDX_S 0 |
---|
635 | | -#define HCLGE_CFG_MTA_ITEM_IDX_M GENMASK(11, 0) |
---|
636 | | -struct hclge_cfg_func_mta_item_cmd { |
---|
637 | | - __le16 item_idx; /* Only used lowest 12 bit */ |
---|
638 | | - u8 accept; /* Only used lowest 1 bit */ |
---|
639 | | - u8 rsv[21]; |
---|
640 | | -}; |
---|
641 | | - |
---|
642 | | -struct hclge_mac_vlan_add_cmd { |
---|
643 | | - __le16 flags; |
---|
644 | | - __le16 mac_addr_hi16; |
---|
645 | | - __le32 mac_addr_lo32; |
---|
646 | | - __le32 mac_addr_msk_hi32; |
---|
647 | | - __le16 mac_addr_msk_lo16; |
---|
648 | | - __le16 vlan_tag; |
---|
649 | | - __le16 ingress_port; |
---|
650 | | - __le16 egress_port; |
---|
651 | | - u8 rsv[4]; |
---|
652 | | -}; |
---|
653 | | - |
---|
654 | | -#define HNS3_MAC_VLAN_CFG_FLAG_BIT 0 |
---|
655 | | -struct hclge_mac_vlan_remove_cmd { |
---|
656 | | - __le16 flags; |
---|
657 | | - __le16 mac_addr_hi16; |
---|
658 | | - __le32 mac_addr_lo32; |
---|
659 | | - __le32 mac_addr_msk_hi32; |
---|
660 | | - __le16 mac_addr_msk_lo16; |
---|
661 | | - __le16 vlan_tag; |
---|
662 | | - __le16 ingress_port; |
---|
663 | | - __le16 egress_port; |
---|
664 | | - u8 rsv[4]; |
---|
665 | | -}; |
---|
666 | | - |
---|
667 | 762 | struct hclge_vlan_filter_ctrl_cmd { |
---|
668 | 763 | u8 vlan_type; |
---|
669 | 764 | u8 vlan_fe; |
---|
670 | | - u8 rsv[22]; |
---|
| 765 | + u8 rsv1[2]; |
---|
| 766 | + u8 vf_id; |
---|
| 767 | + u8 rsv2[19]; |
---|
671 | 768 | }; |
---|
| 769 | + |
---|
| 770 | +#define HCLGE_VLAN_ID_OFFSET_STEP 160 |
---|
| 771 | +#define HCLGE_VLAN_BYTE_SIZE 8 |
---|
| 772 | +#define HCLGE_VLAN_OFFSET_BITMAP \ |
---|
| 773 | + (HCLGE_VLAN_ID_OFFSET_STEP / HCLGE_VLAN_BYTE_SIZE) |
---|
672 | 774 | |
---|
673 | 775 | struct hclge_vlan_filter_pf_cfg_cmd { |
---|
674 | 776 | u8 vlan_offset; |
---|
675 | 777 | u8 vlan_cfg; |
---|
676 | 778 | u8 rsv[2]; |
---|
677 | | - u8 vlan_offset_bitmap[20]; |
---|
| 779 | + u8 vlan_offset_bitmap[HCLGE_VLAN_OFFSET_BITMAP]; |
---|
678 | 780 | }; |
---|
| 781 | + |
---|
| 782 | +#define HCLGE_MAX_VF_BYTES 16 |
---|
679 | 783 | |
---|
680 | 784 | struct hclge_vlan_filter_vf_cfg_cmd { |
---|
681 | 785 | __le16 vlan_id; |
---|
.. | .. |
---|
683 | 787 | u8 rsv; |
---|
684 | 788 | u8 vlan_cfg; |
---|
685 | 789 | u8 rsv1[3]; |
---|
686 | | - u8 vf_bitmap[16]; |
---|
| 790 | + u8 vf_bitmap[HCLGE_MAX_VF_BYTES]; |
---|
| 791 | +}; |
---|
| 792 | + |
---|
| 793 | +#define HCLGE_SWITCH_ANTI_SPOOF_B 0U |
---|
| 794 | +#define HCLGE_SWITCH_ALW_LPBK_B 1U |
---|
| 795 | +#define HCLGE_SWITCH_ALW_LCL_LPBK_B 2U |
---|
| 796 | +#define HCLGE_SWITCH_ALW_DST_OVRD_B 3U |
---|
| 797 | +#define HCLGE_SWITCH_NO_MASK 0x0 |
---|
| 798 | +#define HCLGE_SWITCH_ANTI_SPOOF_MASK 0xFE |
---|
| 799 | +#define HCLGE_SWITCH_ALW_LPBK_MASK 0xFD |
---|
| 800 | +#define HCLGE_SWITCH_ALW_LCL_LPBK_MASK 0xFB |
---|
| 801 | +#define HCLGE_SWITCH_LW_DST_OVRD_MASK 0xF7 |
---|
| 802 | + |
---|
| 803 | +struct hclge_mac_vlan_switch_cmd { |
---|
| 804 | + u8 roce_sel; |
---|
| 805 | + u8 rsv1[3]; |
---|
| 806 | + __le32 func_id; |
---|
| 807 | + u8 switch_param; |
---|
| 808 | + u8 rsv2[3]; |
---|
| 809 | + u8 param_mask; |
---|
| 810 | + u8 rsv3[11]; |
---|
| 811 | +}; |
---|
| 812 | + |
---|
| 813 | +enum hclge_mac_vlan_cfg_sel { |
---|
| 814 | + HCLGE_MAC_VLAN_NIC_SEL = 0, |
---|
| 815 | + HCLGE_MAC_VLAN_ROCE_SEL, |
---|
687 | 816 | }; |
---|
688 | 817 | |
---|
689 | 818 | #define HCLGE_ACCEPT_TAG1_B 0 |
---|
.. | .. |
---|
693 | 822 | #define HCLGE_CFG_NIC_ROCE_SEL_B 4 |
---|
694 | 823 | #define HCLGE_ACCEPT_TAG2_B 5 |
---|
695 | 824 | #define HCLGE_ACCEPT_UNTAG2_B 6 |
---|
| 825 | +#define HCLGE_VF_NUM_PER_BYTE 8 |
---|
696 | 826 | |
---|
697 | 827 | struct hclge_vport_vtag_tx_cfg_cmd { |
---|
698 | 828 | u8 vport_vlan_cfg; |
---|
.. | .. |
---|
700 | 830 | u8 rsv1[2]; |
---|
701 | 831 | __le16 def_vlan_tag1; |
---|
702 | 832 | __le16 def_vlan_tag2; |
---|
703 | | - u8 vf_bitmap[8]; |
---|
| 833 | + u8 vf_bitmap[HCLGE_VF_NUM_PER_BYTE]; |
---|
704 | 834 | u8 rsv2[8]; |
---|
705 | 835 | }; |
---|
706 | 836 | |
---|
.. | .. |
---|
712 | 842 | u8 vport_vlan_cfg; |
---|
713 | 843 | u8 vf_offset; |
---|
714 | 844 | u8 rsv1[6]; |
---|
715 | | - u8 vf_bitmap[8]; |
---|
| 845 | + u8 vf_bitmap[HCLGE_VF_NUM_PER_BYTE]; |
---|
716 | 846 | u8 rsv2[8]; |
---|
717 | 847 | }; |
---|
718 | 848 | |
---|
.. | .. |
---|
746 | 876 | u8 rsv[14]; |
---|
747 | 877 | }; |
---|
748 | 878 | |
---|
| 879 | +#pragma pack(1) |
---|
| 880 | +struct hclge_mac_ethertype_idx_rd_cmd { |
---|
| 881 | + u8 flags; |
---|
| 882 | + u8 resp_code; |
---|
| 883 | + __le16 vlan_tag; |
---|
| 884 | + u8 mac_addr[ETH_ALEN]; |
---|
| 885 | + __le16 index; |
---|
| 886 | + __le16 ethter_type; |
---|
| 887 | + __le16 egress_port; |
---|
| 888 | + __le16 egress_queue; |
---|
| 889 | + __le16 rev0; |
---|
| 890 | + u8 i_port_bitmap; |
---|
| 891 | + u8 i_port_direction; |
---|
| 892 | + u8 rev1[2]; |
---|
| 893 | +}; |
---|
| 894 | + |
---|
| 895 | +#pragma pack() |
---|
| 896 | + |
---|
749 | 897 | #define HCLGE_TSO_MSS_MIN_S 0 |
---|
750 | 898 | #define HCLGE_TSO_MSS_MIN_M GENMASK(13, 0) |
---|
751 | 899 | |
---|
.. | .. |
---|
756 | 904 | __le16 tso_mss_min; |
---|
757 | 905 | __le16 tso_mss_max; |
---|
758 | 906 | u8 rsv[20]; |
---|
| 907 | +}; |
---|
| 908 | + |
---|
| 909 | +#define HCLGE_GRO_EN_B 0 |
---|
| 910 | +struct hclge_cfg_gro_status_cmd { |
---|
| 911 | + u8 gro_en; |
---|
| 912 | + u8 rsv[23]; |
---|
759 | 913 | }; |
---|
760 | 914 | |
---|
761 | 915 | #define HCLGE_TSO_MSS_MIN 256 |
---|
.. | .. |
---|
777 | 931 | u8 rsv[22]; |
---|
778 | 932 | }; |
---|
779 | 933 | |
---|
| 934 | +#define HCLGE_PF_RESET_DONE_BIT BIT(0) |
---|
| 935 | + |
---|
| 936 | +struct hclge_pf_rst_done_cmd { |
---|
| 937 | + u8 pf_rst_done; |
---|
| 938 | + u8 rsv[23]; |
---|
| 939 | +}; |
---|
| 940 | + |
---|
780 | 941 | #define HCLGE_CMD_SERDES_SERIAL_INNER_LOOP_B BIT(0) |
---|
| 942 | +#define HCLGE_CMD_SERDES_PARALLEL_INNER_LOOP_B BIT(2) |
---|
781 | 943 | #define HCLGE_CMD_SERDES_DONE_B BIT(0) |
---|
782 | 944 | #define HCLGE_CMD_SERDES_SUCCESS_B BIT(1) |
---|
783 | 945 | struct hclge_serdes_lb_cmd { |
---|
.. | .. |
---|
791 | 953 | #define HCLGE_TOTAL_PKT_BUF 0x108000 /* 1.03125M bytes */ |
---|
792 | 954 | #define HCLGE_DEFAULT_DV 0xA000 /* 40k byte */ |
---|
793 | 955 | #define HCLGE_DEFAULT_NON_DCB_DV 0x7800 /* 30K byte */ |
---|
| 956 | +#define HCLGE_NON_DCB_ADDITIONAL_BUF 0x1400 /* 5120 byte */ |
---|
794 | 957 | |
---|
795 | 958 | #define HCLGE_TYPE_CRQ 0 |
---|
796 | 959 | #define HCLGE_TYPE_CSQ 1 |
---|
.. | .. |
---|
804 | 967 | #define HCLGE_NIC_CRQ_DEPTH_REG 0x27020 |
---|
805 | 968 | #define HCLGE_NIC_CRQ_TAIL_REG 0x27024 |
---|
806 | 969 | #define HCLGE_NIC_CRQ_HEAD_REG 0x27028 |
---|
807 | | -#define HCLGE_NIC_CMQ_EN_B 16 |
---|
808 | | -#define HCLGE_NIC_CMQ_ENABLE BIT(HCLGE_NIC_CMQ_EN_B) |
---|
| 970 | + |
---|
| 971 | +/* this bit indicates that the driver is ready for hardware reset */ |
---|
| 972 | +#define HCLGE_NIC_SW_RST_RDY_B 16 |
---|
| 973 | +#define HCLGE_NIC_SW_RST_RDY BIT(HCLGE_NIC_SW_RST_RDY_B) |
---|
| 974 | + |
---|
809 | 975 | #define HCLGE_NIC_CMQ_DESC_NUM 1024 |
---|
810 | 976 | #define HCLGE_NIC_CMQ_DESC_NUM_S 3 |
---|
811 | 977 | |
---|
.. | .. |
---|
816 | 982 | u8 rsv1[3]; |
---|
817 | 983 | u8 locate_led_config; |
---|
818 | 984 | u8 rsv2[20]; |
---|
| 985 | +}; |
---|
| 986 | + |
---|
| 987 | +struct hclge_get_fd_mode_cmd { |
---|
| 988 | + u8 mode; |
---|
| 989 | + u8 enable; |
---|
| 990 | + u8 rsv[22]; |
---|
| 991 | +}; |
---|
| 992 | + |
---|
| 993 | +struct hclge_get_fd_allocation_cmd { |
---|
| 994 | + __le32 stage1_entry_num; |
---|
| 995 | + __le32 stage2_entry_num; |
---|
| 996 | + __le16 stage1_counter_num; |
---|
| 997 | + __le16 stage2_counter_num; |
---|
| 998 | + u8 rsv[12]; |
---|
| 999 | +}; |
---|
| 1000 | + |
---|
| 1001 | +struct hclge_set_fd_key_config_cmd { |
---|
| 1002 | + u8 stage; |
---|
| 1003 | + u8 key_select; |
---|
| 1004 | + u8 inner_sipv6_word_en; |
---|
| 1005 | + u8 inner_dipv6_word_en; |
---|
| 1006 | + u8 outer_sipv6_word_en; |
---|
| 1007 | + u8 outer_dipv6_word_en; |
---|
| 1008 | + u8 rsv1[2]; |
---|
| 1009 | + __le32 tuple_mask; |
---|
| 1010 | + __le32 meta_data_mask; |
---|
| 1011 | + u8 rsv2[8]; |
---|
| 1012 | +}; |
---|
| 1013 | + |
---|
| 1014 | +#define HCLGE_FD_EPORT_SW_EN_B 0 |
---|
| 1015 | +struct hclge_fd_tcam_config_1_cmd { |
---|
| 1016 | + u8 stage; |
---|
| 1017 | + u8 xy_sel; |
---|
| 1018 | + u8 port_info; |
---|
| 1019 | + u8 rsv1[1]; |
---|
| 1020 | + __le32 index; |
---|
| 1021 | + u8 entry_vld; |
---|
| 1022 | + u8 rsv2[7]; |
---|
| 1023 | + u8 tcam_data[8]; |
---|
| 1024 | +}; |
---|
| 1025 | + |
---|
| 1026 | +struct hclge_fd_tcam_config_2_cmd { |
---|
| 1027 | + u8 tcam_data[24]; |
---|
| 1028 | +}; |
---|
| 1029 | + |
---|
| 1030 | +struct hclge_fd_tcam_config_3_cmd { |
---|
| 1031 | + u8 tcam_data[20]; |
---|
| 1032 | + u8 rsv[4]; |
---|
| 1033 | +}; |
---|
| 1034 | + |
---|
| 1035 | +#define HCLGE_FD_AD_DROP_B 0 |
---|
| 1036 | +#define HCLGE_FD_AD_DIRECT_QID_B 1 |
---|
| 1037 | +#define HCLGE_FD_AD_QID_S 2 |
---|
| 1038 | +#define HCLGE_FD_AD_QID_M GENMASK(11, 2) |
---|
| 1039 | +#define HCLGE_FD_AD_USE_COUNTER_B 12 |
---|
| 1040 | +#define HCLGE_FD_AD_COUNTER_NUM_S 13 |
---|
| 1041 | +#define HCLGE_FD_AD_COUNTER_NUM_M GENMASK(20, 13) |
---|
| 1042 | +#define HCLGE_FD_AD_NXT_STEP_B 20 |
---|
| 1043 | +#define HCLGE_FD_AD_NXT_KEY_S 21 |
---|
| 1044 | +#define HCLGE_FD_AD_NXT_KEY_M GENMASK(25, 21) |
---|
| 1045 | +#define HCLGE_FD_AD_WR_RULE_ID_B 0 |
---|
| 1046 | +#define HCLGE_FD_AD_RULE_ID_S 1 |
---|
| 1047 | +#define HCLGE_FD_AD_RULE_ID_M GENMASK(12, 1) |
---|
| 1048 | + |
---|
| 1049 | +struct hclge_fd_ad_config_cmd { |
---|
| 1050 | + u8 stage; |
---|
| 1051 | + u8 rsv1[3]; |
---|
| 1052 | + __le32 index; |
---|
| 1053 | + __le64 ad_data; |
---|
| 1054 | + u8 rsv2[8]; |
---|
| 1055 | +}; |
---|
| 1056 | + |
---|
| 1057 | +struct hclge_get_m7_bd_cmd { |
---|
| 1058 | + __le32 bd_num; |
---|
| 1059 | + u8 rsv[20]; |
---|
| 1060 | +}; |
---|
| 1061 | + |
---|
| 1062 | +struct hclge_query_ppu_pf_other_int_dfx_cmd { |
---|
| 1063 | + __le16 over_8bd_no_fe_qid; |
---|
| 1064 | + __le16 over_8bd_no_fe_vf_id; |
---|
| 1065 | + __le16 tso_mss_cmp_min_err_qid; |
---|
| 1066 | + __le16 tso_mss_cmp_min_err_vf_id; |
---|
| 1067 | + __le16 tso_mss_cmp_max_err_qid; |
---|
| 1068 | + __le16 tso_mss_cmp_max_err_vf_id; |
---|
| 1069 | + __le16 tx_rd_fbd_poison_qid; |
---|
| 1070 | + __le16 tx_rd_fbd_poison_vf_id; |
---|
| 1071 | + __le16 rx_rd_fbd_poison_qid; |
---|
| 1072 | + __le16 rx_rd_fbd_poison_vf_id; |
---|
| 1073 | + u8 rsv[4]; |
---|
| 1074 | +}; |
---|
| 1075 | + |
---|
| 1076 | +#define HCLGE_LINK_EVENT_REPORT_EN_B 0 |
---|
| 1077 | +#define HCLGE_NCSI_ERROR_REPORT_EN_B 1 |
---|
| 1078 | +struct hclge_firmware_compat_cmd { |
---|
| 1079 | + __le32 compat; |
---|
| 1080 | + u8 rsv[20]; |
---|
| 1081 | +}; |
---|
| 1082 | + |
---|
| 1083 | +#define HCLGE_SFP_INFO_CMD_NUM 6 |
---|
| 1084 | +#define HCLGE_SFP_INFO_BD0_LEN 20 |
---|
| 1085 | +#define HCLGE_SFP_INFO_BDX_LEN 24 |
---|
| 1086 | +#define HCLGE_SFP_INFO_MAX_LEN \ |
---|
| 1087 | + (HCLGE_SFP_INFO_BD0_LEN + \ |
---|
| 1088 | + (HCLGE_SFP_INFO_CMD_NUM - 1) * HCLGE_SFP_INFO_BDX_LEN) |
---|
| 1089 | + |
---|
| 1090 | +struct hclge_sfp_info_bd0_cmd { |
---|
| 1091 | + __le16 offset; |
---|
| 1092 | + __le16 read_len; |
---|
| 1093 | + u8 data[HCLGE_SFP_INFO_BD0_LEN]; |
---|
| 1094 | +}; |
---|
| 1095 | + |
---|
| 1096 | +#define HCLGE_QUERY_DEV_SPECS_BD_NUM 4 |
---|
| 1097 | + |
---|
| 1098 | +struct hclge_dev_specs_0_cmd { |
---|
| 1099 | + __le32 rsv0; |
---|
| 1100 | + __le32 mac_entry_num; |
---|
| 1101 | + __le32 mng_entry_num; |
---|
| 1102 | + __le16 rss_ind_tbl_size; |
---|
| 1103 | + __le16 rss_key_size; |
---|
| 1104 | + __le16 int_ql_max; |
---|
| 1105 | + u8 max_non_tso_bd_num; |
---|
| 1106 | + u8 rsv1; |
---|
| 1107 | + __le32 max_tm_rate; |
---|
819 | 1108 | }; |
---|
820 | 1109 | |
---|
821 | 1110 | int hclge_cmd_init(struct hclge_dev *hdev); |
---|
.. | .. |
---|
845 | 1134 | enum hclge_opcode_type opcode, bool is_read); |
---|
846 | 1135 | void hclge_cmd_reuse_desc(struct hclge_desc *desc, bool is_read); |
---|
847 | 1136 | |
---|
848 | | -int hclge_cmd_set_promisc_mode(struct hclge_dev *hdev, |
---|
849 | | - struct hclge_promisc_param *param); |
---|
850 | | - |
---|
851 | 1137 | enum hclge_cmd_status hclge_cmd_mdio_write(struct hclge_hw *hw, |
---|
852 | 1138 | struct hclge_desc *desc); |
---|
853 | 1139 | enum hclge_cmd_status hclge_cmd_mdio_read(struct hclge_hw *hw, |
---|
854 | 1140 | struct hclge_desc *desc); |
---|
855 | 1141 | |
---|
856 | | -void hclge_destroy_cmd_queue(struct hclge_hw *hw); |
---|
| 1142 | +void hclge_cmd_uninit(struct hclge_dev *hdev); |
---|
857 | 1143 | int hclge_cmd_queue_init(struct hclge_dev *hdev); |
---|
858 | 1144 | #endif |
---|