18c2ecf20Sopenharmony_ci/* 28c2ecf20Sopenharmony_ci * This file is part of the Chelsio T4 Ethernet driver for Linux. 38c2ecf20Sopenharmony_ci * 48c2ecf20Sopenharmony_ci * Copyright (c) 2009-2016 Chelsio Communications, Inc. All rights reserved. 58c2ecf20Sopenharmony_ci * 68c2ecf20Sopenharmony_ci * This software is available to you under a choice of one of two 78c2ecf20Sopenharmony_ci * licenses. You may choose to be licensed under the terms of the GNU 88c2ecf20Sopenharmony_ci * General Public License (GPL) Version 2, available from the file 98c2ecf20Sopenharmony_ci * COPYING in the main directory of this source tree, or the 108c2ecf20Sopenharmony_ci * OpenIB.org BSD license below: 118c2ecf20Sopenharmony_ci * 128c2ecf20Sopenharmony_ci * Redistribution and use in source and binary forms, with or 138c2ecf20Sopenharmony_ci * without modification, are permitted provided that the following 148c2ecf20Sopenharmony_ci * conditions are met: 158c2ecf20Sopenharmony_ci * 168c2ecf20Sopenharmony_ci * - Redistributions of source code must retain the above 178c2ecf20Sopenharmony_ci * copyright notice, this list of conditions and the following 188c2ecf20Sopenharmony_ci * disclaimer. 198c2ecf20Sopenharmony_ci * 208c2ecf20Sopenharmony_ci * - Redistributions in binary form must reproduce the above 218c2ecf20Sopenharmony_ci * copyright notice, this list of conditions and the following 228c2ecf20Sopenharmony_ci * disclaimer in the documentation and/or other materials 238c2ecf20Sopenharmony_ci * provided with the distribution. 248c2ecf20Sopenharmony_ci * 258c2ecf20Sopenharmony_ci * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 268c2ecf20Sopenharmony_ci * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 278c2ecf20Sopenharmony_ci * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 288c2ecf20Sopenharmony_ci * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 298c2ecf20Sopenharmony_ci * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 308c2ecf20Sopenharmony_ci * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 318c2ecf20Sopenharmony_ci * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 328c2ecf20Sopenharmony_ci * SOFTWARE. 338c2ecf20Sopenharmony_ci */ 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ci#ifndef _T4FW_INTERFACE_H_ 368c2ecf20Sopenharmony_ci#define _T4FW_INTERFACE_H_ 378c2ecf20Sopenharmony_ci 388c2ecf20Sopenharmony_cienum fw_retval { 398c2ecf20Sopenharmony_ci FW_SUCCESS = 0, /* completed successfully */ 408c2ecf20Sopenharmony_ci FW_EPERM = 1, /* operation not permitted */ 418c2ecf20Sopenharmony_ci FW_ENOENT = 2, /* no such file or directory */ 428c2ecf20Sopenharmony_ci FW_EIO = 5, /* input/output error; hw bad */ 438c2ecf20Sopenharmony_ci FW_ENOEXEC = 8, /* exec format error; inv microcode */ 448c2ecf20Sopenharmony_ci FW_EAGAIN = 11, /* try again */ 458c2ecf20Sopenharmony_ci FW_ENOMEM = 12, /* out of memory */ 468c2ecf20Sopenharmony_ci FW_EFAULT = 14, /* bad address; fw bad */ 478c2ecf20Sopenharmony_ci FW_EBUSY = 16, /* resource busy */ 488c2ecf20Sopenharmony_ci FW_EEXIST = 17, /* file exists */ 498c2ecf20Sopenharmony_ci FW_ENODEV = 19, /* no such device */ 508c2ecf20Sopenharmony_ci FW_EINVAL = 22, /* invalid argument */ 518c2ecf20Sopenharmony_ci FW_ENOSPC = 28, /* no space left on device */ 528c2ecf20Sopenharmony_ci FW_ENOSYS = 38, /* functionality not implemented */ 538c2ecf20Sopenharmony_ci FW_ENODATA = 61, /* no data available */ 548c2ecf20Sopenharmony_ci FW_EPROTO = 71, /* protocol error */ 558c2ecf20Sopenharmony_ci FW_EADDRINUSE = 98, /* address already in use */ 568c2ecf20Sopenharmony_ci FW_EADDRNOTAVAIL = 99, /* cannot assigned requested address */ 578c2ecf20Sopenharmony_ci FW_ENETDOWN = 100, /* network is down */ 588c2ecf20Sopenharmony_ci FW_ENETUNREACH = 101, /* network is unreachable */ 598c2ecf20Sopenharmony_ci FW_ENOBUFS = 105, /* no buffer space available */ 608c2ecf20Sopenharmony_ci FW_ETIMEDOUT = 110, /* timeout */ 618c2ecf20Sopenharmony_ci FW_EINPROGRESS = 115, /* fw internal */ 628c2ecf20Sopenharmony_ci FW_SCSI_ABORT_REQUESTED = 128, /* */ 638c2ecf20Sopenharmony_ci FW_SCSI_ABORT_TIMEDOUT = 129, /* */ 648c2ecf20Sopenharmony_ci FW_SCSI_ABORTED = 130, /* */ 658c2ecf20Sopenharmony_ci FW_SCSI_CLOSE_REQUESTED = 131, /* */ 668c2ecf20Sopenharmony_ci FW_ERR_LINK_DOWN = 132, /* */ 678c2ecf20Sopenharmony_ci FW_RDEV_NOT_READY = 133, /* */ 688c2ecf20Sopenharmony_ci FW_ERR_RDEV_LOST = 134, /* */ 698c2ecf20Sopenharmony_ci FW_ERR_RDEV_LOGO = 135, /* */ 708c2ecf20Sopenharmony_ci FW_FCOE_NO_XCHG = 136, /* */ 718c2ecf20Sopenharmony_ci FW_SCSI_RSP_ERR = 137, /* */ 728c2ecf20Sopenharmony_ci FW_ERR_RDEV_IMPL_LOGO = 138, /* */ 738c2ecf20Sopenharmony_ci FW_SCSI_UNDER_FLOW_ERR = 139, /* */ 748c2ecf20Sopenharmony_ci FW_SCSI_OVER_FLOW_ERR = 140, /* */ 758c2ecf20Sopenharmony_ci FW_SCSI_DDP_ERR = 141, /* DDP error*/ 768c2ecf20Sopenharmony_ci FW_SCSI_TASK_ERR = 142, /* No SCSI tasks available */ 778c2ecf20Sopenharmony_ci}; 788c2ecf20Sopenharmony_ci 798c2ecf20Sopenharmony_ci#define FW_T4VF_SGE_BASE_ADDR 0x0000 808c2ecf20Sopenharmony_ci#define FW_T4VF_MPS_BASE_ADDR 0x0100 818c2ecf20Sopenharmony_ci#define FW_T4VF_PL_BASE_ADDR 0x0200 828c2ecf20Sopenharmony_ci#define FW_T4VF_MBDATA_BASE_ADDR 0x0240 838c2ecf20Sopenharmony_ci#define FW_T4VF_CIM_BASE_ADDR 0x0300 848c2ecf20Sopenharmony_ci 858c2ecf20Sopenharmony_cienum fw_wr_opcodes { 868c2ecf20Sopenharmony_ci FW_FILTER_WR = 0x02, 878c2ecf20Sopenharmony_ci FW_ULPTX_WR = 0x04, 888c2ecf20Sopenharmony_ci FW_TP_WR = 0x05, 898c2ecf20Sopenharmony_ci FW_ETH_TX_PKT_WR = 0x08, 908c2ecf20Sopenharmony_ci FW_ETH_TX_EO_WR = 0x1c, 918c2ecf20Sopenharmony_ci FW_OFLD_CONNECTION_WR = 0x2f, 928c2ecf20Sopenharmony_ci FW_FLOWC_WR = 0x0a, 938c2ecf20Sopenharmony_ci FW_OFLD_TX_DATA_WR = 0x0b, 948c2ecf20Sopenharmony_ci FW_CMD_WR = 0x10, 958c2ecf20Sopenharmony_ci FW_ETH_TX_PKT_VM_WR = 0x11, 968c2ecf20Sopenharmony_ci FW_RI_RES_WR = 0x0c, 978c2ecf20Sopenharmony_ci FW_RI_INIT_WR = 0x0d, 988c2ecf20Sopenharmony_ci FW_RI_RDMA_WRITE_WR = 0x14, 998c2ecf20Sopenharmony_ci FW_RI_SEND_WR = 0x15, 1008c2ecf20Sopenharmony_ci FW_RI_RDMA_READ_WR = 0x16, 1018c2ecf20Sopenharmony_ci FW_RI_RECV_WR = 0x17, 1028c2ecf20Sopenharmony_ci FW_RI_BIND_MW_WR = 0x18, 1038c2ecf20Sopenharmony_ci FW_RI_FR_NSMR_WR = 0x19, 1048c2ecf20Sopenharmony_ci FW_RI_FR_NSMR_TPTE_WR = 0x20, 1058c2ecf20Sopenharmony_ci FW_RI_RDMA_WRITE_CMPL_WR = 0x21, 1068c2ecf20Sopenharmony_ci FW_RI_INV_LSTAG_WR = 0x1a, 1078c2ecf20Sopenharmony_ci FW_ISCSI_TX_DATA_WR = 0x45, 1088c2ecf20Sopenharmony_ci FW_PTP_TX_PKT_WR = 0x46, 1098c2ecf20Sopenharmony_ci FW_TLSTX_DATA_WR = 0x68, 1108c2ecf20Sopenharmony_ci FW_CRYPTO_LOOKASIDE_WR = 0X6d, 1118c2ecf20Sopenharmony_ci FW_LASTC2E_WR = 0x70, 1128c2ecf20Sopenharmony_ci FW_FILTER2_WR = 0x77 1138c2ecf20Sopenharmony_ci}; 1148c2ecf20Sopenharmony_ci 1158c2ecf20Sopenharmony_cistruct fw_wr_hdr { 1168c2ecf20Sopenharmony_ci __be32 hi; 1178c2ecf20Sopenharmony_ci __be32 lo; 1188c2ecf20Sopenharmony_ci}; 1198c2ecf20Sopenharmony_ci 1208c2ecf20Sopenharmony_ci/* work request opcode (hi) */ 1218c2ecf20Sopenharmony_ci#define FW_WR_OP_S 24 1228c2ecf20Sopenharmony_ci#define FW_WR_OP_M 0xff 1238c2ecf20Sopenharmony_ci#define FW_WR_OP_V(x) ((x) << FW_WR_OP_S) 1248c2ecf20Sopenharmony_ci#define FW_WR_OP_G(x) (((x) >> FW_WR_OP_S) & FW_WR_OP_M) 1258c2ecf20Sopenharmony_ci 1268c2ecf20Sopenharmony_ci/* atomic flag (hi) - firmware encapsulates CPLs in CPL_BARRIER */ 1278c2ecf20Sopenharmony_ci#define FW_WR_ATOMIC_S 23 1288c2ecf20Sopenharmony_ci#define FW_WR_ATOMIC_V(x) ((x) << FW_WR_ATOMIC_S) 1298c2ecf20Sopenharmony_ci 1308c2ecf20Sopenharmony_ci/* flush flag (hi) - firmware flushes flushable work request buffered 1318c2ecf20Sopenharmony_ci * in the flow context. 1328c2ecf20Sopenharmony_ci */ 1338c2ecf20Sopenharmony_ci#define FW_WR_FLUSH_S 22 1348c2ecf20Sopenharmony_ci#define FW_WR_FLUSH_V(x) ((x) << FW_WR_FLUSH_S) 1358c2ecf20Sopenharmony_ci 1368c2ecf20Sopenharmony_ci/* completion flag (hi) - firmware generates a cpl_fw6_ack */ 1378c2ecf20Sopenharmony_ci#define FW_WR_COMPL_S 21 1388c2ecf20Sopenharmony_ci#define FW_WR_COMPL_V(x) ((x) << FW_WR_COMPL_S) 1398c2ecf20Sopenharmony_ci#define FW_WR_COMPL_F FW_WR_COMPL_V(1U) 1408c2ecf20Sopenharmony_ci 1418c2ecf20Sopenharmony_ci/* work request immediate data length (hi) */ 1428c2ecf20Sopenharmony_ci#define FW_WR_IMMDLEN_S 0 1438c2ecf20Sopenharmony_ci#define FW_WR_IMMDLEN_M 0xff 1448c2ecf20Sopenharmony_ci#define FW_WR_IMMDLEN_V(x) ((x) << FW_WR_IMMDLEN_S) 1458c2ecf20Sopenharmony_ci 1468c2ecf20Sopenharmony_ci/* egress queue status update to associated ingress queue entry (lo) */ 1478c2ecf20Sopenharmony_ci#define FW_WR_EQUIQ_S 31 1488c2ecf20Sopenharmony_ci#define FW_WR_EQUIQ_V(x) ((x) << FW_WR_EQUIQ_S) 1498c2ecf20Sopenharmony_ci#define FW_WR_EQUIQ_F FW_WR_EQUIQ_V(1U) 1508c2ecf20Sopenharmony_ci 1518c2ecf20Sopenharmony_ci/* egress queue status update to egress queue status entry (lo) */ 1528c2ecf20Sopenharmony_ci#define FW_WR_EQUEQ_S 30 1538c2ecf20Sopenharmony_ci#define FW_WR_EQUEQ_V(x) ((x) << FW_WR_EQUEQ_S) 1548c2ecf20Sopenharmony_ci#define FW_WR_EQUEQ_F FW_WR_EQUEQ_V(1U) 1558c2ecf20Sopenharmony_ci 1568c2ecf20Sopenharmony_ci/* flow context identifier (lo) */ 1578c2ecf20Sopenharmony_ci#define FW_WR_FLOWID_S 8 1588c2ecf20Sopenharmony_ci#define FW_WR_FLOWID_V(x) ((x) << FW_WR_FLOWID_S) 1598c2ecf20Sopenharmony_ci 1608c2ecf20Sopenharmony_ci/* length in units of 16-bytes (lo) */ 1618c2ecf20Sopenharmony_ci#define FW_WR_LEN16_S 0 1628c2ecf20Sopenharmony_ci#define FW_WR_LEN16_V(x) ((x) << FW_WR_LEN16_S) 1638c2ecf20Sopenharmony_ci 1648c2ecf20Sopenharmony_ci#define HW_TPL_FR_MT_PR_IV_P_FC 0X32B 1658c2ecf20Sopenharmony_ci#define HW_TPL_FR_MT_PR_OV_P_FC 0X327 1668c2ecf20Sopenharmony_ci 1678c2ecf20Sopenharmony_ci/* filter wr reply code in cookie in CPL_SET_TCB_RPL */ 1688c2ecf20Sopenharmony_cienum fw_filter_wr_cookie { 1698c2ecf20Sopenharmony_ci FW_FILTER_WR_SUCCESS, 1708c2ecf20Sopenharmony_ci FW_FILTER_WR_FLT_ADDED, 1718c2ecf20Sopenharmony_ci FW_FILTER_WR_FLT_DELETED, 1728c2ecf20Sopenharmony_ci FW_FILTER_WR_SMT_TBL_FULL, 1738c2ecf20Sopenharmony_ci FW_FILTER_WR_EINVAL, 1748c2ecf20Sopenharmony_ci}; 1758c2ecf20Sopenharmony_ci 1768c2ecf20Sopenharmony_cistruct fw_filter_wr { 1778c2ecf20Sopenharmony_ci __be32 op_pkd; 1788c2ecf20Sopenharmony_ci __be32 len16_pkd; 1798c2ecf20Sopenharmony_ci __be64 r3; 1808c2ecf20Sopenharmony_ci __be32 tid_to_iq; 1818c2ecf20Sopenharmony_ci __be32 del_filter_to_l2tix; 1828c2ecf20Sopenharmony_ci __be16 ethtype; 1838c2ecf20Sopenharmony_ci __be16 ethtypem; 1848c2ecf20Sopenharmony_ci __u8 frag_to_ovlan_vldm; 1858c2ecf20Sopenharmony_ci __u8 smac_sel; 1868c2ecf20Sopenharmony_ci __be16 rx_chan_rx_rpl_iq; 1878c2ecf20Sopenharmony_ci __be32 maci_to_matchtypem; 1888c2ecf20Sopenharmony_ci __u8 ptcl; 1898c2ecf20Sopenharmony_ci __u8 ptclm; 1908c2ecf20Sopenharmony_ci __u8 ttyp; 1918c2ecf20Sopenharmony_ci __u8 ttypm; 1928c2ecf20Sopenharmony_ci __be16 ivlan; 1938c2ecf20Sopenharmony_ci __be16 ivlanm; 1948c2ecf20Sopenharmony_ci __be16 ovlan; 1958c2ecf20Sopenharmony_ci __be16 ovlanm; 1968c2ecf20Sopenharmony_ci __u8 lip[16]; 1978c2ecf20Sopenharmony_ci __u8 lipm[16]; 1988c2ecf20Sopenharmony_ci __u8 fip[16]; 1998c2ecf20Sopenharmony_ci __u8 fipm[16]; 2008c2ecf20Sopenharmony_ci __be16 lp; 2018c2ecf20Sopenharmony_ci __be16 lpm; 2028c2ecf20Sopenharmony_ci __be16 fp; 2038c2ecf20Sopenharmony_ci __be16 fpm; 2048c2ecf20Sopenharmony_ci __be16 r7; 2058c2ecf20Sopenharmony_ci __u8 sma[6]; 2068c2ecf20Sopenharmony_ci}; 2078c2ecf20Sopenharmony_ci 2088c2ecf20Sopenharmony_cistruct fw_filter2_wr { 2098c2ecf20Sopenharmony_ci __be32 op_pkd; 2108c2ecf20Sopenharmony_ci __be32 len16_pkd; 2118c2ecf20Sopenharmony_ci __be64 r3; 2128c2ecf20Sopenharmony_ci __be32 tid_to_iq; 2138c2ecf20Sopenharmony_ci __be32 del_filter_to_l2tix; 2148c2ecf20Sopenharmony_ci __be16 ethtype; 2158c2ecf20Sopenharmony_ci __be16 ethtypem; 2168c2ecf20Sopenharmony_ci __u8 frag_to_ovlan_vldm; 2178c2ecf20Sopenharmony_ci __u8 smac_sel; 2188c2ecf20Sopenharmony_ci __be16 rx_chan_rx_rpl_iq; 2198c2ecf20Sopenharmony_ci __be32 maci_to_matchtypem; 2208c2ecf20Sopenharmony_ci __u8 ptcl; 2218c2ecf20Sopenharmony_ci __u8 ptclm; 2228c2ecf20Sopenharmony_ci __u8 ttyp; 2238c2ecf20Sopenharmony_ci __u8 ttypm; 2248c2ecf20Sopenharmony_ci __be16 ivlan; 2258c2ecf20Sopenharmony_ci __be16 ivlanm; 2268c2ecf20Sopenharmony_ci __be16 ovlan; 2278c2ecf20Sopenharmony_ci __be16 ovlanm; 2288c2ecf20Sopenharmony_ci __u8 lip[16]; 2298c2ecf20Sopenharmony_ci __u8 lipm[16]; 2308c2ecf20Sopenharmony_ci __u8 fip[16]; 2318c2ecf20Sopenharmony_ci __u8 fipm[16]; 2328c2ecf20Sopenharmony_ci __be16 lp; 2338c2ecf20Sopenharmony_ci __be16 lpm; 2348c2ecf20Sopenharmony_ci __be16 fp; 2358c2ecf20Sopenharmony_ci __be16 fpm; 2368c2ecf20Sopenharmony_ci __be16 r7; 2378c2ecf20Sopenharmony_ci __u8 sma[6]; 2388c2ecf20Sopenharmony_ci __be16 r8; 2398c2ecf20Sopenharmony_ci __u8 filter_type_swapmac; 2408c2ecf20Sopenharmony_ci __u8 natmode_to_ulp_type; 2418c2ecf20Sopenharmony_ci __be16 newlport; 2428c2ecf20Sopenharmony_ci __be16 newfport; 2438c2ecf20Sopenharmony_ci __u8 newlip[16]; 2448c2ecf20Sopenharmony_ci __u8 newfip[16]; 2458c2ecf20Sopenharmony_ci __be32 natseqcheck; 2468c2ecf20Sopenharmony_ci __be32 r9; 2478c2ecf20Sopenharmony_ci __be64 r10; 2488c2ecf20Sopenharmony_ci __be64 r11; 2498c2ecf20Sopenharmony_ci __be64 r12; 2508c2ecf20Sopenharmony_ci __be64 r13; 2518c2ecf20Sopenharmony_ci}; 2528c2ecf20Sopenharmony_ci 2538c2ecf20Sopenharmony_ci#define FW_FILTER_WR_TID_S 12 2548c2ecf20Sopenharmony_ci#define FW_FILTER_WR_TID_M 0xfffff 2558c2ecf20Sopenharmony_ci#define FW_FILTER_WR_TID_V(x) ((x) << FW_FILTER_WR_TID_S) 2568c2ecf20Sopenharmony_ci#define FW_FILTER_WR_TID_G(x) \ 2578c2ecf20Sopenharmony_ci (((x) >> FW_FILTER_WR_TID_S) & FW_FILTER_WR_TID_M) 2588c2ecf20Sopenharmony_ci 2598c2ecf20Sopenharmony_ci#define FW_FILTER_WR_RQTYPE_S 11 2608c2ecf20Sopenharmony_ci#define FW_FILTER_WR_RQTYPE_M 0x1 2618c2ecf20Sopenharmony_ci#define FW_FILTER_WR_RQTYPE_V(x) ((x) << FW_FILTER_WR_RQTYPE_S) 2628c2ecf20Sopenharmony_ci#define FW_FILTER_WR_RQTYPE_G(x) \ 2638c2ecf20Sopenharmony_ci (((x) >> FW_FILTER_WR_RQTYPE_S) & FW_FILTER_WR_RQTYPE_M) 2648c2ecf20Sopenharmony_ci#define FW_FILTER_WR_RQTYPE_F FW_FILTER_WR_RQTYPE_V(1U) 2658c2ecf20Sopenharmony_ci 2668c2ecf20Sopenharmony_ci#define FW_FILTER_WR_NOREPLY_S 10 2678c2ecf20Sopenharmony_ci#define FW_FILTER_WR_NOREPLY_M 0x1 2688c2ecf20Sopenharmony_ci#define FW_FILTER_WR_NOREPLY_V(x) ((x) << FW_FILTER_WR_NOREPLY_S) 2698c2ecf20Sopenharmony_ci#define FW_FILTER_WR_NOREPLY_G(x) \ 2708c2ecf20Sopenharmony_ci (((x) >> FW_FILTER_WR_NOREPLY_S) & FW_FILTER_WR_NOREPLY_M) 2718c2ecf20Sopenharmony_ci#define FW_FILTER_WR_NOREPLY_F FW_FILTER_WR_NOREPLY_V(1U) 2728c2ecf20Sopenharmony_ci 2738c2ecf20Sopenharmony_ci#define FW_FILTER_WR_IQ_S 0 2748c2ecf20Sopenharmony_ci#define FW_FILTER_WR_IQ_M 0x3ff 2758c2ecf20Sopenharmony_ci#define FW_FILTER_WR_IQ_V(x) ((x) << FW_FILTER_WR_IQ_S) 2768c2ecf20Sopenharmony_ci#define FW_FILTER_WR_IQ_G(x) \ 2778c2ecf20Sopenharmony_ci (((x) >> FW_FILTER_WR_IQ_S) & FW_FILTER_WR_IQ_M) 2788c2ecf20Sopenharmony_ci 2798c2ecf20Sopenharmony_ci#define FW_FILTER_WR_DEL_FILTER_S 31 2808c2ecf20Sopenharmony_ci#define FW_FILTER_WR_DEL_FILTER_M 0x1 2818c2ecf20Sopenharmony_ci#define FW_FILTER_WR_DEL_FILTER_V(x) ((x) << FW_FILTER_WR_DEL_FILTER_S) 2828c2ecf20Sopenharmony_ci#define FW_FILTER_WR_DEL_FILTER_G(x) \ 2838c2ecf20Sopenharmony_ci (((x) >> FW_FILTER_WR_DEL_FILTER_S) & FW_FILTER_WR_DEL_FILTER_M) 2848c2ecf20Sopenharmony_ci#define FW_FILTER_WR_DEL_FILTER_F FW_FILTER_WR_DEL_FILTER_V(1U) 2858c2ecf20Sopenharmony_ci 2868c2ecf20Sopenharmony_ci#define FW_FILTER_WR_RPTTID_S 25 2878c2ecf20Sopenharmony_ci#define FW_FILTER_WR_RPTTID_M 0x1 2888c2ecf20Sopenharmony_ci#define FW_FILTER_WR_RPTTID_V(x) ((x) << FW_FILTER_WR_RPTTID_S) 2898c2ecf20Sopenharmony_ci#define FW_FILTER_WR_RPTTID_G(x) \ 2908c2ecf20Sopenharmony_ci (((x) >> FW_FILTER_WR_RPTTID_S) & FW_FILTER_WR_RPTTID_M) 2918c2ecf20Sopenharmony_ci#define FW_FILTER_WR_RPTTID_F FW_FILTER_WR_RPTTID_V(1U) 2928c2ecf20Sopenharmony_ci 2938c2ecf20Sopenharmony_ci#define FW_FILTER_WR_DROP_S 24 2948c2ecf20Sopenharmony_ci#define FW_FILTER_WR_DROP_M 0x1 2958c2ecf20Sopenharmony_ci#define FW_FILTER_WR_DROP_V(x) ((x) << FW_FILTER_WR_DROP_S) 2968c2ecf20Sopenharmony_ci#define FW_FILTER_WR_DROP_G(x) \ 2978c2ecf20Sopenharmony_ci (((x) >> FW_FILTER_WR_DROP_S) & FW_FILTER_WR_DROP_M) 2988c2ecf20Sopenharmony_ci#define FW_FILTER_WR_DROP_F FW_FILTER_WR_DROP_V(1U) 2998c2ecf20Sopenharmony_ci 3008c2ecf20Sopenharmony_ci#define FW_FILTER_WR_DIRSTEER_S 23 3018c2ecf20Sopenharmony_ci#define FW_FILTER_WR_DIRSTEER_M 0x1 3028c2ecf20Sopenharmony_ci#define FW_FILTER_WR_DIRSTEER_V(x) ((x) << FW_FILTER_WR_DIRSTEER_S) 3038c2ecf20Sopenharmony_ci#define FW_FILTER_WR_DIRSTEER_G(x) \ 3048c2ecf20Sopenharmony_ci (((x) >> FW_FILTER_WR_DIRSTEER_S) & FW_FILTER_WR_DIRSTEER_M) 3058c2ecf20Sopenharmony_ci#define FW_FILTER_WR_DIRSTEER_F FW_FILTER_WR_DIRSTEER_V(1U) 3068c2ecf20Sopenharmony_ci 3078c2ecf20Sopenharmony_ci#define FW_FILTER_WR_MASKHASH_S 22 3088c2ecf20Sopenharmony_ci#define FW_FILTER_WR_MASKHASH_M 0x1 3098c2ecf20Sopenharmony_ci#define FW_FILTER_WR_MASKHASH_V(x) ((x) << FW_FILTER_WR_MASKHASH_S) 3108c2ecf20Sopenharmony_ci#define FW_FILTER_WR_MASKHASH_G(x) \ 3118c2ecf20Sopenharmony_ci (((x) >> FW_FILTER_WR_MASKHASH_S) & FW_FILTER_WR_MASKHASH_M) 3128c2ecf20Sopenharmony_ci#define FW_FILTER_WR_MASKHASH_F FW_FILTER_WR_MASKHASH_V(1U) 3138c2ecf20Sopenharmony_ci 3148c2ecf20Sopenharmony_ci#define FW_FILTER_WR_DIRSTEERHASH_S 21 3158c2ecf20Sopenharmony_ci#define FW_FILTER_WR_DIRSTEERHASH_M 0x1 3168c2ecf20Sopenharmony_ci#define FW_FILTER_WR_DIRSTEERHASH_V(x) ((x) << FW_FILTER_WR_DIRSTEERHASH_S) 3178c2ecf20Sopenharmony_ci#define FW_FILTER_WR_DIRSTEERHASH_G(x) \ 3188c2ecf20Sopenharmony_ci (((x) >> FW_FILTER_WR_DIRSTEERHASH_S) & FW_FILTER_WR_DIRSTEERHASH_M) 3198c2ecf20Sopenharmony_ci#define FW_FILTER_WR_DIRSTEERHASH_F FW_FILTER_WR_DIRSTEERHASH_V(1U) 3208c2ecf20Sopenharmony_ci 3218c2ecf20Sopenharmony_ci#define FW_FILTER_WR_LPBK_S 20 3228c2ecf20Sopenharmony_ci#define FW_FILTER_WR_LPBK_M 0x1 3238c2ecf20Sopenharmony_ci#define FW_FILTER_WR_LPBK_V(x) ((x) << FW_FILTER_WR_LPBK_S) 3248c2ecf20Sopenharmony_ci#define FW_FILTER_WR_LPBK_G(x) \ 3258c2ecf20Sopenharmony_ci (((x) >> FW_FILTER_WR_LPBK_S) & FW_FILTER_WR_LPBK_M) 3268c2ecf20Sopenharmony_ci#define FW_FILTER_WR_LPBK_F FW_FILTER_WR_LPBK_V(1U) 3278c2ecf20Sopenharmony_ci 3288c2ecf20Sopenharmony_ci#define FW_FILTER_WR_DMAC_S 19 3298c2ecf20Sopenharmony_ci#define FW_FILTER_WR_DMAC_M 0x1 3308c2ecf20Sopenharmony_ci#define FW_FILTER_WR_DMAC_V(x) ((x) << FW_FILTER_WR_DMAC_S) 3318c2ecf20Sopenharmony_ci#define FW_FILTER_WR_DMAC_G(x) \ 3328c2ecf20Sopenharmony_ci (((x) >> FW_FILTER_WR_DMAC_S) & FW_FILTER_WR_DMAC_M) 3338c2ecf20Sopenharmony_ci#define FW_FILTER_WR_DMAC_F FW_FILTER_WR_DMAC_V(1U) 3348c2ecf20Sopenharmony_ci 3358c2ecf20Sopenharmony_ci#define FW_FILTER_WR_SMAC_S 18 3368c2ecf20Sopenharmony_ci#define FW_FILTER_WR_SMAC_M 0x1 3378c2ecf20Sopenharmony_ci#define FW_FILTER_WR_SMAC_V(x) ((x) << FW_FILTER_WR_SMAC_S) 3388c2ecf20Sopenharmony_ci#define FW_FILTER_WR_SMAC_G(x) \ 3398c2ecf20Sopenharmony_ci (((x) >> FW_FILTER_WR_SMAC_S) & FW_FILTER_WR_SMAC_M) 3408c2ecf20Sopenharmony_ci#define FW_FILTER_WR_SMAC_F FW_FILTER_WR_SMAC_V(1U) 3418c2ecf20Sopenharmony_ci 3428c2ecf20Sopenharmony_ci#define FW_FILTER_WR_INSVLAN_S 17 3438c2ecf20Sopenharmony_ci#define FW_FILTER_WR_INSVLAN_M 0x1 3448c2ecf20Sopenharmony_ci#define FW_FILTER_WR_INSVLAN_V(x) ((x) << FW_FILTER_WR_INSVLAN_S) 3458c2ecf20Sopenharmony_ci#define FW_FILTER_WR_INSVLAN_G(x) \ 3468c2ecf20Sopenharmony_ci (((x) >> FW_FILTER_WR_INSVLAN_S) & FW_FILTER_WR_INSVLAN_M) 3478c2ecf20Sopenharmony_ci#define FW_FILTER_WR_INSVLAN_F FW_FILTER_WR_INSVLAN_V(1U) 3488c2ecf20Sopenharmony_ci 3498c2ecf20Sopenharmony_ci#define FW_FILTER_WR_RMVLAN_S 16 3508c2ecf20Sopenharmony_ci#define FW_FILTER_WR_RMVLAN_M 0x1 3518c2ecf20Sopenharmony_ci#define FW_FILTER_WR_RMVLAN_V(x) ((x) << FW_FILTER_WR_RMVLAN_S) 3528c2ecf20Sopenharmony_ci#define FW_FILTER_WR_RMVLAN_G(x) \ 3538c2ecf20Sopenharmony_ci (((x) >> FW_FILTER_WR_RMVLAN_S) & FW_FILTER_WR_RMVLAN_M) 3548c2ecf20Sopenharmony_ci#define FW_FILTER_WR_RMVLAN_F FW_FILTER_WR_RMVLAN_V(1U) 3558c2ecf20Sopenharmony_ci 3568c2ecf20Sopenharmony_ci#define FW_FILTER_WR_HITCNTS_S 15 3578c2ecf20Sopenharmony_ci#define FW_FILTER_WR_HITCNTS_M 0x1 3588c2ecf20Sopenharmony_ci#define FW_FILTER_WR_HITCNTS_V(x) ((x) << FW_FILTER_WR_HITCNTS_S) 3598c2ecf20Sopenharmony_ci#define FW_FILTER_WR_HITCNTS_G(x) \ 3608c2ecf20Sopenharmony_ci (((x) >> FW_FILTER_WR_HITCNTS_S) & FW_FILTER_WR_HITCNTS_M) 3618c2ecf20Sopenharmony_ci#define FW_FILTER_WR_HITCNTS_F FW_FILTER_WR_HITCNTS_V(1U) 3628c2ecf20Sopenharmony_ci 3638c2ecf20Sopenharmony_ci#define FW_FILTER_WR_TXCHAN_S 13 3648c2ecf20Sopenharmony_ci#define FW_FILTER_WR_TXCHAN_M 0x3 3658c2ecf20Sopenharmony_ci#define FW_FILTER_WR_TXCHAN_V(x) ((x) << FW_FILTER_WR_TXCHAN_S) 3668c2ecf20Sopenharmony_ci#define FW_FILTER_WR_TXCHAN_G(x) \ 3678c2ecf20Sopenharmony_ci (((x) >> FW_FILTER_WR_TXCHAN_S) & FW_FILTER_WR_TXCHAN_M) 3688c2ecf20Sopenharmony_ci 3698c2ecf20Sopenharmony_ci#define FW_FILTER_WR_PRIO_S 12 3708c2ecf20Sopenharmony_ci#define FW_FILTER_WR_PRIO_M 0x1 3718c2ecf20Sopenharmony_ci#define FW_FILTER_WR_PRIO_V(x) ((x) << FW_FILTER_WR_PRIO_S) 3728c2ecf20Sopenharmony_ci#define FW_FILTER_WR_PRIO_G(x) \ 3738c2ecf20Sopenharmony_ci (((x) >> FW_FILTER_WR_PRIO_S) & FW_FILTER_WR_PRIO_M) 3748c2ecf20Sopenharmony_ci#define FW_FILTER_WR_PRIO_F FW_FILTER_WR_PRIO_V(1U) 3758c2ecf20Sopenharmony_ci 3768c2ecf20Sopenharmony_ci#define FW_FILTER_WR_L2TIX_S 0 3778c2ecf20Sopenharmony_ci#define FW_FILTER_WR_L2TIX_M 0xfff 3788c2ecf20Sopenharmony_ci#define FW_FILTER_WR_L2TIX_V(x) ((x) << FW_FILTER_WR_L2TIX_S) 3798c2ecf20Sopenharmony_ci#define FW_FILTER_WR_L2TIX_G(x) \ 3808c2ecf20Sopenharmony_ci (((x) >> FW_FILTER_WR_L2TIX_S) & FW_FILTER_WR_L2TIX_M) 3818c2ecf20Sopenharmony_ci 3828c2ecf20Sopenharmony_ci#define FW_FILTER_WR_FRAG_S 7 3838c2ecf20Sopenharmony_ci#define FW_FILTER_WR_FRAG_M 0x1 3848c2ecf20Sopenharmony_ci#define FW_FILTER_WR_FRAG_V(x) ((x) << FW_FILTER_WR_FRAG_S) 3858c2ecf20Sopenharmony_ci#define FW_FILTER_WR_FRAG_G(x) \ 3868c2ecf20Sopenharmony_ci (((x) >> FW_FILTER_WR_FRAG_S) & FW_FILTER_WR_FRAG_M) 3878c2ecf20Sopenharmony_ci#define FW_FILTER_WR_FRAG_F FW_FILTER_WR_FRAG_V(1U) 3888c2ecf20Sopenharmony_ci 3898c2ecf20Sopenharmony_ci#define FW_FILTER_WR_FRAGM_S 6 3908c2ecf20Sopenharmony_ci#define FW_FILTER_WR_FRAGM_M 0x1 3918c2ecf20Sopenharmony_ci#define FW_FILTER_WR_FRAGM_V(x) ((x) << FW_FILTER_WR_FRAGM_S) 3928c2ecf20Sopenharmony_ci#define FW_FILTER_WR_FRAGM_G(x) \ 3938c2ecf20Sopenharmony_ci (((x) >> FW_FILTER_WR_FRAGM_S) & FW_FILTER_WR_FRAGM_M) 3948c2ecf20Sopenharmony_ci#define FW_FILTER_WR_FRAGM_F FW_FILTER_WR_FRAGM_V(1U) 3958c2ecf20Sopenharmony_ci 3968c2ecf20Sopenharmony_ci#define FW_FILTER_WR_IVLAN_VLD_S 5 3978c2ecf20Sopenharmony_ci#define FW_FILTER_WR_IVLAN_VLD_M 0x1 3988c2ecf20Sopenharmony_ci#define FW_FILTER_WR_IVLAN_VLD_V(x) ((x) << FW_FILTER_WR_IVLAN_VLD_S) 3998c2ecf20Sopenharmony_ci#define FW_FILTER_WR_IVLAN_VLD_G(x) \ 4008c2ecf20Sopenharmony_ci (((x) >> FW_FILTER_WR_IVLAN_VLD_S) & FW_FILTER_WR_IVLAN_VLD_M) 4018c2ecf20Sopenharmony_ci#define FW_FILTER_WR_IVLAN_VLD_F FW_FILTER_WR_IVLAN_VLD_V(1U) 4028c2ecf20Sopenharmony_ci 4038c2ecf20Sopenharmony_ci#define FW_FILTER_WR_OVLAN_VLD_S 4 4048c2ecf20Sopenharmony_ci#define FW_FILTER_WR_OVLAN_VLD_M 0x1 4058c2ecf20Sopenharmony_ci#define FW_FILTER_WR_OVLAN_VLD_V(x) ((x) << FW_FILTER_WR_OVLAN_VLD_S) 4068c2ecf20Sopenharmony_ci#define FW_FILTER_WR_OVLAN_VLD_G(x) \ 4078c2ecf20Sopenharmony_ci (((x) >> FW_FILTER_WR_OVLAN_VLD_S) & FW_FILTER_WR_OVLAN_VLD_M) 4088c2ecf20Sopenharmony_ci#define FW_FILTER_WR_OVLAN_VLD_F FW_FILTER_WR_OVLAN_VLD_V(1U) 4098c2ecf20Sopenharmony_ci 4108c2ecf20Sopenharmony_ci#define FW_FILTER_WR_IVLAN_VLDM_S 3 4118c2ecf20Sopenharmony_ci#define FW_FILTER_WR_IVLAN_VLDM_M 0x1 4128c2ecf20Sopenharmony_ci#define FW_FILTER_WR_IVLAN_VLDM_V(x) ((x) << FW_FILTER_WR_IVLAN_VLDM_S) 4138c2ecf20Sopenharmony_ci#define FW_FILTER_WR_IVLAN_VLDM_G(x) \ 4148c2ecf20Sopenharmony_ci (((x) >> FW_FILTER_WR_IVLAN_VLDM_S) & FW_FILTER_WR_IVLAN_VLDM_M) 4158c2ecf20Sopenharmony_ci#define FW_FILTER_WR_IVLAN_VLDM_F FW_FILTER_WR_IVLAN_VLDM_V(1U) 4168c2ecf20Sopenharmony_ci 4178c2ecf20Sopenharmony_ci#define FW_FILTER_WR_OVLAN_VLDM_S 2 4188c2ecf20Sopenharmony_ci#define FW_FILTER_WR_OVLAN_VLDM_M 0x1 4198c2ecf20Sopenharmony_ci#define FW_FILTER_WR_OVLAN_VLDM_V(x) ((x) << FW_FILTER_WR_OVLAN_VLDM_S) 4208c2ecf20Sopenharmony_ci#define FW_FILTER_WR_OVLAN_VLDM_G(x) \ 4218c2ecf20Sopenharmony_ci (((x) >> FW_FILTER_WR_OVLAN_VLDM_S) & FW_FILTER_WR_OVLAN_VLDM_M) 4228c2ecf20Sopenharmony_ci#define FW_FILTER_WR_OVLAN_VLDM_F FW_FILTER_WR_OVLAN_VLDM_V(1U) 4238c2ecf20Sopenharmony_ci 4248c2ecf20Sopenharmony_ci#define FW_FILTER_WR_RX_CHAN_S 15 4258c2ecf20Sopenharmony_ci#define FW_FILTER_WR_RX_CHAN_M 0x1 4268c2ecf20Sopenharmony_ci#define FW_FILTER_WR_RX_CHAN_V(x) ((x) << FW_FILTER_WR_RX_CHAN_S) 4278c2ecf20Sopenharmony_ci#define FW_FILTER_WR_RX_CHAN_G(x) \ 4288c2ecf20Sopenharmony_ci (((x) >> FW_FILTER_WR_RX_CHAN_S) & FW_FILTER_WR_RX_CHAN_M) 4298c2ecf20Sopenharmony_ci#define FW_FILTER_WR_RX_CHAN_F FW_FILTER_WR_RX_CHAN_V(1U) 4308c2ecf20Sopenharmony_ci 4318c2ecf20Sopenharmony_ci#define FW_FILTER_WR_RX_RPL_IQ_S 0 4328c2ecf20Sopenharmony_ci#define FW_FILTER_WR_RX_RPL_IQ_M 0x3ff 4338c2ecf20Sopenharmony_ci#define FW_FILTER_WR_RX_RPL_IQ_V(x) ((x) << FW_FILTER_WR_RX_RPL_IQ_S) 4348c2ecf20Sopenharmony_ci#define FW_FILTER_WR_RX_RPL_IQ_G(x) \ 4358c2ecf20Sopenharmony_ci (((x) >> FW_FILTER_WR_RX_RPL_IQ_S) & FW_FILTER_WR_RX_RPL_IQ_M) 4368c2ecf20Sopenharmony_ci 4378c2ecf20Sopenharmony_ci#define FW_FILTER2_WR_FILTER_TYPE_S 1 4388c2ecf20Sopenharmony_ci#define FW_FILTER2_WR_FILTER_TYPE_M 0x1 4398c2ecf20Sopenharmony_ci#define FW_FILTER2_WR_FILTER_TYPE_V(x) ((x) << FW_FILTER2_WR_FILTER_TYPE_S) 4408c2ecf20Sopenharmony_ci#define FW_FILTER2_WR_FILTER_TYPE_G(x) \ 4418c2ecf20Sopenharmony_ci (((x) >> FW_FILTER2_WR_FILTER_TYPE_S) & FW_FILTER2_WR_FILTER_TYPE_M) 4428c2ecf20Sopenharmony_ci#define FW_FILTER2_WR_FILTER_TYPE_F FW_FILTER2_WR_FILTER_TYPE_V(1U) 4438c2ecf20Sopenharmony_ci 4448c2ecf20Sopenharmony_ci#define FW_FILTER2_WR_NATMODE_S 5 4458c2ecf20Sopenharmony_ci#define FW_FILTER2_WR_NATMODE_M 0x7 4468c2ecf20Sopenharmony_ci#define FW_FILTER2_WR_NATMODE_V(x) ((x) << FW_FILTER2_WR_NATMODE_S) 4478c2ecf20Sopenharmony_ci#define FW_FILTER2_WR_NATMODE_G(x) \ 4488c2ecf20Sopenharmony_ci (((x) >> FW_FILTER2_WR_NATMODE_S) & FW_FILTER2_WR_NATMODE_M) 4498c2ecf20Sopenharmony_ci 4508c2ecf20Sopenharmony_ci#define FW_FILTER2_WR_NATFLAGCHECK_S 4 4518c2ecf20Sopenharmony_ci#define FW_FILTER2_WR_NATFLAGCHECK_M 0x1 4528c2ecf20Sopenharmony_ci#define FW_FILTER2_WR_NATFLAGCHECK_V(x) ((x) << FW_FILTER2_WR_NATFLAGCHECK_S) 4538c2ecf20Sopenharmony_ci#define FW_FILTER2_WR_NATFLAGCHECK_G(x) \ 4548c2ecf20Sopenharmony_ci (((x) >> FW_FILTER2_WR_NATFLAGCHECK_S) & FW_FILTER2_WR_NATFLAGCHECK_M) 4558c2ecf20Sopenharmony_ci#define FW_FILTER2_WR_NATFLAGCHECK_F FW_FILTER2_WR_NATFLAGCHECK_V(1U) 4568c2ecf20Sopenharmony_ci 4578c2ecf20Sopenharmony_ci#define FW_FILTER2_WR_ULP_TYPE_S 0 4588c2ecf20Sopenharmony_ci#define FW_FILTER2_WR_ULP_TYPE_M 0xf 4598c2ecf20Sopenharmony_ci#define FW_FILTER2_WR_ULP_TYPE_V(x) ((x) << FW_FILTER2_WR_ULP_TYPE_S) 4608c2ecf20Sopenharmony_ci#define FW_FILTER2_WR_ULP_TYPE_G(x) \ 4618c2ecf20Sopenharmony_ci (((x) >> FW_FILTER2_WR_ULP_TYPE_S) & FW_FILTER2_WR_ULP_TYPE_M) 4628c2ecf20Sopenharmony_ci 4638c2ecf20Sopenharmony_ci#define FW_FILTER_WR_MACI_S 23 4648c2ecf20Sopenharmony_ci#define FW_FILTER_WR_MACI_M 0x1ff 4658c2ecf20Sopenharmony_ci#define FW_FILTER_WR_MACI_V(x) ((x) << FW_FILTER_WR_MACI_S) 4668c2ecf20Sopenharmony_ci#define FW_FILTER_WR_MACI_G(x) \ 4678c2ecf20Sopenharmony_ci (((x) >> FW_FILTER_WR_MACI_S) & FW_FILTER_WR_MACI_M) 4688c2ecf20Sopenharmony_ci 4698c2ecf20Sopenharmony_ci#define FW_FILTER_WR_MACIM_S 14 4708c2ecf20Sopenharmony_ci#define FW_FILTER_WR_MACIM_M 0x1ff 4718c2ecf20Sopenharmony_ci#define FW_FILTER_WR_MACIM_V(x) ((x) << FW_FILTER_WR_MACIM_S) 4728c2ecf20Sopenharmony_ci#define FW_FILTER_WR_MACIM_G(x) \ 4738c2ecf20Sopenharmony_ci (((x) >> FW_FILTER_WR_MACIM_S) & FW_FILTER_WR_MACIM_M) 4748c2ecf20Sopenharmony_ci 4758c2ecf20Sopenharmony_ci#define FW_FILTER_WR_FCOE_S 13 4768c2ecf20Sopenharmony_ci#define FW_FILTER_WR_FCOE_M 0x1 4778c2ecf20Sopenharmony_ci#define FW_FILTER_WR_FCOE_V(x) ((x) << FW_FILTER_WR_FCOE_S) 4788c2ecf20Sopenharmony_ci#define FW_FILTER_WR_FCOE_G(x) \ 4798c2ecf20Sopenharmony_ci (((x) >> FW_FILTER_WR_FCOE_S) & FW_FILTER_WR_FCOE_M) 4808c2ecf20Sopenharmony_ci#define FW_FILTER_WR_FCOE_F FW_FILTER_WR_FCOE_V(1U) 4818c2ecf20Sopenharmony_ci 4828c2ecf20Sopenharmony_ci#define FW_FILTER_WR_FCOEM_S 12 4838c2ecf20Sopenharmony_ci#define FW_FILTER_WR_FCOEM_M 0x1 4848c2ecf20Sopenharmony_ci#define FW_FILTER_WR_FCOEM_V(x) ((x) << FW_FILTER_WR_FCOEM_S) 4858c2ecf20Sopenharmony_ci#define FW_FILTER_WR_FCOEM_G(x) \ 4868c2ecf20Sopenharmony_ci (((x) >> FW_FILTER_WR_FCOEM_S) & FW_FILTER_WR_FCOEM_M) 4878c2ecf20Sopenharmony_ci#define FW_FILTER_WR_FCOEM_F FW_FILTER_WR_FCOEM_V(1U) 4888c2ecf20Sopenharmony_ci 4898c2ecf20Sopenharmony_ci#define FW_FILTER_WR_PORT_S 9 4908c2ecf20Sopenharmony_ci#define FW_FILTER_WR_PORT_M 0x7 4918c2ecf20Sopenharmony_ci#define FW_FILTER_WR_PORT_V(x) ((x) << FW_FILTER_WR_PORT_S) 4928c2ecf20Sopenharmony_ci#define FW_FILTER_WR_PORT_G(x) \ 4938c2ecf20Sopenharmony_ci (((x) >> FW_FILTER_WR_PORT_S) & FW_FILTER_WR_PORT_M) 4948c2ecf20Sopenharmony_ci 4958c2ecf20Sopenharmony_ci#define FW_FILTER_WR_PORTM_S 6 4968c2ecf20Sopenharmony_ci#define FW_FILTER_WR_PORTM_M 0x7 4978c2ecf20Sopenharmony_ci#define FW_FILTER_WR_PORTM_V(x) ((x) << FW_FILTER_WR_PORTM_S) 4988c2ecf20Sopenharmony_ci#define FW_FILTER_WR_PORTM_G(x) \ 4998c2ecf20Sopenharmony_ci (((x) >> FW_FILTER_WR_PORTM_S) & FW_FILTER_WR_PORTM_M) 5008c2ecf20Sopenharmony_ci 5018c2ecf20Sopenharmony_ci#define FW_FILTER_WR_MATCHTYPE_S 3 5028c2ecf20Sopenharmony_ci#define FW_FILTER_WR_MATCHTYPE_M 0x7 5038c2ecf20Sopenharmony_ci#define FW_FILTER_WR_MATCHTYPE_V(x) ((x) << FW_FILTER_WR_MATCHTYPE_S) 5048c2ecf20Sopenharmony_ci#define FW_FILTER_WR_MATCHTYPE_G(x) \ 5058c2ecf20Sopenharmony_ci (((x) >> FW_FILTER_WR_MATCHTYPE_S) & FW_FILTER_WR_MATCHTYPE_M) 5068c2ecf20Sopenharmony_ci 5078c2ecf20Sopenharmony_ci#define FW_FILTER_WR_MATCHTYPEM_S 0 5088c2ecf20Sopenharmony_ci#define FW_FILTER_WR_MATCHTYPEM_M 0x7 5098c2ecf20Sopenharmony_ci#define FW_FILTER_WR_MATCHTYPEM_V(x) ((x) << FW_FILTER_WR_MATCHTYPEM_S) 5108c2ecf20Sopenharmony_ci#define FW_FILTER_WR_MATCHTYPEM_G(x) \ 5118c2ecf20Sopenharmony_ci (((x) >> FW_FILTER_WR_MATCHTYPEM_S) & FW_FILTER_WR_MATCHTYPEM_M) 5128c2ecf20Sopenharmony_ci 5138c2ecf20Sopenharmony_cistruct fw_ulptx_wr { 5148c2ecf20Sopenharmony_ci __be32 op_to_compl; 5158c2ecf20Sopenharmony_ci __be32 flowid_len16; 5168c2ecf20Sopenharmony_ci u64 cookie; 5178c2ecf20Sopenharmony_ci}; 5188c2ecf20Sopenharmony_ci 5198c2ecf20Sopenharmony_ci#define FW_ULPTX_WR_DATA_S 28 5208c2ecf20Sopenharmony_ci#define FW_ULPTX_WR_DATA_M 0x1 5218c2ecf20Sopenharmony_ci#define FW_ULPTX_WR_DATA_V(x) ((x) << FW_ULPTX_WR_DATA_S) 5228c2ecf20Sopenharmony_ci#define FW_ULPTX_WR_DATA_G(x) \ 5238c2ecf20Sopenharmony_ci (((x) >> FW_ULPTX_WR_DATA_S) & FW_ULPTX_WR_DATA_M) 5248c2ecf20Sopenharmony_ci#define FW_ULPTX_WR_DATA_F FW_ULPTX_WR_DATA_V(1U) 5258c2ecf20Sopenharmony_ci 5268c2ecf20Sopenharmony_cistruct fw_tp_wr { 5278c2ecf20Sopenharmony_ci __be32 op_to_immdlen; 5288c2ecf20Sopenharmony_ci __be32 flowid_len16; 5298c2ecf20Sopenharmony_ci u64 cookie; 5308c2ecf20Sopenharmony_ci}; 5318c2ecf20Sopenharmony_ci 5328c2ecf20Sopenharmony_cistruct fw_eth_tx_pkt_wr { 5338c2ecf20Sopenharmony_ci __be32 op_immdlen; 5348c2ecf20Sopenharmony_ci __be32 equiq_to_len16; 5358c2ecf20Sopenharmony_ci __be64 r3; 5368c2ecf20Sopenharmony_ci}; 5378c2ecf20Sopenharmony_ci 5388c2ecf20Sopenharmony_cienum fw_eth_tx_eo_type { 5398c2ecf20Sopenharmony_ci FW_ETH_TX_EO_TYPE_UDPSEG = 0, 5408c2ecf20Sopenharmony_ci FW_ETH_TX_EO_TYPE_TCPSEG, 5418c2ecf20Sopenharmony_ci}; 5428c2ecf20Sopenharmony_ci 5438c2ecf20Sopenharmony_cistruct fw_eth_tx_eo_wr { 5448c2ecf20Sopenharmony_ci __be32 op_immdlen; 5458c2ecf20Sopenharmony_ci __be32 equiq_to_len16; 5468c2ecf20Sopenharmony_ci __be64 r3; 5478c2ecf20Sopenharmony_ci union fw_eth_tx_eo { 5488c2ecf20Sopenharmony_ci struct fw_eth_tx_eo_udpseg { 5498c2ecf20Sopenharmony_ci __u8 type; 5508c2ecf20Sopenharmony_ci __u8 ethlen; 5518c2ecf20Sopenharmony_ci __be16 iplen; 5528c2ecf20Sopenharmony_ci __u8 udplen; 5538c2ecf20Sopenharmony_ci __u8 rtplen; 5548c2ecf20Sopenharmony_ci __be16 r4; 5558c2ecf20Sopenharmony_ci __be16 mss; 5568c2ecf20Sopenharmony_ci __be16 schedpktsize; 5578c2ecf20Sopenharmony_ci __be32 plen; 5588c2ecf20Sopenharmony_ci } udpseg; 5598c2ecf20Sopenharmony_ci struct fw_eth_tx_eo_tcpseg { 5608c2ecf20Sopenharmony_ci __u8 type; 5618c2ecf20Sopenharmony_ci __u8 ethlen; 5628c2ecf20Sopenharmony_ci __be16 iplen; 5638c2ecf20Sopenharmony_ci __u8 tcplen; 5648c2ecf20Sopenharmony_ci __u8 tsclk_tsoff; 5658c2ecf20Sopenharmony_ci __be16 r4; 5668c2ecf20Sopenharmony_ci __be16 mss; 5678c2ecf20Sopenharmony_ci __be16 r5; 5688c2ecf20Sopenharmony_ci __be32 plen; 5698c2ecf20Sopenharmony_ci } tcpseg; 5708c2ecf20Sopenharmony_ci } u; 5718c2ecf20Sopenharmony_ci}; 5728c2ecf20Sopenharmony_ci 5738c2ecf20Sopenharmony_ci#define FW_ETH_TX_EO_WR_IMMDLEN_S 0 5748c2ecf20Sopenharmony_ci#define FW_ETH_TX_EO_WR_IMMDLEN_M 0x1ff 5758c2ecf20Sopenharmony_ci#define FW_ETH_TX_EO_WR_IMMDLEN_V(x) ((x) << FW_ETH_TX_EO_WR_IMMDLEN_S) 5768c2ecf20Sopenharmony_ci#define FW_ETH_TX_EO_WR_IMMDLEN_G(x) \ 5778c2ecf20Sopenharmony_ci (((x) >> FW_ETH_TX_EO_WR_IMMDLEN_S) & FW_ETH_TX_EO_WR_IMMDLEN_M) 5788c2ecf20Sopenharmony_ci 5798c2ecf20Sopenharmony_cistruct fw_ofld_connection_wr { 5808c2ecf20Sopenharmony_ci __be32 op_compl; 5818c2ecf20Sopenharmony_ci __be32 len16_pkd; 5828c2ecf20Sopenharmony_ci __u64 cookie; 5838c2ecf20Sopenharmony_ci __be64 r2; 5848c2ecf20Sopenharmony_ci __be64 r3; 5858c2ecf20Sopenharmony_ci struct fw_ofld_connection_le { 5868c2ecf20Sopenharmony_ci __be32 version_cpl; 5878c2ecf20Sopenharmony_ci __be32 filter; 5888c2ecf20Sopenharmony_ci __be32 r1; 5898c2ecf20Sopenharmony_ci __be16 lport; 5908c2ecf20Sopenharmony_ci __be16 pport; 5918c2ecf20Sopenharmony_ci union fw_ofld_connection_leip { 5928c2ecf20Sopenharmony_ci struct fw_ofld_connection_le_ipv4 { 5938c2ecf20Sopenharmony_ci __be32 pip; 5948c2ecf20Sopenharmony_ci __be32 lip; 5958c2ecf20Sopenharmony_ci __be64 r0; 5968c2ecf20Sopenharmony_ci __be64 r1; 5978c2ecf20Sopenharmony_ci __be64 r2; 5988c2ecf20Sopenharmony_ci } ipv4; 5998c2ecf20Sopenharmony_ci struct fw_ofld_connection_le_ipv6 { 6008c2ecf20Sopenharmony_ci __be64 pip_hi; 6018c2ecf20Sopenharmony_ci __be64 pip_lo; 6028c2ecf20Sopenharmony_ci __be64 lip_hi; 6038c2ecf20Sopenharmony_ci __be64 lip_lo; 6048c2ecf20Sopenharmony_ci } ipv6; 6058c2ecf20Sopenharmony_ci } u; 6068c2ecf20Sopenharmony_ci } le; 6078c2ecf20Sopenharmony_ci struct fw_ofld_connection_tcb { 6088c2ecf20Sopenharmony_ci __be32 t_state_to_astid; 6098c2ecf20Sopenharmony_ci __be16 cplrxdataack_cplpassacceptrpl; 6108c2ecf20Sopenharmony_ci __be16 rcv_adv; 6118c2ecf20Sopenharmony_ci __be32 rcv_nxt; 6128c2ecf20Sopenharmony_ci __be32 tx_max; 6138c2ecf20Sopenharmony_ci __be64 opt0; 6148c2ecf20Sopenharmony_ci __be32 opt2; 6158c2ecf20Sopenharmony_ci __be32 r1; 6168c2ecf20Sopenharmony_ci __be64 r2; 6178c2ecf20Sopenharmony_ci __be64 r3; 6188c2ecf20Sopenharmony_ci } tcb; 6198c2ecf20Sopenharmony_ci}; 6208c2ecf20Sopenharmony_ci 6218c2ecf20Sopenharmony_ci#define FW_OFLD_CONNECTION_WR_VERSION_S 31 6228c2ecf20Sopenharmony_ci#define FW_OFLD_CONNECTION_WR_VERSION_M 0x1 6238c2ecf20Sopenharmony_ci#define FW_OFLD_CONNECTION_WR_VERSION_V(x) \ 6248c2ecf20Sopenharmony_ci ((x) << FW_OFLD_CONNECTION_WR_VERSION_S) 6258c2ecf20Sopenharmony_ci#define FW_OFLD_CONNECTION_WR_VERSION_G(x) \ 6268c2ecf20Sopenharmony_ci (((x) >> FW_OFLD_CONNECTION_WR_VERSION_S) & \ 6278c2ecf20Sopenharmony_ci FW_OFLD_CONNECTION_WR_VERSION_M) 6288c2ecf20Sopenharmony_ci#define FW_OFLD_CONNECTION_WR_VERSION_F \ 6298c2ecf20Sopenharmony_ci FW_OFLD_CONNECTION_WR_VERSION_V(1U) 6308c2ecf20Sopenharmony_ci 6318c2ecf20Sopenharmony_ci#define FW_OFLD_CONNECTION_WR_CPL_S 30 6328c2ecf20Sopenharmony_ci#define FW_OFLD_CONNECTION_WR_CPL_M 0x1 6338c2ecf20Sopenharmony_ci#define FW_OFLD_CONNECTION_WR_CPL_V(x) ((x) << FW_OFLD_CONNECTION_WR_CPL_S) 6348c2ecf20Sopenharmony_ci#define FW_OFLD_CONNECTION_WR_CPL_G(x) \ 6358c2ecf20Sopenharmony_ci (((x) >> FW_OFLD_CONNECTION_WR_CPL_S) & FW_OFLD_CONNECTION_WR_CPL_M) 6368c2ecf20Sopenharmony_ci#define FW_OFLD_CONNECTION_WR_CPL_F FW_OFLD_CONNECTION_WR_CPL_V(1U) 6378c2ecf20Sopenharmony_ci 6388c2ecf20Sopenharmony_ci#define FW_OFLD_CONNECTION_WR_T_STATE_S 28 6398c2ecf20Sopenharmony_ci#define FW_OFLD_CONNECTION_WR_T_STATE_M 0xf 6408c2ecf20Sopenharmony_ci#define FW_OFLD_CONNECTION_WR_T_STATE_V(x) \ 6418c2ecf20Sopenharmony_ci ((x) << FW_OFLD_CONNECTION_WR_T_STATE_S) 6428c2ecf20Sopenharmony_ci#define FW_OFLD_CONNECTION_WR_T_STATE_G(x) \ 6438c2ecf20Sopenharmony_ci (((x) >> FW_OFLD_CONNECTION_WR_T_STATE_S) & \ 6448c2ecf20Sopenharmony_ci FW_OFLD_CONNECTION_WR_T_STATE_M) 6458c2ecf20Sopenharmony_ci 6468c2ecf20Sopenharmony_ci#define FW_OFLD_CONNECTION_WR_RCV_SCALE_S 24 6478c2ecf20Sopenharmony_ci#define FW_OFLD_CONNECTION_WR_RCV_SCALE_M 0xf 6488c2ecf20Sopenharmony_ci#define FW_OFLD_CONNECTION_WR_RCV_SCALE_V(x) \ 6498c2ecf20Sopenharmony_ci ((x) << FW_OFLD_CONNECTION_WR_RCV_SCALE_S) 6508c2ecf20Sopenharmony_ci#define FW_OFLD_CONNECTION_WR_RCV_SCALE_G(x) \ 6518c2ecf20Sopenharmony_ci (((x) >> FW_OFLD_CONNECTION_WR_RCV_SCALE_S) & \ 6528c2ecf20Sopenharmony_ci FW_OFLD_CONNECTION_WR_RCV_SCALE_M) 6538c2ecf20Sopenharmony_ci 6548c2ecf20Sopenharmony_ci#define FW_OFLD_CONNECTION_WR_ASTID_S 0 6558c2ecf20Sopenharmony_ci#define FW_OFLD_CONNECTION_WR_ASTID_M 0xffffff 6568c2ecf20Sopenharmony_ci#define FW_OFLD_CONNECTION_WR_ASTID_V(x) \ 6578c2ecf20Sopenharmony_ci ((x) << FW_OFLD_CONNECTION_WR_ASTID_S) 6588c2ecf20Sopenharmony_ci#define FW_OFLD_CONNECTION_WR_ASTID_G(x) \ 6598c2ecf20Sopenharmony_ci (((x) >> FW_OFLD_CONNECTION_WR_ASTID_S) & FW_OFLD_CONNECTION_WR_ASTID_M) 6608c2ecf20Sopenharmony_ci 6618c2ecf20Sopenharmony_ci#define FW_OFLD_CONNECTION_WR_CPLRXDATAACK_S 15 6628c2ecf20Sopenharmony_ci#define FW_OFLD_CONNECTION_WR_CPLRXDATAACK_M 0x1 6638c2ecf20Sopenharmony_ci#define FW_OFLD_CONNECTION_WR_CPLRXDATAACK_V(x) \ 6648c2ecf20Sopenharmony_ci ((x) << FW_OFLD_CONNECTION_WR_CPLRXDATAACK_S) 6658c2ecf20Sopenharmony_ci#define FW_OFLD_CONNECTION_WR_CPLRXDATAACK_G(x) \ 6668c2ecf20Sopenharmony_ci (((x) >> FW_OFLD_CONNECTION_WR_CPLRXDATAACK_S) & \ 6678c2ecf20Sopenharmony_ci FW_OFLD_CONNECTION_WR_CPLRXDATAACK_M) 6688c2ecf20Sopenharmony_ci#define FW_OFLD_CONNECTION_WR_CPLRXDATAACK_F \ 6698c2ecf20Sopenharmony_ci FW_OFLD_CONNECTION_WR_CPLRXDATAACK_V(1U) 6708c2ecf20Sopenharmony_ci 6718c2ecf20Sopenharmony_ci#define FW_OFLD_CONNECTION_WR_CPLPASSACCEPTRPL_S 14 6728c2ecf20Sopenharmony_ci#define FW_OFLD_CONNECTION_WR_CPLPASSACCEPTRPL_M 0x1 6738c2ecf20Sopenharmony_ci#define FW_OFLD_CONNECTION_WR_CPLPASSACCEPTRPL_V(x) \ 6748c2ecf20Sopenharmony_ci ((x) << FW_OFLD_CONNECTION_WR_CPLPASSACCEPTRPL_S) 6758c2ecf20Sopenharmony_ci#define FW_OFLD_CONNECTION_WR_CPLPASSACCEPTRPL_G(x) \ 6768c2ecf20Sopenharmony_ci (((x) >> FW_OFLD_CONNECTION_WR_CPLPASSACCEPTRPL_S) & \ 6778c2ecf20Sopenharmony_ci FW_OFLD_CONNECTION_WR_CPLPASSACCEPTRPL_M) 6788c2ecf20Sopenharmony_ci#define FW_OFLD_CONNECTION_WR_CPLPASSACCEPTRPL_F \ 6798c2ecf20Sopenharmony_ci FW_OFLD_CONNECTION_WR_CPLPASSACCEPTRPL_V(1U) 6808c2ecf20Sopenharmony_ci 6818c2ecf20Sopenharmony_cienum fw_flowc_mnem_tcpstate { 6828c2ecf20Sopenharmony_ci FW_FLOWC_MNEM_TCPSTATE_CLOSED = 0, /* illegal */ 6838c2ecf20Sopenharmony_ci FW_FLOWC_MNEM_TCPSTATE_LISTEN = 1, /* illegal */ 6848c2ecf20Sopenharmony_ci FW_FLOWC_MNEM_TCPSTATE_SYNSENT = 2, /* illegal */ 6858c2ecf20Sopenharmony_ci FW_FLOWC_MNEM_TCPSTATE_SYNRECEIVED = 3, /* illegal */ 6868c2ecf20Sopenharmony_ci FW_FLOWC_MNEM_TCPSTATE_ESTABLISHED = 4, /* default */ 6878c2ecf20Sopenharmony_ci FW_FLOWC_MNEM_TCPSTATE_CLOSEWAIT = 5, /* got peer close already */ 6888c2ecf20Sopenharmony_ci FW_FLOWC_MNEM_TCPSTATE_FINWAIT1 = 6, /* haven't gotten ACK for FIN and 6898c2ecf20Sopenharmony_ci * will resend FIN - equiv ESTAB 6908c2ecf20Sopenharmony_ci */ 6918c2ecf20Sopenharmony_ci FW_FLOWC_MNEM_TCPSTATE_CLOSING = 7, /* haven't gotten ACK for FIN and 6928c2ecf20Sopenharmony_ci * will resend FIN but have 6938c2ecf20Sopenharmony_ci * received FIN 6948c2ecf20Sopenharmony_ci */ 6958c2ecf20Sopenharmony_ci FW_FLOWC_MNEM_TCPSTATE_LASTACK = 8, /* haven't gotten ACK for FIN and 6968c2ecf20Sopenharmony_ci * will resend FIN but have 6978c2ecf20Sopenharmony_ci * received FIN 6988c2ecf20Sopenharmony_ci */ 6998c2ecf20Sopenharmony_ci FW_FLOWC_MNEM_TCPSTATE_FINWAIT2 = 9, /* sent FIN and got FIN + ACK, 7008c2ecf20Sopenharmony_ci * waiting for FIN 7018c2ecf20Sopenharmony_ci */ 7028c2ecf20Sopenharmony_ci FW_FLOWC_MNEM_TCPSTATE_TIMEWAIT = 10, /* not expected */ 7038c2ecf20Sopenharmony_ci}; 7048c2ecf20Sopenharmony_ci 7058c2ecf20Sopenharmony_cienum fw_flowc_mnem_eostate { 7068c2ecf20Sopenharmony_ci FW_FLOWC_MNEM_EOSTATE_ESTABLISHED = 1, /* default */ 7078c2ecf20Sopenharmony_ci /* graceful close, after sending outstanding payload */ 7088c2ecf20Sopenharmony_ci FW_FLOWC_MNEM_EOSTATE_CLOSING = 2, 7098c2ecf20Sopenharmony_ci}; 7108c2ecf20Sopenharmony_ci 7118c2ecf20Sopenharmony_cienum fw_flowc_mnem { 7128c2ecf20Sopenharmony_ci FW_FLOWC_MNEM_PFNVFN, /* PFN [15:8] VFN [7:0] */ 7138c2ecf20Sopenharmony_ci FW_FLOWC_MNEM_CH, 7148c2ecf20Sopenharmony_ci FW_FLOWC_MNEM_PORT, 7158c2ecf20Sopenharmony_ci FW_FLOWC_MNEM_IQID, 7168c2ecf20Sopenharmony_ci FW_FLOWC_MNEM_SNDNXT, 7178c2ecf20Sopenharmony_ci FW_FLOWC_MNEM_RCVNXT, 7188c2ecf20Sopenharmony_ci FW_FLOWC_MNEM_SNDBUF, 7198c2ecf20Sopenharmony_ci FW_FLOWC_MNEM_MSS, 7208c2ecf20Sopenharmony_ci FW_FLOWC_MNEM_TXDATAPLEN_MAX, 7218c2ecf20Sopenharmony_ci FW_FLOWC_MNEM_TCPSTATE, 7228c2ecf20Sopenharmony_ci FW_FLOWC_MNEM_EOSTATE, 7238c2ecf20Sopenharmony_ci FW_FLOWC_MNEM_SCHEDCLASS, 7248c2ecf20Sopenharmony_ci FW_FLOWC_MNEM_DCBPRIO, 7258c2ecf20Sopenharmony_ci FW_FLOWC_MNEM_SND_SCALE, 7268c2ecf20Sopenharmony_ci FW_FLOWC_MNEM_RCV_SCALE, 7278c2ecf20Sopenharmony_ci FW_FLOWC_MNEM_ULD_MODE, 7288c2ecf20Sopenharmony_ci FW_FLOWC_MNEM_MAX, 7298c2ecf20Sopenharmony_ci}; 7308c2ecf20Sopenharmony_ci 7318c2ecf20Sopenharmony_cistruct fw_flowc_mnemval { 7328c2ecf20Sopenharmony_ci u8 mnemonic; 7338c2ecf20Sopenharmony_ci u8 r4[3]; 7348c2ecf20Sopenharmony_ci __be32 val; 7358c2ecf20Sopenharmony_ci}; 7368c2ecf20Sopenharmony_ci 7378c2ecf20Sopenharmony_cistruct fw_flowc_wr { 7388c2ecf20Sopenharmony_ci __be32 op_to_nparams; 7398c2ecf20Sopenharmony_ci __be32 flowid_len16; 7408c2ecf20Sopenharmony_ci struct fw_flowc_mnemval mnemval[]; 7418c2ecf20Sopenharmony_ci}; 7428c2ecf20Sopenharmony_ci 7438c2ecf20Sopenharmony_ci#define FW_FLOWC_WR_NPARAMS_S 0 7448c2ecf20Sopenharmony_ci#define FW_FLOWC_WR_NPARAMS_V(x) ((x) << FW_FLOWC_WR_NPARAMS_S) 7458c2ecf20Sopenharmony_ci 7468c2ecf20Sopenharmony_cistruct fw_ofld_tx_data_wr { 7478c2ecf20Sopenharmony_ci __be32 op_to_immdlen; 7488c2ecf20Sopenharmony_ci __be32 flowid_len16; 7498c2ecf20Sopenharmony_ci __be32 plen; 7508c2ecf20Sopenharmony_ci __be32 tunnel_to_proxy; 7518c2ecf20Sopenharmony_ci}; 7528c2ecf20Sopenharmony_ci 7538c2ecf20Sopenharmony_ci#define FW_OFLD_TX_DATA_WR_ALIGNPLD_S 30 7548c2ecf20Sopenharmony_ci#define FW_OFLD_TX_DATA_WR_ALIGNPLD_V(x) ((x) << FW_OFLD_TX_DATA_WR_ALIGNPLD_S) 7558c2ecf20Sopenharmony_ci#define FW_OFLD_TX_DATA_WR_ALIGNPLD_F FW_OFLD_TX_DATA_WR_ALIGNPLD_V(1U) 7568c2ecf20Sopenharmony_ci 7578c2ecf20Sopenharmony_ci#define FW_OFLD_TX_DATA_WR_SHOVE_S 29 7588c2ecf20Sopenharmony_ci#define FW_OFLD_TX_DATA_WR_SHOVE_V(x) ((x) << FW_OFLD_TX_DATA_WR_SHOVE_S) 7598c2ecf20Sopenharmony_ci#define FW_OFLD_TX_DATA_WR_SHOVE_F FW_OFLD_TX_DATA_WR_SHOVE_V(1U) 7608c2ecf20Sopenharmony_ci 7618c2ecf20Sopenharmony_ci#define FW_OFLD_TX_DATA_WR_TUNNEL_S 19 7628c2ecf20Sopenharmony_ci#define FW_OFLD_TX_DATA_WR_TUNNEL_V(x) ((x) << FW_OFLD_TX_DATA_WR_TUNNEL_S) 7638c2ecf20Sopenharmony_ci 7648c2ecf20Sopenharmony_ci#define FW_OFLD_TX_DATA_WR_SAVE_S 18 7658c2ecf20Sopenharmony_ci#define FW_OFLD_TX_DATA_WR_SAVE_V(x) ((x) << FW_OFLD_TX_DATA_WR_SAVE_S) 7668c2ecf20Sopenharmony_ci 7678c2ecf20Sopenharmony_ci#define FW_OFLD_TX_DATA_WR_FLUSH_S 17 7688c2ecf20Sopenharmony_ci#define FW_OFLD_TX_DATA_WR_FLUSH_V(x) ((x) << FW_OFLD_TX_DATA_WR_FLUSH_S) 7698c2ecf20Sopenharmony_ci#define FW_OFLD_TX_DATA_WR_FLUSH_F FW_OFLD_TX_DATA_WR_FLUSH_V(1U) 7708c2ecf20Sopenharmony_ci 7718c2ecf20Sopenharmony_ci#define FW_OFLD_TX_DATA_WR_URGENT_S 16 7728c2ecf20Sopenharmony_ci#define FW_OFLD_TX_DATA_WR_URGENT_V(x) ((x) << FW_OFLD_TX_DATA_WR_URGENT_S) 7738c2ecf20Sopenharmony_ci 7748c2ecf20Sopenharmony_ci#define FW_OFLD_TX_DATA_WR_MORE_S 15 7758c2ecf20Sopenharmony_ci#define FW_OFLD_TX_DATA_WR_MORE_V(x) ((x) << FW_OFLD_TX_DATA_WR_MORE_S) 7768c2ecf20Sopenharmony_ci 7778c2ecf20Sopenharmony_ci#define FW_OFLD_TX_DATA_WR_ULPMODE_S 10 7788c2ecf20Sopenharmony_ci#define FW_OFLD_TX_DATA_WR_ULPMODE_V(x) ((x) << FW_OFLD_TX_DATA_WR_ULPMODE_S) 7798c2ecf20Sopenharmony_ci 7808c2ecf20Sopenharmony_ci#define FW_OFLD_TX_DATA_WR_ULPSUBMODE_S 6 7818c2ecf20Sopenharmony_ci#define FW_OFLD_TX_DATA_WR_ULPSUBMODE_V(x) \ 7828c2ecf20Sopenharmony_ci ((x) << FW_OFLD_TX_DATA_WR_ULPSUBMODE_S) 7838c2ecf20Sopenharmony_ci 7848c2ecf20Sopenharmony_cistruct fw_cmd_wr { 7858c2ecf20Sopenharmony_ci __be32 op_dma; 7868c2ecf20Sopenharmony_ci __be32 len16_pkd; 7878c2ecf20Sopenharmony_ci __be64 cookie_daddr; 7888c2ecf20Sopenharmony_ci}; 7898c2ecf20Sopenharmony_ci 7908c2ecf20Sopenharmony_ci#define FW_CMD_WR_DMA_S 17 7918c2ecf20Sopenharmony_ci#define FW_CMD_WR_DMA_V(x) ((x) << FW_CMD_WR_DMA_S) 7928c2ecf20Sopenharmony_ci 7938c2ecf20Sopenharmony_cistruct fw_eth_tx_pkt_vm_wr { 7948c2ecf20Sopenharmony_ci __be32 op_immdlen; 7958c2ecf20Sopenharmony_ci __be32 equiq_to_len16; 7968c2ecf20Sopenharmony_ci __be32 r3[2]; 7978c2ecf20Sopenharmony_ci u8 ethmacdst[6]; 7988c2ecf20Sopenharmony_ci u8 ethmacsrc[6]; 7998c2ecf20Sopenharmony_ci __be16 ethtype; 8008c2ecf20Sopenharmony_ci __be16 vlantci; 8018c2ecf20Sopenharmony_ci}; 8028c2ecf20Sopenharmony_ci 8038c2ecf20Sopenharmony_ci#define FW_CMD_MAX_TIMEOUT 10000 8048c2ecf20Sopenharmony_ci 8058c2ecf20Sopenharmony_ci/* 8068c2ecf20Sopenharmony_ci * If a host driver does a HELLO and discovers that there's already a MASTER 8078c2ecf20Sopenharmony_ci * selected, we may have to wait for that MASTER to finish issuing RESET, 8088c2ecf20Sopenharmony_ci * configuration and INITIALIZE commands. Also, there's a possibility that 8098c2ecf20Sopenharmony_ci * our own HELLO may get lost if it happens right as the MASTER is issuign a 8108c2ecf20Sopenharmony_ci * RESET command, so we need to be willing to make a few retries of our HELLO. 8118c2ecf20Sopenharmony_ci */ 8128c2ecf20Sopenharmony_ci#define FW_CMD_HELLO_TIMEOUT (3 * FW_CMD_MAX_TIMEOUT) 8138c2ecf20Sopenharmony_ci#define FW_CMD_HELLO_RETRIES 3 8148c2ecf20Sopenharmony_ci 8158c2ecf20Sopenharmony_ci 8168c2ecf20Sopenharmony_cienum fw_cmd_opcodes { 8178c2ecf20Sopenharmony_ci FW_LDST_CMD = 0x01, 8188c2ecf20Sopenharmony_ci FW_RESET_CMD = 0x03, 8198c2ecf20Sopenharmony_ci FW_HELLO_CMD = 0x04, 8208c2ecf20Sopenharmony_ci FW_BYE_CMD = 0x05, 8218c2ecf20Sopenharmony_ci FW_INITIALIZE_CMD = 0x06, 8228c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_CMD = 0x07, 8238c2ecf20Sopenharmony_ci FW_PARAMS_CMD = 0x08, 8248c2ecf20Sopenharmony_ci FW_PFVF_CMD = 0x09, 8258c2ecf20Sopenharmony_ci FW_IQ_CMD = 0x10, 8268c2ecf20Sopenharmony_ci FW_EQ_MNGT_CMD = 0x11, 8278c2ecf20Sopenharmony_ci FW_EQ_ETH_CMD = 0x12, 8288c2ecf20Sopenharmony_ci FW_EQ_CTRL_CMD = 0x13, 8298c2ecf20Sopenharmony_ci FW_EQ_OFLD_CMD = 0x21, 8308c2ecf20Sopenharmony_ci FW_VI_CMD = 0x14, 8318c2ecf20Sopenharmony_ci FW_VI_MAC_CMD = 0x15, 8328c2ecf20Sopenharmony_ci FW_VI_RXMODE_CMD = 0x16, 8338c2ecf20Sopenharmony_ci FW_VI_ENABLE_CMD = 0x17, 8348c2ecf20Sopenharmony_ci FW_ACL_MAC_CMD = 0x18, 8358c2ecf20Sopenharmony_ci FW_ACL_VLAN_CMD = 0x19, 8368c2ecf20Sopenharmony_ci FW_VI_STATS_CMD = 0x1a, 8378c2ecf20Sopenharmony_ci FW_PORT_CMD = 0x1b, 8388c2ecf20Sopenharmony_ci FW_PORT_STATS_CMD = 0x1c, 8398c2ecf20Sopenharmony_ci FW_PORT_LB_STATS_CMD = 0x1d, 8408c2ecf20Sopenharmony_ci FW_PORT_TRACE_CMD = 0x1e, 8418c2ecf20Sopenharmony_ci FW_PORT_TRACE_MMAP_CMD = 0x1f, 8428c2ecf20Sopenharmony_ci FW_RSS_IND_TBL_CMD = 0x20, 8438c2ecf20Sopenharmony_ci FW_RSS_GLB_CONFIG_CMD = 0x22, 8448c2ecf20Sopenharmony_ci FW_RSS_VI_CONFIG_CMD = 0x23, 8458c2ecf20Sopenharmony_ci FW_SCHED_CMD = 0x24, 8468c2ecf20Sopenharmony_ci FW_DEVLOG_CMD = 0x25, 8478c2ecf20Sopenharmony_ci FW_CLIP_CMD = 0x28, 8488c2ecf20Sopenharmony_ci FW_PTP_CMD = 0x3e, 8498c2ecf20Sopenharmony_ci FW_HMA_CMD = 0x3f, 8508c2ecf20Sopenharmony_ci FW_LASTC2E_CMD = 0x40, 8518c2ecf20Sopenharmony_ci FW_ERROR_CMD = 0x80, 8528c2ecf20Sopenharmony_ci FW_DEBUG_CMD = 0x81, 8538c2ecf20Sopenharmony_ci}; 8548c2ecf20Sopenharmony_ci 8558c2ecf20Sopenharmony_cienum fw_cmd_cap { 8568c2ecf20Sopenharmony_ci FW_CMD_CAP_PF = 0x01, 8578c2ecf20Sopenharmony_ci FW_CMD_CAP_DMAQ = 0x02, 8588c2ecf20Sopenharmony_ci FW_CMD_CAP_PORT = 0x04, 8598c2ecf20Sopenharmony_ci FW_CMD_CAP_PORTPROMISC = 0x08, 8608c2ecf20Sopenharmony_ci FW_CMD_CAP_PORTSTATS = 0x10, 8618c2ecf20Sopenharmony_ci FW_CMD_CAP_VF = 0x80, 8628c2ecf20Sopenharmony_ci}; 8638c2ecf20Sopenharmony_ci 8648c2ecf20Sopenharmony_ci/* 8658c2ecf20Sopenharmony_ci * Generic command header flit0 8668c2ecf20Sopenharmony_ci */ 8678c2ecf20Sopenharmony_cistruct fw_cmd_hdr { 8688c2ecf20Sopenharmony_ci __be32 hi; 8698c2ecf20Sopenharmony_ci __be32 lo; 8708c2ecf20Sopenharmony_ci}; 8718c2ecf20Sopenharmony_ci 8728c2ecf20Sopenharmony_ci#define FW_CMD_OP_S 24 8738c2ecf20Sopenharmony_ci#define FW_CMD_OP_M 0xff 8748c2ecf20Sopenharmony_ci#define FW_CMD_OP_V(x) ((x) << FW_CMD_OP_S) 8758c2ecf20Sopenharmony_ci#define FW_CMD_OP_G(x) (((x) >> FW_CMD_OP_S) & FW_CMD_OP_M) 8768c2ecf20Sopenharmony_ci 8778c2ecf20Sopenharmony_ci#define FW_CMD_REQUEST_S 23 8788c2ecf20Sopenharmony_ci#define FW_CMD_REQUEST_V(x) ((x) << FW_CMD_REQUEST_S) 8798c2ecf20Sopenharmony_ci#define FW_CMD_REQUEST_F FW_CMD_REQUEST_V(1U) 8808c2ecf20Sopenharmony_ci 8818c2ecf20Sopenharmony_ci#define FW_CMD_READ_S 22 8828c2ecf20Sopenharmony_ci#define FW_CMD_READ_V(x) ((x) << FW_CMD_READ_S) 8838c2ecf20Sopenharmony_ci#define FW_CMD_READ_F FW_CMD_READ_V(1U) 8848c2ecf20Sopenharmony_ci 8858c2ecf20Sopenharmony_ci#define FW_CMD_WRITE_S 21 8868c2ecf20Sopenharmony_ci#define FW_CMD_WRITE_V(x) ((x) << FW_CMD_WRITE_S) 8878c2ecf20Sopenharmony_ci#define FW_CMD_WRITE_F FW_CMD_WRITE_V(1U) 8888c2ecf20Sopenharmony_ci 8898c2ecf20Sopenharmony_ci#define FW_CMD_EXEC_S 20 8908c2ecf20Sopenharmony_ci#define FW_CMD_EXEC_V(x) ((x) << FW_CMD_EXEC_S) 8918c2ecf20Sopenharmony_ci#define FW_CMD_EXEC_F FW_CMD_EXEC_V(1U) 8928c2ecf20Sopenharmony_ci 8938c2ecf20Sopenharmony_ci#define FW_CMD_RAMASK_S 20 8948c2ecf20Sopenharmony_ci#define FW_CMD_RAMASK_V(x) ((x) << FW_CMD_RAMASK_S) 8958c2ecf20Sopenharmony_ci 8968c2ecf20Sopenharmony_ci#define FW_CMD_RETVAL_S 8 8978c2ecf20Sopenharmony_ci#define FW_CMD_RETVAL_M 0xff 8988c2ecf20Sopenharmony_ci#define FW_CMD_RETVAL_V(x) ((x) << FW_CMD_RETVAL_S) 8998c2ecf20Sopenharmony_ci#define FW_CMD_RETVAL_G(x) (((x) >> FW_CMD_RETVAL_S) & FW_CMD_RETVAL_M) 9008c2ecf20Sopenharmony_ci 9018c2ecf20Sopenharmony_ci#define FW_CMD_LEN16_S 0 9028c2ecf20Sopenharmony_ci#define FW_CMD_LEN16_V(x) ((x) << FW_CMD_LEN16_S) 9038c2ecf20Sopenharmony_ci 9048c2ecf20Sopenharmony_ci#define FW_LEN16(fw_struct) FW_CMD_LEN16_V(sizeof(fw_struct) / 16) 9058c2ecf20Sopenharmony_ci 9068c2ecf20Sopenharmony_cienum fw_ldst_addrspc { 9078c2ecf20Sopenharmony_ci FW_LDST_ADDRSPC_FIRMWARE = 0x0001, 9088c2ecf20Sopenharmony_ci FW_LDST_ADDRSPC_SGE_EGRC = 0x0008, 9098c2ecf20Sopenharmony_ci FW_LDST_ADDRSPC_SGE_INGC = 0x0009, 9108c2ecf20Sopenharmony_ci FW_LDST_ADDRSPC_SGE_FLMC = 0x000a, 9118c2ecf20Sopenharmony_ci FW_LDST_ADDRSPC_SGE_CONMC = 0x000b, 9128c2ecf20Sopenharmony_ci FW_LDST_ADDRSPC_TP_PIO = 0x0010, 9138c2ecf20Sopenharmony_ci FW_LDST_ADDRSPC_TP_TM_PIO = 0x0011, 9148c2ecf20Sopenharmony_ci FW_LDST_ADDRSPC_TP_MIB = 0x0012, 9158c2ecf20Sopenharmony_ci FW_LDST_ADDRSPC_MDIO = 0x0018, 9168c2ecf20Sopenharmony_ci FW_LDST_ADDRSPC_MPS = 0x0020, 9178c2ecf20Sopenharmony_ci FW_LDST_ADDRSPC_FUNC = 0x0028, 9188c2ecf20Sopenharmony_ci FW_LDST_ADDRSPC_FUNC_PCIE = 0x0029, 9198c2ecf20Sopenharmony_ci FW_LDST_ADDRSPC_I2C = 0x0038, 9208c2ecf20Sopenharmony_ci}; 9218c2ecf20Sopenharmony_ci 9228c2ecf20Sopenharmony_cienum fw_ldst_mps_fid { 9238c2ecf20Sopenharmony_ci FW_LDST_MPS_ATRB, 9248c2ecf20Sopenharmony_ci FW_LDST_MPS_RPLC 9258c2ecf20Sopenharmony_ci}; 9268c2ecf20Sopenharmony_ci 9278c2ecf20Sopenharmony_cienum fw_ldst_func_access_ctl { 9288c2ecf20Sopenharmony_ci FW_LDST_FUNC_ACC_CTL_VIID, 9298c2ecf20Sopenharmony_ci FW_LDST_FUNC_ACC_CTL_FID 9308c2ecf20Sopenharmony_ci}; 9318c2ecf20Sopenharmony_ci 9328c2ecf20Sopenharmony_cienum fw_ldst_func_mod_index { 9338c2ecf20Sopenharmony_ci FW_LDST_FUNC_MPS 9348c2ecf20Sopenharmony_ci}; 9358c2ecf20Sopenharmony_ci 9368c2ecf20Sopenharmony_cistruct fw_ldst_cmd { 9378c2ecf20Sopenharmony_ci __be32 op_to_addrspace; 9388c2ecf20Sopenharmony_ci __be32 cycles_to_len16; 9398c2ecf20Sopenharmony_ci union fw_ldst { 9408c2ecf20Sopenharmony_ci struct fw_ldst_addrval { 9418c2ecf20Sopenharmony_ci __be32 addr; 9428c2ecf20Sopenharmony_ci __be32 val; 9438c2ecf20Sopenharmony_ci } addrval; 9448c2ecf20Sopenharmony_ci struct fw_ldst_idctxt { 9458c2ecf20Sopenharmony_ci __be32 physid; 9468c2ecf20Sopenharmony_ci __be32 msg_ctxtflush; 9478c2ecf20Sopenharmony_ci __be32 ctxt_data7; 9488c2ecf20Sopenharmony_ci __be32 ctxt_data6; 9498c2ecf20Sopenharmony_ci __be32 ctxt_data5; 9508c2ecf20Sopenharmony_ci __be32 ctxt_data4; 9518c2ecf20Sopenharmony_ci __be32 ctxt_data3; 9528c2ecf20Sopenharmony_ci __be32 ctxt_data2; 9538c2ecf20Sopenharmony_ci __be32 ctxt_data1; 9548c2ecf20Sopenharmony_ci __be32 ctxt_data0; 9558c2ecf20Sopenharmony_ci } idctxt; 9568c2ecf20Sopenharmony_ci struct fw_ldst_mdio { 9578c2ecf20Sopenharmony_ci __be16 paddr_mmd; 9588c2ecf20Sopenharmony_ci __be16 raddr; 9598c2ecf20Sopenharmony_ci __be16 vctl; 9608c2ecf20Sopenharmony_ci __be16 rval; 9618c2ecf20Sopenharmony_ci } mdio; 9628c2ecf20Sopenharmony_ci struct fw_ldst_cim_rq { 9638c2ecf20Sopenharmony_ci u8 req_first64[8]; 9648c2ecf20Sopenharmony_ci u8 req_second64[8]; 9658c2ecf20Sopenharmony_ci u8 resp_first64[8]; 9668c2ecf20Sopenharmony_ci u8 resp_second64[8]; 9678c2ecf20Sopenharmony_ci __be32 r3[2]; 9688c2ecf20Sopenharmony_ci } cim_rq; 9698c2ecf20Sopenharmony_ci union fw_ldst_mps { 9708c2ecf20Sopenharmony_ci struct fw_ldst_mps_rplc { 9718c2ecf20Sopenharmony_ci __be16 fid_idx; 9728c2ecf20Sopenharmony_ci __be16 rplcpf_pkd; 9738c2ecf20Sopenharmony_ci __be32 rplc255_224; 9748c2ecf20Sopenharmony_ci __be32 rplc223_192; 9758c2ecf20Sopenharmony_ci __be32 rplc191_160; 9768c2ecf20Sopenharmony_ci __be32 rplc159_128; 9778c2ecf20Sopenharmony_ci __be32 rplc127_96; 9788c2ecf20Sopenharmony_ci __be32 rplc95_64; 9798c2ecf20Sopenharmony_ci __be32 rplc63_32; 9808c2ecf20Sopenharmony_ci __be32 rplc31_0; 9818c2ecf20Sopenharmony_ci } rplc; 9828c2ecf20Sopenharmony_ci struct fw_ldst_mps_atrb { 9838c2ecf20Sopenharmony_ci __be16 fid_mpsid; 9848c2ecf20Sopenharmony_ci __be16 r2[3]; 9858c2ecf20Sopenharmony_ci __be32 r3[2]; 9868c2ecf20Sopenharmony_ci __be32 r4; 9878c2ecf20Sopenharmony_ci __be32 atrb; 9888c2ecf20Sopenharmony_ci __be16 vlan[16]; 9898c2ecf20Sopenharmony_ci } atrb; 9908c2ecf20Sopenharmony_ci } mps; 9918c2ecf20Sopenharmony_ci struct fw_ldst_func { 9928c2ecf20Sopenharmony_ci u8 access_ctl; 9938c2ecf20Sopenharmony_ci u8 mod_index; 9948c2ecf20Sopenharmony_ci __be16 ctl_id; 9958c2ecf20Sopenharmony_ci __be32 offset; 9968c2ecf20Sopenharmony_ci __be64 data0; 9978c2ecf20Sopenharmony_ci __be64 data1; 9988c2ecf20Sopenharmony_ci } func; 9998c2ecf20Sopenharmony_ci struct fw_ldst_pcie { 10008c2ecf20Sopenharmony_ci u8 ctrl_to_fn; 10018c2ecf20Sopenharmony_ci u8 bnum; 10028c2ecf20Sopenharmony_ci u8 r; 10038c2ecf20Sopenharmony_ci u8 ext_r; 10048c2ecf20Sopenharmony_ci u8 select_naccess; 10058c2ecf20Sopenharmony_ci u8 pcie_fn; 10068c2ecf20Sopenharmony_ci __be16 nset_pkd; 10078c2ecf20Sopenharmony_ci __be32 data[12]; 10088c2ecf20Sopenharmony_ci } pcie; 10098c2ecf20Sopenharmony_ci struct fw_ldst_i2c_deprecated { 10108c2ecf20Sopenharmony_ci u8 pid_pkd; 10118c2ecf20Sopenharmony_ci u8 base; 10128c2ecf20Sopenharmony_ci u8 boffset; 10138c2ecf20Sopenharmony_ci u8 data; 10148c2ecf20Sopenharmony_ci __be32 r9; 10158c2ecf20Sopenharmony_ci } i2c_deprecated; 10168c2ecf20Sopenharmony_ci struct fw_ldst_i2c { 10178c2ecf20Sopenharmony_ci u8 pid; 10188c2ecf20Sopenharmony_ci u8 did; 10198c2ecf20Sopenharmony_ci u8 boffset; 10208c2ecf20Sopenharmony_ci u8 blen; 10218c2ecf20Sopenharmony_ci __be32 r9; 10228c2ecf20Sopenharmony_ci __u8 data[48]; 10238c2ecf20Sopenharmony_ci } i2c; 10248c2ecf20Sopenharmony_ci struct fw_ldst_le { 10258c2ecf20Sopenharmony_ci __be32 index; 10268c2ecf20Sopenharmony_ci __be32 r9; 10278c2ecf20Sopenharmony_ci u8 val[33]; 10288c2ecf20Sopenharmony_ci u8 r11[7]; 10298c2ecf20Sopenharmony_ci } le; 10308c2ecf20Sopenharmony_ci } u; 10318c2ecf20Sopenharmony_ci}; 10328c2ecf20Sopenharmony_ci 10338c2ecf20Sopenharmony_ci#define FW_LDST_CMD_ADDRSPACE_S 0 10348c2ecf20Sopenharmony_ci#define FW_LDST_CMD_ADDRSPACE_V(x) ((x) << FW_LDST_CMD_ADDRSPACE_S) 10358c2ecf20Sopenharmony_ci 10368c2ecf20Sopenharmony_ci#define FW_LDST_CMD_MSG_S 31 10378c2ecf20Sopenharmony_ci#define FW_LDST_CMD_MSG_V(x) ((x) << FW_LDST_CMD_MSG_S) 10388c2ecf20Sopenharmony_ci 10398c2ecf20Sopenharmony_ci#define FW_LDST_CMD_CTXTFLUSH_S 30 10408c2ecf20Sopenharmony_ci#define FW_LDST_CMD_CTXTFLUSH_V(x) ((x) << FW_LDST_CMD_CTXTFLUSH_S) 10418c2ecf20Sopenharmony_ci#define FW_LDST_CMD_CTXTFLUSH_F FW_LDST_CMD_CTXTFLUSH_V(1U) 10428c2ecf20Sopenharmony_ci 10438c2ecf20Sopenharmony_ci#define FW_LDST_CMD_PADDR_S 8 10448c2ecf20Sopenharmony_ci#define FW_LDST_CMD_PADDR_V(x) ((x) << FW_LDST_CMD_PADDR_S) 10458c2ecf20Sopenharmony_ci 10468c2ecf20Sopenharmony_ci#define FW_LDST_CMD_MMD_S 0 10478c2ecf20Sopenharmony_ci#define FW_LDST_CMD_MMD_V(x) ((x) << FW_LDST_CMD_MMD_S) 10488c2ecf20Sopenharmony_ci 10498c2ecf20Sopenharmony_ci#define FW_LDST_CMD_FID_S 15 10508c2ecf20Sopenharmony_ci#define FW_LDST_CMD_FID_V(x) ((x) << FW_LDST_CMD_FID_S) 10518c2ecf20Sopenharmony_ci 10528c2ecf20Sopenharmony_ci#define FW_LDST_CMD_IDX_S 0 10538c2ecf20Sopenharmony_ci#define FW_LDST_CMD_IDX_V(x) ((x) << FW_LDST_CMD_IDX_S) 10548c2ecf20Sopenharmony_ci 10558c2ecf20Sopenharmony_ci#define FW_LDST_CMD_RPLCPF_S 0 10568c2ecf20Sopenharmony_ci#define FW_LDST_CMD_RPLCPF_V(x) ((x) << FW_LDST_CMD_RPLCPF_S) 10578c2ecf20Sopenharmony_ci 10588c2ecf20Sopenharmony_ci#define FW_LDST_CMD_LC_S 4 10598c2ecf20Sopenharmony_ci#define FW_LDST_CMD_LC_V(x) ((x) << FW_LDST_CMD_LC_S) 10608c2ecf20Sopenharmony_ci#define FW_LDST_CMD_LC_F FW_LDST_CMD_LC_V(1U) 10618c2ecf20Sopenharmony_ci 10628c2ecf20Sopenharmony_ci#define FW_LDST_CMD_FN_S 0 10638c2ecf20Sopenharmony_ci#define FW_LDST_CMD_FN_V(x) ((x) << FW_LDST_CMD_FN_S) 10648c2ecf20Sopenharmony_ci 10658c2ecf20Sopenharmony_ci#define FW_LDST_CMD_NACCESS_S 0 10668c2ecf20Sopenharmony_ci#define FW_LDST_CMD_NACCESS_V(x) ((x) << FW_LDST_CMD_NACCESS_S) 10678c2ecf20Sopenharmony_ci 10688c2ecf20Sopenharmony_cistruct fw_reset_cmd { 10698c2ecf20Sopenharmony_ci __be32 op_to_write; 10708c2ecf20Sopenharmony_ci __be32 retval_len16; 10718c2ecf20Sopenharmony_ci __be32 val; 10728c2ecf20Sopenharmony_ci __be32 halt_pkd; 10738c2ecf20Sopenharmony_ci}; 10748c2ecf20Sopenharmony_ci 10758c2ecf20Sopenharmony_ci#define FW_RESET_CMD_HALT_S 31 10768c2ecf20Sopenharmony_ci#define FW_RESET_CMD_HALT_M 0x1 10778c2ecf20Sopenharmony_ci#define FW_RESET_CMD_HALT_V(x) ((x) << FW_RESET_CMD_HALT_S) 10788c2ecf20Sopenharmony_ci#define FW_RESET_CMD_HALT_G(x) \ 10798c2ecf20Sopenharmony_ci (((x) >> FW_RESET_CMD_HALT_S) & FW_RESET_CMD_HALT_M) 10808c2ecf20Sopenharmony_ci#define FW_RESET_CMD_HALT_F FW_RESET_CMD_HALT_V(1U) 10818c2ecf20Sopenharmony_ci 10828c2ecf20Sopenharmony_cienum fw_hellow_cmd { 10838c2ecf20Sopenharmony_ci fw_hello_cmd_stage_os = 0x0 10848c2ecf20Sopenharmony_ci}; 10858c2ecf20Sopenharmony_ci 10868c2ecf20Sopenharmony_cistruct fw_hello_cmd { 10878c2ecf20Sopenharmony_ci __be32 op_to_write; 10888c2ecf20Sopenharmony_ci __be32 retval_len16; 10898c2ecf20Sopenharmony_ci __be32 err_to_clearinit; 10908c2ecf20Sopenharmony_ci __be32 fwrev; 10918c2ecf20Sopenharmony_ci}; 10928c2ecf20Sopenharmony_ci 10938c2ecf20Sopenharmony_ci#define FW_HELLO_CMD_ERR_S 31 10948c2ecf20Sopenharmony_ci#define FW_HELLO_CMD_ERR_V(x) ((x) << FW_HELLO_CMD_ERR_S) 10958c2ecf20Sopenharmony_ci#define FW_HELLO_CMD_ERR_F FW_HELLO_CMD_ERR_V(1U) 10968c2ecf20Sopenharmony_ci 10978c2ecf20Sopenharmony_ci#define FW_HELLO_CMD_INIT_S 30 10988c2ecf20Sopenharmony_ci#define FW_HELLO_CMD_INIT_V(x) ((x) << FW_HELLO_CMD_INIT_S) 10998c2ecf20Sopenharmony_ci#define FW_HELLO_CMD_INIT_F FW_HELLO_CMD_INIT_V(1U) 11008c2ecf20Sopenharmony_ci 11018c2ecf20Sopenharmony_ci#define FW_HELLO_CMD_MASTERDIS_S 29 11028c2ecf20Sopenharmony_ci#define FW_HELLO_CMD_MASTERDIS_V(x) ((x) << FW_HELLO_CMD_MASTERDIS_S) 11038c2ecf20Sopenharmony_ci 11048c2ecf20Sopenharmony_ci#define FW_HELLO_CMD_MASTERFORCE_S 28 11058c2ecf20Sopenharmony_ci#define FW_HELLO_CMD_MASTERFORCE_V(x) ((x) << FW_HELLO_CMD_MASTERFORCE_S) 11068c2ecf20Sopenharmony_ci 11078c2ecf20Sopenharmony_ci#define FW_HELLO_CMD_MBMASTER_S 24 11088c2ecf20Sopenharmony_ci#define FW_HELLO_CMD_MBMASTER_M 0xfU 11098c2ecf20Sopenharmony_ci#define FW_HELLO_CMD_MBMASTER_V(x) ((x) << FW_HELLO_CMD_MBMASTER_S) 11108c2ecf20Sopenharmony_ci#define FW_HELLO_CMD_MBMASTER_G(x) \ 11118c2ecf20Sopenharmony_ci (((x) >> FW_HELLO_CMD_MBMASTER_S) & FW_HELLO_CMD_MBMASTER_M) 11128c2ecf20Sopenharmony_ci 11138c2ecf20Sopenharmony_ci#define FW_HELLO_CMD_MBASYNCNOTINT_S 23 11148c2ecf20Sopenharmony_ci#define FW_HELLO_CMD_MBASYNCNOTINT_V(x) ((x) << FW_HELLO_CMD_MBASYNCNOTINT_S) 11158c2ecf20Sopenharmony_ci 11168c2ecf20Sopenharmony_ci#define FW_HELLO_CMD_MBASYNCNOT_S 20 11178c2ecf20Sopenharmony_ci#define FW_HELLO_CMD_MBASYNCNOT_V(x) ((x) << FW_HELLO_CMD_MBASYNCNOT_S) 11188c2ecf20Sopenharmony_ci 11198c2ecf20Sopenharmony_ci#define FW_HELLO_CMD_STAGE_S 17 11208c2ecf20Sopenharmony_ci#define FW_HELLO_CMD_STAGE_V(x) ((x) << FW_HELLO_CMD_STAGE_S) 11218c2ecf20Sopenharmony_ci 11228c2ecf20Sopenharmony_ci#define FW_HELLO_CMD_CLEARINIT_S 16 11238c2ecf20Sopenharmony_ci#define FW_HELLO_CMD_CLEARINIT_V(x) ((x) << FW_HELLO_CMD_CLEARINIT_S) 11248c2ecf20Sopenharmony_ci#define FW_HELLO_CMD_CLEARINIT_F FW_HELLO_CMD_CLEARINIT_V(1U) 11258c2ecf20Sopenharmony_ci 11268c2ecf20Sopenharmony_cistruct fw_bye_cmd { 11278c2ecf20Sopenharmony_ci __be32 op_to_write; 11288c2ecf20Sopenharmony_ci __be32 retval_len16; 11298c2ecf20Sopenharmony_ci __be64 r3; 11308c2ecf20Sopenharmony_ci}; 11318c2ecf20Sopenharmony_ci 11328c2ecf20Sopenharmony_cistruct fw_initialize_cmd { 11338c2ecf20Sopenharmony_ci __be32 op_to_write; 11348c2ecf20Sopenharmony_ci __be32 retval_len16; 11358c2ecf20Sopenharmony_ci __be64 r3; 11368c2ecf20Sopenharmony_ci}; 11378c2ecf20Sopenharmony_ci 11388c2ecf20Sopenharmony_cienum fw_caps_config_hm { 11398c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_HM_PCIE = 0x00000001, 11408c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_HM_PL = 0x00000002, 11418c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_HM_SGE = 0x00000004, 11428c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_HM_CIM = 0x00000008, 11438c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_HM_ULPTX = 0x00000010, 11448c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_HM_TP = 0x00000020, 11458c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_HM_ULPRX = 0x00000040, 11468c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_HM_PMRX = 0x00000080, 11478c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_HM_PMTX = 0x00000100, 11488c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_HM_MC = 0x00000200, 11498c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_HM_LE = 0x00000400, 11508c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_HM_MPS = 0x00000800, 11518c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_HM_XGMAC = 0x00001000, 11528c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_HM_CPLSWITCH = 0x00002000, 11538c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_HM_T4DBG = 0x00004000, 11548c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_HM_MI = 0x00008000, 11558c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_HM_I2CM = 0x00010000, 11568c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_HM_NCSI = 0x00020000, 11578c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_HM_SMB = 0x00040000, 11588c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_HM_MA = 0x00080000, 11598c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_HM_EDRAM = 0x00100000, 11608c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_HM_PMU = 0x00200000, 11618c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_HM_UART = 0x00400000, 11628c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_HM_SF = 0x00800000, 11638c2ecf20Sopenharmony_ci}; 11648c2ecf20Sopenharmony_ci 11658c2ecf20Sopenharmony_cienum fw_caps_config_nbm { 11668c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_NBM_IPMI = 0x00000001, 11678c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_NBM_NCSI = 0x00000002, 11688c2ecf20Sopenharmony_ci}; 11698c2ecf20Sopenharmony_ci 11708c2ecf20Sopenharmony_cienum fw_caps_config_link { 11718c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_LINK_PPP = 0x00000001, 11728c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_LINK_QFC = 0x00000002, 11738c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_LINK_DCBX = 0x00000004, 11748c2ecf20Sopenharmony_ci}; 11758c2ecf20Sopenharmony_ci 11768c2ecf20Sopenharmony_cienum fw_caps_config_switch { 11778c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_SWITCH_INGRESS = 0x00000001, 11788c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_SWITCH_EGRESS = 0x00000002, 11798c2ecf20Sopenharmony_ci}; 11808c2ecf20Sopenharmony_ci 11818c2ecf20Sopenharmony_cienum fw_caps_config_nic { 11828c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_NIC = 0x00000001, 11838c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_NIC_VM = 0x00000002, 11848c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_NIC_HASHFILTER = 0x00000020, 11858c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_NIC_ETHOFLD = 0x00000040, 11868c2ecf20Sopenharmony_ci}; 11878c2ecf20Sopenharmony_ci 11888c2ecf20Sopenharmony_cienum fw_caps_config_ofld { 11898c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_OFLD = 0x00000001, 11908c2ecf20Sopenharmony_ci}; 11918c2ecf20Sopenharmony_ci 11928c2ecf20Sopenharmony_cienum fw_caps_config_rdma { 11938c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_RDMA_RDDP = 0x00000001, 11948c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_RDMA_RDMAC = 0x00000002, 11958c2ecf20Sopenharmony_ci}; 11968c2ecf20Sopenharmony_ci 11978c2ecf20Sopenharmony_cienum fw_caps_config_iscsi { 11988c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_ISCSI_INITIATOR_PDU = 0x00000001, 11998c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_ISCSI_TARGET_PDU = 0x00000002, 12008c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_ISCSI_INITIATOR_CNXOFLD = 0x00000004, 12018c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_ISCSI_TARGET_CNXOFLD = 0x00000008, 12028c2ecf20Sopenharmony_ci}; 12038c2ecf20Sopenharmony_ci 12048c2ecf20Sopenharmony_cienum fw_caps_config_crypto { 12058c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_CRYPTO_LOOKASIDE = 0x00000001, 12068c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_TLS_INLINE = 0x00000002, 12078c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_IPSEC_INLINE = 0x00000004, 12088c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_TLS_HW = 0x00000008, 12098c2ecf20Sopenharmony_ci}; 12108c2ecf20Sopenharmony_ci 12118c2ecf20Sopenharmony_cienum fw_caps_config_fcoe { 12128c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_FCOE_INITIATOR = 0x00000001, 12138c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_FCOE_TARGET = 0x00000002, 12148c2ecf20Sopenharmony_ci FW_CAPS_CONFIG_FCOE_CTRL_OFLD = 0x00000004, 12158c2ecf20Sopenharmony_ci}; 12168c2ecf20Sopenharmony_ci 12178c2ecf20Sopenharmony_cienum fw_memtype_cf { 12188c2ecf20Sopenharmony_ci FW_MEMTYPE_CF_EDC0 = 0x0, 12198c2ecf20Sopenharmony_ci FW_MEMTYPE_CF_EDC1 = 0x1, 12208c2ecf20Sopenharmony_ci FW_MEMTYPE_CF_EXTMEM = 0x2, 12218c2ecf20Sopenharmony_ci FW_MEMTYPE_CF_FLASH = 0x4, 12228c2ecf20Sopenharmony_ci FW_MEMTYPE_CF_INTERNAL = 0x5, 12238c2ecf20Sopenharmony_ci FW_MEMTYPE_CF_EXTMEM1 = 0x6, 12248c2ecf20Sopenharmony_ci FW_MEMTYPE_CF_HMA = 0x7, 12258c2ecf20Sopenharmony_ci}; 12268c2ecf20Sopenharmony_ci 12278c2ecf20Sopenharmony_cistruct fw_caps_config_cmd { 12288c2ecf20Sopenharmony_ci __be32 op_to_write; 12298c2ecf20Sopenharmony_ci __be32 cfvalid_to_len16; 12308c2ecf20Sopenharmony_ci __be32 r2; 12318c2ecf20Sopenharmony_ci __be32 hwmbitmap; 12328c2ecf20Sopenharmony_ci __be16 nbmcaps; 12338c2ecf20Sopenharmony_ci __be16 linkcaps; 12348c2ecf20Sopenharmony_ci __be16 switchcaps; 12358c2ecf20Sopenharmony_ci __be16 r3; 12368c2ecf20Sopenharmony_ci __be16 niccaps; 12378c2ecf20Sopenharmony_ci __be16 ofldcaps; 12388c2ecf20Sopenharmony_ci __be16 rdmacaps; 12398c2ecf20Sopenharmony_ci __be16 cryptocaps; 12408c2ecf20Sopenharmony_ci __be16 iscsicaps; 12418c2ecf20Sopenharmony_ci __be16 fcoecaps; 12428c2ecf20Sopenharmony_ci __be32 cfcsum; 12438c2ecf20Sopenharmony_ci __be32 finiver; 12448c2ecf20Sopenharmony_ci __be32 finicsum; 12458c2ecf20Sopenharmony_ci}; 12468c2ecf20Sopenharmony_ci 12478c2ecf20Sopenharmony_ci#define FW_CAPS_CONFIG_CMD_CFVALID_S 27 12488c2ecf20Sopenharmony_ci#define FW_CAPS_CONFIG_CMD_CFVALID_V(x) ((x) << FW_CAPS_CONFIG_CMD_CFVALID_S) 12498c2ecf20Sopenharmony_ci#define FW_CAPS_CONFIG_CMD_CFVALID_F FW_CAPS_CONFIG_CMD_CFVALID_V(1U) 12508c2ecf20Sopenharmony_ci 12518c2ecf20Sopenharmony_ci#define FW_CAPS_CONFIG_CMD_MEMTYPE_CF_S 24 12528c2ecf20Sopenharmony_ci#define FW_CAPS_CONFIG_CMD_MEMTYPE_CF_V(x) \ 12538c2ecf20Sopenharmony_ci ((x) << FW_CAPS_CONFIG_CMD_MEMTYPE_CF_S) 12548c2ecf20Sopenharmony_ci 12558c2ecf20Sopenharmony_ci#define FW_CAPS_CONFIG_CMD_MEMADDR64K_CF_S 16 12568c2ecf20Sopenharmony_ci#define FW_CAPS_CONFIG_CMD_MEMADDR64K_CF_V(x) \ 12578c2ecf20Sopenharmony_ci ((x) << FW_CAPS_CONFIG_CMD_MEMADDR64K_CF_S) 12588c2ecf20Sopenharmony_ci 12598c2ecf20Sopenharmony_ci/* 12608c2ecf20Sopenharmony_ci * params command mnemonics 12618c2ecf20Sopenharmony_ci */ 12628c2ecf20Sopenharmony_cienum fw_params_mnem { 12638c2ecf20Sopenharmony_ci FW_PARAMS_MNEM_DEV = 1, /* device params */ 12648c2ecf20Sopenharmony_ci FW_PARAMS_MNEM_PFVF = 2, /* function params */ 12658c2ecf20Sopenharmony_ci FW_PARAMS_MNEM_REG = 3, /* limited register access */ 12668c2ecf20Sopenharmony_ci FW_PARAMS_MNEM_DMAQ = 4, /* dma queue params */ 12678c2ecf20Sopenharmony_ci FW_PARAMS_MNEM_CHNET = 5, /* chnet params */ 12688c2ecf20Sopenharmony_ci FW_PARAMS_MNEM_LAST 12698c2ecf20Sopenharmony_ci}; 12708c2ecf20Sopenharmony_ci 12718c2ecf20Sopenharmony_ci/* 12728c2ecf20Sopenharmony_ci * device parameters 12738c2ecf20Sopenharmony_ci */ 12748c2ecf20Sopenharmony_ci 12758c2ecf20Sopenharmony_ci#define FW_PARAMS_PARAM_FILTER_MODE_S 16 12768c2ecf20Sopenharmony_ci#define FW_PARAMS_PARAM_FILTER_MODE_M 0xffff 12778c2ecf20Sopenharmony_ci#define FW_PARAMS_PARAM_FILTER_MODE_V(x) \ 12788c2ecf20Sopenharmony_ci ((x) << FW_PARAMS_PARAM_FILTER_MODE_S) 12798c2ecf20Sopenharmony_ci#define FW_PARAMS_PARAM_FILTER_MODE_G(x) \ 12808c2ecf20Sopenharmony_ci (((x) >> FW_PARAMS_PARAM_FILTER_MODE_S) & \ 12818c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_FILTER_MODE_M) 12828c2ecf20Sopenharmony_ci 12838c2ecf20Sopenharmony_ci#define FW_PARAMS_PARAM_FILTER_MASK_S 0 12848c2ecf20Sopenharmony_ci#define FW_PARAMS_PARAM_FILTER_MASK_M 0xffff 12858c2ecf20Sopenharmony_ci#define FW_PARAMS_PARAM_FILTER_MASK_V(x) \ 12868c2ecf20Sopenharmony_ci ((x) << FW_PARAMS_PARAM_FILTER_MASK_S) 12878c2ecf20Sopenharmony_ci#define FW_PARAMS_PARAM_FILTER_MASK_G(x) \ 12888c2ecf20Sopenharmony_ci (((x) >> FW_PARAMS_PARAM_FILTER_MASK_S) & \ 12898c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_FILTER_MASK_M) 12908c2ecf20Sopenharmony_ci 12918c2ecf20Sopenharmony_cienum fw_params_param_dev { 12928c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_CCLK = 0x00, /* chip core clock in khz */ 12938c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_PORTVEC = 0x01, /* the port vector */ 12948c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_NTID = 0x02, /* reads the number of TIDs 12958c2ecf20Sopenharmony_ci * allocated by the device's 12968c2ecf20Sopenharmony_ci * Lookup Engine 12978c2ecf20Sopenharmony_ci */ 12988c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_FLOWC_BUFFIFO_SZ = 0x03, 12998c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_INTVER_NIC = 0x04, 13008c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_INTVER_VNIC = 0x05, 13018c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_INTVER_OFLD = 0x06, 13028c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_INTVER_RI = 0x07, 13038c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_INTVER_ISCSIPDU = 0x08, 13048c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_INTVER_ISCSI = 0x09, 13058c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_INTVER_FCOE = 0x0A, 13068c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_FWREV = 0x0B, 13078c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_TPREV = 0x0C, 13088c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_CF = 0x0D, 13098c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_PHYFW = 0x0F, 13108c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_DIAG = 0x11, 13118c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_MAXORDIRD_QP = 0x13, /* max supported QP IRD/ORD */ 13128c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_MAXIRD_ADAPTER = 0x14, /* max supported adap IRD */ 13138c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_ULPTX_MEMWRITE_DSGL = 0x17, 13148c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_FWCACHE = 0x18, 13158c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_SCFGREV = 0x1A, 13168c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_VPDREV = 0x1B, 13178c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_RI_FR_NSMR_TPTE_WR = 0x1C, 13188c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_FILTER2_WR = 0x1D, 13198c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_MPSBGMAP = 0x1E, 13208c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_TPCHMAP = 0x1F, 13218c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_HMA_SIZE = 0x20, 13228c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_RDMA_WRITE_WITH_IMM = 0x21, 13238c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_PPOD_EDRAM = 0x23, 13248c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_RI_WRITE_CMPL_WR = 0x24, 13258c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_HPFILTER_REGION_SUPPORT = 0x26, 13268c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_OPAQUE_VIID_SMT_EXTN = 0x27, 13278c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_HASHFILTER_WITH_OFLD = 0x28, 13288c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_DBQ_TIMER = 0x29, 13298c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_DBQ_TIMERTICK = 0x2A, 13308c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_NUM_TM_CLASS = 0x2B, 13318c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_FILTER = 0x2E, 13328c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_KTLS_HW = 0x31, 13338c2ecf20Sopenharmony_ci}; 13348c2ecf20Sopenharmony_ci 13358c2ecf20Sopenharmony_ci/* 13368c2ecf20Sopenharmony_ci * physical and virtual function parameters 13378c2ecf20Sopenharmony_ci */ 13388c2ecf20Sopenharmony_cienum fw_params_param_pfvf { 13398c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_RWXCAPS = 0x00, 13408c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_ROUTE_START = 0x01, 13418c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_ROUTE_END = 0x02, 13428c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_CLIP_START = 0x03, 13438c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_CLIP_END = 0x04, 13448c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_FILTER_START = 0x05, 13458c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_FILTER_END = 0x06, 13468c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_SERVER_START = 0x07, 13478c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_SERVER_END = 0x08, 13488c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_TDDP_START = 0x09, 13498c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_TDDP_END = 0x0A, 13508c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_ISCSI_START = 0x0B, 13518c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_ISCSI_END = 0x0C, 13528c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_STAG_START = 0x0D, 13538c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_STAG_END = 0x0E, 13548c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_RQ_START = 0x1F, 13558c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_RQ_END = 0x10, 13568c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_PBL_START = 0x11, 13578c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_PBL_END = 0x12, 13588c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_L2T_START = 0x13, 13598c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_L2T_END = 0x14, 13608c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_SQRQ_START = 0x15, 13618c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_SQRQ_END = 0x16, 13628c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_CQ_START = 0x17, 13638c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_CQ_END = 0x18, 13648c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_SRQ_START = 0x19, 13658c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_SRQ_END = 0x1A, 13668c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_SCHEDCLASS_ETH = 0x20, 13678c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_VIID = 0x24, 13688c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_CPMASK = 0x25, 13698c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_OCQ_START = 0x26, 13708c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_OCQ_END = 0x27, 13718c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_CONM_MAP = 0x28, 13728c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_IQFLINT_START = 0x29, 13738c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_IQFLINT_END = 0x2A, 13748c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_EQ_START = 0x2B, 13758c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_EQ_END = 0x2C, 13768c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_ACTIVE_FILTER_START = 0x2D, 13778c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_ACTIVE_FILTER_END = 0x2E, 13788c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_ETHOFLD_START = 0x2F, 13798c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_ETHOFLD_END = 0x30, 13808c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_CPLFW4MSG_ENCAP = 0x31, 13818c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_HPFILTER_START = 0x32, 13828c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_HPFILTER_END = 0x33, 13838c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_TLS_START = 0x34, 13848c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_TLS_END = 0x35, 13858c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_RAWF_START = 0x36, 13868c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_RAWF_END = 0x37, 13878c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_NCRYPTO_LOOKASIDE = 0x39, 13888c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_PORT_CAPS32 = 0x3A, 13898c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_PPOD_EDRAM_START = 0x3B, 13908c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_PPOD_EDRAM_END = 0x3C, 13918c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_PFVF_LINK_STATE = 0x40, 13928c2ecf20Sopenharmony_ci}; 13938c2ecf20Sopenharmony_ci 13948c2ecf20Sopenharmony_ci/* Virtual link state as seen by the specified VF */ 13958c2ecf20Sopenharmony_cienum vf_link_states { 13968c2ecf20Sopenharmony_ci FW_VF_LINK_STATE_AUTO = 0x00, 13978c2ecf20Sopenharmony_ci FW_VF_LINK_STATE_ENABLE = 0x01, 13988c2ecf20Sopenharmony_ci FW_VF_LINK_STATE_DISABLE = 0x02, 13998c2ecf20Sopenharmony_ci}; 14008c2ecf20Sopenharmony_ci 14018c2ecf20Sopenharmony_ci/* 14028c2ecf20Sopenharmony_ci * dma queue parameters 14038c2ecf20Sopenharmony_ci */ 14048c2ecf20Sopenharmony_cienum fw_params_param_dmaq { 14058c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DMAQ_IQ_DCAEN_DCACPU = 0x00, 14068c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DMAQ_IQ_INTCNTTHRESH = 0x01, 14078c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DMAQ_EQ_CMPLIQID_MNGT = 0x10, 14088c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DMAQ_EQ_CMPLIQID_CTRL = 0x11, 14098c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DMAQ_EQ_SCHEDCLASS_ETH = 0x12, 14108c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DMAQ_EQ_DCBPRIO_ETH = 0x13, 14118c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DMAQ_EQ_TIMERIX = 0x15, 14128c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DMAQ_CONM_CTXT = 0x20, 14138c2ecf20Sopenharmony_ci}; 14148c2ecf20Sopenharmony_ci 14158c2ecf20Sopenharmony_cienum fw_params_param_dev_ktls_hw { 14168c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_KTLS_HW_DISABLE = 0x00, 14178c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_KTLS_HW_ENABLE = 0x01, 14188c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_KTLS_HW_USER_ENABLE = 0x01, 14198c2ecf20Sopenharmony_ci}; 14208c2ecf20Sopenharmony_ci 14218c2ecf20Sopenharmony_cienum fw_params_param_dev_phyfw { 14228c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_PHYFW_DOWNLOAD = 0x00, 14238c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_DEV_PHYFW_VERSION = 0x01, 14248c2ecf20Sopenharmony_ci}; 14258c2ecf20Sopenharmony_ci 14268c2ecf20Sopenharmony_cienum fw_params_param_dev_diag { 14278c2ecf20Sopenharmony_ci FW_PARAM_DEV_DIAG_TMP = 0x00, 14288c2ecf20Sopenharmony_ci FW_PARAM_DEV_DIAG_VDD = 0x01, 14298c2ecf20Sopenharmony_ci FW_PARAM_DEV_DIAG_MAXTMPTHRESH = 0x02, 14308c2ecf20Sopenharmony_ci}; 14318c2ecf20Sopenharmony_ci 14328c2ecf20Sopenharmony_cienum fw_params_param_dev_filter { 14338c2ecf20Sopenharmony_ci FW_PARAM_DEV_FILTER_VNIC_MODE = 0x00, 14348c2ecf20Sopenharmony_ci FW_PARAM_DEV_FILTER_MODE_MASK = 0x01, 14358c2ecf20Sopenharmony_ci}; 14368c2ecf20Sopenharmony_ci 14378c2ecf20Sopenharmony_cienum fw_params_param_dev_fwcache { 14388c2ecf20Sopenharmony_ci FW_PARAM_DEV_FWCACHE_FLUSH = 0x00, 14398c2ecf20Sopenharmony_ci FW_PARAM_DEV_FWCACHE_FLUSHINV = 0x01, 14408c2ecf20Sopenharmony_ci}; 14418c2ecf20Sopenharmony_ci 14428c2ecf20Sopenharmony_ci#define FW_PARAMS_MNEM_S 24 14438c2ecf20Sopenharmony_ci#define FW_PARAMS_MNEM_V(x) ((x) << FW_PARAMS_MNEM_S) 14448c2ecf20Sopenharmony_ci 14458c2ecf20Sopenharmony_ci#define FW_PARAMS_PARAM_X_S 16 14468c2ecf20Sopenharmony_ci#define FW_PARAMS_PARAM_X_V(x) ((x) << FW_PARAMS_PARAM_X_S) 14478c2ecf20Sopenharmony_ci 14488c2ecf20Sopenharmony_ci#define FW_PARAMS_PARAM_Y_S 8 14498c2ecf20Sopenharmony_ci#define FW_PARAMS_PARAM_Y_M 0xffU 14508c2ecf20Sopenharmony_ci#define FW_PARAMS_PARAM_Y_V(x) ((x) << FW_PARAMS_PARAM_Y_S) 14518c2ecf20Sopenharmony_ci#define FW_PARAMS_PARAM_Y_G(x) (((x) >> FW_PARAMS_PARAM_Y_S) &\ 14528c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_Y_M) 14538c2ecf20Sopenharmony_ci 14548c2ecf20Sopenharmony_ci#define FW_PARAMS_PARAM_Z_S 0 14558c2ecf20Sopenharmony_ci#define FW_PARAMS_PARAM_Z_M 0xffu 14568c2ecf20Sopenharmony_ci#define FW_PARAMS_PARAM_Z_V(x) ((x) << FW_PARAMS_PARAM_Z_S) 14578c2ecf20Sopenharmony_ci#define FW_PARAMS_PARAM_Z_G(x) (((x) >> FW_PARAMS_PARAM_Z_S) &\ 14588c2ecf20Sopenharmony_ci FW_PARAMS_PARAM_Z_M) 14598c2ecf20Sopenharmony_ci 14608c2ecf20Sopenharmony_ci#define FW_PARAMS_PARAM_XYZ_S 0 14618c2ecf20Sopenharmony_ci#define FW_PARAMS_PARAM_XYZ_V(x) ((x) << FW_PARAMS_PARAM_XYZ_S) 14628c2ecf20Sopenharmony_ci 14638c2ecf20Sopenharmony_ci#define FW_PARAMS_PARAM_YZ_S 0 14648c2ecf20Sopenharmony_ci#define FW_PARAMS_PARAM_YZ_V(x) ((x) << FW_PARAMS_PARAM_YZ_S) 14658c2ecf20Sopenharmony_ci 14668c2ecf20Sopenharmony_cistruct fw_params_cmd { 14678c2ecf20Sopenharmony_ci __be32 op_to_vfn; 14688c2ecf20Sopenharmony_ci __be32 retval_len16; 14698c2ecf20Sopenharmony_ci struct fw_params_param { 14708c2ecf20Sopenharmony_ci __be32 mnem; 14718c2ecf20Sopenharmony_ci __be32 val; 14728c2ecf20Sopenharmony_ci } param[7]; 14738c2ecf20Sopenharmony_ci}; 14748c2ecf20Sopenharmony_ci 14758c2ecf20Sopenharmony_ci#define FW_PARAMS_CMD_PFN_S 8 14768c2ecf20Sopenharmony_ci#define FW_PARAMS_CMD_PFN_V(x) ((x) << FW_PARAMS_CMD_PFN_S) 14778c2ecf20Sopenharmony_ci 14788c2ecf20Sopenharmony_ci#define FW_PARAMS_CMD_VFN_S 0 14798c2ecf20Sopenharmony_ci#define FW_PARAMS_CMD_VFN_V(x) ((x) << FW_PARAMS_CMD_VFN_S) 14808c2ecf20Sopenharmony_ci 14818c2ecf20Sopenharmony_cistruct fw_pfvf_cmd { 14828c2ecf20Sopenharmony_ci __be32 op_to_vfn; 14838c2ecf20Sopenharmony_ci __be32 retval_len16; 14848c2ecf20Sopenharmony_ci __be32 niqflint_niq; 14858c2ecf20Sopenharmony_ci __be32 type_to_neq; 14868c2ecf20Sopenharmony_ci __be32 tc_to_nexactf; 14878c2ecf20Sopenharmony_ci __be32 r_caps_to_nethctrl; 14888c2ecf20Sopenharmony_ci __be16 nricq; 14898c2ecf20Sopenharmony_ci __be16 nriqp; 14908c2ecf20Sopenharmony_ci __be32 r4; 14918c2ecf20Sopenharmony_ci}; 14928c2ecf20Sopenharmony_ci 14938c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_PFN_S 8 14948c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_PFN_V(x) ((x) << FW_PFVF_CMD_PFN_S) 14958c2ecf20Sopenharmony_ci 14968c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_VFN_S 0 14978c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_VFN_V(x) ((x) << FW_PFVF_CMD_VFN_S) 14988c2ecf20Sopenharmony_ci 14998c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_NIQFLINT_S 20 15008c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_NIQFLINT_M 0xfff 15018c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_NIQFLINT_V(x) ((x) << FW_PFVF_CMD_NIQFLINT_S) 15028c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_NIQFLINT_G(x) \ 15038c2ecf20Sopenharmony_ci (((x) >> FW_PFVF_CMD_NIQFLINT_S) & FW_PFVF_CMD_NIQFLINT_M) 15048c2ecf20Sopenharmony_ci 15058c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_NIQ_S 0 15068c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_NIQ_M 0xfffff 15078c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_NIQ_V(x) ((x) << FW_PFVF_CMD_NIQ_S) 15088c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_NIQ_G(x) \ 15098c2ecf20Sopenharmony_ci (((x) >> FW_PFVF_CMD_NIQ_S) & FW_PFVF_CMD_NIQ_M) 15108c2ecf20Sopenharmony_ci 15118c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_TYPE_S 31 15128c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_TYPE_M 0x1 15138c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_TYPE_V(x) ((x) << FW_PFVF_CMD_TYPE_S) 15148c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_TYPE_G(x) \ 15158c2ecf20Sopenharmony_ci (((x) >> FW_PFVF_CMD_TYPE_S) & FW_PFVF_CMD_TYPE_M) 15168c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_TYPE_F FW_PFVF_CMD_TYPE_V(1U) 15178c2ecf20Sopenharmony_ci 15188c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_CMASK_S 24 15198c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_CMASK_M 0xf 15208c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_CMASK_V(x) ((x) << FW_PFVF_CMD_CMASK_S) 15218c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_CMASK_G(x) \ 15228c2ecf20Sopenharmony_ci (((x) >> FW_PFVF_CMD_CMASK_S) & FW_PFVF_CMD_CMASK_M) 15238c2ecf20Sopenharmony_ci 15248c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_PMASK_S 20 15258c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_PMASK_M 0xf 15268c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_PMASK_V(x) ((x) << FW_PFVF_CMD_PMASK_S) 15278c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_PMASK_G(x) \ 15288c2ecf20Sopenharmony_ci (((x) >> FW_PFVF_CMD_PMASK_S) & FW_PFVF_CMD_PMASK_M) 15298c2ecf20Sopenharmony_ci 15308c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_NEQ_S 0 15318c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_NEQ_M 0xfffff 15328c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_NEQ_V(x) ((x) << FW_PFVF_CMD_NEQ_S) 15338c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_NEQ_G(x) \ 15348c2ecf20Sopenharmony_ci (((x) >> FW_PFVF_CMD_NEQ_S) & FW_PFVF_CMD_NEQ_M) 15358c2ecf20Sopenharmony_ci 15368c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_TC_S 24 15378c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_TC_M 0xff 15388c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_TC_V(x) ((x) << FW_PFVF_CMD_TC_S) 15398c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_TC_G(x) (((x) >> FW_PFVF_CMD_TC_S) & FW_PFVF_CMD_TC_M) 15408c2ecf20Sopenharmony_ci 15418c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_NVI_S 16 15428c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_NVI_M 0xff 15438c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_NVI_V(x) ((x) << FW_PFVF_CMD_NVI_S) 15448c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_NVI_G(x) (((x) >> FW_PFVF_CMD_NVI_S) & FW_PFVF_CMD_NVI_M) 15458c2ecf20Sopenharmony_ci 15468c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_NEXACTF_S 0 15478c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_NEXACTF_M 0xffff 15488c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_NEXACTF_V(x) ((x) << FW_PFVF_CMD_NEXACTF_S) 15498c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_NEXACTF_G(x) \ 15508c2ecf20Sopenharmony_ci (((x) >> FW_PFVF_CMD_NEXACTF_S) & FW_PFVF_CMD_NEXACTF_M) 15518c2ecf20Sopenharmony_ci 15528c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_R_CAPS_S 24 15538c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_R_CAPS_M 0xff 15548c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_R_CAPS_V(x) ((x) << FW_PFVF_CMD_R_CAPS_S) 15558c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_R_CAPS_G(x) \ 15568c2ecf20Sopenharmony_ci (((x) >> FW_PFVF_CMD_R_CAPS_S) & FW_PFVF_CMD_R_CAPS_M) 15578c2ecf20Sopenharmony_ci 15588c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_WX_CAPS_S 16 15598c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_WX_CAPS_M 0xff 15608c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_WX_CAPS_V(x) ((x) << FW_PFVF_CMD_WX_CAPS_S) 15618c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_WX_CAPS_G(x) \ 15628c2ecf20Sopenharmony_ci (((x) >> FW_PFVF_CMD_WX_CAPS_S) & FW_PFVF_CMD_WX_CAPS_M) 15638c2ecf20Sopenharmony_ci 15648c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_NETHCTRL_S 0 15658c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_NETHCTRL_M 0xffff 15668c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_NETHCTRL_V(x) ((x) << FW_PFVF_CMD_NETHCTRL_S) 15678c2ecf20Sopenharmony_ci#define FW_PFVF_CMD_NETHCTRL_G(x) \ 15688c2ecf20Sopenharmony_ci (((x) >> FW_PFVF_CMD_NETHCTRL_S) & FW_PFVF_CMD_NETHCTRL_M) 15698c2ecf20Sopenharmony_ci 15708c2ecf20Sopenharmony_cienum fw_iq_type { 15718c2ecf20Sopenharmony_ci FW_IQ_TYPE_FL_INT_CAP, 15728c2ecf20Sopenharmony_ci FW_IQ_TYPE_NO_FL_INT_CAP 15738c2ecf20Sopenharmony_ci}; 15748c2ecf20Sopenharmony_ci 15758c2ecf20Sopenharmony_cienum fw_iq_iqtype { 15768c2ecf20Sopenharmony_ci FW_IQ_IQTYPE_OTHER, 15778c2ecf20Sopenharmony_ci FW_IQ_IQTYPE_NIC, 15788c2ecf20Sopenharmony_ci FW_IQ_IQTYPE_OFLD, 15798c2ecf20Sopenharmony_ci}; 15808c2ecf20Sopenharmony_ci 15818c2ecf20Sopenharmony_cistruct fw_iq_cmd { 15828c2ecf20Sopenharmony_ci __be32 op_to_vfn; 15838c2ecf20Sopenharmony_ci __be32 alloc_to_len16; 15848c2ecf20Sopenharmony_ci __be16 physiqid; 15858c2ecf20Sopenharmony_ci __be16 iqid; 15868c2ecf20Sopenharmony_ci __be16 fl0id; 15878c2ecf20Sopenharmony_ci __be16 fl1id; 15888c2ecf20Sopenharmony_ci __be32 type_to_iqandstindex; 15898c2ecf20Sopenharmony_ci __be16 iqdroprss_to_iqesize; 15908c2ecf20Sopenharmony_ci __be16 iqsize; 15918c2ecf20Sopenharmony_ci __be64 iqaddr; 15928c2ecf20Sopenharmony_ci __be32 iqns_to_fl0congen; 15938c2ecf20Sopenharmony_ci __be16 fl0dcaen_to_fl0cidxfthresh; 15948c2ecf20Sopenharmony_ci __be16 fl0size; 15958c2ecf20Sopenharmony_ci __be64 fl0addr; 15968c2ecf20Sopenharmony_ci __be32 fl1cngchmap_to_fl1congen; 15978c2ecf20Sopenharmony_ci __be16 fl1dcaen_to_fl1cidxfthresh; 15988c2ecf20Sopenharmony_ci __be16 fl1size; 15998c2ecf20Sopenharmony_ci __be64 fl1addr; 16008c2ecf20Sopenharmony_ci}; 16018c2ecf20Sopenharmony_ci 16028c2ecf20Sopenharmony_ci#define FW_IQ_CMD_PFN_S 8 16038c2ecf20Sopenharmony_ci#define FW_IQ_CMD_PFN_V(x) ((x) << FW_IQ_CMD_PFN_S) 16048c2ecf20Sopenharmony_ci 16058c2ecf20Sopenharmony_ci#define FW_IQ_CMD_VFN_S 0 16068c2ecf20Sopenharmony_ci#define FW_IQ_CMD_VFN_V(x) ((x) << FW_IQ_CMD_VFN_S) 16078c2ecf20Sopenharmony_ci 16088c2ecf20Sopenharmony_ci#define FW_IQ_CMD_ALLOC_S 31 16098c2ecf20Sopenharmony_ci#define FW_IQ_CMD_ALLOC_V(x) ((x) << FW_IQ_CMD_ALLOC_S) 16108c2ecf20Sopenharmony_ci#define FW_IQ_CMD_ALLOC_F FW_IQ_CMD_ALLOC_V(1U) 16118c2ecf20Sopenharmony_ci 16128c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FREE_S 30 16138c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FREE_V(x) ((x) << FW_IQ_CMD_FREE_S) 16148c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FREE_F FW_IQ_CMD_FREE_V(1U) 16158c2ecf20Sopenharmony_ci 16168c2ecf20Sopenharmony_ci#define FW_IQ_CMD_MODIFY_S 29 16178c2ecf20Sopenharmony_ci#define FW_IQ_CMD_MODIFY_V(x) ((x) << FW_IQ_CMD_MODIFY_S) 16188c2ecf20Sopenharmony_ci#define FW_IQ_CMD_MODIFY_F FW_IQ_CMD_MODIFY_V(1U) 16198c2ecf20Sopenharmony_ci 16208c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQSTART_S 28 16218c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQSTART_V(x) ((x) << FW_IQ_CMD_IQSTART_S) 16228c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQSTART_F FW_IQ_CMD_IQSTART_V(1U) 16238c2ecf20Sopenharmony_ci 16248c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQSTOP_S 27 16258c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQSTOP_V(x) ((x) << FW_IQ_CMD_IQSTOP_S) 16268c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQSTOP_F FW_IQ_CMD_IQSTOP_V(1U) 16278c2ecf20Sopenharmony_ci 16288c2ecf20Sopenharmony_ci#define FW_IQ_CMD_TYPE_S 29 16298c2ecf20Sopenharmony_ci#define FW_IQ_CMD_TYPE_V(x) ((x) << FW_IQ_CMD_TYPE_S) 16308c2ecf20Sopenharmony_ci 16318c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQASYNCH_S 28 16328c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQASYNCH_V(x) ((x) << FW_IQ_CMD_IQASYNCH_S) 16338c2ecf20Sopenharmony_ci 16348c2ecf20Sopenharmony_ci#define FW_IQ_CMD_VIID_S 16 16358c2ecf20Sopenharmony_ci#define FW_IQ_CMD_VIID_V(x) ((x) << FW_IQ_CMD_VIID_S) 16368c2ecf20Sopenharmony_ci 16378c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQANDST_S 15 16388c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQANDST_V(x) ((x) << FW_IQ_CMD_IQANDST_S) 16398c2ecf20Sopenharmony_ci 16408c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQANUS_S 14 16418c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQANUS_V(x) ((x) << FW_IQ_CMD_IQANUS_S) 16428c2ecf20Sopenharmony_ci 16438c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQANUD_S 12 16448c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQANUD_V(x) ((x) << FW_IQ_CMD_IQANUD_S) 16458c2ecf20Sopenharmony_ci 16468c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQANDSTINDEX_S 0 16478c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQANDSTINDEX_V(x) ((x) << FW_IQ_CMD_IQANDSTINDEX_S) 16488c2ecf20Sopenharmony_ci 16498c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQDROPRSS_S 15 16508c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQDROPRSS_V(x) ((x) << FW_IQ_CMD_IQDROPRSS_S) 16518c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQDROPRSS_F FW_IQ_CMD_IQDROPRSS_V(1U) 16528c2ecf20Sopenharmony_ci 16538c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQGTSMODE_S 14 16548c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQGTSMODE_V(x) ((x) << FW_IQ_CMD_IQGTSMODE_S) 16558c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQGTSMODE_F FW_IQ_CMD_IQGTSMODE_V(1U) 16568c2ecf20Sopenharmony_ci 16578c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQPCIECH_S 12 16588c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQPCIECH_V(x) ((x) << FW_IQ_CMD_IQPCIECH_S) 16598c2ecf20Sopenharmony_ci 16608c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQDCAEN_S 11 16618c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQDCAEN_V(x) ((x) << FW_IQ_CMD_IQDCAEN_S) 16628c2ecf20Sopenharmony_ci 16638c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQDCACPU_S 6 16648c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQDCACPU_V(x) ((x) << FW_IQ_CMD_IQDCACPU_S) 16658c2ecf20Sopenharmony_ci 16668c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQINTCNTTHRESH_S 4 16678c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQINTCNTTHRESH_V(x) ((x) << FW_IQ_CMD_IQINTCNTTHRESH_S) 16688c2ecf20Sopenharmony_ci 16698c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQO_S 3 16708c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQO_V(x) ((x) << FW_IQ_CMD_IQO_S) 16718c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQO_F FW_IQ_CMD_IQO_V(1U) 16728c2ecf20Sopenharmony_ci 16738c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQCPRIO_S 2 16748c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQCPRIO_V(x) ((x) << FW_IQ_CMD_IQCPRIO_S) 16758c2ecf20Sopenharmony_ci 16768c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQESIZE_S 0 16778c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQESIZE_V(x) ((x) << FW_IQ_CMD_IQESIZE_S) 16788c2ecf20Sopenharmony_ci 16798c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQNS_S 31 16808c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQNS_V(x) ((x) << FW_IQ_CMD_IQNS_S) 16818c2ecf20Sopenharmony_ci 16828c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQRO_S 30 16838c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQRO_V(x) ((x) << FW_IQ_CMD_IQRO_S) 16848c2ecf20Sopenharmony_ci 16858c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQFLINTIQHSEN_S 28 16868c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQFLINTIQHSEN_V(x) ((x) << FW_IQ_CMD_IQFLINTIQHSEN_S) 16878c2ecf20Sopenharmony_ci 16888c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQFLINTCONGEN_S 27 16898c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQFLINTCONGEN_V(x) ((x) << FW_IQ_CMD_IQFLINTCONGEN_S) 16908c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQFLINTCONGEN_F FW_IQ_CMD_IQFLINTCONGEN_V(1U) 16918c2ecf20Sopenharmony_ci 16928c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQFLINTISCSIC_S 26 16938c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQFLINTISCSIC_V(x) ((x) << FW_IQ_CMD_IQFLINTISCSIC_S) 16948c2ecf20Sopenharmony_ci 16958c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQTYPE_S 24 16968c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQTYPE_M 0x3 16978c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQTYPE_V(x) ((x) << FW_IQ_CMD_IQTYPE_S) 16988c2ecf20Sopenharmony_ci#define FW_IQ_CMD_IQTYPE_G(x) \ 16998c2ecf20Sopenharmony_ci (((x) >> FW_IQ_CMD_IQTYPE_S) & FW_IQ_CMD_IQTYPE_M) 17008c2ecf20Sopenharmony_ci 17018c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0CNGCHMAP_S 20 17028c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0CNGCHMAP_V(x) ((x) << FW_IQ_CMD_FL0CNGCHMAP_S) 17038c2ecf20Sopenharmony_ci 17048c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0CACHELOCK_S 15 17058c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0CACHELOCK_V(x) ((x) << FW_IQ_CMD_FL0CACHELOCK_S) 17068c2ecf20Sopenharmony_ci 17078c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0DBP_S 14 17088c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0DBP_V(x) ((x) << FW_IQ_CMD_FL0DBP_S) 17098c2ecf20Sopenharmony_ci 17108c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0DATANS_S 13 17118c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0DATANS_V(x) ((x) << FW_IQ_CMD_FL0DATANS_S) 17128c2ecf20Sopenharmony_ci 17138c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0DATARO_S 12 17148c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0DATARO_V(x) ((x) << FW_IQ_CMD_FL0DATARO_S) 17158c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0DATARO_F FW_IQ_CMD_FL0DATARO_V(1U) 17168c2ecf20Sopenharmony_ci 17178c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0CONGCIF_S 11 17188c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0CONGCIF_V(x) ((x) << FW_IQ_CMD_FL0CONGCIF_S) 17198c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0CONGCIF_F FW_IQ_CMD_FL0CONGCIF_V(1U) 17208c2ecf20Sopenharmony_ci 17218c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0ONCHIP_S 10 17228c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0ONCHIP_V(x) ((x) << FW_IQ_CMD_FL0ONCHIP_S) 17238c2ecf20Sopenharmony_ci 17248c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0STATUSPGNS_S 9 17258c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0STATUSPGNS_V(x) ((x) << FW_IQ_CMD_FL0STATUSPGNS_S) 17268c2ecf20Sopenharmony_ci 17278c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0STATUSPGRO_S 8 17288c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0STATUSPGRO_V(x) ((x) << FW_IQ_CMD_FL0STATUSPGRO_S) 17298c2ecf20Sopenharmony_ci 17308c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0FETCHNS_S 7 17318c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0FETCHNS_V(x) ((x) << FW_IQ_CMD_FL0FETCHNS_S) 17328c2ecf20Sopenharmony_ci 17338c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0FETCHRO_S 6 17348c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0FETCHRO_V(x) ((x) << FW_IQ_CMD_FL0FETCHRO_S) 17358c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0FETCHRO_F FW_IQ_CMD_FL0FETCHRO_V(1U) 17368c2ecf20Sopenharmony_ci 17378c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0HOSTFCMODE_S 4 17388c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0HOSTFCMODE_V(x) ((x) << FW_IQ_CMD_FL0HOSTFCMODE_S) 17398c2ecf20Sopenharmony_ci 17408c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0CPRIO_S 3 17418c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0CPRIO_V(x) ((x) << FW_IQ_CMD_FL0CPRIO_S) 17428c2ecf20Sopenharmony_ci 17438c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0PADEN_S 2 17448c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0PADEN_V(x) ((x) << FW_IQ_CMD_FL0PADEN_S) 17458c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0PADEN_F FW_IQ_CMD_FL0PADEN_V(1U) 17468c2ecf20Sopenharmony_ci 17478c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0PACKEN_S 1 17488c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0PACKEN_V(x) ((x) << FW_IQ_CMD_FL0PACKEN_S) 17498c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0PACKEN_F FW_IQ_CMD_FL0PACKEN_V(1U) 17508c2ecf20Sopenharmony_ci 17518c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0CONGEN_S 0 17528c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0CONGEN_V(x) ((x) << FW_IQ_CMD_FL0CONGEN_S) 17538c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0CONGEN_F FW_IQ_CMD_FL0CONGEN_V(1U) 17548c2ecf20Sopenharmony_ci 17558c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0DCAEN_S 15 17568c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0DCAEN_V(x) ((x) << FW_IQ_CMD_FL0DCAEN_S) 17578c2ecf20Sopenharmony_ci 17588c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0DCACPU_S 10 17598c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0DCACPU_V(x) ((x) << FW_IQ_CMD_FL0DCACPU_S) 17608c2ecf20Sopenharmony_ci 17618c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0FBMIN_S 7 17628c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0FBMIN_V(x) ((x) << FW_IQ_CMD_FL0FBMIN_S) 17638c2ecf20Sopenharmony_ci 17648c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0FBMAX_S 4 17658c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0FBMAX_V(x) ((x) << FW_IQ_CMD_FL0FBMAX_S) 17668c2ecf20Sopenharmony_ci 17678c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0CIDXFTHRESHO_S 3 17688c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0CIDXFTHRESHO_V(x) ((x) << FW_IQ_CMD_FL0CIDXFTHRESHO_S) 17698c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0CIDXFTHRESHO_F FW_IQ_CMD_FL0CIDXFTHRESHO_V(1U) 17708c2ecf20Sopenharmony_ci 17718c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0CIDXFTHRESH_S 0 17728c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL0CIDXFTHRESH_V(x) ((x) << FW_IQ_CMD_FL0CIDXFTHRESH_S) 17738c2ecf20Sopenharmony_ci 17748c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1CNGCHMAP_S 20 17758c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1CNGCHMAP_V(x) ((x) << FW_IQ_CMD_FL1CNGCHMAP_S) 17768c2ecf20Sopenharmony_ci 17778c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1CACHELOCK_S 15 17788c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1CACHELOCK_V(x) ((x) << FW_IQ_CMD_FL1CACHELOCK_S) 17798c2ecf20Sopenharmony_ci 17808c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1DBP_S 14 17818c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1DBP_V(x) ((x) << FW_IQ_CMD_FL1DBP_S) 17828c2ecf20Sopenharmony_ci 17838c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1DATANS_S 13 17848c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1DATANS_V(x) ((x) << FW_IQ_CMD_FL1DATANS_S) 17858c2ecf20Sopenharmony_ci 17868c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1DATARO_S 12 17878c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1DATARO_V(x) ((x) << FW_IQ_CMD_FL1DATARO_S) 17888c2ecf20Sopenharmony_ci 17898c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1CONGCIF_S 11 17908c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1CONGCIF_V(x) ((x) << FW_IQ_CMD_FL1CONGCIF_S) 17918c2ecf20Sopenharmony_ci 17928c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1ONCHIP_S 10 17938c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1ONCHIP_V(x) ((x) << FW_IQ_CMD_FL1ONCHIP_S) 17948c2ecf20Sopenharmony_ci 17958c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1STATUSPGNS_S 9 17968c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1STATUSPGNS_V(x) ((x) << FW_IQ_CMD_FL1STATUSPGNS_S) 17978c2ecf20Sopenharmony_ci 17988c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1STATUSPGRO_S 8 17998c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1STATUSPGRO_V(x) ((x) << FW_IQ_CMD_FL1STATUSPGRO_S) 18008c2ecf20Sopenharmony_ci 18018c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1FETCHNS_S 7 18028c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1FETCHNS_V(x) ((x) << FW_IQ_CMD_FL1FETCHNS_S) 18038c2ecf20Sopenharmony_ci 18048c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1FETCHRO_S 6 18058c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1FETCHRO_V(x) ((x) << FW_IQ_CMD_FL1FETCHRO_S) 18068c2ecf20Sopenharmony_ci 18078c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1HOSTFCMODE_S 4 18088c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1HOSTFCMODE_V(x) ((x) << FW_IQ_CMD_FL1HOSTFCMODE_S) 18098c2ecf20Sopenharmony_ci 18108c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1CPRIO_S 3 18118c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1CPRIO_V(x) ((x) << FW_IQ_CMD_FL1CPRIO_S) 18128c2ecf20Sopenharmony_ci 18138c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1PADEN_S 2 18148c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1PADEN_V(x) ((x) << FW_IQ_CMD_FL1PADEN_S) 18158c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1PADEN_F FW_IQ_CMD_FL1PADEN_V(1U) 18168c2ecf20Sopenharmony_ci 18178c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1PACKEN_S 1 18188c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1PACKEN_V(x) ((x) << FW_IQ_CMD_FL1PACKEN_S) 18198c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1PACKEN_F FW_IQ_CMD_FL1PACKEN_V(1U) 18208c2ecf20Sopenharmony_ci 18218c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1CONGEN_S 0 18228c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1CONGEN_V(x) ((x) << FW_IQ_CMD_FL1CONGEN_S) 18238c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1CONGEN_F FW_IQ_CMD_FL1CONGEN_V(1U) 18248c2ecf20Sopenharmony_ci 18258c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1DCAEN_S 15 18268c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1DCAEN_V(x) ((x) << FW_IQ_CMD_FL1DCAEN_S) 18278c2ecf20Sopenharmony_ci 18288c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1DCACPU_S 10 18298c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1DCACPU_V(x) ((x) << FW_IQ_CMD_FL1DCACPU_S) 18308c2ecf20Sopenharmony_ci 18318c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1FBMIN_S 7 18328c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1FBMIN_V(x) ((x) << FW_IQ_CMD_FL1FBMIN_S) 18338c2ecf20Sopenharmony_ci 18348c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1FBMAX_S 4 18358c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1FBMAX_V(x) ((x) << FW_IQ_CMD_FL1FBMAX_S) 18368c2ecf20Sopenharmony_ci 18378c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1CIDXFTHRESHO_S 3 18388c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1CIDXFTHRESHO_V(x) ((x) << FW_IQ_CMD_FL1CIDXFTHRESHO_S) 18398c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1CIDXFTHRESHO_F FW_IQ_CMD_FL1CIDXFTHRESHO_V(1U) 18408c2ecf20Sopenharmony_ci 18418c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1CIDXFTHRESH_S 0 18428c2ecf20Sopenharmony_ci#define FW_IQ_CMD_FL1CIDXFTHRESH_V(x) ((x) << FW_IQ_CMD_FL1CIDXFTHRESH_S) 18438c2ecf20Sopenharmony_ci 18448c2ecf20Sopenharmony_cistruct fw_eq_eth_cmd { 18458c2ecf20Sopenharmony_ci __be32 op_to_vfn; 18468c2ecf20Sopenharmony_ci __be32 alloc_to_len16; 18478c2ecf20Sopenharmony_ci __be32 eqid_pkd; 18488c2ecf20Sopenharmony_ci __be32 physeqid_pkd; 18498c2ecf20Sopenharmony_ci __be32 fetchszm_to_iqid; 18508c2ecf20Sopenharmony_ci __be32 dcaen_to_eqsize; 18518c2ecf20Sopenharmony_ci __be64 eqaddr; 18528c2ecf20Sopenharmony_ci __be32 autoequiqe_to_viid; 18538c2ecf20Sopenharmony_ci __be32 timeren_timerix; 18548c2ecf20Sopenharmony_ci __be64 r9; 18558c2ecf20Sopenharmony_ci}; 18568c2ecf20Sopenharmony_ci 18578c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_PFN_S 8 18588c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_PFN_V(x) ((x) << FW_EQ_ETH_CMD_PFN_S) 18598c2ecf20Sopenharmony_ci 18608c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_VFN_S 0 18618c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_VFN_V(x) ((x) << FW_EQ_ETH_CMD_VFN_S) 18628c2ecf20Sopenharmony_ci 18638c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_ALLOC_S 31 18648c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_ALLOC_V(x) ((x) << FW_EQ_ETH_CMD_ALLOC_S) 18658c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_ALLOC_F FW_EQ_ETH_CMD_ALLOC_V(1U) 18668c2ecf20Sopenharmony_ci 18678c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_FREE_S 30 18688c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_FREE_V(x) ((x) << FW_EQ_ETH_CMD_FREE_S) 18698c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_FREE_F FW_EQ_ETH_CMD_FREE_V(1U) 18708c2ecf20Sopenharmony_ci 18718c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_MODIFY_S 29 18728c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_MODIFY_V(x) ((x) << FW_EQ_ETH_CMD_MODIFY_S) 18738c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_MODIFY_F FW_EQ_ETH_CMD_MODIFY_V(1U) 18748c2ecf20Sopenharmony_ci 18758c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_EQSTART_S 28 18768c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_EQSTART_V(x) ((x) << FW_EQ_ETH_CMD_EQSTART_S) 18778c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_EQSTART_F FW_EQ_ETH_CMD_EQSTART_V(1U) 18788c2ecf20Sopenharmony_ci 18798c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_EQSTOP_S 27 18808c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_EQSTOP_V(x) ((x) << FW_EQ_ETH_CMD_EQSTOP_S) 18818c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_EQSTOP_F FW_EQ_ETH_CMD_EQSTOP_V(1U) 18828c2ecf20Sopenharmony_ci 18838c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_EQID_S 0 18848c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_EQID_M 0xfffff 18858c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_EQID_V(x) ((x) << FW_EQ_ETH_CMD_EQID_S) 18868c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_EQID_G(x) \ 18878c2ecf20Sopenharmony_ci (((x) >> FW_EQ_ETH_CMD_EQID_S) & FW_EQ_ETH_CMD_EQID_M) 18888c2ecf20Sopenharmony_ci 18898c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_PHYSEQID_S 0 18908c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_PHYSEQID_M 0xfffff 18918c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_PHYSEQID_V(x) ((x) << FW_EQ_ETH_CMD_PHYSEQID_S) 18928c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_PHYSEQID_G(x) \ 18938c2ecf20Sopenharmony_ci (((x) >> FW_EQ_ETH_CMD_PHYSEQID_S) & FW_EQ_ETH_CMD_PHYSEQID_M) 18948c2ecf20Sopenharmony_ci 18958c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_FETCHSZM_S 26 18968c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_FETCHSZM_V(x) ((x) << FW_EQ_ETH_CMD_FETCHSZM_S) 18978c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_FETCHSZM_F FW_EQ_ETH_CMD_FETCHSZM_V(1U) 18988c2ecf20Sopenharmony_ci 18998c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_STATUSPGNS_S 25 19008c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_STATUSPGNS_V(x) ((x) << FW_EQ_ETH_CMD_STATUSPGNS_S) 19018c2ecf20Sopenharmony_ci 19028c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_STATUSPGRO_S 24 19038c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_STATUSPGRO_V(x) ((x) << FW_EQ_ETH_CMD_STATUSPGRO_S) 19048c2ecf20Sopenharmony_ci 19058c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_FETCHNS_S 23 19068c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_FETCHNS_V(x) ((x) << FW_EQ_ETH_CMD_FETCHNS_S) 19078c2ecf20Sopenharmony_ci 19088c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_FETCHRO_S 22 19098c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_FETCHRO_V(x) ((x) << FW_EQ_ETH_CMD_FETCHRO_S) 19108c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_FETCHRO_F FW_EQ_ETH_CMD_FETCHRO_V(1U) 19118c2ecf20Sopenharmony_ci 19128c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_HOSTFCMODE_S 20 19138c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_HOSTFCMODE_V(x) ((x) << FW_EQ_ETH_CMD_HOSTFCMODE_S) 19148c2ecf20Sopenharmony_ci 19158c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_CPRIO_S 19 19168c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_CPRIO_V(x) ((x) << FW_EQ_ETH_CMD_CPRIO_S) 19178c2ecf20Sopenharmony_ci 19188c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_ONCHIP_S 18 19198c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_ONCHIP_V(x) ((x) << FW_EQ_ETH_CMD_ONCHIP_S) 19208c2ecf20Sopenharmony_ci 19218c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_PCIECHN_S 16 19228c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_PCIECHN_V(x) ((x) << FW_EQ_ETH_CMD_PCIECHN_S) 19238c2ecf20Sopenharmony_ci 19248c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_IQID_S 0 19258c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_IQID_V(x) ((x) << FW_EQ_ETH_CMD_IQID_S) 19268c2ecf20Sopenharmony_ci 19278c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_DCAEN_S 31 19288c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_DCAEN_V(x) ((x) << FW_EQ_ETH_CMD_DCAEN_S) 19298c2ecf20Sopenharmony_ci 19308c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_DCACPU_S 26 19318c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_DCACPU_V(x) ((x) << FW_EQ_ETH_CMD_DCACPU_S) 19328c2ecf20Sopenharmony_ci 19338c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_FBMIN_S 23 19348c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_FBMIN_V(x) ((x) << FW_EQ_ETH_CMD_FBMIN_S) 19358c2ecf20Sopenharmony_ci 19368c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_FBMAX_S 20 19378c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_FBMAX_V(x) ((x) << FW_EQ_ETH_CMD_FBMAX_S) 19388c2ecf20Sopenharmony_ci 19398c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_CIDXFTHRESHO_S 19 19408c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_CIDXFTHRESHO_V(x) ((x) << FW_EQ_ETH_CMD_CIDXFTHRESHO_S) 19418c2ecf20Sopenharmony_ci 19428c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_CIDXFTHRESH_S 16 19438c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_CIDXFTHRESH_V(x) ((x) << FW_EQ_ETH_CMD_CIDXFTHRESH_S) 19448c2ecf20Sopenharmony_ci 19458c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_EQSIZE_S 0 19468c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_EQSIZE_V(x) ((x) << FW_EQ_ETH_CMD_EQSIZE_S) 19478c2ecf20Sopenharmony_ci 19488c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_AUTOEQUIQE_S 31 19498c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_AUTOEQUIQE_V(x) ((x) << FW_EQ_ETH_CMD_AUTOEQUIQE_S) 19508c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_AUTOEQUIQE_F FW_EQ_ETH_CMD_AUTOEQUIQE_V(1U) 19518c2ecf20Sopenharmony_ci 19528c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_AUTOEQUEQE_S 30 19538c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_AUTOEQUEQE_V(x) ((x) << FW_EQ_ETH_CMD_AUTOEQUEQE_S) 19548c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_AUTOEQUEQE_F FW_EQ_ETH_CMD_AUTOEQUEQE_V(1U) 19558c2ecf20Sopenharmony_ci 19568c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_VIID_S 16 19578c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_VIID_V(x) ((x) << FW_EQ_ETH_CMD_VIID_S) 19588c2ecf20Sopenharmony_ci 19598c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_TIMEREN_S 3 19608c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_TIMEREN_M 0x1 19618c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_TIMEREN_V(x) ((x) << FW_EQ_ETH_CMD_TIMEREN_S) 19628c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_TIMEREN_G(x) \ 19638c2ecf20Sopenharmony_ci (((x) >> FW_EQ_ETH_CMD_TIMEREN_S) & FW_EQ_ETH_CMD_TIMEREN_M) 19648c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_TIMEREN_F FW_EQ_ETH_CMD_TIMEREN_V(1U) 19658c2ecf20Sopenharmony_ci 19668c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_TIMERIX_S 0 19678c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_TIMERIX_M 0x7 19688c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_TIMERIX_V(x) ((x) << FW_EQ_ETH_CMD_TIMERIX_S) 19698c2ecf20Sopenharmony_ci#define FW_EQ_ETH_CMD_TIMERIX_G(x) \ 19708c2ecf20Sopenharmony_ci (((x) >> FW_EQ_ETH_CMD_TIMERIX_S) & FW_EQ_ETH_CMD_TIMERIX_M) 19718c2ecf20Sopenharmony_ci 19728c2ecf20Sopenharmony_cistruct fw_eq_ctrl_cmd { 19738c2ecf20Sopenharmony_ci __be32 op_to_vfn; 19748c2ecf20Sopenharmony_ci __be32 alloc_to_len16; 19758c2ecf20Sopenharmony_ci __be32 cmpliqid_eqid; 19768c2ecf20Sopenharmony_ci __be32 physeqid_pkd; 19778c2ecf20Sopenharmony_ci __be32 fetchszm_to_iqid; 19788c2ecf20Sopenharmony_ci __be32 dcaen_to_eqsize; 19798c2ecf20Sopenharmony_ci __be64 eqaddr; 19808c2ecf20Sopenharmony_ci}; 19818c2ecf20Sopenharmony_ci 19828c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_PFN_S 8 19838c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_PFN_V(x) ((x) << FW_EQ_CTRL_CMD_PFN_S) 19848c2ecf20Sopenharmony_ci 19858c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_VFN_S 0 19868c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_VFN_V(x) ((x) << FW_EQ_CTRL_CMD_VFN_S) 19878c2ecf20Sopenharmony_ci 19888c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_ALLOC_S 31 19898c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_ALLOC_V(x) ((x) << FW_EQ_CTRL_CMD_ALLOC_S) 19908c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_ALLOC_F FW_EQ_CTRL_CMD_ALLOC_V(1U) 19918c2ecf20Sopenharmony_ci 19928c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_FREE_S 30 19938c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_FREE_V(x) ((x) << FW_EQ_CTRL_CMD_FREE_S) 19948c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_FREE_F FW_EQ_CTRL_CMD_FREE_V(1U) 19958c2ecf20Sopenharmony_ci 19968c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_MODIFY_S 29 19978c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_MODIFY_V(x) ((x) << FW_EQ_CTRL_CMD_MODIFY_S) 19988c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_MODIFY_F FW_EQ_CTRL_CMD_MODIFY_V(1U) 19998c2ecf20Sopenharmony_ci 20008c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_EQSTART_S 28 20018c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_EQSTART_V(x) ((x) << FW_EQ_CTRL_CMD_EQSTART_S) 20028c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_EQSTART_F FW_EQ_CTRL_CMD_EQSTART_V(1U) 20038c2ecf20Sopenharmony_ci 20048c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_EQSTOP_S 27 20058c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_EQSTOP_V(x) ((x) << FW_EQ_CTRL_CMD_EQSTOP_S) 20068c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_EQSTOP_F FW_EQ_CTRL_CMD_EQSTOP_V(1U) 20078c2ecf20Sopenharmony_ci 20088c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_CMPLIQID_S 20 20098c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_CMPLIQID_V(x) ((x) << FW_EQ_CTRL_CMD_CMPLIQID_S) 20108c2ecf20Sopenharmony_ci 20118c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_EQID_S 0 20128c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_EQID_M 0xfffff 20138c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_EQID_V(x) ((x) << FW_EQ_CTRL_CMD_EQID_S) 20148c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_EQID_G(x) \ 20158c2ecf20Sopenharmony_ci (((x) >> FW_EQ_CTRL_CMD_EQID_S) & FW_EQ_CTRL_CMD_EQID_M) 20168c2ecf20Sopenharmony_ci 20178c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_PHYSEQID_S 0 20188c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_PHYSEQID_M 0xfffff 20198c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_PHYSEQID_G(x) \ 20208c2ecf20Sopenharmony_ci (((x) >> FW_EQ_CTRL_CMD_PHYSEQID_S) & FW_EQ_CTRL_CMD_PHYSEQID_M) 20218c2ecf20Sopenharmony_ci 20228c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_FETCHSZM_S 26 20238c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_FETCHSZM_V(x) ((x) << FW_EQ_CTRL_CMD_FETCHSZM_S) 20248c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_FETCHSZM_F FW_EQ_CTRL_CMD_FETCHSZM_V(1U) 20258c2ecf20Sopenharmony_ci 20268c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_STATUSPGNS_S 25 20278c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_STATUSPGNS_V(x) ((x) << FW_EQ_CTRL_CMD_STATUSPGNS_S) 20288c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_STATUSPGNS_F FW_EQ_CTRL_CMD_STATUSPGNS_V(1U) 20298c2ecf20Sopenharmony_ci 20308c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_STATUSPGRO_S 24 20318c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_STATUSPGRO_V(x) ((x) << FW_EQ_CTRL_CMD_STATUSPGRO_S) 20328c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_STATUSPGRO_F FW_EQ_CTRL_CMD_STATUSPGRO_V(1U) 20338c2ecf20Sopenharmony_ci 20348c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_FETCHNS_S 23 20358c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_FETCHNS_V(x) ((x) << FW_EQ_CTRL_CMD_FETCHNS_S) 20368c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_FETCHNS_F FW_EQ_CTRL_CMD_FETCHNS_V(1U) 20378c2ecf20Sopenharmony_ci 20388c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_FETCHRO_S 22 20398c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_FETCHRO_V(x) ((x) << FW_EQ_CTRL_CMD_FETCHRO_S) 20408c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_FETCHRO_F FW_EQ_CTRL_CMD_FETCHRO_V(1U) 20418c2ecf20Sopenharmony_ci 20428c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_HOSTFCMODE_S 20 20438c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_HOSTFCMODE_V(x) ((x) << FW_EQ_CTRL_CMD_HOSTFCMODE_S) 20448c2ecf20Sopenharmony_ci 20458c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_CPRIO_S 19 20468c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_CPRIO_V(x) ((x) << FW_EQ_CTRL_CMD_CPRIO_S) 20478c2ecf20Sopenharmony_ci 20488c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_ONCHIP_S 18 20498c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_ONCHIP_V(x) ((x) << FW_EQ_CTRL_CMD_ONCHIP_S) 20508c2ecf20Sopenharmony_ci 20518c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_PCIECHN_S 16 20528c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_PCIECHN_V(x) ((x) << FW_EQ_CTRL_CMD_PCIECHN_S) 20538c2ecf20Sopenharmony_ci 20548c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_IQID_S 0 20558c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_IQID_V(x) ((x) << FW_EQ_CTRL_CMD_IQID_S) 20568c2ecf20Sopenharmony_ci 20578c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_DCAEN_S 31 20588c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_DCAEN_V(x) ((x) << FW_EQ_CTRL_CMD_DCAEN_S) 20598c2ecf20Sopenharmony_ci 20608c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_DCACPU_S 26 20618c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_DCACPU_V(x) ((x) << FW_EQ_CTRL_CMD_DCACPU_S) 20628c2ecf20Sopenharmony_ci 20638c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_FBMIN_S 23 20648c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_FBMIN_V(x) ((x) << FW_EQ_CTRL_CMD_FBMIN_S) 20658c2ecf20Sopenharmony_ci 20668c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_FBMAX_S 20 20678c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_FBMAX_V(x) ((x) << FW_EQ_CTRL_CMD_FBMAX_S) 20688c2ecf20Sopenharmony_ci 20698c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_CIDXFTHRESHO_S 19 20708c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_CIDXFTHRESHO_V(x) \ 20718c2ecf20Sopenharmony_ci ((x) << FW_EQ_CTRL_CMD_CIDXFTHRESHO_S) 20728c2ecf20Sopenharmony_ci 20738c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_CIDXFTHRESH_S 16 20748c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_CIDXFTHRESH_V(x) ((x) << FW_EQ_CTRL_CMD_CIDXFTHRESH_S) 20758c2ecf20Sopenharmony_ci 20768c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_EQSIZE_S 0 20778c2ecf20Sopenharmony_ci#define FW_EQ_CTRL_CMD_EQSIZE_V(x) ((x) << FW_EQ_CTRL_CMD_EQSIZE_S) 20788c2ecf20Sopenharmony_ci 20798c2ecf20Sopenharmony_cistruct fw_eq_ofld_cmd { 20808c2ecf20Sopenharmony_ci __be32 op_to_vfn; 20818c2ecf20Sopenharmony_ci __be32 alloc_to_len16; 20828c2ecf20Sopenharmony_ci __be32 eqid_pkd; 20838c2ecf20Sopenharmony_ci __be32 physeqid_pkd; 20848c2ecf20Sopenharmony_ci __be32 fetchszm_to_iqid; 20858c2ecf20Sopenharmony_ci __be32 dcaen_to_eqsize; 20868c2ecf20Sopenharmony_ci __be64 eqaddr; 20878c2ecf20Sopenharmony_ci}; 20888c2ecf20Sopenharmony_ci 20898c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_PFN_S 8 20908c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_PFN_V(x) ((x) << FW_EQ_OFLD_CMD_PFN_S) 20918c2ecf20Sopenharmony_ci 20928c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_VFN_S 0 20938c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_VFN_V(x) ((x) << FW_EQ_OFLD_CMD_VFN_S) 20948c2ecf20Sopenharmony_ci 20958c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_ALLOC_S 31 20968c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_ALLOC_V(x) ((x) << FW_EQ_OFLD_CMD_ALLOC_S) 20978c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_ALLOC_F FW_EQ_OFLD_CMD_ALLOC_V(1U) 20988c2ecf20Sopenharmony_ci 20998c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_FREE_S 30 21008c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_FREE_V(x) ((x) << FW_EQ_OFLD_CMD_FREE_S) 21018c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_FREE_F FW_EQ_OFLD_CMD_FREE_V(1U) 21028c2ecf20Sopenharmony_ci 21038c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_MODIFY_S 29 21048c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_MODIFY_V(x) ((x) << FW_EQ_OFLD_CMD_MODIFY_S) 21058c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_MODIFY_F FW_EQ_OFLD_CMD_MODIFY_V(1U) 21068c2ecf20Sopenharmony_ci 21078c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_EQSTART_S 28 21088c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_EQSTART_V(x) ((x) << FW_EQ_OFLD_CMD_EQSTART_S) 21098c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_EQSTART_F FW_EQ_OFLD_CMD_EQSTART_V(1U) 21108c2ecf20Sopenharmony_ci 21118c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_EQSTOP_S 27 21128c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_EQSTOP_V(x) ((x) << FW_EQ_OFLD_CMD_EQSTOP_S) 21138c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_EQSTOP_F FW_EQ_OFLD_CMD_EQSTOP_V(1U) 21148c2ecf20Sopenharmony_ci 21158c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_EQID_S 0 21168c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_EQID_M 0xfffff 21178c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_EQID_V(x) ((x) << FW_EQ_OFLD_CMD_EQID_S) 21188c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_EQID_G(x) \ 21198c2ecf20Sopenharmony_ci (((x) >> FW_EQ_OFLD_CMD_EQID_S) & FW_EQ_OFLD_CMD_EQID_M) 21208c2ecf20Sopenharmony_ci 21218c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_PHYSEQID_S 0 21228c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_PHYSEQID_M 0xfffff 21238c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_PHYSEQID_G(x) \ 21248c2ecf20Sopenharmony_ci (((x) >> FW_EQ_OFLD_CMD_PHYSEQID_S) & FW_EQ_OFLD_CMD_PHYSEQID_M) 21258c2ecf20Sopenharmony_ci 21268c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_FETCHSZM_S 26 21278c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_FETCHSZM_V(x) ((x) << FW_EQ_OFLD_CMD_FETCHSZM_S) 21288c2ecf20Sopenharmony_ci 21298c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_STATUSPGNS_S 25 21308c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_STATUSPGNS_V(x) ((x) << FW_EQ_OFLD_CMD_STATUSPGNS_S) 21318c2ecf20Sopenharmony_ci 21328c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_STATUSPGRO_S 24 21338c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_STATUSPGRO_V(x) ((x) << FW_EQ_OFLD_CMD_STATUSPGRO_S) 21348c2ecf20Sopenharmony_ci 21358c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_FETCHNS_S 23 21368c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_FETCHNS_V(x) ((x) << FW_EQ_OFLD_CMD_FETCHNS_S) 21378c2ecf20Sopenharmony_ci 21388c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_FETCHRO_S 22 21398c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_FETCHRO_V(x) ((x) << FW_EQ_OFLD_CMD_FETCHRO_S) 21408c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_FETCHRO_F FW_EQ_OFLD_CMD_FETCHRO_V(1U) 21418c2ecf20Sopenharmony_ci 21428c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_HOSTFCMODE_S 20 21438c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_HOSTFCMODE_V(x) ((x) << FW_EQ_OFLD_CMD_HOSTFCMODE_S) 21448c2ecf20Sopenharmony_ci 21458c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_CPRIO_S 19 21468c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_CPRIO_V(x) ((x) << FW_EQ_OFLD_CMD_CPRIO_S) 21478c2ecf20Sopenharmony_ci 21488c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_ONCHIP_S 18 21498c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_ONCHIP_V(x) ((x) << FW_EQ_OFLD_CMD_ONCHIP_S) 21508c2ecf20Sopenharmony_ci 21518c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_PCIECHN_S 16 21528c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_PCIECHN_V(x) ((x) << FW_EQ_OFLD_CMD_PCIECHN_S) 21538c2ecf20Sopenharmony_ci 21548c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_IQID_S 0 21558c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_IQID_V(x) ((x) << FW_EQ_OFLD_CMD_IQID_S) 21568c2ecf20Sopenharmony_ci 21578c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_DCAEN_S 31 21588c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_DCAEN_V(x) ((x) << FW_EQ_OFLD_CMD_DCAEN_S) 21598c2ecf20Sopenharmony_ci 21608c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_DCACPU_S 26 21618c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_DCACPU_V(x) ((x) << FW_EQ_OFLD_CMD_DCACPU_S) 21628c2ecf20Sopenharmony_ci 21638c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_FBMIN_S 23 21648c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_FBMIN_V(x) ((x) << FW_EQ_OFLD_CMD_FBMIN_S) 21658c2ecf20Sopenharmony_ci 21668c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_FBMAX_S 20 21678c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_FBMAX_V(x) ((x) << FW_EQ_OFLD_CMD_FBMAX_S) 21688c2ecf20Sopenharmony_ci 21698c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_CIDXFTHRESHO_S 19 21708c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_CIDXFTHRESHO_V(x) \ 21718c2ecf20Sopenharmony_ci ((x) << FW_EQ_OFLD_CMD_CIDXFTHRESHO_S) 21728c2ecf20Sopenharmony_ci 21738c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_CIDXFTHRESH_S 16 21748c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_CIDXFTHRESH_V(x) ((x) << FW_EQ_OFLD_CMD_CIDXFTHRESH_S) 21758c2ecf20Sopenharmony_ci 21768c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_EQSIZE_S 0 21778c2ecf20Sopenharmony_ci#define FW_EQ_OFLD_CMD_EQSIZE_V(x) ((x) << FW_EQ_OFLD_CMD_EQSIZE_S) 21788c2ecf20Sopenharmony_ci 21798c2ecf20Sopenharmony_ci/* 21808c2ecf20Sopenharmony_ci * Macros for VIID parsing: 21818c2ecf20Sopenharmony_ci * VIID - [10:8] PFN, [7] VI Valid, [6:0] VI number 21828c2ecf20Sopenharmony_ci */ 21838c2ecf20Sopenharmony_ci 21848c2ecf20Sopenharmony_ci#define FW_VIID_PFN_S 8 21858c2ecf20Sopenharmony_ci#define FW_VIID_PFN_M 0x7 21868c2ecf20Sopenharmony_ci#define FW_VIID_PFN_G(x) (((x) >> FW_VIID_PFN_S) & FW_VIID_PFN_M) 21878c2ecf20Sopenharmony_ci 21888c2ecf20Sopenharmony_ci#define FW_VIID_VIVLD_S 7 21898c2ecf20Sopenharmony_ci#define FW_VIID_VIVLD_M 0x1 21908c2ecf20Sopenharmony_ci#define FW_VIID_VIVLD_G(x) (((x) >> FW_VIID_VIVLD_S) & FW_VIID_VIVLD_M) 21918c2ecf20Sopenharmony_ci 21928c2ecf20Sopenharmony_ci#define FW_VIID_VIN_S 0 21938c2ecf20Sopenharmony_ci#define FW_VIID_VIN_M 0x7F 21948c2ecf20Sopenharmony_ci#define FW_VIID_VIN_G(x) (((x) >> FW_VIID_VIN_S) & FW_VIID_VIN_M) 21958c2ecf20Sopenharmony_ci 21968c2ecf20Sopenharmony_cistruct fw_vi_cmd { 21978c2ecf20Sopenharmony_ci __be32 op_to_vfn; 21988c2ecf20Sopenharmony_ci __be32 alloc_to_len16; 21998c2ecf20Sopenharmony_ci __be16 type_viid; 22008c2ecf20Sopenharmony_ci u8 mac[6]; 22018c2ecf20Sopenharmony_ci u8 portid_pkd; 22028c2ecf20Sopenharmony_ci u8 nmac; 22038c2ecf20Sopenharmony_ci u8 nmac0[6]; 22048c2ecf20Sopenharmony_ci __be16 rsssize_pkd; 22058c2ecf20Sopenharmony_ci u8 nmac1[6]; 22068c2ecf20Sopenharmony_ci __be16 idsiiq_pkd; 22078c2ecf20Sopenharmony_ci u8 nmac2[6]; 22088c2ecf20Sopenharmony_ci __be16 idseiq_pkd; 22098c2ecf20Sopenharmony_ci u8 nmac3[6]; 22108c2ecf20Sopenharmony_ci __be64 r9; 22118c2ecf20Sopenharmony_ci __be64 r10; 22128c2ecf20Sopenharmony_ci}; 22138c2ecf20Sopenharmony_ci 22148c2ecf20Sopenharmony_ci#define FW_VI_CMD_PFN_S 8 22158c2ecf20Sopenharmony_ci#define FW_VI_CMD_PFN_V(x) ((x) << FW_VI_CMD_PFN_S) 22168c2ecf20Sopenharmony_ci 22178c2ecf20Sopenharmony_ci#define FW_VI_CMD_VFN_S 0 22188c2ecf20Sopenharmony_ci#define FW_VI_CMD_VFN_V(x) ((x) << FW_VI_CMD_VFN_S) 22198c2ecf20Sopenharmony_ci 22208c2ecf20Sopenharmony_ci#define FW_VI_CMD_ALLOC_S 31 22218c2ecf20Sopenharmony_ci#define FW_VI_CMD_ALLOC_V(x) ((x) << FW_VI_CMD_ALLOC_S) 22228c2ecf20Sopenharmony_ci#define FW_VI_CMD_ALLOC_F FW_VI_CMD_ALLOC_V(1U) 22238c2ecf20Sopenharmony_ci 22248c2ecf20Sopenharmony_ci#define FW_VI_CMD_FREE_S 30 22258c2ecf20Sopenharmony_ci#define FW_VI_CMD_FREE_V(x) ((x) << FW_VI_CMD_FREE_S) 22268c2ecf20Sopenharmony_ci#define FW_VI_CMD_FREE_F FW_VI_CMD_FREE_V(1U) 22278c2ecf20Sopenharmony_ci 22288c2ecf20Sopenharmony_ci#define FW_VI_CMD_VFVLD_S 24 22298c2ecf20Sopenharmony_ci#define FW_VI_CMD_VFVLD_M 0x1 22308c2ecf20Sopenharmony_ci#define FW_VI_CMD_VFVLD_V(x) ((x) << FW_VI_CMD_VFVLD_S) 22318c2ecf20Sopenharmony_ci#define FW_VI_CMD_VFVLD_G(x) \ 22328c2ecf20Sopenharmony_ci (((x) >> FW_VI_CMD_VFVLD_S) & FW_VI_CMD_VFVLD_M) 22338c2ecf20Sopenharmony_ci#define FW_VI_CMD_VFVLD_F FW_VI_CMD_VFVLD_V(1U) 22348c2ecf20Sopenharmony_ci 22358c2ecf20Sopenharmony_ci#define FW_VI_CMD_VIN_S 16 22368c2ecf20Sopenharmony_ci#define FW_VI_CMD_VIN_M 0xff 22378c2ecf20Sopenharmony_ci#define FW_VI_CMD_VIN_V(x) ((x) << FW_VI_CMD_VIN_S) 22388c2ecf20Sopenharmony_ci#define FW_VI_CMD_VIN_G(x) \ 22398c2ecf20Sopenharmony_ci (((x) >> FW_VI_CMD_VIN_S) & FW_VI_CMD_VIN_M) 22408c2ecf20Sopenharmony_ci 22418c2ecf20Sopenharmony_ci#define FW_VI_CMD_VIID_S 0 22428c2ecf20Sopenharmony_ci#define FW_VI_CMD_VIID_M 0xfff 22438c2ecf20Sopenharmony_ci#define FW_VI_CMD_VIID_V(x) ((x) << FW_VI_CMD_VIID_S) 22448c2ecf20Sopenharmony_ci#define FW_VI_CMD_VIID_G(x) (((x) >> FW_VI_CMD_VIID_S) & FW_VI_CMD_VIID_M) 22458c2ecf20Sopenharmony_ci 22468c2ecf20Sopenharmony_ci#define FW_VI_CMD_PORTID_S 4 22478c2ecf20Sopenharmony_ci#define FW_VI_CMD_PORTID_M 0xf 22488c2ecf20Sopenharmony_ci#define FW_VI_CMD_PORTID_V(x) ((x) << FW_VI_CMD_PORTID_S) 22498c2ecf20Sopenharmony_ci#define FW_VI_CMD_PORTID_G(x) \ 22508c2ecf20Sopenharmony_ci (((x) >> FW_VI_CMD_PORTID_S) & FW_VI_CMD_PORTID_M) 22518c2ecf20Sopenharmony_ci 22528c2ecf20Sopenharmony_ci#define FW_VI_CMD_RSSSIZE_S 0 22538c2ecf20Sopenharmony_ci#define FW_VI_CMD_RSSSIZE_M 0x7ff 22548c2ecf20Sopenharmony_ci#define FW_VI_CMD_RSSSIZE_G(x) \ 22558c2ecf20Sopenharmony_ci (((x) >> FW_VI_CMD_RSSSIZE_S) & FW_VI_CMD_RSSSIZE_M) 22568c2ecf20Sopenharmony_ci 22578c2ecf20Sopenharmony_ci/* Special VI_MAC command index ids */ 22588c2ecf20Sopenharmony_ci#define FW_VI_MAC_ADD_MAC 0x3FF 22598c2ecf20Sopenharmony_ci#define FW_VI_MAC_ADD_PERSIST_MAC 0x3FE 22608c2ecf20Sopenharmony_ci#define FW_VI_MAC_MAC_BASED_FREE 0x3FD 22618c2ecf20Sopenharmony_ci#define FW_VI_MAC_ID_BASED_FREE 0x3FC 22628c2ecf20Sopenharmony_ci#define FW_CLS_TCAM_NUM_ENTRIES 336 22638c2ecf20Sopenharmony_ci 22648c2ecf20Sopenharmony_cienum fw_vi_mac_smac { 22658c2ecf20Sopenharmony_ci FW_VI_MAC_MPS_TCAM_ENTRY, 22668c2ecf20Sopenharmony_ci FW_VI_MAC_MPS_TCAM_ONLY, 22678c2ecf20Sopenharmony_ci FW_VI_MAC_SMT_ONLY, 22688c2ecf20Sopenharmony_ci FW_VI_MAC_SMT_AND_MPSTCAM 22698c2ecf20Sopenharmony_ci}; 22708c2ecf20Sopenharmony_ci 22718c2ecf20Sopenharmony_cienum fw_vi_mac_result { 22728c2ecf20Sopenharmony_ci FW_VI_MAC_R_SUCCESS, 22738c2ecf20Sopenharmony_ci FW_VI_MAC_R_F_NONEXISTENT_NOMEM, 22748c2ecf20Sopenharmony_ci FW_VI_MAC_R_SMAC_FAIL, 22758c2ecf20Sopenharmony_ci FW_VI_MAC_R_F_ACL_CHECK 22768c2ecf20Sopenharmony_ci}; 22778c2ecf20Sopenharmony_ci 22788c2ecf20Sopenharmony_cienum fw_vi_mac_entry_types { 22798c2ecf20Sopenharmony_ci FW_VI_MAC_TYPE_EXACTMAC, 22808c2ecf20Sopenharmony_ci FW_VI_MAC_TYPE_HASHVEC, 22818c2ecf20Sopenharmony_ci FW_VI_MAC_TYPE_RAW, 22828c2ecf20Sopenharmony_ci FW_VI_MAC_TYPE_EXACTMAC_VNI, 22838c2ecf20Sopenharmony_ci}; 22848c2ecf20Sopenharmony_ci 22858c2ecf20Sopenharmony_cistruct fw_vi_mac_cmd { 22868c2ecf20Sopenharmony_ci __be32 op_to_viid; 22878c2ecf20Sopenharmony_ci __be32 freemacs_to_len16; 22888c2ecf20Sopenharmony_ci union fw_vi_mac { 22898c2ecf20Sopenharmony_ci struct fw_vi_mac_exact { 22908c2ecf20Sopenharmony_ci __be16 valid_to_idx; 22918c2ecf20Sopenharmony_ci u8 macaddr[6]; 22928c2ecf20Sopenharmony_ci } exact[7]; 22938c2ecf20Sopenharmony_ci struct fw_vi_mac_hash { 22948c2ecf20Sopenharmony_ci __be64 hashvec; 22958c2ecf20Sopenharmony_ci } hash; 22968c2ecf20Sopenharmony_ci struct fw_vi_mac_raw { 22978c2ecf20Sopenharmony_ci __be32 raw_idx_pkd; 22988c2ecf20Sopenharmony_ci __be32 data0_pkd; 22998c2ecf20Sopenharmony_ci __be32 data1[2]; 23008c2ecf20Sopenharmony_ci __be64 data0m_pkd; 23018c2ecf20Sopenharmony_ci __be32 data1m[2]; 23028c2ecf20Sopenharmony_ci } raw; 23038c2ecf20Sopenharmony_ci struct fw_vi_mac_vni { 23048c2ecf20Sopenharmony_ci __be16 valid_to_idx; 23058c2ecf20Sopenharmony_ci __u8 macaddr[6]; 23068c2ecf20Sopenharmony_ci __be16 r7; 23078c2ecf20Sopenharmony_ci __u8 macaddr_mask[6]; 23088c2ecf20Sopenharmony_ci __be32 lookup_type_to_vni; 23098c2ecf20Sopenharmony_ci __be32 vni_mask_pkd; 23108c2ecf20Sopenharmony_ci } exact_vni[2]; 23118c2ecf20Sopenharmony_ci } u; 23128c2ecf20Sopenharmony_ci}; 23138c2ecf20Sopenharmony_ci 23148c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_SMTID_S 12 23158c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_SMTID_M 0xff 23168c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_SMTID_V(x) ((x) << FW_VI_MAC_CMD_SMTID_S) 23178c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_SMTID_G(x) \ 23188c2ecf20Sopenharmony_ci (((x) >> FW_VI_MAC_CMD_SMTID_S) & FW_VI_MAC_CMD_SMTID_M) 23198c2ecf20Sopenharmony_ci 23208c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_VIID_S 0 23218c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_VIID_V(x) ((x) << FW_VI_MAC_CMD_VIID_S) 23228c2ecf20Sopenharmony_ci 23238c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_FREEMACS_S 31 23248c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_FREEMACS_V(x) ((x) << FW_VI_MAC_CMD_FREEMACS_S) 23258c2ecf20Sopenharmony_ci 23268c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_ENTRY_TYPE_S 23 23278c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_ENTRY_TYPE_M 0x7 23288c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_ENTRY_TYPE_V(x) ((x) << FW_VI_MAC_CMD_ENTRY_TYPE_S) 23298c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_ENTRY_TYPE_G(x) \ 23308c2ecf20Sopenharmony_ci (((x) >> FW_VI_MAC_CMD_ENTRY_TYPE_S) & FW_VI_MAC_CMD_ENTRY_TYPE_M) 23318c2ecf20Sopenharmony_ci 23328c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_HASHVECEN_S 23 23338c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_HASHVECEN_V(x) ((x) << FW_VI_MAC_CMD_HASHVECEN_S) 23348c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_HASHVECEN_F FW_VI_MAC_CMD_HASHVECEN_V(1U) 23358c2ecf20Sopenharmony_ci 23368c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_HASHUNIEN_S 22 23378c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_HASHUNIEN_V(x) ((x) << FW_VI_MAC_CMD_HASHUNIEN_S) 23388c2ecf20Sopenharmony_ci 23398c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_VALID_S 15 23408c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_VALID_V(x) ((x) << FW_VI_MAC_CMD_VALID_S) 23418c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_VALID_F FW_VI_MAC_CMD_VALID_V(1U) 23428c2ecf20Sopenharmony_ci 23438c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_PRIO_S 12 23448c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_PRIO_V(x) ((x) << FW_VI_MAC_CMD_PRIO_S) 23458c2ecf20Sopenharmony_ci 23468c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_SMAC_RESULT_S 10 23478c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_SMAC_RESULT_M 0x3 23488c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_SMAC_RESULT_V(x) ((x) << FW_VI_MAC_CMD_SMAC_RESULT_S) 23498c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_SMAC_RESULT_G(x) \ 23508c2ecf20Sopenharmony_ci (((x) >> FW_VI_MAC_CMD_SMAC_RESULT_S) & FW_VI_MAC_CMD_SMAC_RESULT_M) 23518c2ecf20Sopenharmony_ci 23528c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_IDX_S 0 23538c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_IDX_M 0x3ff 23548c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_IDX_V(x) ((x) << FW_VI_MAC_CMD_IDX_S) 23558c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_IDX_G(x) \ 23568c2ecf20Sopenharmony_ci (((x) >> FW_VI_MAC_CMD_IDX_S) & FW_VI_MAC_CMD_IDX_M) 23578c2ecf20Sopenharmony_ci 23588c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_RAW_IDX_S 16 23598c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_RAW_IDX_M 0xffff 23608c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_RAW_IDX_V(x) ((x) << FW_VI_MAC_CMD_RAW_IDX_S) 23618c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_RAW_IDX_G(x) \ 23628c2ecf20Sopenharmony_ci (((x) >> FW_VI_MAC_CMD_RAW_IDX_S) & FW_VI_MAC_CMD_RAW_IDX_M) 23638c2ecf20Sopenharmony_ci 23648c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_LOOKUP_TYPE_S 31 23658c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_LOOKUP_TYPE_M 0x1 23668c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_LOOKUP_TYPE_V(x) ((x) << FW_VI_MAC_CMD_LOOKUP_TYPE_S) 23678c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_LOOKUP_TYPE_G(x) \ 23688c2ecf20Sopenharmony_ci (((x) >> FW_VI_MAC_CMD_LOOKUP_TYPE_S) & FW_VI_MAC_CMD_LOOKUP_TYPE_M) 23698c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_LOOKUP_TYPE_F FW_VI_MAC_CMD_LOOKUP_TYPE_V(1U) 23708c2ecf20Sopenharmony_ci 23718c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_DIP_HIT_S 30 23728c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_DIP_HIT_M 0x1 23738c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_DIP_HIT_V(x) ((x) << FW_VI_MAC_CMD_DIP_HIT_S) 23748c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_DIP_HIT_G(x) \ 23758c2ecf20Sopenharmony_ci (((x) >> FW_VI_MAC_CMD_DIP_HIT_S) & FW_VI_MAC_CMD_DIP_HIT_M) 23768c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_DIP_HIT_F FW_VI_MAC_CMD_DIP_HIT_V(1U) 23778c2ecf20Sopenharmony_ci 23788c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_VNI_S 0 23798c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_VNI_M 0xffffff 23808c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_VNI_V(x) ((x) << FW_VI_MAC_CMD_VNI_S) 23818c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_VNI_G(x) \ 23828c2ecf20Sopenharmony_ci (((x) >> FW_VI_MAC_CMD_VNI_S) & FW_VI_MAC_CMD_VNI_M) 23838c2ecf20Sopenharmony_ci 23848c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_VNI_MASK_S 0 23858c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_VNI_MASK_M 0xffffff 23868c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_VNI_MASK_V(x) ((x) << FW_VI_MAC_CMD_VNI_MASK_S) 23878c2ecf20Sopenharmony_ci#define FW_VI_MAC_CMD_VNI_MASK_G(x) \ 23888c2ecf20Sopenharmony_ci (((x) >> FW_VI_MAC_CMD_VNI_MASK_S) & FW_VI_MAC_CMD_VNI_MASK_M) 23898c2ecf20Sopenharmony_ci 23908c2ecf20Sopenharmony_ci#define FW_RXMODE_MTU_NO_CHG 65535 23918c2ecf20Sopenharmony_ci 23928c2ecf20Sopenharmony_cistruct fw_vi_rxmode_cmd { 23938c2ecf20Sopenharmony_ci __be32 op_to_viid; 23948c2ecf20Sopenharmony_ci __be32 retval_len16; 23958c2ecf20Sopenharmony_ci __be32 mtu_to_vlanexen; 23968c2ecf20Sopenharmony_ci __be32 r4_lo; 23978c2ecf20Sopenharmony_ci}; 23988c2ecf20Sopenharmony_ci 23998c2ecf20Sopenharmony_ci#define FW_VI_RXMODE_CMD_VIID_S 0 24008c2ecf20Sopenharmony_ci#define FW_VI_RXMODE_CMD_VIID_V(x) ((x) << FW_VI_RXMODE_CMD_VIID_S) 24018c2ecf20Sopenharmony_ci 24028c2ecf20Sopenharmony_ci#define FW_VI_RXMODE_CMD_MTU_S 16 24038c2ecf20Sopenharmony_ci#define FW_VI_RXMODE_CMD_MTU_M 0xffff 24048c2ecf20Sopenharmony_ci#define FW_VI_RXMODE_CMD_MTU_V(x) ((x) << FW_VI_RXMODE_CMD_MTU_S) 24058c2ecf20Sopenharmony_ci 24068c2ecf20Sopenharmony_ci#define FW_VI_RXMODE_CMD_PROMISCEN_S 14 24078c2ecf20Sopenharmony_ci#define FW_VI_RXMODE_CMD_PROMISCEN_M 0x3 24088c2ecf20Sopenharmony_ci#define FW_VI_RXMODE_CMD_PROMISCEN_V(x) ((x) << FW_VI_RXMODE_CMD_PROMISCEN_S) 24098c2ecf20Sopenharmony_ci 24108c2ecf20Sopenharmony_ci#define FW_VI_RXMODE_CMD_ALLMULTIEN_S 12 24118c2ecf20Sopenharmony_ci#define FW_VI_RXMODE_CMD_ALLMULTIEN_M 0x3 24128c2ecf20Sopenharmony_ci#define FW_VI_RXMODE_CMD_ALLMULTIEN_V(x) \ 24138c2ecf20Sopenharmony_ci ((x) << FW_VI_RXMODE_CMD_ALLMULTIEN_S) 24148c2ecf20Sopenharmony_ci 24158c2ecf20Sopenharmony_ci#define FW_VI_RXMODE_CMD_BROADCASTEN_S 10 24168c2ecf20Sopenharmony_ci#define FW_VI_RXMODE_CMD_BROADCASTEN_M 0x3 24178c2ecf20Sopenharmony_ci#define FW_VI_RXMODE_CMD_BROADCASTEN_V(x) \ 24188c2ecf20Sopenharmony_ci ((x) << FW_VI_RXMODE_CMD_BROADCASTEN_S) 24198c2ecf20Sopenharmony_ci 24208c2ecf20Sopenharmony_ci#define FW_VI_RXMODE_CMD_VLANEXEN_S 8 24218c2ecf20Sopenharmony_ci#define FW_VI_RXMODE_CMD_VLANEXEN_M 0x3 24228c2ecf20Sopenharmony_ci#define FW_VI_RXMODE_CMD_VLANEXEN_V(x) ((x) << FW_VI_RXMODE_CMD_VLANEXEN_S) 24238c2ecf20Sopenharmony_ci 24248c2ecf20Sopenharmony_cistruct fw_vi_enable_cmd { 24258c2ecf20Sopenharmony_ci __be32 op_to_viid; 24268c2ecf20Sopenharmony_ci __be32 ien_to_len16; 24278c2ecf20Sopenharmony_ci __be16 blinkdur; 24288c2ecf20Sopenharmony_ci __be16 r3; 24298c2ecf20Sopenharmony_ci __be32 r4; 24308c2ecf20Sopenharmony_ci}; 24318c2ecf20Sopenharmony_ci 24328c2ecf20Sopenharmony_ci#define FW_VI_ENABLE_CMD_VIID_S 0 24338c2ecf20Sopenharmony_ci#define FW_VI_ENABLE_CMD_VIID_V(x) ((x) << FW_VI_ENABLE_CMD_VIID_S) 24348c2ecf20Sopenharmony_ci 24358c2ecf20Sopenharmony_ci#define FW_VI_ENABLE_CMD_IEN_S 31 24368c2ecf20Sopenharmony_ci#define FW_VI_ENABLE_CMD_IEN_V(x) ((x) << FW_VI_ENABLE_CMD_IEN_S) 24378c2ecf20Sopenharmony_ci 24388c2ecf20Sopenharmony_ci#define FW_VI_ENABLE_CMD_EEN_S 30 24398c2ecf20Sopenharmony_ci#define FW_VI_ENABLE_CMD_EEN_V(x) ((x) << FW_VI_ENABLE_CMD_EEN_S) 24408c2ecf20Sopenharmony_ci 24418c2ecf20Sopenharmony_ci#define FW_VI_ENABLE_CMD_LED_S 29 24428c2ecf20Sopenharmony_ci#define FW_VI_ENABLE_CMD_LED_V(x) ((x) << FW_VI_ENABLE_CMD_LED_S) 24438c2ecf20Sopenharmony_ci#define FW_VI_ENABLE_CMD_LED_F FW_VI_ENABLE_CMD_LED_V(1U) 24448c2ecf20Sopenharmony_ci 24458c2ecf20Sopenharmony_ci#define FW_VI_ENABLE_CMD_DCB_INFO_S 28 24468c2ecf20Sopenharmony_ci#define FW_VI_ENABLE_CMD_DCB_INFO_V(x) ((x) << FW_VI_ENABLE_CMD_DCB_INFO_S) 24478c2ecf20Sopenharmony_ci 24488c2ecf20Sopenharmony_ci/* VI VF stats offset definitions */ 24498c2ecf20Sopenharmony_ci#define VI_VF_NUM_STATS 16 24508c2ecf20Sopenharmony_cienum fw_vi_stats_vf_index { 24518c2ecf20Sopenharmony_ci FW_VI_VF_STAT_TX_BCAST_BYTES_IX, 24528c2ecf20Sopenharmony_ci FW_VI_VF_STAT_TX_BCAST_FRAMES_IX, 24538c2ecf20Sopenharmony_ci FW_VI_VF_STAT_TX_MCAST_BYTES_IX, 24548c2ecf20Sopenharmony_ci FW_VI_VF_STAT_TX_MCAST_FRAMES_IX, 24558c2ecf20Sopenharmony_ci FW_VI_VF_STAT_TX_UCAST_BYTES_IX, 24568c2ecf20Sopenharmony_ci FW_VI_VF_STAT_TX_UCAST_FRAMES_IX, 24578c2ecf20Sopenharmony_ci FW_VI_VF_STAT_TX_DROP_FRAMES_IX, 24588c2ecf20Sopenharmony_ci FW_VI_VF_STAT_TX_OFLD_BYTES_IX, 24598c2ecf20Sopenharmony_ci FW_VI_VF_STAT_TX_OFLD_FRAMES_IX, 24608c2ecf20Sopenharmony_ci FW_VI_VF_STAT_RX_BCAST_BYTES_IX, 24618c2ecf20Sopenharmony_ci FW_VI_VF_STAT_RX_BCAST_FRAMES_IX, 24628c2ecf20Sopenharmony_ci FW_VI_VF_STAT_RX_MCAST_BYTES_IX, 24638c2ecf20Sopenharmony_ci FW_VI_VF_STAT_RX_MCAST_FRAMES_IX, 24648c2ecf20Sopenharmony_ci FW_VI_VF_STAT_RX_UCAST_BYTES_IX, 24658c2ecf20Sopenharmony_ci FW_VI_VF_STAT_RX_UCAST_FRAMES_IX, 24668c2ecf20Sopenharmony_ci FW_VI_VF_STAT_RX_ERR_FRAMES_IX 24678c2ecf20Sopenharmony_ci}; 24688c2ecf20Sopenharmony_ci 24698c2ecf20Sopenharmony_ci/* VI PF stats offset definitions */ 24708c2ecf20Sopenharmony_ci#define VI_PF_NUM_STATS 17 24718c2ecf20Sopenharmony_cienum fw_vi_stats_pf_index { 24728c2ecf20Sopenharmony_ci FW_VI_PF_STAT_TX_BCAST_BYTES_IX, 24738c2ecf20Sopenharmony_ci FW_VI_PF_STAT_TX_BCAST_FRAMES_IX, 24748c2ecf20Sopenharmony_ci FW_VI_PF_STAT_TX_MCAST_BYTES_IX, 24758c2ecf20Sopenharmony_ci FW_VI_PF_STAT_TX_MCAST_FRAMES_IX, 24768c2ecf20Sopenharmony_ci FW_VI_PF_STAT_TX_UCAST_BYTES_IX, 24778c2ecf20Sopenharmony_ci FW_VI_PF_STAT_TX_UCAST_FRAMES_IX, 24788c2ecf20Sopenharmony_ci FW_VI_PF_STAT_TX_OFLD_BYTES_IX, 24798c2ecf20Sopenharmony_ci FW_VI_PF_STAT_TX_OFLD_FRAMES_IX, 24808c2ecf20Sopenharmony_ci FW_VI_PF_STAT_RX_BYTES_IX, 24818c2ecf20Sopenharmony_ci FW_VI_PF_STAT_RX_FRAMES_IX, 24828c2ecf20Sopenharmony_ci FW_VI_PF_STAT_RX_BCAST_BYTES_IX, 24838c2ecf20Sopenharmony_ci FW_VI_PF_STAT_RX_BCAST_FRAMES_IX, 24848c2ecf20Sopenharmony_ci FW_VI_PF_STAT_RX_MCAST_BYTES_IX, 24858c2ecf20Sopenharmony_ci FW_VI_PF_STAT_RX_MCAST_FRAMES_IX, 24868c2ecf20Sopenharmony_ci FW_VI_PF_STAT_RX_UCAST_BYTES_IX, 24878c2ecf20Sopenharmony_ci FW_VI_PF_STAT_RX_UCAST_FRAMES_IX, 24888c2ecf20Sopenharmony_ci FW_VI_PF_STAT_RX_ERR_FRAMES_IX 24898c2ecf20Sopenharmony_ci}; 24908c2ecf20Sopenharmony_ci 24918c2ecf20Sopenharmony_cistruct fw_vi_stats_cmd { 24928c2ecf20Sopenharmony_ci __be32 op_to_viid; 24938c2ecf20Sopenharmony_ci __be32 retval_len16; 24948c2ecf20Sopenharmony_ci union fw_vi_stats { 24958c2ecf20Sopenharmony_ci struct fw_vi_stats_ctl { 24968c2ecf20Sopenharmony_ci __be16 nstats_ix; 24978c2ecf20Sopenharmony_ci __be16 r6; 24988c2ecf20Sopenharmony_ci __be32 r7; 24998c2ecf20Sopenharmony_ci __be64 stat0; 25008c2ecf20Sopenharmony_ci __be64 stat1; 25018c2ecf20Sopenharmony_ci __be64 stat2; 25028c2ecf20Sopenharmony_ci __be64 stat3; 25038c2ecf20Sopenharmony_ci __be64 stat4; 25048c2ecf20Sopenharmony_ci __be64 stat5; 25058c2ecf20Sopenharmony_ci } ctl; 25068c2ecf20Sopenharmony_ci struct fw_vi_stats_pf { 25078c2ecf20Sopenharmony_ci __be64 tx_bcast_bytes; 25088c2ecf20Sopenharmony_ci __be64 tx_bcast_frames; 25098c2ecf20Sopenharmony_ci __be64 tx_mcast_bytes; 25108c2ecf20Sopenharmony_ci __be64 tx_mcast_frames; 25118c2ecf20Sopenharmony_ci __be64 tx_ucast_bytes; 25128c2ecf20Sopenharmony_ci __be64 tx_ucast_frames; 25138c2ecf20Sopenharmony_ci __be64 tx_offload_bytes; 25148c2ecf20Sopenharmony_ci __be64 tx_offload_frames; 25158c2ecf20Sopenharmony_ci __be64 rx_pf_bytes; 25168c2ecf20Sopenharmony_ci __be64 rx_pf_frames; 25178c2ecf20Sopenharmony_ci __be64 rx_bcast_bytes; 25188c2ecf20Sopenharmony_ci __be64 rx_bcast_frames; 25198c2ecf20Sopenharmony_ci __be64 rx_mcast_bytes; 25208c2ecf20Sopenharmony_ci __be64 rx_mcast_frames; 25218c2ecf20Sopenharmony_ci __be64 rx_ucast_bytes; 25228c2ecf20Sopenharmony_ci __be64 rx_ucast_frames; 25238c2ecf20Sopenharmony_ci __be64 rx_err_frames; 25248c2ecf20Sopenharmony_ci } pf; 25258c2ecf20Sopenharmony_ci struct fw_vi_stats_vf { 25268c2ecf20Sopenharmony_ci __be64 tx_bcast_bytes; 25278c2ecf20Sopenharmony_ci __be64 tx_bcast_frames; 25288c2ecf20Sopenharmony_ci __be64 tx_mcast_bytes; 25298c2ecf20Sopenharmony_ci __be64 tx_mcast_frames; 25308c2ecf20Sopenharmony_ci __be64 tx_ucast_bytes; 25318c2ecf20Sopenharmony_ci __be64 tx_ucast_frames; 25328c2ecf20Sopenharmony_ci __be64 tx_drop_frames; 25338c2ecf20Sopenharmony_ci __be64 tx_offload_bytes; 25348c2ecf20Sopenharmony_ci __be64 tx_offload_frames; 25358c2ecf20Sopenharmony_ci __be64 rx_bcast_bytes; 25368c2ecf20Sopenharmony_ci __be64 rx_bcast_frames; 25378c2ecf20Sopenharmony_ci __be64 rx_mcast_bytes; 25388c2ecf20Sopenharmony_ci __be64 rx_mcast_frames; 25398c2ecf20Sopenharmony_ci __be64 rx_ucast_bytes; 25408c2ecf20Sopenharmony_ci __be64 rx_ucast_frames; 25418c2ecf20Sopenharmony_ci __be64 rx_err_frames; 25428c2ecf20Sopenharmony_ci } vf; 25438c2ecf20Sopenharmony_ci } u; 25448c2ecf20Sopenharmony_ci}; 25458c2ecf20Sopenharmony_ci 25468c2ecf20Sopenharmony_ci#define FW_VI_STATS_CMD_VIID_S 0 25478c2ecf20Sopenharmony_ci#define FW_VI_STATS_CMD_VIID_V(x) ((x) << FW_VI_STATS_CMD_VIID_S) 25488c2ecf20Sopenharmony_ci 25498c2ecf20Sopenharmony_ci#define FW_VI_STATS_CMD_NSTATS_S 12 25508c2ecf20Sopenharmony_ci#define FW_VI_STATS_CMD_NSTATS_V(x) ((x) << FW_VI_STATS_CMD_NSTATS_S) 25518c2ecf20Sopenharmony_ci 25528c2ecf20Sopenharmony_ci#define FW_VI_STATS_CMD_IX_S 0 25538c2ecf20Sopenharmony_ci#define FW_VI_STATS_CMD_IX_V(x) ((x) << FW_VI_STATS_CMD_IX_S) 25548c2ecf20Sopenharmony_ci 25558c2ecf20Sopenharmony_cistruct fw_acl_mac_cmd { 25568c2ecf20Sopenharmony_ci __be32 op_to_vfn; 25578c2ecf20Sopenharmony_ci __be32 en_to_len16; 25588c2ecf20Sopenharmony_ci u8 nmac; 25598c2ecf20Sopenharmony_ci u8 r3[7]; 25608c2ecf20Sopenharmony_ci __be16 r4; 25618c2ecf20Sopenharmony_ci u8 macaddr0[6]; 25628c2ecf20Sopenharmony_ci __be16 r5; 25638c2ecf20Sopenharmony_ci u8 macaddr1[6]; 25648c2ecf20Sopenharmony_ci __be16 r6; 25658c2ecf20Sopenharmony_ci u8 macaddr2[6]; 25668c2ecf20Sopenharmony_ci __be16 r7; 25678c2ecf20Sopenharmony_ci u8 macaddr3[6]; 25688c2ecf20Sopenharmony_ci}; 25698c2ecf20Sopenharmony_ci 25708c2ecf20Sopenharmony_ci#define FW_ACL_MAC_CMD_PFN_S 8 25718c2ecf20Sopenharmony_ci#define FW_ACL_MAC_CMD_PFN_V(x) ((x) << FW_ACL_MAC_CMD_PFN_S) 25728c2ecf20Sopenharmony_ci 25738c2ecf20Sopenharmony_ci#define FW_ACL_MAC_CMD_VFN_S 0 25748c2ecf20Sopenharmony_ci#define FW_ACL_MAC_CMD_VFN_V(x) ((x) << FW_ACL_MAC_CMD_VFN_S) 25758c2ecf20Sopenharmony_ci 25768c2ecf20Sopenharmony_ci#define FW_ACL_MAC_CMD_EN_S 31 25778c2ecf20Sopenharmony_ci#define FW_ACL_MAC_CMD_EN_V(x) ((x) << FW_ACL_MAC_CMD_EN_S) 25788c2ecf20Sopenharmony_ci 25798c2ecf20Sopenharmony_cistruct fw_acl_vlan_cmd { 25808c2ecf20Sopenharmony_ci __be32 op_to_vfn; 25818c2ecf20Sopenharmony_ci __be32 en_to_len16; 25828c2ecf20Sopenharmony_ci u8 nvlan; 25838c2ecf20Sopenharmony_ci u8 dropnovlan_fm; 25848c2ecf20Sopenharmony_ci u8 r3_lo[6]; 25858c2ecf20Sopenharmony_ci __be16 vlanid[16]; 25868c2ecf20Sopenharmony_ci}; 25878c2ecf20Sopenharmony_ci 25888c2ecf20Sopenharmony_ci#define FW_ACL_VLAN_CMD_PFN_S 8 25898c2ecf20Sopenharmony_ci#define FW_ACL_VLAN_CMD_PFN_V(x) ((x) << FW_ACL_VLAN_CMD_PFN_S) 25908c2ecf20Sopenharmony_ci 25918c2ecf20Sopenharmony_ci#define FW_ACL_VLAN_CMD_VFN_S 0 25928c2ecf20Sopenharmony_ci#define FW_ACL_VLAN_CMD_VFN_V(x) ((x) << FW_ACL_VLAN_CMD_VFN_S) 25938c2ecf20Sopenharmony_ci 25948c2ecf20Sopenharmony_ci#define FW_ACL_VLAN_CMD_EN_S 31 25958c2ecf20Sopenharmony_ci#define FW_ACL_VLAN_CMD_EN_M 0x1 25968c2ecf20Sopenharmony_ci#define FW_ACL_VLAN_CMD_EN_V(x) ((x) << FW_ACL_VLAN_CMD_EN_S) 25978c2ecf20Sopenharmony_ci#define FW_ACL_VLAN_CMD_EN_G(x) \ 25988c2ecf20Sopenharmony_ci (((x) >> S_FW_ACL_VLAN_CMD_EN_S) & FW_ACL_VLAN_CMD_EN_M) 25998c2ecf20Sopenharmony_ci#define FW_ACL_VLAN_CMD_EN_F FW_ACL_VLAN_CMD_EN_V(1U) 26008c2ecf20Sopenharmony_ci 26018c2ecf20Sopenharmony_ci#define FW_ACL_VLAN_CMD_DROPNOVLAN_S 7 26028c2ecf20Sopenharmony_ci#define FW_ACL_VLAN_CMD_DROPNOVLAN_V(x) ((x) << FW_ACL_VLAN_CMD_DROPNOVLAN_S) 26038c2ecf20Sopenharmony_ci#define FW_ACL_VLAN_CMD_DROPNOVLAN_F FW_ACL_VLAN_CMD_DROPNOVLAN_V(1U) 26048c2ecf20Sopenharmony_ci 26058c2ecf20Sopenharmony_ci#define FW_ACL_VLAN_CMD_FM_S 6 26068c2ecf20Sopenharmony_ci#define FW_ACL_VLAN_CMD_FM_M 0x1 26078c2ecf20Sopenharmony_ci#define FW_ACL_VLAN_CMD_FM_V(x) ((x) << FW_ACL_VLAN_CMD_FM_S) 26088c2ecf20Sopenharmony_ci#define FW_ACL_VLAN_CMD_FM_G(x) \ 26098c2ecf20Sopenharmony_ci (((x) >> FW_ACL_VLAN_CMD_FM_S) & FW_ACL_VLAN_CMD_FM_M) 26108c2ecf20Sopenharmony_ci#define FW_ACL_VLAN_CMD_FM_F FW_ACL_VLAN_CMD_FM_V(1U) 26118c2ecf20Sopenharmony_ci 26128c2ecf20Sopenharmony_ci/* old 16-bit port capabilities bitmap (fw_port_cap16_t) */ 26138c2ecf20Sopenharmony_cienum fw_port_cap { 26148c2ecf20Sopenharmony_ci FW_PORT_CAP_SPEED_100M = 0x0001, 26158c2ecf20Sopenharmony_ci FW_PORT_CAP_SPEED_1G = 0x0002, 26168c2ecf20Sopenharmony_ci FW_PORT_CAP_SPEED_25G = 0x0004, 26178c2ecf20Sopenharmony_ci FW_PORT_CAP_SPEED_10G = 0x0008, 26188c2ecf20Sopenharmony_ci FW_PORT_CAP_SPEED_40G = 0x0010, 26198c2ecf20Sopenharmony_ci FW_PORT_CAP_SPEED_100G = 0x0020, 26208c2ecf20Sopenharmony_ci FW_PORT_CAP_FC_RX = 0x0040, 26218c2ecf20Sopenharmony_ci FW_PORT_CAP_FC_TX = 0x0080, 26228c2ecf20Sopenharmony_ci FW_PORT_CAP_ANEG = 0x0100, 26238c2ecf20Sopenharmony_ci FW_PORT_CAP_MDIAUTO = 0x0200, 26248c2ecf20Sopenharmony_ci FW_PORT_CAP_MDISTRAIGHT = 0x0400, 26258c2ecf20Sopenharmony_ci FW_PORT_CAP_FEC_RS = 0x0800, 26268c2ecf20Sopenharmony_ci FW_PORT_CAP_FEC_BASER_RS = 0x1000, 26278c2ecf20Sopenharmony_ci FW_PORT_CAP_FORCE_PAUSE = 0x2000, 26288c2ecf20Sopenharmony_ci FW_PORT_CAP_802_3_PAUSE = 0x4000, 26298c2ecf20Sopenharmony_ci FW_PORT_CAP_802_3_ASM_DIR = 0x8000, 26308c2ecf20Sopenharmony_ci}; 26318c2ecf20Sopenharmony_ci 26328c2ecf20Sopenharmony_ci#define FW_PORT_CAP_SPEED_S 0 26338c2ecf20Sopenharmony_ci#define FW_PORT_CAP_SPEED_M 0x3f 26348c2ecf20Sopenharmony_ci#define FW_PORT_CAP_SPEED_V(x) ((x) << FW_PORT_CAP_SPEED_S) 26358c2ecf20Sopenharmony_ci#define FW_PORT_CAP_SPEED_G(x) \ 26368c2ecf20Sopenharmony_ci (((x) >> FW_PORT_CAP_SPEED_S) & FW_PORT_CAP_SPEED_M) 26378c2ecf20Sopenharmony_ci 26388c2ecf20Sopenharmony_cienum fw_port_mdi { 26398c2ecf20Sopenharmony_ci FW_PORT_CAP_MDI_UNCHANGED, 26408c2ecf20Sopenharmony_ci FW_PORT_CAP_MDI_AUTO, 26418c2ecf20Sopenharmony_ci FW_PORT_CAP_MDI_F_STRAIGHT, 26428c2ecf20Sopenharmony_ci FW_PORT_CAP_MDI_F_CROSSOVER 26438c2ecf20Sopenharmony_ci}; 26448c2ecf20Sopenharmony_ci 26458c2ecf20Sopenharmony_ci#define FW_PORT_CAP_MDI_S 9 26468c2ecf20Sopenharmony_ci#define FW_PORT_CAP_MDI_V(x) ((x) << FW_PORT_CAP_MDI_S) 26478c2ecf20Sopenharmony_ci 26488c2ecf20Sopenharmony_ci/* new 32-bit port capabilities bitmap (fw_port_cap32_t) */ 26498c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_SPEED_100M 0x00000001UL 26508c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_SPEED_1G 0x00000002UL 26518c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_SPEED_10G 0x00000004UL 26528c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_SPEED_25G 0x00000008UL 26538c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_SPEED_40G 0x00000010UL 26548c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_SPEED_50G 0x00000020UL 26558c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_SPEED_100G 0x00000040UL 26568c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_SPEED_200G 0x00000080UL 26578c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_SPEED_400G 0x00000100UL 26588c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_SPEED_RESERVED1 0x00000200UL 26598c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_SPEED_RESERVED2 0x00000400UL 26608c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_SPEED_RESERVED3 0x00000800UL 26618c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_RESERVED1 0x0000f000UL 26628c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_FC_RX 0x00010000UL 26638c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_FC_TX 0x00020000UL 26648c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_802_3_PAUSE 0x00040000UL 26658c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_802_3_ASM_DIR 0x00080000UL 26668c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_ANEG 0x00100000UL 26678c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_MDIAUTO 0x00200000UL 26688c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_MDISTRAIGHT 0x00400000UL 26698c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_FEC_RS 0x00800000UL 26708c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_FEC_BASER_RS 0x01000000UL 26718c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_FEC_RESERVED1 0x02000000UL 26728c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_FEC_RESERVED2 0x04000000UL 26738c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_FEC_RESERVED3 0x08000000UL 26748c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_FORCE_PAUSE 0x10000000UL 26758c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_RESERVED2 0xe0000000UL 26768c2ecf20Sopenharmony_ci 26778c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_SPEED_S 0 26788c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_SPEED_M 0xfff 26798c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_SPEED_V(x) ((x) << FW_PORT_CAP32_SPEED_S) 26808c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_SPEED_G(x) \ 26818c2ecf20Sopenharmony_ci (((x) >> FW_PORT_CAP32_SPEED_S) & FW_PORT_CAP32_SPEED_M) 26828c2ecf20Sopenharmony_ci 26838c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_FC_S 16 26848c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_FC_M 0x3 26858c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_FC_V(x) ((x) << FW_PORT_CAP32_FC_S) 26868c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_FC_G(x) \ 26878c2ecf20Sopenharmony_ci (((x) >> FW_PORT_CAP32_FC_S) & FW_PORT_CAP32_FC_M) 26888c2ecf20Sopenharmony_ci 26898c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_802_3_S 18 26908c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_802_3_M 0x3 26918c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_802_3_V(x) ((x) << FW_PORT_CAP32_802_3_S) 26928c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_802_3_G(x) \ 26938c2ecf20Sopenharmony_ci (((x) >> FW_PORT_CAP32_802_3_S) & FW_PORT_CAP32_802_3_M) 26948c2ecf20Sopenharmony_ci 26958c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_ANEG_S 20 26968c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_ANEG_M 0x1 26978c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_ANEG_V(x) ((x) << FW_PORT_CAP32_ANEG_S) 26988c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_ANEG_G(x) \ 26998c2ecf20Sopenharmony_ci (((x) >> FW_PORT_CAP32_ANEG_S) & FW_PORT_CAP32_ANEG_M) 27008c2ecf20Sopenharmony_ci 27018c2ecf20Sopenharmony_cienum fw_port_mdi32 { 27028c2ecf20Sopenharmony_ci FW_PORT_CAP32_MDI_UNCHANGED, 27038c2ecf20Sopenharmony_ci FW_PORT_CAP32_MDI_AUTO, 27048c2ecf20Sopenharmony_ci FW_PORT_CAP32_MDI_F_STRAIGHT, 27058c2ecf20Sopenharmony_ci FW_PORT_CAP32_MDI_F_CROSSOVER 27068c2ecf20Sopenharmony_ci}; 27078c2ecf20Sopenharmony_ci 27088c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_MDI_S 21 27098c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_MDI_M 3 27108c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_MDI_V(x) ((x) << FW_PORT_CAP32_MDI_S) 27118c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_MDI_G(x) \ 27128c2ecf20Sopenharmony_ci (((x) >> FW_PORT_CAP32_MDI_S) & FW_PORT_CAP32_MDI_M) 27138c2ecf20Sopenharmony_ci 27148c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_FEC_S 23 27158c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_FEC_M 0x1f 27168c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_FEC_V(x) ((x) << FW_PORT_CAP32_FEC_S) 27178c2ecf20Sopenharmony_ci#define FW_PORT_CAP32_FEC_G(x) \ 27188c2ecf20Sopenharmony_ci (((x) >> FW_PORT_CAP32_FEC_S) & FW_PORT_CAP32_FEC_M) 27198c2ecf20Sopenharmony_ci 27208c2ecf20Sopenharmony_ci/* macros to isolate various 32-bit Port Capabilities sub-fields */ 27218c2ecf20Sopenharmony_ci#define CAP32_SPEED(__cap32) \ 27228c2ecf20Sopenharmony_ci (FW_PORT_CAP32_SPEED_V(FW_PORT_CAP32_SPEED_M) & __cap32) 27238c2ecf20Sopenharmony_ci 27248c2ecf20Sopenharmony_ci#define CAP32_FEC(__cap32) \ 27258c2ecf20Sopenharmony_ci (FW_PORT_CAP32_FEC_V(FW_PORT_CAP32_FEC_M) & __cap32) 27268c2ecf20Sopenharmony_ci 27278c2ecf20Sopenharmony_cienum fw_port_action { 27288c2ecf20Sopenharmony_ci FW_PORT_ACTION_L1_CFG = 0x0001, 27298c2ecf20Sopenharmony_ci FW_PORT_ACTION_L2_CFG = 0x0002, 27308c2ecf20Sopenharmony_ci FW_PORT_ACTION_GET_PORT_INFO = 0x0003, 27318c2ecf20Sopenharmony_ci FW_PORT_ACTION_L2_PPP_CFG = 0x0004, 27328c2ecf20Sopenharmony_ci FW_PORT_ACTION_L2_DCB_CFG = 0x0005, 27338c2ecf20Sopenharmony_ci FW_PORT_ACTION_DCB_READ_TRANS = 0x0006, 27348c2ecf20Sopenharmony_ci FW_PORT_ACTION_DCB_READ_RECV = 0x0007, 27358c2ecf20Sopenharmony_ci FW_PORT_ACTION_DCB_READ_DET = 0x0008, 27368c2ecf20Sopenharmony_ci FW_PORT_ACTION_L1_CFG32 = 0x0009, 27378c2ecf20Sopenharmony_ci FW_PORT_ACTION_GET_PORT_INFO32 = 0x000a, 27388c2ecf20Sopenharmony_ci FW_PORT_ACTION_LOW_PWR_TO_NORMAL = 0x0010, 27398c2ecf20Sopenharmony_ci FW_PORT_ACTION_L1_LOW_PWR_EN = 0x0011, 27408c2ecf20Sopenharmony_ci FW_PORT_ACTION_L2_WOL_MODE_EN = 0x0012, 27418c2ecf20Sopenharmony_ci FW_PORT_ACTION_LPBK_TO_NORMAL = 0x0020, 27428c2ecf20Sopenharmony_ci FW_PORT_ACTION_L1_LPBK = 0x0021, 27438c2ecf20Sopenharmony_ci FW_PORT_ACTION_L1_PMA_LPBK = 0x0022, 27448c2ecf20Sopenharmony_ci FW_PORT_ACTION_L1_PCS_LPBK = 0x0023, 27458c2ecf20Sopenharmony_ci FW_PORT_ACTION_L1_PHYXS_CSIDE_LPBK = 0x0024, 27468c2ecf20Sopenharmony_ci FW_PORT_ACTION_L1_PHYXS_ESIDE_LPBK = 0x0025, 27478c2ecf20Sopenharmony_ci FW_PORT_ACTION_PHY_RESET = 0x0040, 27488c2ecf20Sopenharmony_ci FW_PORT_ACTION_PMA_RESET = 0x0041, 27498c2ecf20Sopenharmony_ci FW_PORT_ACTION_PCS_RESET = 0x0042, 27508c2ecf20Sopenharmony_ci FW_PORT_ACTION_PHYXS_RESET = 0x0043, 27518c2ecf20Sopenharmony_ci FW_PORT_ACTION_DTEXS_REEST = 0x0044, 27528c2ecf20Sopenharmony_ci FW_PORT_ACTION_AN_RESET = 0x0045 27538c2ecf20Sopenharmony_ci}; 27548c2ecf20Sopenharmony_ci 27558c2ecf20Sopenharmony_cienum fw_port_l2cfg_ctlbf { 27568c2ecf20Sopenharmony_ci FW_PORT_L2_CTLBF_OVLAN0 = 0x01, 27578c2ecf20Sopenharmony_ci FW_PORT_L2_CTLBF_OVLAN1 = 0x02, 27588c2ecf20Sopenharmony_ci FW_PORT_L2_CTLBF_OVLAN2 = 0x04, 27598c2ecf20Sopenharmony_ci FW_PORT_L2_CTLBF_OVLAN3 = 0x08, 27608c2ecf20Sopenharmony_ci FW_PORT_L2_CTLBF_IVLAN = 0x10, 27618c2ecf20Sopenharmony_ci FW_PORT_L2_CTLBF_TXIPG = 0x20 27628c2ecf20Sopenharmony_ci}; 27638c2ecf20Sopenharmony_ci 27648c2ecf20Sopenharmony_cienum fw_port_dcb_versions { 27658c2ecf20Sopenharmony_ci FW_PORT_DCB_VER_UNKNOWN, 27668c2ecf20Sopenharmony_ci FW_PORT_DCB_VER_CEE1D0, 27678c2ecf20Sopenharmony_ci FW_PORT_DCB_VER_CEE1D01, 27688c2ecf20Sopenharmony_ci FW_PORT_DCB_VER_IEEE, 27698c2ecf20Sopenharmony_ci FW_PORT_DCB_VER_AUTO = 7 27708c2ecf20Sopenharmony_ci}; 27718c2ecf20Sopenharmony_ci 27728c2ecf20Sopenharmony_cienum fw_port_dcb_cfg { 27738c2ecf20Sopenharmony_ci FW_PORT_DCB_CFG_PG = 0x01, 27748c2ecf20Sopenharmony_ci FW_PORT_DCB_CFG_PFC = 0x02, 27758c2ecf20Sopenharmony_ci FW_PORT_DCB_CFG_APPL = 0x04 27768c2ecf20Sopenharmony_ci}; 27778c2ecf20Sopenharmony_ci 27788c2ecf20Sopenharmony_cienum fw_port_dcb_cfg_rc { 27798c2ecf20Sopenharmony_ci FW_PORT_DCB_CFG_SUCCESS = 0x0, 27808c2ecf20Sopenharmony_ci FW_PORT_DCB_CFG_ERROR = 0x1 27818c2ecf20Sopenharmony_ci}; 27828c2ecf20Sopenharmony_ci 27838c2ecf20Sopenharmony_cienum fw_port_dcb_type { 27848c2ecf20Sopenharmony_ci FW_PORT_DCB_TYPE_PGID = 0x00, 27858c2ecf20Sopenharmony_ci FW_PORT_DCB_TYPE_PGRATE = 0x01, 27868c2ecf20Sopenharmony_ci FW_PORT_DCB_TYPE_PRIORATE = 0x02, 27878c2ecf20Sopenharmony_ci FW_PORT_DCB_TYPE_PFC = 0x03, 27888c2ecf20Sopenharmony_ci FW_PORT_DCB_TYPE_APP_ID = 0x04, 27898c2ecf20Sopenharmony_ci FW_PORT_DCB_TYPE_CONTROL = 0x05, 27908c2ecf20Sopenharmony_ci}; 27918c2ecf20Sopenharmony_ci 27928c2ecf20Sopenharmony_cienum fw_port_dcb_feature_state { 27938c2ecf20Sopenharmony_ci FW_PORT_DCB_FEATURE_STATE_PENDING = 0x0, 27948c2ecf20Sopenharmony_ci FW_PORT_DCB_FEATURE_STATE_SUCCESS = 0x1, 27958c2ecf20Sopenharmony_ci FW_PORT_DCB_FEATURE_STATE_ERROR = 0x2, 27968c2ecf20Sopenharmony_ci FW_PORT_DCB_FEATURE_STATE_TIMEOUT = 0x3, 27978c2ecf20Sopenharmony_ci}; 27988c2ecf20Sopenharmony_ci 27998c2ecf20Sopenharmony_cistruct fw_port_cmd { 28008c2ecf20Sopenharmony_ci __be32 op_to_portid; 28018c2ecf20Sopenharmony_ci __be32 action_to_len16; 28028c2ecf20Sopenharmony_ci union fw_port { 28038c2ecf20Sopenharmony_ci struct fw_port_l1cfg { 28048c2ecf20Sopenharmony_ci __be32 rcap; 28058c2ecf20Sopenharmony_ci __be32 r; 28068c2ecf20Sopenharmony_ci } l1cfg; 28078c2ecf20Sopenharmony_ci struct fw_port_l2cfg { 28088c2ecf20Sopenharmony_ci __u8 ctlbf; 28098c2ecf20Sopenharmony_ci __u8 ovlan3_to_ivlan0; 28108c2ecf20Sopenharmony_ci __be16 ivlantype; 28118c2ecf20Sopenharmony_ci __be16 txipg_force_pinfo; 28128c2ecf20Sopenharmony_ci __be16 mtu; 28138c2ecf20Sopenharmony_ci __be16 ovlan0mask; 28148c2ecf20Sopenharmony_ci __be16 ovlan0type; 28158c2ecf20Sopenharmony_ci __be16 ovlan1mask; 28168c2ecf20Sopenharmony_ci __be16 ovlan1type; 28178c2ecf20Sopenharmony_ci __be16 ovlan2mask; 28188c2ecf20Sopenharmony_ci __be16 ovlan2type; 28198c2ecf20Sopenharmony_ci __be16 ovlan3mask; 28208c2ecf20Sopenharmony_ci __be16 ovlan3type; 28218c2ecf20Sopenharmony_ci } l2cfg; 28228c2ecf20Sopenharmony_ci struct fw_port_info { 28238c2ecf20Sopenharmony_ci __be32 lstatus_to_modtype; 28248c2ecf20Sopenharmony_ci __be16 pcap; 28258c2ecf20Sopenharmony_ci __be16 acap; 28268c2ecf20Sopenharmony_ci __be16 mtu; 28278c2ecf20Sopenharmony_ci __u8 cbllen; 28288c2ecf20Sopenharmony_ci __u8 auxlinfo; 28298c2ecf20Sopenharmony_ci __u8 dcbxdis_pkd; 28308c2ecf20Sopenharmony_ci __u8 r8_lo; 28318c2ecf20Sopenharmony_ci __be16 lpacap; 28328c2ecf20Sopenharmony_ci __be64 r9; 28338c2ecf20Sopenharmony_ci } info; 28348c2ecf20Sopenharmony_ci struct fw_port_diags { 28358c2ecf20Sopenharmony_ci __u8 diagop; 28368c2ecf20Sopenharmony_ci __u8 r[3]; 28378c2ecf20Sopenharmony_ci __be32 diagval; 28388c2ecf20Sopenharmony_ci } diags; 28398c2ecf20Sopenharmony_ci union fw_port_dcb { 28408c2ecf20Sopenharmony_ci struct fw_port_dcb_pgid { 28418c2ecf20Sopenharmony_ci __u8 type; 28428c2ecf20Sopenharmony_ci __u8 apply_pkd; 28438c2ecf20Sopenharmony_ci __u8 r10_lo[2]; 28448c2ecf20Sopenharmony_ci __be32 pgid; 28458c2ecf20Sopenharmony_ci __be64 r11; 28468c2ecf20Sopenharmony_ci } pgid; 28478c2ecf20Sopenharmony_ci struct fw_port_dcb_pgrate { 28488c2ecf20Sopenharmony_ci __u8 type; 28498c2ecf20Sopenharmony_ci __u8 apply_pkd; 28508c2ecf20Sopenharmony_ci __u8 r10_lo[5]; 28518c2ecf20Sopenharmony_ci __u8 num_tcs_supported; 28528c2ecf20Sopenharmony_ci __u8 pgrate[8]; 28538c2ecf20Sopenharmony_ci __u8 tsa[8]; 28548c2ecf20Sopenharmony_ci } pgrate; 28558c2ecf20Sopenharmony_ci struct fw_port_dcb_priorate { 28568c2ecf20Sopenharmony_ci __u8 type; 28578c2ecf20Sopenharmony_ci __u8 apply_pkd; 28588c2ecf20Sopenharmony_ci __u8 r10_lo[6]; 28598c2ecf20Sopenharmony_ci __u8 strict_priorate[8]; 28608c2ecf20Sopenharmony_ci } priorate; 28618c2ecf20Sopenharmony_ci struct fw_port_dcb_pfc { 28628c2ecf20Sopenharmony_ci __u8 type; 28638c2ecf20Sopenharmony_ci __u8 pfcen; 28648c2ecf20Sopenharmony_ci __u8 r10[5]; 28658c2ecf20Sopenharmony_ci __u8 max_pfc_tcs; 28668c2ecf20Sopenharmony_ci __be64 r11; 28678c2ecf20Sopenharmony_ci } pfc; 28688c2ecf20Sopenharmony_ci struct fw_port_app_priority { 28698c2ecf20Sopenharmony_ci __u8 type; 28708c2ecf20Sopenharmony_ci __u8 r10[2]; 28718c2ecf20Sopenharmony_ci __u8 idx; 28728c2ecf20Sopenharmony_ci __u8 user_prio_map; 28738c2ecf20Sopenharmony_ci __u8 sel_field; 28748c2ecf20Sopenharmony_ci __be16 protocolid; 28758c2ecf20Sopenharmony_ci __be64 r12; 28768c2ecf20Sopenharmony_ci } app_priority; 28778c2ecf20Sopenharmony_ci struct fw_port_dcb_control { 28788c2ecf20Sopenharmony_ci __u8 type; 28798c2ecf20Sopenharmony_ci __u8 all_syncd_pkd; 28808c2ecf20Sopenharmony_ci __be16 dcb_version_to_app_state; 28818c2ecf20Sopenharmony_ci __be32 r11; 28828c2ecf20Sopenharmony_ci __be64 r12; 28838c2ecf20Sopenharmony_ci } control; 28848c2ecf20Sopenharmony_ci } dcb; 28858c2ecf20Sopenharmony_ci struct fw_port_l1cfg32 { 28868c2ecf20Sopenharmony_ci __be32 rcap32; 28878c2ecf20Sopenharmony_ci __be32 r; 28888c2ecf20Sopenharmony_ci } l1cfg32; 28898c2ecf20Sopenharmony_ci struct fw_port_info32 { 28908c2ecf20Sopenharmony_ci __be32 lstatus32_to_cbllen32; 28918c2ecf20Sopenharmony_ci __be32 auxlinfo32_mtu32; 28928c2ecf20Sopenharmony_ci __be32 linkattr32; 28938c2ecf20Sopenharmony_ci __be32 pcaps32; 28948c2ecf20Sopenharmony_ci __be32 acaps32; 28958c2ecf20Sopenharmony_ci __be32 lpacaps32; 28968c2ecf20Sopenharmony_ci } info32; 28978c2ecf20Sopenharmony_ci } u; 28988c2ecf20Sopenharmony_ci}; 28998c2ecf20Sopenharmony_ci 29008c2ecf20Sopenharmony_ci#define FW_PORT_CMD_READ_S 22 29018c2ecf20Sopenharmony_ci#define FW_PORT_CMD_READ_V(x) ((x) << FW_PORT_CMD_READ_S) 29028c2ecf20Sopenharmony_ci#define FW_PORT_CMD_READ_F FW_PORT_CMD_READ_V(1U) 29038c2ecf20Sopenharmony_ci 29048c2ecf20Sopenharmony_ci#define FW_PORT_CMD_PORTID_S 0 29058c2ecf20Sopenharmony_ci#define FW_PORT_CMD_PORTID_M 0xf 29068c2ecf20Sopenharmony_ci#define FW_PORT_CMD_PORTID_V(x) ((x) << FW_PORT_CMD_PORTID_S) 29078c2ecf20Sopenharmony_ci#define FW_PORT_CMD_PORTID_G(x) \ 29088c2ecf20Sopenharmony_ci (((x) >> FW_PORT_CMD_PORTID_S) & FW_PORT_CMD_PORTID_M) 29098c2ecf20Sopenharmony_ci 29108c2ecf20Sopenharmony_ci#define FW_PORT_CMD_ACTION_S 16 29118c2ecf20Sopenharmony_ci#define FW_PORT_CMD_ACTION_M 0xffff 29128c2ecf20Sopenharmony_ci#define FW_PORT_CMD_ACTION_V(x) ((x) << FW_PORT_CMD_ACTION_S) 29138c2ecf20Sopenharmony_ci#define FW_PORT_CMD_ACTION_G(x) \ 29148c2ecf20Sopenharmony_ci (((x) >> FW_PORT_CMD_ACTION_S) & FW_PORT_CMD_ACTION_M) 29158c2ecf20Sopenharmony_ci 29168c2ecf20Sopenharmony_ci#define FW_PORT_CMD_OVLAN3_S 7 29178c2ecf20Sopenharmony_ci#define FW_PORT_CMD_OVLAN3_V(x) ((x) << FW_PORT_CMD_OVLAN3_S) 29188c2ecf20Sopenharmony_ci 29198c2ecf20Sopenharmony_ci#define FW_PORT_CMD_OVLAN2_S 6 29208c2ecf20Sopenharmony_ci#define FW_PORT_CMD_OVLAN2_V(x) ((x) << FW_PORT_CMD_OVLAN2_S) 29218c2ecf20Sopenharmony_ci 29228c2ecf20Sopenharmony_ci#define FW_PORT_CMD_OVLAN1_S 5 29238c2ecf20Sopenharmony_ci#define FW_PORT_CMD_OVLAN1_V(x) ((x) << FW_PORT_CMD_OVLAN1_S) 29248c2ecf20Sopenharmony_ci 29258c2ecf20Sopenharmony_ci#define FW_PORT_CMD_OVLAN0_S 4 29268c2ecf20Sopenharmony_ci#define FW_PORT_CMD_OVLAN0_V(x) ((x) << FW_PORT_CMD_OVLAN0_S) 29278c2ecf20Sopenharmony_ci 29288c2ecf20Sopenharmony_ci#define FW_PORT_CMD_IVLAN0_S 3 29298c2ecf20Sopenharmony_ci#define FW_PORT_CMD_IVLAN0_V(x) ((x) << FW_PORT_CMD_IVLAN0_S) 29308c2ecf20Sopenharmony_ci 29318c2ecf20Sopenharmony_ci#define FW_PORT_CMD_TXIPG_S 3 29328c2ecf20Sopenharmony_ci#define FW_PORT_CMD_TXIPG_V(x) ((x) << FW_PORT_CMD_TXIPG_S) 29338c2ecf20Sopenharmony_ci 29348c2ecf20Sopenharmony_ci#define FW_PORT_CMD_LSTATUS_S 31 29358c2ecf20Sopenharmony_ci#define FW_PORT_CMD_LSTATUS_M 0x1 29368c2ecf20Sopenharmony_ci#define FW_PORT_CMD_LSTATUS_V(x) ((x) << FW_PORT_CMD_LSTATUS_S) 29378c2ecf20Sopenharmony_ci#define FW_PORT_CMD_LSTATUS_G(x) \ 29388c2ecf20Sopenharmony_ci (((x) >> FW_PORT_CMD_LSTATUS_S) & FW_PORT_CMD_LSTATUS_M) 29398c2ecf20Sopenharmony_ci#define FW_PORT_CMD_LSTATUS_F FW_PORT_CMD_LSTATUS_V(1U) 29408c2ecf20Sopenharmony_ci 29418c2ecf20Sopenharmony_ci#define FW_PORT_CMD_LSPEED_S 24 29428c2ecf20Sopenharmony_ci#define FW_PORT_CMD_LSPEED_M 0x3f 29438c2ecf20Sopenharmony_ci#define FW_PORT_CMD_LSPEED_V(x) ((x) << FW_PORT_CMD_LSPEED_S) 29448c2ecf20Sopenharmony_ci#define FW_PORT_CMD_LSPEED_G(x) \ 29458c2ecf20Sopenharmony_ci (((x) >> FW_PORT_CMD_LSPEED_S) & FW_PORT_CMD_LSPEED_M) 29468c2ecf20Sopenharmony_ci 29478c2ecf20Sopenharmony_ci#define FW_PORT_CMD_TXPAUSE_S 23 29488c2ecf20Sopenharmony_ci#define FW_PORT_CMD_TXPAUSE_V(x) ((x) << FW_PORT_CMD_TXPAUSE_S) 29498c2ecf20Sopenharmony_ci#define FW_PORT_CMD_TXPAUSE_F FW_PORT_CMD_TXPAUSE_V(1U) 29508c2ecf20Sopenharmony_ci 29518c2ecf20Sopenharmony_ci#define FW_PORT_CMD_RXPAUSE_S 22 29528c2ecf20Sopenharmony_ci#define FW_PORT_CMD_RXPAUSE_V(x) ((x) << FW_PORT_CMD_RXPAUSE_S) 29538c2ecf20Sopenharmony_ci#define FW_PORT_CMD_RXPAUSE_F FW_PORT_CMD_RXPAUSE_V(1U) 29548c2ecf20Sopenharmony_ci 29558c2ecf20Sopenharmony_ci#define FW_PORT_CMD_MDIOCAP_S 21 29568c2ecf20Sopenharmony_ci#define FW_PORT_CMD_MDIOCAP_V(x) ((x) << FW_PORT_CMD_MDIOCAP_S) 29578c2ecf20Sopenharmony_ci#define FW_PORT_CMD_MDIOCAP_F FW_PORT_CMD_MDIOCAP_V(1U) 29588c2ecf20Sopenharmony_ci 29598c2ecf20Sopenharmony_ci#define FW_PORT_CMD_MDIOADDR_S 16 29608c2ecf20Sopenharmony_ci#define FW_PORT_CMD_MDIOADDR_M 0x1f 29618c2ecf20Sopenharmony_ci#define FW_PORT_CMD_MDIOADDR_G(x) \ 29628c2ecf20Sopenharmony_ci (((x) >> FW_PORT_CMD_MDIOADDR_S) & FW_PORT_CMD_MDIOADDR_M) 29638c2ecf20Sopenharmony_ci 29648c2ecf20Sopenharmony_ci#define FW_PORT_CMD_LPTXPAUSE_S 15 29658c2ecf20Sopenharmony_ci#define FW_PORT_CMD_LPTXPAUSE_V(x) ((x) << FW_PORT_CMD_LPTXPAUSE_S) 29668c2ecf20Sopenharmony_ci#define FW_PORT_CMD_LPTXPAUSE_F FW_PORT_CMD_LPTXPAUSE_V(1U) 29678c2ecf20Sopenharmony_ci 29688c2ecf20Sopenharmony_ci#define FW_PORT_CMD_LPRXPAUSE_S 14 29698c2ecf20Sopenharmony_ci#define FW_PORT_CMD_LPRXPAUSE_V(x) ((x) << FW_PORT_CMD_LPRXPAUSE_S) 29708c2ecf20Sopenharmony_ci#define FW_PORT_CMD_LPRXPAUSE_F FW_PORT_CMD_LPRXPAUSE_V(1U) 29718c2ecf20Sopenharmony_ci 29728c2ecf20Sopenharmony_ci#define FW_PORT_CMD_PTYPE_S 8 29738c2ecf20Sopenharmony_ci#define FW_PORT_CMD_PTYPE_M 0x1f 29748c2ecf20Sopenharmony_ci#define FW_PORT_CMD_PTYPE_G(x) \ 29758c2ecf20Sopenharmony_ci (((x) >> FW_PORT_CMD_PTYPE_S) & FW_PORT_CMD_PTYPE_M) 29768c2ecf20Sopenharmony_ci 29778c2ecf20Sopenharmony_ci#define FW_PORT_CMD_LINKDNRC_S 5 29788c2ecf20Sopenharmony_ci#define FW_PORT_CMD_LINKDNRC_M 0x7 29798c2ecf20Sopenharmony_ci#define FW_PORT_CMD_LINKDNRC_G(x) \ 29808c2ecf20Sopenharmony_ci (((x) >> FW_PORT_CMD_LINKDNRC_S) & FW_PORT_CMD_LINKDNRC_M) 29818c2ecf20Sopenharmony_ci 29828c2ecf20Sopenharmony_ci#define FW_PORT_CMD_MODTYPE_S 0 29838c2ecf20Sopenharmony_ci#define FW_PORT_CMD_MODTYPE_M 0x1f 29848c2ecf20Sopenharmony_ci#define FW_PORT_CMD_MODTYPE_V(x) ((x) << FW_PORT_CMD_MODTYPE_S) 29858c2ecf20Sopenharmony_ci#define FW_PORT_CMD_MODTYPE_G(x) \ 29868c2ecf20Sopenharmony_ci (((x) >> FW_PORT_CMD_MODTYPE_S) & FW_PORT_CMD_MODTYPE_M) 29878c2ecf20Sopenharmony_ci 29888c2ecf20Sopenharmony_ci#define FW_PORT_CMD_DCBXDIS_S 7 29898c2ecf20Sopenharmony_ci#define FW_PORT_CMD_DCBXDIS_V(x) ((x) << FW_PORT_CMD_DCBXDIS_S) 29908c2ecf20Sopenharmony_ci#define FW_PORT_CMD_DCBXDIS_F FW_PORT_CMD_DCBXDIS_V(1U) 29918c2ecf20Sopenharmony_ci 29928c2ecf20Sopenharmony_ci#define FW_PORT_CMD_APPLY_S 7 29938c2ecf20Sopenharmony_ci#define FW_PORT_CMD_APPLY_V(x) ((x) << FW_PORT_CMD_APPLY_S) 29948c2ecf20Sopenharmony_ci#define FW_PORT_CMD_APPLY_F FW_PORT_CMD_APPLY_V(1U) 29958c2ecf20Sopenharmony_ci 29968c2ecf20Sopenharmony_ci#define FW_PORT_CMD_ALL_SYNCD_S 7 29978c2ecf20Sopenharmony_ci#define FW_PORT_CMD_ALL_SYNCD_V(x) ((x) << FW_PORT_CMD_ALL_SYNCD_S) 29988c2ecf20Sopenharmony_ci#define FW_PORT_CMD_ALL_SYNCD_F FW_PORT_CMD_ALL_SYNCD_V(1U) 29998c2ecf20Sopenharmony_ci 30008c2ecf20Sopenharmony_ci#define FW_PORT_CMD_DCB_VERSION_S 12 30018c2ecf20Sopenharmony_ci#define FW_PORT_CMD_DCB_VERSION_M 0x7 30028c2ecf20Sopenharmony_ci#define FW_PORT_CMD_DCB_VERSION_G(x) \ 30038c2ecf20Sopenharmony_ci (((x) >> FW_PORT_CMD_DCB_VERSION_S) & FW_PORT_CMD_DCB_VERSION_M) 30048c2ecf20Sopenharmony_ci 30058c2ecf20Sopenharmony_ci#define FW_PORT_CMD_LSTATUS32_S 31 30068c2ecf20Sopenharmony_ci#define FW_PORT_CMD_LSTATUS32_M 0x1 30078c2ecf20Sopenharmony_ci#define FW_PORT_CMD_LSTATUS32_V(x) ((x) << FW_PORT_CMD_LSTATUS32_S) 30088c2ecf20Sopenharmony_ci#define FW_PORT_CMD_LSTATUS32_G(x) \ 30098c2ecf20Sopenharmony_ci (((x) >> FW_PORT_CMD_LSTATUS32_S) & FW_PORT_CMD_LSTATUS32_M) 30108c2ecf20Sopenharmony_ci#define FW_PORT_CMD_LSTATUS32_F FW_PORT_CMD_LSTATUS32_V(1U) 30118c2ecf20Sopenharmony_ci 30128c2ecf20Sopenharmony_ci#define FW_PORT_CMD_LINKDNRC32_S 28 30138c2ecf20Sopenharmony_ci#define FW_PORT_CMD_LINKDNRC32_M 0x7 30148c2ecf20Sopenharmony_ci#define FW_PORT_CMD_LINKDNRC32_V(x) ((x) << FW_PORT_CMD_LINKDNRC32_S) 30158c2ecf20Sopenharmony_ci#define FW_PORT_CMD_LINKDNRC32_G(x) \ 30168c2ecf20Sopenharmony_ci (((x) >> FW_PORT_CMD_LINKDNRC32_S) & FW_PORT_CMD_LINKDNRC32_M) 30178c2ecf20Sopenharmony_ci 30188c2ecf20Sopenharmony_ci#define FW_PORT_CMD_DCBXDIS32_S 27 30198c2ecf20Sopenharmony_ci#define FW_PORT_CMD_DCBXDIS32_M 0x1 30208c2ecf20Sopenharmony_ci#define FW_PORT_CMD_DCBXDIS32_V(x) ((x) << FW_PORT_CMD_DCBXDIS32_S) 30218c2ecf20Sopenharmony_ci#define FW_PORT_CMD_DCBXDIS32_G(x) \ 30228c2ecf20Sopenharmony_ci (((x) >> FW_PORT_CMD_DCBXDIS32_S) & FW_PORT_CMD_DCBXDIS32_M) 30238c2ecf20Sopenharmony_ci#define FW_PORT_CMD_DCBXDIS32_F FW_PORT_CMD_DCBXDIS32_V(1U) 30248c2ecf20Sopenharmony_ci 30258c2ecf20Sopenharmony_ci#define FW_PORT_CMD_MDIOCAP32_S 26 30268c2ecf20Sopenharmony_ci#define FW_PORT_CMD_MDIOCAP32_M 0x1 30278c2ecf20Sopenharmony_ci#define FW_PORT_CMD_MDIOCAP32_V(x) ((x) << FW_PORT_CMD_MDIOCAP32_S) 30288c2ecf20Sopenharmony_ci#define FW_PORT_CMD_MDIOCAP32_G(x) \ 30298c2ecf20Sopenharmony_ci (((x) >> FW_PORT_CMD_MDIOCAP32_S) & FW_PORT_CMD_MDIOCAP32_M) 30308c2ecf20Sopenharmony_ci#define FW_PORT_CMD_MDIOCAP32_F FW_PORT_CMD_MDIOCAP32_V(1U) 30318c2ecf20Sopenharmony_ci 30328c2ecf20Sopenharmony_ci#define FW_PORT_CMD_MDIOADDR32_S 21 30338c2ecf20Sopenharmony_ci#define FW_PORT_CMD_MDIOADDR32_M 0x1f 30348c2ecf20Sopenharmony_ci#define FW_PORT_CMD_MDIOADDR32_V(x) ((x) << FW_PORT_CMD_MDIOADDR32_S) 30358c2ecf20Sopenharmony_ci#define FW_PORT_CMD_MDIOADDR32_G(x) \ 30368c2ecf20Sopenharmony_ci (((x) >> FW_PORT_CMD_MDIOADDR32_S) & FW_PORT_CMD_MDIOADDR32_M) 30378c2ecf20Sopenharmony_ci 30388c2ecf20Sopenharmony_ci#define FW_PORT_CMD_PORTTYPE32_S 13 30398c2ecf20Sopenharmony_ci#define FW_PORT_CMD_PORTTYPE32_M 0xff 30408c2ecf20Sopenharmony_ci#define FW_PORT_CMD_PORTTYPE32_V(x) ((x) << FW_PORT_CMD_PORTTYPE32_S) 30418c2ecf20Sopenharmony_ci#define FW_PORT_CMD_PORTTYPE32_G(x) \ 30428c2ecf20Sopenharmony_ci (((x) >> FW_PORT_CMD_PORTTYPE32_S) & FW_PORT_CMD_PORTTYPE32_M) 30438c2ecf20Sopenharmony_ci 30448c2ecf20Sopenharmony_ci#define FW_PORT_CMD_MODTYPE32_S 8 30458c2ecf20Sopenharmony_ci#define FW_PORT_CMD_MODTYPE32_M 0x1f 30468c2ecf20Sopenharmony_ci#define FW_PORT_CMD_MODTYPE32_V(x) ((x) << FW_PORT_CMD_MODTYPE32_S) 30478c2ecf20Sopenharmony_ci#define FW_PORT_CMD_MODTYPE32_G(x) \ 30488c2ecf20Sopenharmony_ci (((x) >> FW_PORT_CMD_MODTYPE32_S) & FW_PORT_CMD_MODTYPE32_M) 30498c2ecf20Sopenharmony_ci 30508c2ecf20Sopenharmony_ci#define FW_PORT_CMD_CBLLEN32_S 0 30518c2ecf20Sopenharmony_ci#define FW_PORT_CMD_CBLLEN32_M 0xff 30528c2ecf20Sopenharmony_ci#define FW_PORT_CMD_CBLLEN32_V(x) ((x) << FW_PORT_CMD_CBLLEN32_S) 30538c2ecf20Sopenharmony_ci#define FW_PORT_CMD_CBLLEN32_G(x) \ 30548c2ecf20Sopenharmony_ci (((x) >> FW_PORT_CMD_CBLLEN32_S) & FW_PORT_CMD_CBLLEN32_M) 30558c2ecf20Sopenharmony_ci 30568c2ecf20Sopenharmony_ci#define FW_PORT_CMD_AUXLINFO32_S 24 30578c2ecf20Sopenharmony_ci#define FW_PORT_CMD_AUXLINFO32_M 0xff 30588c2ecf20Sopenharmony_ci#define FW_PORT_CMD_AUXLINFO32_V(x) ((x) << FW_PORT_CMD_AUXLINFO32_S) 30598c2ecf20Sopenharmony_ci#define FW_PORT_CMD_AUXLINFO32_G(x) \ 30608c2ecf20Sopenharmony_ci (((x) >> FW_PORT_CMD_AUXLINFO32_S) & FW_PORT_CMD_AUXLINFO32_M) 30618c2ecf20Sopenharmony_ci 30628c2ecf20Sopenharmony_ci#define FW_PORT_AUXLINFO32_KX4_S 2 30638c2ecf20Sopenharmony_ci#define FW_PORT_AUXLINFO32_KX4_M 0x1 30648c2ecf20Sopenharmony_ci#define FW_PORT_AUXLINFO32_KX4_V(x) \ 30658c2ecf20Sopenharmony_ci ((x) << FW_PORT_AUXLINFO32_KX4_S) 30668c2ecf20Sopenharmony_ci#define FW_PORT_AUXLINFO32_KX4_G(x) \ 30678c2ecf20Sopenharmony_ci (((x) >> FW_PORT_AUXLINFO32_KX4_S) & FW_PORT_AUXLINFO32_KX4_M) 30688c2ecf20Sopenharmony_ci#define FW_PORT_AUXLINFO32_KX4_F FW_PORT_AUXLINFO32_KX4_V(1U) 30698c2ecf20Sopenharmony_ci 30708c2ecf20Sopenharmony_ci#define FW_PORT_AUXLINFO32_KR_S 1 30718c2ecf20Sopenharmony_ci#define FW_PORT_AUXLINFO32_KR_M 0x1 30728c2ecf20Sopenharmony_ci#define FW_PORT_AUXLINFO32_KR_V(x) \ 30738c2ecf20Sopenharmony_ci ((x) << FW_PORT_AUXLINFO32_KR_S) 30748c2ecf20Sopenharmony_ci#define FW_PORT_AUXLINFO32_KR_G(x) \ 30758c2ecf20Sopenharmony_ci (((x) >> FW_PORT_AUXLINFO32_KR_S) & FW_PORT_AUXLINFO32_KR_M) 30768c2ecf20Sopenharmony_ci#define FW_PORT_AUXLINFO32_KR_F FW_PORT_AUXLINFO32_KR_V(1U) 30778c2ecf20Sopenharmony_ci 30788c2ecf20Sopenharmony_ci#define FW_PORT_CMD_MTU32_S 0 30798c2ecf20Sopenharmony_ci#define FW_PORT_CMD_MTU32_M 0xffff 30808c2ecf20Sopenharmony_ci#define FW_PORT_CMD_MTU32_V(x) ((x) << FW_PORT_CMD_MTU32_S) 30818c2ecf20Sopenharmony_ci#define FW_PORT_CMD_MTU32_G(x) \ 30828c2ecf20Sopenharmony_ci (((x) >> FW_PORT_CMD_MTU32_S) & FW_PORT_CMD_MTU32_M) 30838c2ecf20Sopenharmony_ci 30848c2ecf20Sopenharmony_cienum fw_port_type { 30858c2ecf20Sopenharmony_ci FW_PORT_TYPE_FIBER_XFI, 30868c2ecf20Sopenharmony_ci FW_PORT_TYPE_FIBER_XAUI, 30878c2ecf20Sopenharmony_ci FW_PORT_TYPE_BT_SGMII, 30888c2ecf20Sopenharmony_ci FW_PORT_TYPE_BT_XFI, 30898c2ecf20Sopenharmony_ci FW_PORT_TYPE_BT_XAUI, 30908c2ecf20Sopenharmony_ci FW_PORT_TYPE_KX4, 30918c2ecf20Sopenharmony_ci FW_PORT_TYPE_CX4, 30928c2ecf20Sopenharmony_ci FW_PORT_TYPE_KX, 30938c2ecf20Sopenharmony_ci FW_PORT_TYPE_KR, 30948c2ecf20Sopenharmony_ci FW_PORT_TYPE_SFP, 30958c2ecf20Sopenharmony_ci FW_PORT_TYPE_BP_AP, 30968c2ecf20Sopenharmony_ci FW_PORT_TYPE_BP4_AP, 30978c2ecf20Sopenharmony_ci FW_PORT_TYPE_QSFP_10G, 30988c2ecf20Sopenharmony_ci FW_PORT_TYPE_QSA, 30998c2ecf20Sopenharmony_ci FW_PORT_TYPE_QSFP, 31008c2ecf20Sopenharmony_ci FW_PORT_TYPE_BP40_BA, 31018c2ecf20Sopenharmony_ci FW_PORT_TYPE_KR4_100G, 31028c2ecf20Sopenharmony_ci FW_PORT_TYPE_CR4_QSFP, 31038c2ecf20Sopenharmony_ci FW_PORT_TYPE_CR_QSFP, 31048c2ecf20Sopenharmony_ci FW_PORT_TYPE_CR2_QSFP, 31058c2ecf20Sopenharmony_ci FW_PORT_TYPE_SFP28, 31068c2ecf20Sopenharmony_ci FW_PORT_TYPE_KR_SFP28, 31078c2ecf20Sopenharmony_ci FW_PORT_TYPE_KR_XLAUI, 31088c2ecf20Sopenharmony_ci 31098c2ecf20Sopenharmony_ci FW_PORT_TYPE_NONE = FW_PORT_CMD_PTYPE_M 31108c2ecf20Sopenharmony_ci}; 31118c2ecf20Sopenharmony_ci 31128c2ecf20Sopenharmony_cienum fw_port_module_type { 31138c2ecf20Sopenharmony_ci FW_PORT_MOD_TYPE_NA, 31148c2ecf20Sopenharmony_ci FW_PORT_MOD_TYPE_LR, 31158c2ecf20Sopenharmony_ci FW_PORT_MOD_TYPE_SR, 31168c2ecf20Sopenharmony_ci FW_PORT_MOD_TYPE_ER, 31178c2ecf20Sopenharmony_ci FW_PORT_MOD_TYPE_TWINAX_PASSIVE, 31188c2ecf20Sopenharmony_ci FW_PORT_MOD_TYPE_TWINAX_ACTIVE, 31198c2ecf20Sopenharmony_ci FW_PORT_MOD_TYPE_LRM, 31208c2ecf20Sopenharmony_ci FW_PORT_MOD_TYPE_ERROR = FW_PORT_CMD_MODTYPE_M - 3, 31218c2ecf20Sopenharmony_ci FW_PORT_MOD_TYPE_UNKNOWN = FW_PORT_CMD_MODTYPE_M - 2, 31228c2ecf20Sopenharmony_ci FW_PORT_MOD_TYPE_NOTSUPPORTED = FW_PORT_CMD_MODTYPE_M - 1, 31238c2ecf20Sopenharmony_ci 31248c2ecf20Sopenharmony_ci FW_PORT_MOD_TYPE_NONE = FW_PORT_CMD_MODTYPE_M 31258c2ecf20Sopenharmony_ci}; 31268c2ecf20Sopenharmony_ci 31278c2ecf20Sopenharmony_cienum fw_port_mod_sub_type { 31288c2ecf20Sopenharmony_ci FW_PORT_MOD_SUB_TYPE_NA, 31298c2ecf20Sopenharmony_ci FW_PORT_MOD_SUB_TYPE_MV88E114X = 0x1, 31308c2ecf20Sopenharmony_ci FW_PORT_MOD_SUB_TYPE_TN8022 = 0x2, 31318c2ecf20Sopenharmony_ci FW_PORT_MOD_SUB_TYPE_AQ1202 = 0x3, 31328c2ecf20Sopenharmony_ci FW_PORT_MOD_SUB_TYPE_88x3120 = 0x4, 31338c2ecf20Sopenharmony_ci FW_PORT_MOD_SUB_TYPE_BCM84834 = 0x5, 31348c2ecf20Sopenharmony_ci FW_PORT_MOD_SUB_TYPE_BT_VSC8634 = 0x8, 31358c2ecf20Sopenharmony_ci 31368c2ecf20Sopenharmony_ci /* The following will never been in the VPD. They are TWINAX cable 31378c2ecf20Sopenharmony_ci * lengths decoded from SFP+ module i2c PROMs. These should 31388c2ecf20Sopenharmony_ci * almost certainly go somewhere else ... 31398c2ecf20Sopenharmony_ci */ 31408c2ecf20Sopenharmony_ci FW_PORT_MOD_SUB_TYPE_TWINAX_1 = 0x9, 31418c2ecf20Sopenharmony_ci FW_PORT_MOD_SUB_TYPE_TWINAX_3 = 0xA, 31428c2ecf20Sopenharmony_ci FW_PORT_MOD_SUB_TYPE_TWINAX_5 = 0xB, 31438c2ecf20Sopenharmony_ci FW_PORT_MOD_SUB_TYPE_TWINAX_7 = 0xC, 31448c2ecf20Sopenharmony_ci}; 31458c2ecf20Sopenharmony_ci 31468c2ecf20Sopenharmony_cienum fw_port_stats_tx_index { 31478c2ecf20Sopenharmony_ci FW_STAT_TX_PORT_BYTES_IX = 0, 31488c2ecf20Sopenharmony_ci FW_STAT_TX_PORT_FRAMES_IX, 31498c2ecf20Sopenharmony_ci FW_STAT_TX_PORT_BCAST_IX, 31508c2ecf20Sopenharmony_ci FW_STAT_TX_PORT_MCAST_IX, 31518c2ecf20Sopenharmony_ci FW_STAT_TX_PORT_UCAST_IX, 31528c2ecf20Sopenharmony_ci FW_STAT_TX_PORT_ERROR_IX, 31538c2ecf20Sopenharmony_ci FW_STAT_TX_PORT_64B_IX, 31548c2ecf20Sopenharmony_ci FW_STAT_TX_PORT_65B_127B_IX, 31558c2ecf20Sopenharmony_ci FW_STAT_TX_PORT_128B_255B_IX, 31568c2ecf20Sopenharmony_ci FW_STAT_TX_PORT_256B_511B_IX, 31578c2ecf20Sopenharmony_ci FW_STAT_TX_PORT_512B_1023B_IX, 31588c2ecf20Sopenharmony_ci FW_STAT_TX_PORT_1024B_1518B_IX, 31598c2ecf20Sopenharmony_ci FW_STAT_TX_PORT_1519B_MAX_IX, 31608c2ecf20Sopenharmony_ci FW_STAT_TX_PORT_DROP_IX, 31618c2ecf20Sopenharmony_ci FW_STAT_TX_PORT_PAUSE_IX, 31628c2ecf20Sopenharmony_ci FW_STAT_TX_PORT_PPP0_IX, 31638c2ecf20Sopenharmony_ci FW_STAT_TX_PORT_PPP1_IX, 31648c2ecf20Sopenharmony_ci FW_STAT_TX_PORT_PPP2_IX, 31658c2ecf20Sopenharmony_ci FW_STAT_TX_PORT_PPP3_IX, 31668c2ecf20Sopenharmony_ci FW_STAT_TX_PORT_PPP4_IX, 31678c2ecf20Sopenharmony_ci FW_STAT_TX_PORT_PPP5_IX, 31688c2ecf20Sopenharmony_ci FW_STAT_TX_PORT_PPP6_IX, 31698c2ecf20Sopenharmony_ci FW_STAT_TX_PORT_PPP7_IX, 31708c2ecf20Sopenharmony_ci FW_NUM_PORT_TX_STATS 31718c2ecf20Sopenharmony_ci}; 31728c2ecf20Sopenharmony_ci 31738c2ecf20Sopenharmony_cienum fw_port_stat_rx_index { 31748c2ecf20Sopenharmony_ci FW_STAT_RX_PORT_BYTES_IX = 0, 31758c2ecf20Sopenharmony_ci FW_STAT_RX_PORT_FRAMES_IX, 31768c2ecf20Sopenharmony_ci FW_STAT_RX_PORT_BCAST_IX, 31778c2ecf20Sopenharmony_ci FW_STAT_RX_PORT_MCAST_IX, 31788c2ecf20Sopenharmony_ci FW_STAT_RX_PORT_UCAST_IX, 31798c2ecf20Sopenharmony_ci FW_STAT_RX_PORT_MTU_ERROR_IX, 31808c2ecf20Sopenharmony_ci FW_STAT_RX_PORT_MTU_CRC_ERROR_IX, 31818c2ecf20Sopenharmony_ci FW_STAT_RX_PORT_CRC_ERROR_IX, 31828c2ecf20Sopenharmony_ci FW_STAT_RX_PORT_LEN_ERROR_IX, 31838c2ecf20Sopenharmony_ci FW_STAT_RX_PORT_SYM_ERROR_IX, 31848c2ecf20Sopenharmony_ci FW_STAT_RX_PORT_64B_IX, 31858c2ecf20Sopenharmony_ci FW_STAT_RX_PORT_65B_127B_IX, 31868c2ecf20Sopenharmony_ci FW_STAT_RX_PORT_128B_255B_IX, 31878c2ecf20Sopenharmony_ci FW_STAT_RX_PORT_256B_511B_IX, 31888c2ecf20Sopenharmony_ci FW_STAT_RX_PORT_512B_1023B_IX, 31898c2ecf20Sopenharmony_ci FW_STAT_RX_PORT_1024B_1518B_IX, 31908c2ecf20Sopenharmony_ci FW_STAT_RX_PORT_1519B_MAX_IX, 31918c2ecf20Sopenharmony_ci FW_STAT_RX_PORT_PAUSE_IX, 31928c2ecf20Sopenharmony_ci FW_STAT_RX_PORT_PPP0_IX, 31938c2ecf20Sopenharmony_ci FW_STAT_RX_PORT_PPP1_IX, 31948c2ecf20Sopenharmony_ci FW_STAT_RX_PORT_PPP2_IX, 31958c2ecf20Sopenharmony_ci FW_STAT_RX_PORT_PPP3_IX, 31968c2ecf20Sopenharmony_ci FW_STAT_RX_PORT_PPP4_IX, 31978c2ecf20Sopenharmony_ci FW_STAT_RX_PORT_PPP5_IX, 31988c2ecf20Sopenharmony_ci FW_STAT_RX_PORT_PPP6_IX, 31998c2ecf20Sopenharmony_ci FW_STAT_RX_PORT_PPP7_IX, 32008c2ecf20Sopenharmony_ci FW_STAT_RX_PORT_LESS_64B_IX, 32018c2ecf20Sopenharmony_ci FW_STAT_RX_PORT_MAC_ERROR_IX, 32028c2ecf20Sopenharmony_ci FW_NUM_PORT_RX_STATS 32038c2ecf20Sopenharmony_ci}; 32048c2ecf20Sopenharmony_ci 32058c2ecf20Sopenharmony_ci/* port stats */ 32068c2ecf20Sopenharmony_ci#define FW_NUM_PORT_STATS (FW_NUM_PORT_TX_STATS + FW_NUM_PORT_RX_STATS) 32078c2ecf20Sopenharmony_ci 32088c2ecf20Sopenharmony_cistruct fw_port_stats_cmd { 32098c2ecf20Sopenharmony_ci __be32 op_to_portid; 32108c2ecf20Sopenharmony_ci __be32 retval_len16; 32118c2ecf20Sopenharmony_ci union fw_port_stats { 32128c2ecf20Sopenharmony_ci struct fw_port_stats_ctl { 32138c2ecf20Sopenharmony_ci u8 nstats_bg_bm; 32148c2ecf20Sopenharmony_ci u8 tx_ix; 32158c2ecf20Sopenharmony_ci __be16 r6; 32168c2ecf20Sopenharmony_ci __be32 r7; 32178c2ecf20Sopenharmony_ci __be64 stat0; 32188c2ecf20Sopenharmony_ci __be64 stat1; 32198c2ecf20Sopenharmony_ci __be64 stat2; 32208c2ecf20Sopenharmony_ci __be64 stat3; 32218c2ecf20Sopenharmony_ci __be64 stat4; 32228c2ecf20Sopenharmony_ci __be64 stat5; 32238c2ecf20Sopenharmony_ci } ctl; 32248c2ecf20Sopenharmony_ci struct fw_port_stats_all { 32258c2ecf20Sopenharmony_ci __be64 tx_bytes; 32268c2ecf20Sopenharmony_ci __be64 tx_frames; 32278c2ecf20Sopenharmony_ci __be64 tx_bcast; 32288c2ecf20Sopenharmony_ci __be64 tx_mcast; 32298c2ecf20Sopenharmony_ci __be64 tx_ucast; 32308c2ecf20Sopenharmony_ci __be64 tx_error; 32318c2ecf20Sopenharmony_ci __be64 tx_64b; 32328c2ecf20Sopenharmony_ci __be64 tx_65b_127b; 32338c2ecf20Sopenharmony_ci __be64 tx_128b_255b; 32348c2ecf20Sopenharmony_ci __be64 tx_256b_511b; 32358c2ecf20Sopenharmony_ci __be64 tx_512b_1023b; 32368c2ecf20Sopenharmony_ci __be64 tx_1024b_1518b; 32378c2ecf20Sopenharmony_ci __be64 tx_1519b_max; 32388c2ecf20Sopenharmony_ci __be64 tx_drop; 32398c2ecf20Sopenharmony_ci __be64 tx_pause; 32408c2ecf20Sopenharmony_ci __be64 tx_ppp0; 32418c2ecf20Sopenharmony_ci __be64 tx_ppp1; 32428c2ecf20Sopenharmony_ci __be64 tx_ppp2; 32438c2ecf20Sopenharmony_ci __be64 tx_ppp3; 32448c2ecf20Sopenharmony_ci __be64 tx_ppp4; 32458c2ecf20Sopenharmony_ci __be64 tx_ppp5; 32468c2ecf20Sopenharmony_ci __be64 tx_ppp6; 32478c2ecf20Sopenharmony_ci __be64 tx_ppp7; 32488c2ecf20Sopenharmony_ci __be64 rx_bytes; 32498c2ecf20Sopenharmony_ci __be64 rx_frames; 32508c2ecf20Sopenharmony_ci __be64 rx_bcast; 32518c2ecf20Sopenharmony_ci __be64 rx_mcast; 32528c2ecf20Sopenharmony_ci __be64 rx_ucast; 32538c2ecf20Sopenharmony_ci __be64 rx_mtu_error; 32548c2ecf20Sopenharmony_ci __be64 rx_mtu_crc_error; 32558c2ecf20Sopenharmony_ci __be64 rx_crc_error; 32568c2ecf20Sopenharmony_ci __be64 rx_len_error; 32578c2ecf20Sopenharmony_ci __be64 rx_sym_error; 32588c2ecf20Sopenharmony_ci __be64 rx_64b; 32598c2ecf20Sopenharmony_ci __be64 rx_65b_127b; 32608c2ecf20Sopenharmony_ci __be64 rx_128b_255b; 32618c2ecf20Sopenharmony_ci __be64 rx_256b_511b; 32628c2ecf20Sopenharmony_ci __be64 rx_512b_1023b; 32638c2ecf20Sopenharmony_ci __be64 rx_1024b_1518b; 32648c2ecf20Sopenharmony_ci __be64 rx_1519b_max; 32658c2ecf20Sopenharmony_ci __be64 rx_pause; 32668c2ecf20Sopenharmony_ci __be64 rx_ppp0; 32678c2ecf20Sopenharmony_ci __be64 rx_ppp1; 32688c2ecf20Sopenharmony_ci __be64 rx_ppp2; 32698c2ecf20Sopenharmony_ci __be64 rx_ppp3; 32708c2ecf20Sopenharmony_ci __be64 rx_ppp4; 32718c2ecf20Sopenharmony_ci __be64 rx_ppp5; 32728c2ecf20Sopenharmony_ci __be64 rx_ppp6; 32738c2ecf20Sopenharmony_ci __be64 rx_ppp7; 32748c2ecf20Sopenharmony_ci __be64 rx_less_64b; 32758c2ecf20Sopenharmony_ci __be64 rx_bg_drop; 32768c2ecf20Sopenharmony_ci __be64 rx_bg_trunc; 32778c2ecf20Sopenharmony_ci } all; 32788c2ecf20Sopenharmony_ci } u; 32798c2ecf20Sopenharmony_ci}; 32808c2ecf20Sopenharmony_ci 32818c2ecf20Sopenharmony_ci/* port loopback stats */ 32828c2ecf20Sopenharmony_ci#define FW_NUM_LB_STATS 16 32838c2ecf20Sopenharmony_cienum fw_port_lb_stats_index { 32848c2ecf20Sopenharmony_ci FW_STAT_LB_PORT_BYTES_IX, 32858c2ecf20Sopenharmony_ci FW_STAT_LB_PORT_FRAMES_IX, 32868c2ecf20Sopenharmony_ci FW_STAT_LB_PORT_BCAST_IX, 32878c2ecf20Sopenharmony_ci FW_STAT_LB_PORT_MCAST_IX, 32888c2ecf20Sopenharmony_ci FW_STAT_LB_PORT_UCAST_IX, 32898c2ecf20Sopenharmony_ci FW_STAT_LB_PORT_ERROR_IX, 32908c2ecf20Sopenharmony_ci FW_STAT_LB_PORT_64B_IX, 32918c2ecf20Sopenharmony_ci FW_STAT_LB_PORT_65B_127B_IX, 32928c2ecf20Sopenharmony_ci FW_STAT_LB_PORT_128B_255B_IX, 32938c2ecf20Sopenharmony_ci FW_STAT_LB_PORT_256B_511B_IX, 32948c2ecf20Sopenharmony_ci FW_STAT_LB_PORT_512B_1023B_IX, 32958c2ecf20Sopenharmony_ci FW_STAT_LB_PORT_1024B_1518B_IX, 32968c2ecf20Sopenharmony_ci FW_STAT_LB_PORT_1519B_MAX_IX, 32978c2ecf20Sopenharmony_ci FW_STAT_LB_PORT_DROP_FRAMES_IX 32988c2ecf20Sopenharmony_ci}; 32998c2ecf20Sopenharmony_ci 33008c2ecf20Sopenharmony_cistruct fw_port_lb_stats_cmd { 33018c2ecf20Sopenharmony_ci __be32 op_to_lbport; 33028c2ecf20Sopenharmony_ci __be32 retval_len16; 33038c2ecf20Sopenharmony_ci union fw_port_lb_stats { 33048c2ecf20Sopenharmony_ci struct fw_port_lb_stats_ctl { 33058c2ecf20Sopenharmony_ci u8 nstats_bg_bm; 33068c2ecf20Sopenharmony_ci u8 ix_pkd; 33078c2ecf20Sopenharmony_ci __be16 r6; 33088c2ecf20Sopenharmony_ci __be32 r7; 33098c2ecf20Sopenharmony_ci __be64 stat0; 33108c2ecf20Sopenharmony_ci __be64 stat1; 33118c2ecf20Sopenharmony_ci __be64 stat2; 33128c2ecf20Sopenharmony_ci __be64 stat3; 33138c2ecf20Sopenharmony_ci __be64 stat4; 33148c2ecf20Sopenharmony_ci __be64 stat5; 33158c2ecf20Sopenharmony_ci } ctl; 33168c2ecf20Sopenharmony_ci struct fw_port_lb_stats_all { 33178c2ecf20Sopenharmony_ci __be64 tx_bytes; 33188c2ecf20Sopenharmony_ci __be64 tx_frames; 33198c2ecf20Sopenharmony_ci __be64 tx_bcast; 33208c2ecf20Sopenharmony_ci __be64 tx_mcast; 33218c2ecf20Sopenharmony_ci __be64 tx_ucast; 33228c2ecf20Sopenharmony_ci __be64 tx_error; 33238c2ecf20Sopenharmony_ci __be64 tx_64b; 33248c2ecf20Sopenharmony_ci __be64 tx_65b_127b; 33258c2ecf20Sopenharmony_ci __be64 tx_128b_255b; 33268c2ecf20Sopenharmony_ci __be64 tx_256b_511b; 33278c2ecf20Sopenharmony_ci __be64 tx_512b_1023b; 33288c2ecf20Sopenharmony_ci __be64 tx_1024b_1518b; 33298c2ecf20Sopenharmony_ci __be64 tx_1519b_max; 33308c2ecf20Sopenharmony_ci __be64 rx_lb_drop; 33318c2ecf20Sopenharmony_ci __be64 rx_lb_trunc; 33328c2ecf20Sopenharmony_ci } all; 33338c2ecf20Sopenharmony_ci } u; 33348c2ecf20Sopenharmony_ci}; 33358c2ecf20Sopenharmony_ci 33368c2ecf20Sopenharmony_cienum fw_ptp_subop { 33378c2ecf20Sopenharmony_ci /* none */ 33388c2ecf20Sopenharmony_ci FW_PTP_SC_INIT_TIMER = 0x00, 33398c2ecf20Sopenharmony_ci FW_PTP_SC_TX_TYPE = 0x01, 33408c2ecf20Sopenharmony_ci /* init */ 33418c2ecf20Sopenharmony_ci FW_PTP_SC_RXTIME_STAMP = 0x08, 33428c2ecf20Sopenharmony_ci FW_PTP_SC_RDRX_TYPE = 0x09, 33438c2ecf20Sopenharmony_ci /* ts */ 33448c2ecf20Sopenharmony_ci FW_PTP_SC_ADJ_FREQ = 0x10, 33458c2ecf20Sopenharmony_ci FW_PTP_SC_ADJ_TIME = 0x11, 33468c2ecf20Sopenharmony_ci FW_PTP_SC_ADJ_FTIME = 0x12, 33478c2ecf20Sopenharmony_ci FW_PTP_SC_WALL_CLOCK = 0x13, 33488c2ecf20Sopenharmony_ci FW_PTP_SC_GET_TIME = 0x14, 33498c2ecf20Sopenharmony_ci FW_PTP_SC_SET_TIME = 0x15, 33508c2ecf20Sopenharmony_ci}; 33518c2ecf20Sopenharmony_ci 33528c2ecf20Sopenharmony_cistruct fw_ptp_cmd { 33538c2ecf20Sopenharmony_ci __be32 op_to_portid; 33548c2ecf20Sopenharmony_ci __be32 retval_len16; 33558c2ecf20Sopenharmony_ci union fw_ptp { 33568c2ecf20Sopenharmony_ci struct fw_ptp_sc { 33578c2ecf20Sopenharmony_ci __u8 sc; 33588c2ecf20Sopenharmony_ci __u8 r3[7]; 33598c2ecf20Sopenharmony_ci } scmd; 33608c2ecf20Sopenharmony_ci struct fw_ptp_init { 33618c2ecf20Sopenharmony_ci __u8 sc; 33628c2ecf20Sopenharmony_ci __u8 txchan; 33638c2ecf20Sopenharmony_ci __be16 absid; 33648c2ecf20Sopenharmony_ci __be16 mode; 33658c2ecf20Sopenharmony_ci __be16 r3; 33668c2ecf20Sopenharmony_ci } init; 33678c2ecf20Sopenharmony_ci struct fw_ptp_ts { 33688c2ecf20Sopenharmony_ci __u8 sc; 33698c2ecf20Sopenharmony_ci __u8 sign; 33708c2ecf20Sopenharmony_ci __be16 r3; 33718c2ecf20Sopenharmony_ci __be32 ppb; 33728c2ecf20Sopenharmony_ci __be64 tm; 33738c2ecf20Sopenharmony_ci } ts; 33748c2ecf20Sopenharmony_ci } u; 33758c2ecf20Sopenharmony_ci __be64 r3; 33768c2ecf20Sopenharmony_ci}; 33778c2ecf20Sopenharmony_ci 33788c2ecf20Sopenharmony_ci#define FW_PTP_CMD_PORTID_S 0 33798c2ecf20Sopenharmony_ci#define FW_PTP_CMD_PORTID_M 0xf 33808c2ecf20Sopenharmony_ci#define FW_PTP_CMD_PORTID_V(x) ((x) << FW_PTP_CMD_PORTID_S) 33818c2ecf20Sopenharmony_ci#define FW_PTP_CMD_PORTID_G(x) \ 33828c2ecf20Sopenharmony_ci (((x) >> FW_PTP_CMD_PORTID_S) & FW_PTP_CMD_PORTID_M) 33838c2ecf20Sopenharmony_ci 33848c2ecf20Sopenharmony_cistruct fw_rss_ind_tbl_cmd { 33858c2ecf20Sopenharmony_ci __be32 op_to_viid; 33868c2ecf20Sopenharmony_ci __be32 retval_len16; 33878c2ecf20Sopenharmony_ci __be16 niqid; 33888c2ecf20Sopenharmony_ci __be16 startidx; 33898c2ecf20Sopenharmony_ci __be32 r3; 33908c2ecf20Sopenharmony_ci __be32 iq0_to_iq2; 33918c2ecf20Sopenharmony_ci __be32 iq3_to_iq5; 33928c2ecf20Sopenharmony_ci __be32 iq6_to_iq8; 33938c2ecf20Sopenharmony_ci __be32 iq9_to_iq11; 33948c2ecf20Sopenharmony_ci __be32 iq12_to_iq14; 33958c2ecf20Sopenharmony_ci __be32 iq15_to_iq17; 33968c2ecf20Sopenharmony_ci __be32 iq18_to_iq20; 33978c2ecf20Sopenharmony_ci __be32 iq21_to_iq23; 33988c2ecf20Sopenharmony_ci __be32 iq24_to_iq26; 33998c2ecf20Sopenharmony_ci __be32 iq27_to_iq29; 34008c2ecf20Sopenharmony_ci __be32 iq30_iq31; 34018c2ecf20Sopenharmony_ci __be32 r15_lo; 34028c2ecf20Sopenharmony_ci}; 34038c2ecf20Sopenharmony_ci 34048c2ecf20Sopenharmony_ci#define FW_RSS_IND_TBL_CMD_VIID_S 0 34058c2ecf20Sopenharmony_ci#define FW_RSS_IND_TBL_CMD_VIID_V(x) ((x) << FW_RSS_IND_TBL_CMD_VIID_S) 34068c2ecf20Sopenharmony_ci 34078c2ecf20Sopenharmony_ci#define FW_RSS_IND_TBL_CMD_IQ0_S 20 34088c2ecf20Sopenharmony_ci#define FW_RSS_IND_TBL_CMD_IQ0_V(x) ((x) << FW_RSS_IND_TBL_CMD_IQ0_S) 34098c2ecf20Sopenharmony_ci 34108c2ecf20Sopenharmony_ci#define FW_RSS_IND_TBL_CMD_IQ1_S 10 34118c2ecf20Sopenharmony_ci#define FW_RSS_IND_TBL_CMD_IQ1_V(x) ((x) << FW_RSS_IND_TBL_CMD_IQ1_S) 34128c2ecf20Sopenharmony_ci 34138c2ecf20Sopenharmony_ci#define FW_RSS_IND_TBL_CMD_IQ2_S 0 34148c2ecf20Sopenharmony_ci#define FW_RSS_IND_TBL_CMD_IQ2_V(x) ((x) << FW_RSS_IND_TBL_CMD_IQ2_S) 34158c2ecf20Sopenharmony_ci 34168c2ecf20Sopenharmony_cistruct fw_rss_glb_config_cmd { 34178c2ecf20Sopenharmony_ci __be32 op_to_write; 34188c2ecf20Sopenharmony_ci __be32 retval_len16; 34198c2ecf20Sopenharmony_ci union fw_rss_glb_config { 34208c2ecf20Sopenharmony_ci struct fw_rss_glb_config_manual { 34218c2ecf20Sopenharmony_ci __be32 mode_pkd; 34228c2ecf20Sopenharmony_ci __be32 r3; 34238c2ecf20Sopenharmony_ci __be64 r4; 34248c2ecf20Sopenharmony_ci __be64 r5; 34258c2ecf20Sopenharmony_ci } manual; 34268c2ecf20Sopenharmony_ci struct fw_rss_glb_config_basicvirtual { 34278c2ecf20Sopenharmony_ci __be32 mode_pkd; 34288c2ecf20Sopenharmony_ci __be32 synmapen_to_hashtoeplitz; 34298c2ecf20Sopenharmony_ci __be64 r8; 34308c2ecf20Sopenharmony_ci __be64 r9; 34318c2ecf20Sopenharmony_ci } basicvirtual; 34328c2ecf20Sopenharmony_ci } u; 34338c2ecf20Sopenharmony_ci}; 34348c2ecf20Sopenharmony_ci 34358c2ecf20Sopenharmony_ci#define FW_RSS_GLB_CONFIG_CMD_MODE_S 28 34368c2ecf20Sopenharmony_ci#define FW_RSS_GLB_CONFIG_CMD_MODE_M 0xf 34378c2ecf20Sopenharmony_ci#define FW_RSS_GLB_CONFIG_CMD_MODE_V(x) ((x) << FW_RSS_GLB_CONFIG_CMD_MODE_S) 34388c2ecf20Sopenharmony_ci#define FW_RSS_GLB_CONFIG_CMD_MODE_G(x) \ 34398c2ecf20Sopenharmony_ci (((x) >> FW_RSS_GLB_CONFIG_CMD_MODE_S) & FW_RSS_GLB_CONFIG_CMD_MODE_M) 34408c2ecf20Sopenharmony_ci 34418c2ecf20Sopenharmony_ci#define FW_RSS_GLB_CONFIG_CMD_MODE_MANUAL 0 34428c2ecf20Sopenharmony_ci#define FW_RSS_GLB_CONFIG_CMD_MODE_BASICVIRTUAL 1 34438c2ecf20Sopenharmony_ci 34448c2ecf20Sopenharmony_ci#define FW_RSS_GLB_CONFIG_CMD_SYNMAPEN_S 8 34458c2ecf20Sopenharmony_ci#define FW_RSS_GLB_CONFIG_CMD_SYNMAPEN_V(x) \ 34468c2ecf20Sopenharmony_ci ((x) << FW_RSS_GLB_CONFIG_CMD_SYNMAPEN_S) 34478c2ecf20Sopenharmony_ci#define FW_RSS_GLB_CONFIG_CMD_SYNMAPEN_F \ 34488c2ecf20Sopenharmony_ci FW_RSS_GLB_CONFIG_CMD_SYNMAPEN_V(1U) 34498c2ecf20Sopenharmony_ci 34508c2ecf20Sopenharmony_ci#define FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV6_S 7 34518c2ecf20Sopenharmony_ci#define FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV6_V(x) \ 34528c2ecf20Sopenharmony_ci ((x) << FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV6_S) 34538c2ecf20Sopenharmony_ci#define FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV6_F \ 34548c2ecf20Sopenharmony_ci FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV6_V(1U) 34558c2ecf20Sopenharmony_ci 34568c2ecf20Sopenharmony_ci#define FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV6_S 6 34578c2ecf20Sopenharmony_ci#define FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV6_V(x) \ 34588c2ecf20Sopenharmony_ci ((x) << FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV6_S) 34598c2ecf20Sopenharmony_ci#define FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV6_F \ 34608c2ecf20Sopenharmony_ci FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV6_V(1U) 34618c2ecf20Sopenharmony_ci 34628c2ecf20Sopenharmony_ci#define FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV4_S 5 34638c2ecf20Sopenharmony_ci#define FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV4_V(x) \ 34648c2ecf20Sopenharmony_ci ((x) << FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV4_S) 34658c2ecf20Sopenharmony_ci#define FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV4_F \ 34668c2ecf20Sopenharmony_ci FW_RSS_GLB_CONFIG_CMD_SYN4TUPENIPV4_V(1U) 34678c2ecf20Sopenharmony_ci 34688c2ecf20Sopenharmony_ci#define FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV4_S 4 34698c2ecf20Sopenharmony_ci#define FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV4_V(x) \ 34708c2ecf20Sopenharmony_ci ((x) << FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV4_S) 34718c2ecf20Sopenharmony_ci#define FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV4_F \ 34728c2ecf20Sopenharmony_ci FW_RSS_GLB_CONFIG_CMD_SYN2TUPENIPV4_V(1U) 34738c2ecf20Sopenharmony_ci 34748c2ecf20Sopenharmony_ci#define FW_RSS_GLB_CONFIG_CMD_OFDMAPEN_S 3 34758c2ecf20Sopenharmony_ci#define FW_RSS_GLB_CONFIG_CMD_OFDMAPEN_V(x) \ 34768c2ecf20Sopenharmony_ci ((x) << FW_RSS_GLB_CONFIG_CMD_OFDMAPEN_S) 34778c2ecf20Sopenharmony_ci#define FW_RSS_GLB_CONFIG_CMD_OFDMAPEN_F \ 34788c2ecf20Sopenharmony_ci FW_RSS_GLB_CONFIG_CMD_OFDMAPEN_V(1U) 34798c2ecf20Sopenharmony_ci 34808c2ecf20Sopenharmony_ci#define FW_RSS_GLB_CONFIG_CMD_TNLMAPEN_S 2 34818c2ecf20Sopenharmony_ci#define FW_RSS_GLB_CONFIG_CMD_TNLMAPEN_V(x) \ 34828c2ecf20Sopenharmony_ci ((x) << FW_RSS_GLB_CONFIG_CMD_TNLMAPEN_S) 34838c2ecf20Sopenharmony_ci#define FW_RSS_GLB_CONFIG_CMD_TNLMAPEN_F \ 34848c2ecf20Sopenharmony_ci FW_RSS_GLB_CONFIG_CMD_TNLMAPEN_V(1U) 34858c2ecf20Sopenharmony_ci 34868c2ecf20Sopenharmony_ci#define FW_RSS_GLB_CONFIG_CMD_TNLALLLKP_S 1 34878c2ecf20Sopenharmony_ci#define FW_RSS_GLB_CONFIG_CMD_TNLALLLKP_V(x) \ 34888c2ecf20Sopenharmony_ci ((x) << FW_RSS_GLB_CONFIG_CMD_TNLALLLKP_S) 34898c2ecf20Sopenharmony_ci#define FW_RSS_GLB_CONFIG_CMD_TNLALLLKP_F \ 34908c2ecf20Sopenharmony_ci FW_RSS_GLB_CONFIG_CMD_TNLALLLKP_V(1U) 34918c2ecf20Sopenharmony_ci 34928c2ecf20Sopenharmony_ci#define FW_RSS_GLB_CONFIG_CMD_HASHTOEPLITZ_S 0 34938c2ecf20Sopenharmony_ci#define FW_RSS_GLB_CONFIG_CMD_HASHTOEPLITZ_V(x) \ 34948c2ecf20Sopenharmony_ci ((x) << FW_RSS_GLB_CONFIG_CMD_HASHTOEPLITZ_S) 34958c2ecf20Sopenharmony_ci#define FW_RSS_GLB_CONFIG_CMD_HASHTOEPLITZ_F \ 34968c2ecf20Sopenharmony_ci FW_RSS_GLB_CONFIG_CMD_HASHTOEPLITZ_V(1U) 34978c2ecf20Sopenharmony_ci 34988c2ecf20Sopenharmony_cistruct fw_rss_vi_config_cmd { 34998c2ecf20Sopenharmony_ci __be32 op_to_viid; 35008c2ecf20Sopenharmony_ci#define FW_RSS_VI_CONFIG_CMD_VIID(x) ((x) << 0) 35018c2ecf20Sopenharmony_ci __be32 retval_len16; 35028c2ecf20Sopenharmony_ci union fw_rss_vi_config { 35038c2ecf20Sopenharmony_ci struct fw_rss_vi_config_manual { 35048c2ecf20Sopenharmony_ci __be64 r3; 35058c2ecf20Sopenharmony_ci __be64 r4; 35068c2ecf20Sopenharmony_ci __be64 r5; 35078c2ecf20Sopenharmony_ci } manual; 35088c2ecf20Sopenharmony_ci struct fw_rss_vi_config_basicvirtual { 35098c2ecf20Sopenharmony_ci __be32 r6; 35108c2ecf20Sopenharmony_ci __be32 defaultq_to_udpen; 35118c2ecf20Sopenharmony_ci __be64 r9; 35128c2ecf20Sopenharmony_ci __be64 r10; 35138c2ecf20Sopenharmony_ci } basicvirtual; 35148c2ecf20Sopenharmony_ci } u; 35158c2ecf20Sopenharmony_ci}; 35168c2ecf20Sopenharmony_ci 35178c2ecf20Sopenharmony_ci#define FW_RSS_VI_CONFIG_CMD_VIID_S 0 35188c2ecf20Sopenharmony_ci#define FW_RSS_VI_CONFIG_CMD_VIID_V(x) ((x) << FW_RSS_VI_CONFIG_CMD_VIID_S) 35198c2ecf20Sopenharmony_ci 35208c2ecf20Sopenharmony_ci#define FW_RSS_VI_CONFIG_CMD_DEFAULTQ_S 16 35218c2ecf20Sopenharmony_ci#define FW_RSS_VI_CONFIG_CMD_DEFAULTQ_M 0x3ff 35228c2ecf20Sopenharmony_ci#define FW_RSS_VI_CONFIG_CMD_DEFAULTQ_V(x) \ 35238c2ecf20Sopenharmony_ci ((x) << FW_RSS_VI_CONFIG_CMD_DEFAULTQ_S) 35248c2ecf20Sopenharmony_ci#define FW_RSS_VI_CONFIG_CMD_DEFAULTQ_G(x) \ 35258c2ecf20Sopenharmony_ci (((x) >> FW_RSS_VI_CONFIG_CMD_DEFAULTQ_S) & \ 35268c2ecf20Sopenharmony_ci FW_RSS_VI_CONFIG_CMD_DEFAULTQ_M) 35278c2ecf20Sopenharmony_ci 35288c2ecf20Sopenharmony_ci#define FW_RSS_VI_CONFIG_CMD_IP6FOURTUPEN_S 4 35298c2ecf20Sopenharmony_ci#define FW_RSS_VI_CONFIG_CMD_IP6FOURTUPEN_V(x) \ 35308c2ecf20Sopenharmony_ci ((x) << FW_RSS_VI_CONFIG_CMD_IP6FOURTUPEN_S) 35318c2ecf20Sopenharmony_ci#define FW_RSS_VI_CONFIG_CMD_IP6FOURTUPEN_F \ 35328c2ecf20Sopenharmony_ci FW_RSS_VI_CONFIG_CMD_IP6FOURTUPEN_V(1U) 35338c2ecf20Sopenharmony_ci 35348c2ecf20Sopenharmony_ci#define FW_RSS_VI_CONFIG_CMD_IP6TWOTUPEN_S 3 35358c2ecf20Sopenharmony_ci#define FW_RSS_VI_CONFIG_CMD_IP6TWOTUPEN_V(x) \ 35368c2ecf20Sopenharmony_ci ((x) << FW_RSS_VI_CONFIG_CMD_IP6TWOTUPEN_S) 35378c2ecf20Sopenharmony_ci#define FW_RSS_VI_CONFIG_CMD_IP6TWOTUPEN_F \ 35388c2ecf20Sopenharmony_ci FW_RSS_VI_CONFIG_CMD_IP6TWOTUPEN_V(1U) 35398c2ecf20Sopenharmony_ci 35408c2ecf20Sopenharmony_ci#define FW_RSS_VI_CONFIG_CMD_IP4FOURTUPEN_S 2 35418c2ecf20Sopenharmony_ci#define FW_RSS_VI_CONFIG_CMD_IP4FOURTUPEN_V(x) \ 35428c2ecf20Sopenharmony_ci ((x) << FW_RSS_VI_CONFIG_CMD_IP4FOURTUPEN_S) 35438c2ecf20Sopenharmony_ci#define FW_RSS_VI_CONFIG_CMD_IP4FOURTUPEN_F \ 35448c2ecf20Sopenharmony_ci FW_RSS_VI_CONFIG_CMD_IP4FOURTUPEN_V(1U) 35458c2ecf20Sopenharmony_ci 35468c2ecf20Sopenharmony_ci#define FW_RSS_VI_CONFIG_CMD_IP4TWOTUPEN_S 1 35478c2ecf20Sopenharmony_ci#define FW_RSS_VI_CONFIG_CMD_IP4TWOTUPEN_V(x) \ 35488c2ecf20Sopenharmony_ci ((x) << FW_RSS_VI_CONFIG_CMD_IP4TWOTUPEN_S) 35498c2ecf20Sopenharmony_ci#define FW_RSS_VI_CONFIG_CMD_IP4TWOTUPEN_F \ 35508c2ecf20Sopenharmony_ci FW_RSS_VI_CONFIG_CMD_IP4TWOTUPEN_V(1U) 35518c2ecf20Sopenharmony_ci 35528c2ecf20Sopenharmony_ci#define FW_RSS_VI_CONFIG_CMD_UDPEN_S 0 35538c2ecf20Sopenharmony_ci#define FW_RSS_VI_CONFIG_CMD_UDPEN_V(x) ((x) << FW_RSS_VI_CONFIG_CMD_UDPEN_S) 35548c2ecf20Sopenharmony_ci#define FW_RSS_VI_CONFIG_CMD_UDPEN_F FW_RSS_VI_CONFIG_CMD_UDPEN_V(1U) 35558c2ecf20Sopenharmony_ci 35568c2ecf20Sopenharmony_cienum fw_sched_sc { 35578c2ecf20Sopenharmony_ci FW_SCHED_SC_PARAMS = 1, 35588c2ecf20Sopenharmony_ci}; 35598c2ecf20Sopenharmony_ci 35608c2ecf20Sopenharmony_cistruct fw_sched_cmd { 35618c2ecf20Sopenharmony_ci __be32 op_to_write; 35628c2ecf20Sopenharmony_ci __be32 retval_len16; 35638c2ecf20Sopenharmony_ci union fw_sched { 35648c2ecf20Sopenharmony_ci struct fw_sched_config { 35658c2ecf20Sopenharmony_ci __u8 sc; 35668c2ecf20Sopenharmony_ci __u8 type; 35678c2ecf20Sopenharmony_ci __u8 minmaxen; 35688c2ecf20Sopenharmony_ci __u8 r3[5]; 35698c2ecf20Sopenharmony_ci __u8 nclasses[4]; 35708c2ecf20Sopenharmony_ci __be32 r4; 35718c2ecf20Sopenharmony_ci } config; 35728c2ecf20Sopenharmony_ci struct fw_sched_params { 35738c2ecf20Sopenharmony_ci __u8 sc; 35748c2ecf20Sopenharmony_ci __u8 type; 35758c2ecf20Sopenharmony_ci __u8 level; 35768c2ecf20Sopenharmony_ci __u8 mode; 35778c2ecf20Sopenharmony_ci __u8 unit; 35788c2ecf20Sopenharmony_ci __u8 rate; 35798c2ecf20Sopenharmony_ci __u8 ch; 35808c2ecf20Sopenharmony_ci __u8 cl; 35818c2ecf20Sopenharmony_ci __be32 min; 35828c2ecf20Sopenharmony_ci __be32 max; 35838c2ecf20Sopenharmony_ci __be16 weight; 35848c2ecf20Sopenharmony_ci __be16 pktsize; 35858c2ecf20Sopenharmony_ci __be16 burstsize; 35868c2ecf20Sopenharmony_ci __be16 r4; 35878c2ecf20Sopenharmony_ci } params; 35888c2ecf20Sopenharmony_ci } u; 35898c2ecf20Sopenharmony_ci}; 35908c2ecf20Sopenharmony_ci 35918c2ecf20Sopenharmony_cistruct fw_clip_cmd { 35928c2ecf20Sopenharmony_ci __be32 op_to_write; 35938c2ecf20Sopenharmony_ci __be32 alloc_to_len16; 35948c2ecf20Sopenharmony_ci __be64 ip_hi; 35958c2ecf20Sopenharmony_ci __be64 ip_lo; 35968c2ecf20Sopenharmony_ci __be32 r4[2]; 35978c2ecf20Sopenharmony_ci}; 35988c2ecf20Sopenharmony_ci 35998c2ecf20Sopenharmony_ci#define FW_CLIP_CMD_ALLOC_S 31 36008c2ecf20Sopenharmony_ci#define FW_CLIP_CMD_ALLOC_V(x) ((x) << FW_CLIP_CMD_ALLOC_S) 36018c2ecf20Sopenharmony_ci#define FW_CLIP_CMD_ALLOC_F FW_CLIP_CMD_ALLOC_V(1U) 36028c2ecf20Sopenharmony_ci 36038c2ecf20Sopenharmony_ci#define FW_CLIP_CMD_FREE_S 30 36048c2ecf20Sopenharmony_ci#define FW_CLIP_CMD_FREE_V(x) ((x) << FW_CLIP_CMD_FREE_S) 36058c2ecf20Sopenharmony_ci#define FW_CLIP_CMD_FREE_F FW_CLIP_CMD_FREE_V(1U) 36068c2ecf20Sopenharmony_ci 36078c2ecf20Sopenharmony_cienum fw_error_type { 36088c2ecf20Sopenharmony_ci FW_ERROR_TYPE_EXCEPTION = 0x0, 36098c2ecf20Sopenharmony_ci FW_ERROR_TYPE_HWMODULE = 0x1, 36108c2ecf20Sopenharmony_ci FW_ERROR_TYPE_WR = 0x2, 36118c2ecf20Sopenharmony_ci FW_ERROR_TYPE_ACL = 0x3, 36128c2ecf20Sopenharmony_ci}; 36138c2ecf20Sopenharmony_ci 36148c2ecf20Sopenharmony_cistruct fw_error_cmd { 36158c2ecf20Sopenharmony_ci __be32 op_to_type; 36168c2ecf20Sopenharmony_ci __be32 len16_pkd; 36178c2ecf20Sopenharmony_ci union fw_error { 36188c2ecf20Sopenharmony_ci struct fw_error_exception { 36198c2ecf20Sopenharmony_ci __be32 info[6]; 36208c2ecf20Sopenharmony_ci } exception; 36218c2ecf20Sopenharmony_ci struct fw_error_hwmodule { 36228c2ecf20Sopenharmony_ci __be32 regaddr; 36238c2ecf20Sopenharmony_ci __be32 regval; 36248c2ecf20Sopenharmony_ci } hwmodule; 36258c2ecf20Sopenharmony_ci struct fw_error_wr { 36268c2ecf20Sopenharmony_ci __be16 cidx; 36278c2ecf20Sopenharmony_ci __be16 pfn_vfn; 36288c2ecf20Sopenharmony_ci __be32 eqid; 36298c2ecf20Sopenharmony_ci u8 wrhdr[16]; 36308c2ecf20Sopenharmony_ci } wr; 36318c2ecf20Sopenharmony_ci struct fw_error_acl { 36328c2ecf20Sopenharmony_ci __be16 cidx; 36338c2ecf20Sopenharmony_ci __be16 pfn_vfn; 36348c2ecf20Sopenharmony_ci __be32 eqid; 36358c2ecf20Sopenharmony_ci __be16 mv_pkd; 36368c2ecf20Sopenharmony_ci u8 val[6]; 36378c2ecf20Sopenharmony_ci __be64 r4; 36388c2ecf20Sopenharmony_ci } acl; 36398c2ecf20Sopenharmony_ci } u; 36408c2ecf20Sopenharmony_ci}; 36418c2ecf20Sopenharmony_ci 36428c2ecf20Sopenharmony_cistruct fw_debug_cmd { 36438c2ecf20Sopenharmony_ci __be32 op_type; 36448c2ecf20Sopenharmony_ci __be32 len16_pkd; 36458c2ecf20Sopenharmony_ci union fw_debug { 36468c2ecf20Sopenharmony_ci struct fw_debug_assert { 36478c2ecf20Sopenharmony_ci __be32 fcid; 36488c2ecf20Sopenharmony_ci __be32 line; 36498c2ecf20Sopenharmony_ci __be32 x; 36508c2ecf20Sopenharmony_ci __be32 y; 36518c2ecf20Sopenharmony_ci u8 filename_0_7[8]; 36528c2ecf20Sopenharmony_ci u8 filename_8_15[8]; 36538c2ecf20Sopenharmony_ci __be64 r3; 36548c2ecf20Sopenharmony_ci } assert; 36558c2ecf20Sopenharmony_ci struct fw_debug_prt { 36568c2ecf20Sopenharmony_ci __be16 dprtstridx; 36578c2ecf20Sopenharmony_ci __be16 r3[3]; 36588c2ecf20Sopenharmony_ci __be32 dprtstrparam0; 36598c2ecf20Sopenharmony_ci __be32 dprtstrparam1; 36608c2ecf20Sopenharmony_ci __be32 dprtstrparam2; 36618c2ecf20Sopenharmony_ci __be32 dprtstrparam3; 36628c2ecf20Sopenharmony_ci } prt; 36638c2ecf20Sopenharmony_ci } u; 36648c2ecf20Sopenharmony_ci}; 36658c2ecf20Sopenharmony_ci 36668c2ecf20Sopenharmony_ci#define FW_DEBUG_CMD_TYPE_S 0 36678c2ecf20Sopenharmony_ci#define FW_DEBUG_CMD_TYPE_M 0xff 36688c2ecf20Sopenharmony_ci#define FW_DEBUG_CMD_TYPE_G(x) \ 36698c2ecf20Sopenharmony_ci (((x) >> FW_DEBUG_CMD_TYPE_S) & FW_DEBUG_CMD_TYPE_M) 36708c2ecf20Sopenharmony_ci 36718c2ecf20Sopenharmony_cistruct fw_hma_cmd { 36728c2ecf20Sopenharmony_ci __be32 op_pkd; 36738c2ecf20Sopenharmony_ci __be32 retval_len16; 36748c2ecf20Sopenharmony_ci __be32 mode_to_pcie_params; 36758c2ecf20Sopenharmony_ci __be32 naddr_size; 36768c2ecf20Sopenharmony_ci __be32 addr_size_pkd; 36778c2ecf20Sopenharmony_ci __be32 r6; 36788c2ecf20Sopenharmony_ci __be64 phy_address[5]; 36798c2ecf20Sopenharmony_ci}; 36808c2ecf20Sopenharmony_ci 36818c2ecf20Sopenharmony_ci#define FW_HMA_CMD_MODE_S 31 36828c2ecf20Sopenharmony_ci#define FW_HMA_CMD_MODE_M 0x1 36838c2ecf20Sopenharmony_ci#define FW_HMA_CMD_MODE_V(x) ((x) << FW_HMA_CMD_MODE_S) 36848c2ecf20Sopenharmony_ci#define FW_HMA_CMD_MODE_G(x) \ 36858c2ecf20Sopenharmony_ci (((x) >> FW_HMA_CMD_MODE_S) & FW_HMA_CMD_MODE_M) 36868c2ecf20Sopenharmony_ci#define FW_HMA_CMD_MODE_F FW_HMA_CMD_MODE_V(1U) 36878c2ecf20Sopenharmony_ci 36888c2ecf20Sopenharmony_ci#define FW_HMA_CMD_SOC_S 30 36898c2ecf20Sopenharmony_ci#define FW_HMA_CMD_SOC_M 0x1 36908c2ecf20Sopenharmony_ci#define FW_HMA_CMD_SOC_V(x) ((x) << FW_HMA_CMD_SOC_S) 36918c2ecf20Sopenharmony_ci#define FW_HMA_CMD_SOC_G(x) (((x) >> FW_HMA_CMD_SOC_S) & FW_HMA_CMD_SOC_M) 36928c2ecf20Sopenharmony_ci#define FW_HMA_CMD_SOC_F FW_HMA_CMD_SOC_V(1U) 36938c2ecf20Sopenharmony_ci 36948c2ecf20Sopenharmony_ci#define FW_HMA_CMD_EOC_S 29 36958c2ecf20Sopenharmony_ci#define FW_HMA_CMD_EOC_M 0x1 36968c2ecf20Sopenharmony_ci#define FW_HMA_CMD_EOC_V(x) ((x) << FW_HMA_CMD_EOC_S) 36978c2ecf20Sopenharmony_ci#define FW_HMA_CMD_EOC_G(x) (((x) >> FW_HMA_CMD_EOC_S) & FW_HMA_CMD_EOC_M) 36988c2ecf20Sopenharmony_ci#define FW_HMA_CMD_EOC_F FW_HMA_CMD_EOC_V(1U) 36998c2ecf20Sopenharmony_ci 37008c2ecf20Sopenharmony_ci#define FW_HMA_CMD_PCIE_PARAMS_S 0 37018c2ecf20Sopenharmony_ci#define FW_HMA_CMD_PCIE_PARAMS_M 0x7ffffff 37028c2ecf20Sopenharmony_ci#define FW_HMA_CMD_PCIE_PARAMS_V(x) ((x) << FW_HMA_CMD_PCIE_PARAMS_S) 37038c2ecf20Sopenharmony_ci#define FW_HMA_CMD_PCIE_PARAMS_G(x) \ 37048c2ecf20Sopenharmony_ci (((x) >> FW_HMA_CMD_PCIE_PARAMS_S) & FW_HMA_CMD_PCIE_PARAMS_M) 37058c2ecf20Sopenharmony_ci 37068c2ecf20Sopenharmony_ci#define FW_HMA_CMD_NADDR_S 12 37078c2ecf20Sopenharmony_ci#define FW_HMA_CMD_NADDR_M 0x3f 37088c2ecf20Sopenharmony_ci#define FW_HMA_CMD_NADDR_V(x) ((x) << FW_HMA_CMD_NADDR_S) 37098c2ecf20Sopenharmony_ci#define FW_HMA_CMD_NADDR_G(x) \ 37108c2ecf20Sopenharmony_ci (((x) >> FW_HMA_CMD_NADDR_S) & FW_HMA_CMD_NADDR_M) 37118c2ecf20Sopenharmony_ci 37128c2ecf20Sopenharmony_ci#define FW_HMA_CMD_SIZE_S 0 37138c2ecf20Sopenharmony_ci#define FW_HMA_CMD_SIZE_M 0xfff 37148c2ecf20Sopenharmony_ci#define FW_HMA_CMD_SIZE_V(x) ((x) << FW_HMA_CMD_SIZE_S) 37158c2ecf20Sopenharmony_ci#define FW_HMA_CMD_SIZE_G(x) \ 37168c2ecf20Sopenharmony_ci (((x) >> FW_HMA_CMD_SIZE_S) & FW_HMA_CMD_SIZE_M) 37178c2ecf20Sopenharmony_ci 37188c2ecf20Sopenharmony_ci#define FW_HMA_CMD_ADDR_SIZE_S 11 37198c2ecf20Sopenharmony_ci#define FW_HMA_CMD_ADDR_SIZE_M 0x1fffff 37208c2ecf20Sopenharmony_ci#define FW_HMA_CMD_ADDR_SIZE_V(x) ((x) << FW_HMA_CMD_ADDR_SIZE_S) 37218c2ecf20Sopenharmony_ci#define FW_HMA_CMD_ADDR_SIZE_G(x) \ 37228c2ecf20Sopenharmony_ci (((x) >> FW_HMA_CMD_ADDR_SIZE_S) & FW_HMA_CMD_ADDR_SIZE_M) 37238c2ecf20Sopenharmony_ci 37248c2ecf20Sopenharmony_cienum pcie_fw_eval { 37258c2ecf20Sopenharmony_ci PCIE_FW_EVAL_CRASH = 0, 37268c2ecf20Sopenharmony_ci}; 37278c2ecf20Sopenharmony_ci 37288c2ecf20Sopenharmony_ci#define PCIE_FW_ERR_S 31 37298c2ecf20Sopenharmony_ci#define PCIE_FW_ERR_V(x) ((x) << PCIE_FW_ERR_S) 37308c2ecf20Sopenharmony_ci#define PCIE_FW_ERR_F PCIE_FW_ERR_V(1U) 37318c2ecf20Sopenharmony_ci 37328c2ecf20Sopenharmony_ci#define PCIE_FW_INIT_S 30 37338c2ecf20Sopenharmony_ci#define PCIE_FW_INIT_V(x) ((x) << PCIE_FW_INIT_S) 37348c2ecf20Sopenharmony_ci#define PCIE_FW_INIT_F PCIE_FW_INIT_V(1U) 37358c2ecf20Sopenharmony_ci 37368c2ecf20Sopenharmony_ci#define PCIE_FW_HALT_S 29 37378c2ecf20Sopenharmony_ci#define PCIE_FW_HALT_V(x) ((x) << PCIE_FW_HALT_S) 37388c2ecf20Sopenharmony_ci#define PCIE_FW_HALT_F PCIE_FW_HALT_V(1U) 37398c2ecf20Sopenharmony_ci 37408c2ecf20Sopenharmony_ci#define PCIE_FW_EVAL_S 24 37418c2ecf20Sopenharmony_ci#define PCIE_FW_EVAL_M 0x7 37428c2ecf20Sopenharmony_ci#define PCIE_FW_EVAL_G(x) (((x) >> PCIE_FW_EVAL_S) & PCIE_FW_EVAL_M) 37438c2ecf20Sopenharmony_ci 37448c2ecf20Sopenharmony_ci#define PCIE_FW_MASTER_VLD_S 15 37458c2ecf20Sopenharmony_ci#define PCIE_FW_MASTER_VLD_V(x) ((x) << PCIE_FW_MASTER_VLD_S) 37468c2ecf20Sopenharmony_ci#define PCIE_FW_MASTER_VLD_F PCIE_FW_MASTER_VLD_V(1U) 37478c2ecf20Sopenharmony_ci 37488c2ecf20Sopenharmony_ci#define PCIE_FW_MASTER_S 12 37498c2ecf20Sopenharmony_ci#define PCIE_FW_MASTER_M 0x7 37508c2ecf20Sopenharmony_ci#define PCIE_FW_MASTER_V(x) ((x) << PCIE_FW_MASTER_S) 37518c2ecf20Sopenharmony_ci#define PCIE_FW_MASTER_G(x) (((x) >> PCIE_FW_MASTER_S) & PCIE_FW_MASTER_M) 37528c2ecf20Sopenharmony_ci 37538c2ecf20Sopenharmony_cistruct fw_hdr { 37548c2ecf20Sopenharmony_ci u8 ver; 37558c2ecf20Sopenharmony_ci u8 chip; /* terminator chip type */ 37568c2ecf20Sopenharmony_ci __be16 len512; /* bin length in units of 512-bytes */ 37578c2ecf20Sopenharmony_ci __be32 fw_ver; /* firmware version */ 37588c2ecf20Sopenharmony_ci __be32 tp_microcode_ver; 37598c2ecf20Sopenharmony_ci u8 intfver_nic; 37608c2ecf20Sopenharmony_ci u8 intfver_vnic; 37618c2ecf20Sopenharmony_ci u8 intfver_ofld; 37628c2ecf20Sopenharmony_ci u8 intfver_ri; 37638c2ecf20Sopenharmony_ci u8 intfver_iscsipdu; 37648c2ecf20Sopenharmony_ci u8 intfver_iscsi; 37658c2ecf20Sopenharmony_ci u8 intfver_fcoepdu; 37668c2ecf20Sopenharmony_ci u8 intfver_fcoe; 37678c2ecf20Sopenharmony_ci __u32 reserved2; 37688c2ecf20Sopenharmony_ci __u32 reserved3; 37698c2ecf20Sopenharmony_ci __u32 reserved4; 37708c2ecf20Sopenharmony_ci __be32 flags; 37718c2ecf20Sopenharmony_ci __be32 reserved6[23]; 37728c2ecf20Sopenharmony_ci}; 37738c2ecf20Sopenharmony_ci 37748c2ecf20Sopenharmony_cienum fw_hdr_chip { 37758c2ecf20Sopenharmony_ci FW_HDR_CHIP_T4, 37768c2ecf20Sopenharmony_ci FW_HDR_CHIP_T5, 37778c2ecf20Sopenharmony_ci FW_HDR_CHIP_T6 37788c2ecf20Sopenharmony_ci}; 37798c2ecf20Sopenharmony_ci 37808c2ecf20Sopenharmony_ci#define FW_HDR_FW_VER_MAJOR_S 24 37818c2ecf20Sopenharmony_ci#define FW_HDR_FW_VER_MAJOR_M 0xff 37828c2ecf20Sopenharmony_ci#define FW_HDR_FW_VER_MAJOR_V(x) \ 37838c2ecf20Sopenharmony_ci ((x) << FW_HDR_FW_VER_MAJOR_S) 37848c2ecf20Sopenharmony_ci#define FW_HDR_FW_VER_MAJOR_G(x) \ 37858c2ecf20Sopenharmony_ci (((x) >> FW_HDR_FW_VER_MAJOR_S) & FW_HDR_FW_VER_MAJOR_M) 37868c2ecf20Sopenharmony_ci 37878c2ecf20Sopenharmony_ci#define FW_HDR_FW_VER_MINOR_S 16 37888c2ecf20Sopenharmony_ci#define FW_HDR_FW_VER_MINOR_M 0xff 37898c2ecf20Sopenharmony_ci#define FW_HDR_FW_VER_MINOR_V(x) \ 37908c2ecf20Sopenharmony_ci ((x) << FW_HDR_FW_VER_MINOR_S) 37918c2ecf20Sopenharmony_ci#define FW_HDR_FW_VER_MINOR_G(x) \ 37928c2ecf20Sopenharmony_ci (((x) >> FW_HDR_FW_VER_MINOR_S) & FW_HDR_FW_VER_MINOR_M) 37938c2ecf20Sopenharmony_ci 37948c2ecf20Sopenharmony_ci#define FW_HDR_FW_VER_MICRO_S 8 37958c2ecf20Sopenharmony_ci#define FW_HDR_FW_VER_MICRO_M 0xff 37968c2ecf20Sopenharmony_ci#define FW_HDR_FW_VER_MICRO_V(x) \ 37978c2ecf20Sopenharmony_ci ((x) << FW_HDR_FW_VER_MICRO_S) 37988c2ecf20Sopenharmony_ci#define FW_HDR_FW_VER_MICRO_G(x) \ 37998c2ecf20Sopenharmony_ci (((x) >> FW_HDR_FW_VER_MICRO_S) & FW_HDR_FW_VER_MICRO_M) 38008c2ecf20Sopenharmony_ci 38018c2ecf20Sopenharmony_ci#define FW_HDR_FW_VER_BUILD_S 0 38028c2ecf20Sopenharmony_ci#define FW_HDR_FW_VER_BUILD_M 0xff 38038c2ecf20Sopenharmony_ci#define FW_HDR_FW_VER_BUILD_V(x) \ 38048c2ecf20Sopenharmony_ci ((x) << FW_HDR_FW_VER_BUILD_S) 38058c2ecf20Sopenharmony_ci#define FW_HDR_FW_VER_BUILD_G(x) \ 38068c2ecf20Sopenharmony_ci (((x) >> FW_HDR_FW_VER_BUILD_S) & FW_HDR_FW_VER_BUILD_M) 38078c2ecf20Sopenharmony_ci 38088c2ecf20Sopenharmony_cienum fw_hdr_intfver { 38098c2ecf20Sopenharmony_ci FW_HDR_INTFVER_NIC = 0x00, 38108c2ecf20Sopenharmony_ci FW_HDR_INTFVER_VNIC = 0x00, 38118c2ecf20Sopenharmony_ci FW_HDR_INTFVER_OFLD = 0x00, 38128c2ecf20Sopenharmony_ci FW_HDR_INTFVER_RI = 0x00, 38138c2ecf20Sopenharmony_ci FW_HDR_INTFVER_ISCSIPDU = 0x00, 38148c2ecf20Sopenharmony_ci FW_HDR_INTFVER_ISCSI = 0x00, 38158c2ecf20Sopenharmony_ci FW_HDR_INTFVER_FCOEPDU = 0x00, 38168c2ecf20Sopenharmony_ci FW_HDR_INTFVER_FCOE = 0x00, 38178c2ecf20Sopenharmony_ci}; 38188c2ecf20Sopenharmony_ci 38198c2ecf20Sopenharmony_cienum fw_hdr_flags { 38208c2ecf20Sopenharmony_ci FW_HDR_FLAGS_RESET_HALT = 0x00000001, 38218c2ecf20Sopenharmony_ci}; 38228c2ecf20Sopenharmony_ci 38238c2ecf20Sopenharmony_ci/* length of the formatting string */ 38248c2ecf20Sopenharmony_ci#define FW_DEVLOG_FMT_LEN 192 38258c2ecf20Sopenharmony_ci 38268c2ecf20Sopenharmony_ci/* maximum number of the formatting string parameters */ 38278c2ecf20Sopenharmony_ci#define FW_DEVLOG_FMT_PARAMS_NUM 8 38288c2ecf20Sopenharmony_ci 38298c2ecf20Sopenharmony_ci/* priority levels */ 38308c2ecf20Sopenharmony_cienum fw_devlog_level { 38318c2ecf20Sopenharmony_ci FW_DEVLOG_LEVEL_EMERG = 0x0, 38328c2ecf20Sopenharmony_ci FW_DEVLOG_LEVEL_CRIT = 0x1, 38338c2ecf20Sopenharmony_ci FW_DEVLOG_LEVEL_ERR = 0x2, 38348c2ecf20Sopenharmony_ci FW_DEVLOG_LEVEL_NOTICE = 0x3, 38358c2ecf20Sopenharmony_ci FW_DEVLOG_LEVEL_INFO = 0x4, 38368c2ecf20Sopenharmony_ci FW_DEVLOG_LEVEL_DEBUG = 0x5, 38378c2ecf20Sopenharmony_ci FW_DEVLOG_LEVEL_MAX = 0x5, 38388c2ecf20Sopenharmony_ci}; 38398c2ecf20Sopenharmony_ci 38408c2ecf20Sopenharmony_ci/* facilities that may send a log message */ 38418c2ecf20Sopenharmony_cienum fw_devlog_facility { 38428c2ecf20Sopenharmony_ci FW_DEVLOG_FACILITY_CORE = 0x00, 38438c2ecf20Sopenharmony_ci FW_DEVLOG_FACILITY_CF = 0x01, 38448c2ecf20Sopenharmony_ci FW_DEVLOG_FACILITY_SCHED = 0x02, 38458c2ecf20Sopenharmony_ci FW_DEVLOG_FACILITY_TIMER = 0x04, 38468c2ecf20Sopenharmony_ci FW_DEVLOG_FACILITY_RES = 0x06, 38478c2ecf20Sopenharmony_ci FW_DEVLOG_FACILITY_HW = 0x08, 38488c2ecf20Sopenharmony_ci FW_DEVLOG_FACILITY_FLR = 0x10, 38498c2ecf20Sopenharmony_ci FW_DEVLOG_FACILITY_DMAQ = 0x12, 38508c2ecf20Sopenharmony_ci FW_DEVLOG_FACILITY_PHY = 0x14, 38518c2ecf20Sopenharmony_ci FW_DEVLOG_FACILITY_MAC = 0x16, 38528c2ecf20Sopenharmony_ci FW_DEVLOG_FACILITY_PORT = 0x18, 38538c2ecf20Sopenharmony_ci FW_DEVLOG_FACILITY_VI = 0x1A, 38548c2ecf20Sopenharmony_ci FW_DEVLOG_FACILITY_FILTER = 0x1C, 38558c2ecf20Sopenharmony_ci FW_DEVLOG_FACILITY_ACL = 0x1E, 38568c2ecf20Sopenharmony_ci FW_DEVLOG_FACILITY_TM = 0x20, 38578c2ecf20Sopenharmony_ci FW_DEVLOG_FACILITY_QFC = 0x22, 38588c2ecf20Sopenharmony_ci FW_DEVLOG_FACILITY_DCB = 0x24, 38598c2ecf20Sopenharmony_ci FW_DEVLOG_FACILITY_ETH = 0x26, 38608c2ecf20Sopenharmony_ci FW_DEVLOG_FACILITY_OFLD = 0x28, 38618c2ecf20Sopenharmony_ci FW_DEVLOG_FACILITY_RI = 0x2A, 38628c2ecf20Sopenharmony_ci FW_DEVLOG_FACILITY_ISCSI = 0x2C, 38638c2ecf20Sopenharmony_ci FW_DEVLOG_FACILITY_FCOE = 0x2E, 38648c2ecf20Sopenharmony_ci FW_DEVLOG_FACILITY_FOISCSI = 0x30, 38658c2ecf20Sopenharmony_ci FW_DEVLOG_FACILITY_FOFCOE = 0x32, 38668c2ecf20Sopenharmony_ci FW_DEVLOG_FACILITY_CHNET = 0x34, 38678c2ecf20Sopenharmony_ci FW_DEVLOG_FACILITY_MAX = 0x34, 38688c2ecf20Sopenharmony_ci}; 38698c2ecf20Sopenharmony_ci 38708c2ecf20Sopenharmony_ci/* log message format */ 38718c2ecf20Sopenharmony_cistruct fw_devlog_e { 38728c2ecf20Sopenharmony_ci __be64 timestamp; 38738c2ecf20Sopenharmony_ci __be32 seqno; 38748c2ecf20Sopenharmony_ci __be16 reserved1; 38758c2ecf20Sopenharmony_ci __u8 level; 38768c2ecf20Sopenharmony_ci __u8 facility; 38778c2ecf20Sopenharmony_ci __u8 fmt[FW_DEVLOG_FMT_LEN]; 38788c2ecf20Sopenharmony_ci __be32 params[FW_DEVLOG_FMT_PARAMS_NUM]; 38798c2ecf20Sopenharmony_ci __be32 reserved3[4]; 38808c2ecf20Sopenharmony_ci}; 38818c2ecf20Sopenharmony_ci 38828c2ecf20Sopenharmony_cistruct fw_devlog_cmd { 38838c2ecf20Sopenharmony_ci __be32 op_to_write; 38848c2ecf20Sopenharmony_ci __be32 retval_len16; 38858c2ecf20Sopenharmony_ci __u8 level; 38868c2ecf20Sopenharmony_ci __u8 r2[7]; 38878c2ecf20Sopenharmony_ci __be32 memtype_devlog_memaddr16_devlog; 38888c2ecf20Sopenharmony_ci __be32 memsize_devlog; 38898c2ecf20Sopenharmony_ci __be32 r3[2]; 38908c2ecf20Sopenharmony_ci}; 38918c2ecf20Sopenharmony_ci 38928c2ecf20Sopenharmony_ci#define FW_DEVLOG_CMD_MEMTYPE_DEVLOG_S 28 38938c2ecf20Sopenharmony_ci#define FW_DEVLOG_CMD_MEMTYPE_DEVLOG_M 0xf 38948c2ecf20Sopenharmony_ci#define FW_DEVLOG_CMD_MEMTYPE_DEVLOG_G(x) \ 38958c2ecf20Sopenharmony_ci (((x) >> FW_DEVLOG_CMD_MEMTYPE_DEVLOG_S) & \ 38968c2ecf20Sopenharmony_ci FW_DEVLOG_CMD_MEMTYPE_DEVLOG_M) 38978c2ecf20Sopenharmony_ci 38988c2ecf20Sopenharmony_ci#define FW_DEVLOG_CMD_MEMADDR16_DEVLOG_S 0 38998c2ecf20Sopenharmony_ci#define FW_DEVLOG_CMD_MEMADDR16_DEVLOG_M 0xfffffff 39008c2ecf20Sopenharmony_ci#define FW_DEVLOG_CMD_MEMADDR16_DEVLOG_G(x) \ 39018c2ecf20Sopenharmony_ci (((x) >> FW_DEVLOG_CMD_MEMADDR16_DEVLOG_S) & \ 39028c2ecf20Sopenharmony_ci FW_DEVLOG_CMD_MEMADDR16_DEVLOG_M) 39038c2ecf20Sopenharmony_ci 39048c2ecf20Sopenharmony_ci/* P C I E F W P F 7 R E G I S T E R */ 39058c2ecf20Sopenharmony_ci 39068c2ecf20Sopenharmony_ci/* PF7 stores the Firmware Device Log parameters which allows Host Drivers to 39078c2ecf20Sopenharmony_ci * access the "devlog" which needing to contact firmware. The encoding is 39088c2ecf20Sopenharmony_ci * mostly the same as that returned by the DEVLOG command except for the size 39098c2ecf20Sopenharmony_ci * which is encoded as the number of entries in multiples-1 of 128 here rather 39108c2ecf20Sopenharmony_ci * than the memory size as is done in the DEVLOG command. Thus, 0 means 128 39118c2ecf20Sopenharmony_ci * and 15 means 2048. This of course in turn constrains the allowed values 39128c2ecf20Sopenharmony_ci * for the devlog size ... 39138c2ecf20Sopenharmony_ci */ 39148c2ecf20Sopenharmony_ci#define PCIE_FW_PF_DEVLOG 7 39158c2ecf20Sopenharmony_ci 39168c2ecf20Sopenharmony_ci#define PCIE_FW_PF_DEVLOG_NENTRIES128_S 28 39178c2ecf20Sopenharmony_ci#define PCIE_FW_PF_DEVLOG_NENTRIES128_M 0xf 39188c2ecf20Sopenharmony_ci#define PCIE_FW_PF_DEVLOG_NENTRIES128_V(x) \ 39198c2ecf20Sopenharmony_ci ((x) << PCIE_FW_PF_DEVLOG_NENTRIES128_S) 39208c2ecf20Sopenharmony_ci#define PCIE_FW_PF_DEVLOG_NENTRIES128_G(x) \ 39218c2ecf20Sopenharmony_ci (((x) >> PCIE_FW_PF_DEVLOG_NENTRIES128_S) & \ 39228c2ecf20Sopenharmony_ci PCIE_FW_PF_DEVLOG_NENTRIES128_M) 39238c2ecf20Sopenharmony_ci 39248c2ecf20Sopenharmony_ci#define PCIE_FW_PF_DEVLOG_ADDR16_S 4 39258c2ecf20Sopenharmony_ci#define PCIE_FW_PF_DEVLOG_ADDR16_M 0xffffff 39268c2ecf20Sopenharmony_ci#define PCIE_FW_PF_DEVLOG_ADDR16_V(x) ((x) << PCIE_FW_PF_DEVLOG_ADDR16_S) 39278c2ecf20Sopenharmony_ci#define PCIE_FW_PF_DEVLOG_ADDR16_G(x) \ 39288c2ecf20Sopenharmony_ci (((x) >> PCIE_FW_PF_DEVLOG_ADDR16_S) & PCIE_FW_PF_DEVLOG_ADDR16_M) 39298c2ecf20Sopenharmony_ci 39308c2ecf20Sopenharmony_ci#define PCIE_FW_PF_DEVLOG_MEMTYPE_S 0 39318c2ecf20Sopenharmony_ci#define PCIE_FW_PF_DEVLOG_MEMTYPE_M 0xf 39328c2ecf20Sopenharmony_ci#define PCIE_FW_PF_DEVLOG_MEMTYPE_V(x) ((x) << PCIE_FW_PF_DEVLOG_MEMTYPE_S) 39338c2ecf20Sopenharmony_ci#define PCIE_FW_PF_DEVLOG_MEMTYPE_G(x) \ 39348c2ecf20Sopenharmony_ci (((x) >> PCIE_FW_PF_DEVLOG_MEMTYPE_S) & PCIE_FW_PF_DEVLOG_MEMTYPE_M) 39358c2ecf20Sopenharmony_ci 39368c2ecf20Sopenharmony_ci#define MAX_IMM_OFLD_TX_DATA_WR_LEN (0xff + sizeof(struct fw_ofld_tx_data_wr)) 39378c2ecf20Sopenharmony_ci 39388c2ecf20Sopenharmony_cistruct fw_crypto_lookaside_wr { 39398c2ecf20Sopenharmony_ci __be32 op_to_cctx_size; 39408c2ecf20Sopenharmony_ci __be32 len16_pkd; 39418c2ecf20Sopenharmony_ci __be32 session_id; 39428c2ecf20Sopenharmony_ci __be32 rx_chid_to_rx_q_id; 39438c2ecf20Sopenharmony_ci __be32 key_addr; 39448c2ecf20Sopenharmony_ci __be32 pld_size_hash_size; 39458c2ecf20Sopenharmony_ci __be64 cookie; 39468c2ecf20Sopenharmony_ci}; 39478c2ecf20Sopenharmony_ci 39488c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_OPCODE_S 24 39498c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_OPCODE_M 0xff 39508c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_OPCODE_V(x) \ 39518c2ecf20Sopenharmony_ci ((x) << FW_CRYPTO_LOOKASIDE_WR_OPCODE_S) 39528c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_OPCODE_G(x) \ 39538c2ecf20Sopenharmony_ci (((x) >> FW_CRYPTO_LOOKASIDE_WR_OPCODE_S) & \ 39548c2ecf20Sopenharmony_ci FW_CRYPTO_LOOKASIDE_WR_OPCODE_M) 39558c2ecf20Sopenharmony_ci 39568c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_COMPL_S 23 39578c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_COMPL_M 0x1 39588c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_COMPL_V(x) \ 39598c2ecf20Sopenharmony_ci ((x) << FW_CRYPTO_LOOKASIDE_WR_COMPL_S) 39608c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_COMPL_G(x) \ 39618c2ecf20Sopenharmony_ci (((x) >> FW_CRYPTO_LOOKASIDE_WR_COMPL_S) & \ 39628c2ecf20Sopenharmony_ci FW_CRYPTO_LOOKASIDE_WR_COMPL_M) 39638c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_COMPL_F FW_CRYPTO_LOOKASIDE_WR_COMPL_V(1U) 39648c2ecf20Sopenharmony_ci 39658c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_IMM_LEN_S 15 39668c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_IMM_LEN_M 0xff 39678c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_IMM_LEN_V(x) \ 39688c2ecf20Sopenharmony_ci ((x) << FW_CRYPTO_LOOKASIDE_WR_IMM_LEN_S) 39698c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_IMM_LEN_G(x) \ 39708c2ecf20Sopenharmony_ci (((x) >> FW_CRYPTO_LOOKASIDE_WR_IMM_LEN_S) & \ 39718c2ecf20Sopenharmony_ci FW_CRYPTO_LOOKASIDE_WR_IMM_LEN_M) 39728c2ecf20Sopenharmony_ci 39738c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_CCTX_LOC_S 5 39748c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_CCTX_LOC_M 0x3 39758c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_CCTX_LOC_V(x) \ 39768c2ecf20Sopenharmony_ci ((x) << FW_CRYPTO_LOOKASIDE_WR_CCTX_LOC_S) 39778c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_CCTX_LOC_G(x) \ 39788c2ecf20Sopenharmony_ci (((x) >> FW_CRYPTO_LOOKASIDE_WR_CCTX_LOC_S) & \ 39798c2ecf20Sopenharmony_ci FW_CRYPTO_LOOKASIDE_WR_CCTX_LOC_M) 39808c2ecf20Sopenharmony_ci 39818c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_CCTX_SIZE_S 0 39828c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_CCTX_SIZE_M 0x1f 39838c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_CCTX_SIZE_V(x) \ 39848c2ecf20Sopenharmony_ci ((x) << FW_CRYPTO_LOOKASIDE_WR_CCTX_SIZE_S) 39858c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_CCTX_SIZE_G(x) \ 39868c2ecf20Sopenharmony_ci (((x) >> FW_CRYPTO_LOOKASIDE_WR_CCTX_SIZE_S) & \ 39878c2ecf20Sopenharmony_ci FW_CRYPTO_LOOKASIDE_WR_CCTX_SIZE_M) 39888c2ecf20Sopenharmony_ci 39898c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_LEN16_S 0 39908c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_LEN16_M 0xff 39918c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_LEN16_V(x) \ 39928c2ecf20Sopenharmony_ci ((x) << FW_CRYPTO_LOOKASIDE_WR_LEN16_S) 39938c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_LEN16_G(x) \ 39948c2ecf20Sopenharmony_ci (((x) >> FW_CRYPTO_LOOKASIDE_WR_LEN16_S) & \ 39958c2ecf20Sopenharmony_ci FW_CRYPTO_LOOKASIDE_WR_LEN16_M) 39968c2ecf20Sopenharmony_ci 39978c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_RX_CHID_S 29 39988c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_RX_CHID_M 0x3 39998c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_RX_CHID_V(x) \ 40008c2ecf20Sopenharmony_ci ((x) << FW_CRYPTO_LOOKASIDE_WR_RX_CHID_S) 40018c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_RX_CHID_G(x) \ 40028c2ecf20Sopenharmony_ci (((x) >> FW_CRYPTO_LOOKASIDE_WR_RX_CHID_S) & \ 40038c2ecf20Sopenharmony_ci FW_CRYPTO_LOOKASIDE_WR_RX_CHID_M) 40048c2ecf20Sopenharmony_ci 40058c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_LCB_S 27 40068c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_LCB_M 0x3 40078c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_LCB_V(x) \ 40088c2ecf20Sopenharmony_ci ((x) << FW_CRYPTO_LOOKASIDE_WR_LCB_S) 40098c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_LCB_G(x) \ 40108c2ecf20Sopenharmony_ci (((x) >> FW_CRYPTO_LOOKASIDE_WR_LCB_S) & FW_CRYPTO_LOOKASIDE_WR_LCB_M) 40118c2ecf20Sopenharmony_ci 40128c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_PHASH_S 25 40138c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_PHASH_M 0x3 40148c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_PHASH_V(x) \ 40158c2ecf20Sopenharmony_ci ((x) << FW_CRYPTO_LOOKASIDE_WR_PHASH_S) 40168c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_PHASH_G(x) \ 40178c2ecf20Sopenharmony_ci (((x) >> FW_CRYPTO_LOOKASIDE_WR_PHASH_S) & \ 40188c2ecf20Sopenharmony_ci FW_CRYPTO_LOOKASIDE_WR_PHASH_M) 40198c2ecf20Sopenharmony_ci 40208c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_IV_S 23 40218c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_IV_M 0x3 40228c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_IV_V(x) \ 40238c2ecf20Sopenharmony_ci ((x) << FW_CRYPTO_LOOKASIDE_WR_IV_S) 40248c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_IV_G(x) \ 40258c2ecf20Sopenharmony_ci (((x) >> FW_CRYPTO_LOOKASIDE_WR_IV_S) & FW_CRYPTO_LOOKASIDE_WR_IV_M) 40268c2ecf20Sopenharmony_ci 40278c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_FQIDX_S 15 40288c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_FQIDX_M 0xff 40298c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_FQIDX_V(x) \ 40308c2ecf20Sopenharmony_ci ((x) << FW_CRYPTO_LOOKASIDE_WR_FQIDX_S) 40318c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_FQIDX_G(x) \ 40328c2ecf20Sopenharmony_ci (((x) >> FW_CRYPTO_LOOKASIDE_WR_FQIDX_S) & \ 40338c2ecf20Sopenharmony_ci FW_CRYPTO_LOOKASIDE_WR_FQIDX_M) 40348c2ecf20Sopenharmony_ci 40358c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_TX_CH_S 10 40368c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_TX_CH_M 0x3 40378c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_TX_CH_V(x) \ 40388c2ecf20Sopenharmony_ci ((x) << FW_CRYPTO_LOOKASIDE_WR_TX_CH_S) 40398c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_TX_CH_G(x) \ 40408c2ecf20Sopenharmony_ci (((x) >> FW_CRYPTO_LOOKASIDE_WR_TX_CH_S) & \ 40418c2ecf20Sopenharmony_ci FW_CRYPTO_LOOKASIDE_WR_TX_CH_M) 40428c2ecf20Sopenharmony_ci 40438c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_RX_Q_ID_S 0 40448c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_RX_Q_ID_M 0x3ff 40458c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_RX_Q_ID_V(x) \ 40468c2ecf20Sopenharmony_ci ((x) << FW_CRYPTO_LOOKASIDE_WR_RX_Q_ID_S) 40478c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_RX_Q_ID_G(x) \ 40488c2ecf20Sopenharmony_ci (((x) >> FW_CRYPTO_LOOKASIDE_WR_RX_Q_ID_S) & \ 40498c2ecf20Sopenharmony_ci FW_CRYPTO_LOOKASIDE_WR_RX_Q_ID_M) 40508c2ecf20Sopenharmony_ci 40518c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_PLD_SIZE_S 24 40528c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_PLD_SIZE_M 0xff 40538c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_PLD_SIZE_V(x) \ 40548c2ecf20Sopenharmony_ci ((x) << FW_CRYPTO_LOOKASIDE_WR_PLD_SIZE_S) 40558c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_PLD_SIZE_G(x) \ 40568c2ecf20Sopenharmony_ci (((x) >> FW_CRYPTO_LOOKASIDE_WR_PLD_SIZE_S) & \ 40578c2ecf20Sopenharmony_ci FW_CRYPTO_LOOKASIDE_WR_PLD_SIZE_M) 40588c2ecf20Sopenharmony_ci 40598c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_HASH_SIZE_S 17 40608c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_HASH_SIZE_M 0x7f 40618c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_HASH_SIZE_V(x) \ 40628c2ecf20Sopenharmony_ci ((x) << FW_CRYPTO_LOOKASIDE_WR_HASH_SIZE_S) 40638c2ecf20Sopenharmony_ci#define FW_CRYPTO_LOOKASIDE_WR_HASH_SIZE_G(x) \ 40648c2ecf20Sopenharmony_ci (((x) >> FW_CRYPTO_LOOKASIDE_WR_HASH_SIZE_S) & \ 40658c2ecf20Sopenharmony_ci FW_CRYPTO_LOOKASIDE_WR_HASH_SIZE_M) 40668c2ecf20Sopenharmony_ci 40678c2ecf20Sopenharmony_cistruct fw_tlstx_data_wr { 40688c2ecf20Sopenharmony_ci __be32 op_to_immdlen; 40698c2ecf20Sopenharmony_ci __be32 flowid_len16; 40708c2ecf20Sopenharmony_ci __be32 plen; 40718c2ecf20Sopenharmony_ci __be32 lsodisable_to_flags; 40728c2ecf20Sopenharmony_ci __be32 r5; 40738c2ecf20Sopenharmony_ci __be32 ctxloc_to_exp; 40748c2ecf20Sopenharmony_ci __be16 mfs; 40758c2ecf20Sopenharmony_ci __be16 adjustedplen_pkd; 40768c2ecf20Sopenharmony_ci __be16 expinplenmax_pkd; 40778c2ecf20Sopenharmony_ci u8 pdusinplenmax_pkd; 40788c2ecf20Sopenharmony_ci u8 r10; 40798c2ecf20Sopenharmony_ci}; 40808c2ecf20Sopenharmony_ci 40818c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_OPCODE_S 24 40828c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_OPCODE_M 0xff 40838c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_OPCODE_V(x) ((x) << FW_TLSTX_DATA_WR_OPCODE_S) 40848c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_OPCODE_G(x) \ 40858c2ecf20Sopenharmony_ci (((x) >> FW_TLSTX_DATA_WR_OPCODE_S) & FW_TLSTX_DATA_WR_OPCODE_M) 40868c2ecf20Sopenharmony_ci 40878c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_COMPL_S 21 40888c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_COMPL_M 0x1 40898c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_COMPL_V(x) ((x) << FW_TLSTX_DATA_WR_COMPL_S) 40908c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_COMPL_G(x) \ 40918c2ecf20Sopenharmony_ci (((x) >> FW_TLSTX_DATA_WR_COMPL_S) & FW_TLSTX_DATA_WR_COMPL_M) 40928c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_COMPL_F FW_TLSTX_DATA_WR_COMPL_V(1U) 40938c2ecf20Sopenharmony_ci 40948c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_IMMDLEN_S 0 40958c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_IMMDLEN_M 0xff 40968c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_IMMDLEN_V(x) ((x) << FW_TLSTX_DATA_WR_IMMDLEN_S) 40978c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_IMMDLEN_G(x) \ 40988c2ecf20Sopenharmony_ci (((x) >> FW_TLSTX_DATA_WR_IMMDLEN_S) & FW_TLSTX_DATA_WR_IMMDLEN_M) 40998c2ecf20Sopenharmony_ci 41008c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_FLOWID_S 8 41018c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_FLOWID_M 0xfffff 41028c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_FLOWID_V(x) ((x) << FW_TLSTX_DATA_WR_FLOWID_S) 41038c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_FLOWID_G(x) \ 41048c2ecf20Sopenharmony_ci (((x) >> FW_TLSTX_DATA_WR_FLOWID_S) & FW_TLSTX_DATA_WR_FLOWID_M) 41058c2ecf20Sopenharmony_ci 41068c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_LEN16_S 0 41078c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_LEN16_M 0xff 41088c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_LEN16_V(x) ((x) << FW_TLSTX_DATA_WR_LEN16_S) 41098c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_LEN16_G(x) \ 41108c2ecf20Sopenharmony_ci (((x) >> FW_TLSTX_DATA_WR_LEN16_S) & FW_TLSTX_DATA_WR_LEN16_M) 41118c2ecf20Sopenharmony_ci 41128c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_LSODISABLE_S 31 41138c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_LSODISABLE_M 0x1 41148c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_LSODISABLE_V(x) \ 41158c2ecf20Sopenharmony_ci ((x) << FW_TLSTX_DATA_WR_LSODISABLE_S) 41168c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_LSODISABLE_G(x) \ 41178c2ecf20Sopenharmony_ci (((x) >> FW_TLSTX_DATA_WR_LSODISABLE_S) & FW_TLSTX_DATA_WR_LSODISABLE_M) 41188c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_LSODISABLE_F FW_TLSTX_DATA_WR_LSODISABLE_V(1U) 41198c2ecf20Sopenharmony_ci 41208c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_ALIGNPLD_S 30 41218c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_ALIGNPLD_M 0x1 41228c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_ALIGNPLD_V(x) ((x) << FW_TLSTX_DATA_WR_ALIGNPLD_S) 41238c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_ALIGNPLD_G(x) \ 41248c2ecf20Sopenharmony_ci (((x) >> FW_TLSTX_DATA_WR_ALIGNPLD_S) & FW_TLSTX_DATA_WR_ALIGNPLD_M) 41258c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_ALIGNPLD_F FW_TLSTX_DATA_WR_ALIGNPLD_V(1U) 41268c2ecf20Sopenharmony_ci 41278c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_ALIGNPLDSHOVE_S 29 41288c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_ALIGNPLDSHOVE_M 0x1 41298c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_ALIGNPLDSHOVE_V(x) \ 41308c2ecf20Sopenharmony_ci ((x) << FW_TLSTX_DATA_WR_ALIGNPLDSHOVE_S) 41318c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_ALIGNPLDSHOVE_G(x) \ 41328c2ecf20Sopenharmony_ci (((x) >> FW_TLSTX_DATA_WR_ALIGNPLDSHOVE_S) & \ 41338c2ecf20Sopenharmony_ci FW_TLSTX_DATA_WR_ALIGNPLDSHOVE_M) 41348c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_ALIGNPLDSHOVE_F FW_TLSTX_DATA_WR_ALIGNPLDSHOVE_V(1U) 41358c2ecf20Sopenharmony_ci 41368c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_FLAGS_S 0 41378c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_FLAGS_M 0xfffffff 41388c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_FLAGS_V(x) ((x) << FW_TLSTX_DATA_WR_FLAGS_S) 41398c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_FLAGS_G(x) \ 41408c2ecf20Sopenharmony_ci (((x) >> FW_TLSTX_DATA_WR_FLAGS_S) & FW_TLSTX_DATA_WR_FLAGS_M) 41418c2ecf20Sopenharmony_ci 41428c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_CTXLOC_S 30 41438c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_CTXLOC_M 0x3 41448c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_CTXLOC_V(x) ((x) << FW_TLSTX_DATA_WR_CTXLOC_S) 41458c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_CTXLOC_G(x) \ 41468c2ecf20Sopenharmony_ci (((x) >> FW_TLSTX_DATA_WR_CTXLOC_S) & FW_TLSTX_DATA_WR_CTXLOC_M) 41478c2ecf20Sopenharmony_ci 41488c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_IVDSGL_S 29 41498c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_IVDSGL_M 0x1 41508c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_IVDSGL_V(x) ((x) << FW_TLSTX_DATA_WR_IVDSGL_S) 41518c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_IVDSGL_G(x) \ 41528c2ecf20Sopenharmony_ci (((x) >> FW_TLSTX_DATA_WR_IVDSGL_S) & FW_TLSTX_DATA_WR_IVDSGL_M) 41538c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_IVDSGL_F FW_TLSTX_DATA_WR_IVDSGL_V(1U) 41548c2ecf20Sopenharmony_ci 41558c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_KEYSIZE_S 24 41568c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_KEYSIZE_M 0x1f 41578c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_KEYSIZE_V(x) ((x) << FW_TLSTX_DATA_WR_KEYSIZE_S) 41588c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_KEYSIZE_G(x) \ 41598c2ecf20Sopenharmony_ci (((x) >> FW_TLSTX_DATA_WR_KEYSIZE_S) & FW_TLSTX_DATA_WR_KEYSIZE_M) 41608c2ecf20Sopenharmony_ci 41618c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_NUMIVS_S 14 41628c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_NUMIVS_M 0xff 41638c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_NUMIVS_V(x) ((x) << FW_TLSTX_DATA_WR_NUMIVS_S) 41648c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_NUMIVS_G(x) \ 41658c2ecf20Sopenharmony_ci (((x) >> FW_TLSTX_DATA_WR_NUMIVS_S) & FW_TLSTX_DATA_WR_NUMIVS_M) 41668c2ecf20Sopenharmony_ci 41678c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_EXP_S 0 41688c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_EXP_M 0x3fff 41698c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_EXP_V(x) ((x) << FW_TLSTX_DATA_WR_EXP_S) 41708c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_EXP_G(x) \ 41718c2ecf20Sopenharmony_ci (((x) >> FW_TLSTX_DATA_WR_EXP_S) & FW_TLSTX_DATA_WR_EXP_M) 41728c2ecf20Sopenharmony_ci 41738c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_ADJUSTEDPLEN_S 1 41748c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_ADJUSTEDPLEN_V(x) \ 41758c2ecf20Sopenharmony_ci ((x) << FW_TLSTX_DATA_WR_ADJUSTEDPLEN_S) 41768c2ecf20Sopenharmony_ci 41778c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_EXPINPLENMAX_S 4 41788c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_EXPINPLENMAX_V(x) \ 41798c2ecf20Sopenharmony_ci ((x) << FW_TLSTX_DATA_WR_EXPINPLENMAX_S) 41808c2ecf20Sopenharmony_ci 41818c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_PDUSINPLENMAX_S 2 41828c2ecf20Sopenharmony_ci#define FW_TLSTX_DATA_WR_PDUSINPLENMAX_V(x) \ 41838c2ecf20Sopenharmony_ci ((x) << FW_TLSTX_DATA_WR_PDUSINPLENMAX_S) 41848c2ecf20Sopenharmony_ci 41858c2ecf20Sopenharmony_ci#endif /* _T4FW_INTERFACE_H_ */ 4186