1fd75b91dSJack F Vogel /****************************************************************************** 27282444bSPedro F. Giffuni SPDX-License-Identifier: BSD-3-Clause 3fd75b91dSJack F Vogel 4*8455e365SKevin Bowling Copyright (c) 2001-2020, Intel Corporation 5fd75b91dSJack F Vogel All rights reserved. 6fd75b91dSJack F Vogel 7fd75b91dSJack F Vogel Redistribution and use in source and binary forms, with or without 8fd75b91dSJack F Vogel modification, are permitted provided that the following conditions are met: 9fd75b91dSJack F Vogel 10fd75b91dSJack F Vogel 1. Redistributions of source code must retain the above copyright notice, 11fd75b91dSJack F Vogel this list of conditions and the following disclaimer. 12fd75b91dSJack F Vogel 13fd75b91dSJack F Vogel 2. Redistributions in binary form must reproduce the above copyright 14fd75b91dSJack F Vogel notice, this list of conditions and the following disclaimer in the 15fd75b91dSJack F Vogel documentation and/or other materials provided with the distribution. 16fd75b91dSJack F Vogel 17fd75b91dSJack F Vogel 3. Neither the name of the Intel Corporation nor the names of its 18fd75b91dSJack F Vogel contributors may be used to endorse or promote products derived from 19fd75b91dSJack F Vogel this software without specific prior written permission. 20fd75b91dSJack F Vogel 21fd75b91dSJack F Vogel THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22fd75b91dSJack F Vogel AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23fd75b91dSJack F Vogel IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24fd75b91dSJack F Vogel ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 25fd75b91dSJack F Vogel LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 26fd75b91dSJack F Vogel CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 27fd75b91dSJack F Vogel SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 28fd75b91dSJack F Vogel INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 29fd75b91dSJack F Vogel CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 30fd75b91dSJack F Vogel ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 31fd75b91dSJack F Vogel POSSIBILITY OF SUCH DAMAGE. 32fd75b91dSJack F Vogel 33fd75b91dSJack F Vogel ******************************************************************************/ 34fd75b91dSJack F Vogel 35fd75b91dSJack F Vogel #ifndef _IXGBE_DCB_82598_H_ 36fd75b91dSJack F Vogel #define _IXGBE_DCB_82598_H_ 37fd75b91dSJack F Vogel 38fd75b91dSJack F Vogel /* DCB register definitions */ 39fd75b91dSJack F Vogel 40fd75b91dSJack F Vogel #define IXGBE_DPMCS_MTSOS_SHIFT 16 41fd75b91dSJack F Vogel #define IXGBE_DPMCS_TDPAC 0x00000001 /* 0 Round Robin, 42fd75b91dSJack F Vogel * 1 DFP - Deficit Fixed Priority */ 43fd75b91dSJack F Vogel #define IXGBE_DPMCS_TRM 0x00000010 /* Transmit Recycle Mode */ 44fd75b91dSJack F Vogel #define IXGBE_DPMCS_ARBDIS 0x00000040 /* DCB arbiter disable */ 45fd75b91dSJack F Vogel #define IXGBE_DPMCS_TSOEF 0x00080000 /* TSO Expand Factor: 0=x4, 1=x2 */ 46fd75b91dSJack F Vogel 47fd75b91dSJack F Vogel #define IXGBE_RUPPBMR_MQA 0x80000000 /* Enable UP to queue mapping */ 48fd75b91dSJack F Vogel 49fd75b91dSJack F Vogel #define IXGBE_RT2CR_MCL_SHIFT 12 /* Offset to Max Credit Limit setting */ 50fd75b91dSJack F Vogel #define IXGBE_RT2CR_LSP 0x80000000 /* LSP enable bit */ 51fd75b91dSJack F Vogel 52fd75b91dSJack F Vogel #define IXGBE_RDRXCTL_MPBEN 0x00000010 /* DMA config for multiple packet 53fd75b91dSJack F Vogel * buffers enable */ 54fd75b91dSJack F Vogel #define IXGBE_RDRXCTL_MCEN 0x00000040 /* DMA config for multiple cores 55fd75b91dSJack F Vogel * (RSS) enable */ 56fd75b91dSJack F Vogel 57fd75b91dSJack F Vogel #define IXGBE_TDTQ2TCCR_MCL_SHIFT 12 58fd75b91dSJack F Vogel #define IXGBE_TDTQ2TCCR_BWG_SHIFT 9 59fd75b91dSJack F Vogel #define IXGBE_TDTQ2TCCR_GSP 0x40000000 60fd75b91dSJack F Vogel #define IXGBE_TDTQ2TCCR_LSP 0x80000000 61fd75b91dSJack F Vogel 62fd75b91dSJack F Vogel #define IXGBE_TDPT2TCCR_MCL_SHIFT 12 63fd75b91dSJack F Vogel #define IXGBE_TDPT2TCCR_BWG_SHIFT 9 64fd75b91dSJack F Vogel #define IXGBE_TDPT2TCCR_GSP 0x40000000 65fd75b91dSJack F Vogel #define IXGBE_TDPT2TCCR_LSP 0x80000000 66fd75b91dSJack F Vogel 67fd75b91dSJack F Vogel #define IXGBE_PDPMCS_TPPAC 0x00000020 /* 0 Round Robin, 68fd75b91dSJack F Vogel * 1 DFP - Deficit Fixed Priority */ 69fd75b91dSJack F Vogel #define IXGBE_PDPMCS_ARBDIS 0x00000040 /* Arbiter disable */ 70fd75b91dSJack F Vogel #define IXGBE_PDPMCS_TRM 0x00000100 /* Transmit Recycle Mode enable */ 71fd75b91dSJack F Vogel 72fd75b91dSJack F Vogel #define IXGBE_DTXCTL_ENDBUBD 0x00000004 /* Enable DBU buffer division */ 73fd75b91dSJack F Vogel 74fd75b91dSJack F Vogel #define IXGBE_TXPBSIZE_40KB 0x0000A000 /* 40KB Packet Buffer */ 75fd75b91dSJack F Vogel #define IXGBE_RXPBSIZE_48KB 0x0000C000 /* 48KB Packet Buffer */ 76fd75b91dSJack F Vogel #define IXGBE_RXPBSIZE_64KB 0x00010000 /* 64KB Packet Buffer */ 77fd75b91dSJack F Vogel #define IXGBE_RXPBSIZE_80KB 0x00014000 /* 80KB Packet Buffer */ 78fd75b91dSJack F Vogel 79fd75b91dSJack F Vogel /* DCB driver APIs */ 80fd75b91dSJack F Vogel 81fd75b91dSJack F Vogel /* DCB PFC */ 82fd75b91dSJack F Vogel s32 ixgbe_dcb_config_pfc_82598(struct ixgbe_hw *, u8); 83fd75b91dSJack F Vogel 84fd75b91dSJack F Vogel /* DCB stats */ 85fd75b91dSJack F Vogel s32 ixgbe_dcb_config_tc_stats_82598(struct ixgbe_hw *); 86fd75b91dSJack F Vogel s32 ixgbe_dcb_get_tc_stats_82598(struct ixgbe_hw *, 87fd75b91dSJack F Vogel struct ixgbe_hw_stats *, u8); 88fd75b91dSJack F Vogel s32 ixgbe_dcb_get_pfc_stats_82598(struct ixgbe_hw *, 89fd75b91dSJack F Vogel struct ixgbe_hw_stats *, u8); 90fd75b91dSJack F Vogel 91fd75b91dSJack F Vogel /* DCB config arbiters */ 92fd75b91dSJack F Vogel s32 ixgbe_dcb_config_tx_desc_arbiter_82598(struct ixgbe_hw *, u16 *, u16 *, 93fd75b91dSJack F Vogel u8 *, u8 *); 94fd75b91dSJack F Vogel s32 ixgbe_dcb_config_tx_data_arbiter_82598(struct ixgbe_hw *, u16 *, u16 *, 95fd75b91dSJack F Vogel u8 *, u8 *); 96fd75b91dSJack F Vogel s32 ixgbe_dcb_config_rx_arbiter_82598(struct ixgbe_hw *, u16 *, u16 *, u8 *); 97fd75b91dSJack F Vogel 98fd75b91dSJack F Vogel /* DCB initialization */ 99fd75b91dSJack F Vogel s32 ixgbe_dcb_hw_config_82598(struct ixgbe_hw *, int, u16 *, u16 *, u8 *, u8 *); 100fd75b91dSJack F Vogel #endif /* _IXGBE_DCB_82958_H_ */ 101