-
Notifications
You must be signed in to change notification settings - Fork 102
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
net: stmmac: Add MAC related callbacks for XGMAC2
Add the MAC related callbacks for the new IP block XGMAC2. Signed-off-by: Jose Abreu <joabreu@synopsys.com> Cc: David S. Miller <davem@davemloft.net> Cc: Joao Pinto <jpinto@synopsys.com> Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com> Cc: Alexandre Torgue <alexandre.torgue@st.com> Signed-off-by: David S. Miller <davem@davemloft.net>
- Loading branch information
Showing
6 changed files
with
519 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,141 @@ | ||
// SPDX-License-Identifier: (GPL-2.0 OR MIT) | ||
/* | ||
* Copyright (c) 2018 Synopsys, Inc. and/or its affiliates. | ||
* stmmac XGMAC definitions. | ||
*/ | ||
|
||
#ifndef __STMMAC_DWXGMAC2_H__ | ||
#define __STMMAC_DWXGMAC2_H__ | ||
|
||
#include "common.h" | ||
|
||
/* Misc */ | ||
#define XGMAC_JUMBO_LEN 16368 | ||
|
||
/* MAC Registers */ | ||
#define XGMAC_TX_CONFIG 0x00000000 | ||
#define XGMAC_CONFIG_SS_OFF 29 | ||
#define XGMAC_CONFIG_SS_MASK GENMASK(30, 29) | ||
#define XGMAC_CONFIG_SS_10000 (0x0 << XGMAC_CONFIG_SS_OFF) | ||
#define XGMAC_CONFIG_SS_2500 (0x2 << XGMAC_CONFIG_SS_OFF) | ||
#define XGMAC_CONFIG_SS_1000 (0x3 << XGMAC_CONFIG_SS_OFF) | ||
#define XGMAC_CONFIG_SARC GENMASK(22, 20) | ||
#define XGMAC_CONFIG_SARC_SHIFT 20 | ||
#define XGMAC_CONFIG_JD BIT(16) | ||
#define XGMAC_CONFIG_TE BIT(0) | ||
#define XGMAC_CORE_INIT_TX (XGMAC_CONFIG_JD) | ||
#define XGMAC_RX_CONFIG 0x00000004 | ||
#define XGMAC_CONFIG_ARPEN BIT(31) | ||
#define XGMAC_CONFIG_GPSL GENMASK(29, 16) | ||
#define XGMAC_CONFIG_GPSL_SHIFT 16 | ||
#define XGMAC_CONFIG_S2KP BIT(11) | ||
#define XGMAC_CONFIG_IPC BIT(9) | ||
#define XGMAC_CONFIG_JE BIT(8) | ||
#define XGMAC_CONFIG_WD BIT(7) | ||
#define XGMAC_CONFIG_GPSLCE BIT(6) | ||
#define XGMAC_CONFIG_CST BIT(2) | ||
#define XGMAC_CONFIG_ACS BIT(1) | ||
#define XGMAC_CONFIG_RE BIT(0) | ||
#define XGMAC_CORE_INIT_RX 0 | ||
#define XGMAC_PACKET_FILTER 0x00000008 | ||
#define XGMAC_FILTER_RA BIT(31) | ||
#define XGMAC_FILTER_PM BIT(4) | ||
#define XGMAC_FILTER_HMC BIT(2) | ||
#define XGMAC_FILTER_PR BIT(0) | ||
#define XGMAC_HASH_TABLE(x) (0x00000010 + (x) * 4) | ||
#define XGMAC_RXQ_CTRL0 0x000000a0 | ||
#define XGMAC_RXQEN(x) GENMASK((x) * 2 + 1, (x) * 2) | ||
#define XGMAC_RXQEN_SHIFT(x) ((x) * 2) | ||
#define XGMAC_RXQ_CTRL2 0x000000a8 | ||
#define XGMAC_RXQ_CTRL3 0x000000ac | ||
#define XGMAC_PSRQ(x) GENMASK((x) * 8 + 7, (x) * 8) | ||
#define XGMAC_PSRQ_SHIFT(x) ((x) * 8) | ||
#define XGMAC_INT_STATUS 0x000000b0 | ||
#define XGMAC_PMTIS BIT(4) | ||
#define XGMAC_INT_EN 0x000000b4 | ||
#define XGMAC_TSIE BIT(12) | ||
#define XGMAC_LPIIE BIT(5) | ||
#define XGMAC_PMTIE BIT(4) | ||
#define XGMAC_INT_DEFAULT_EN (XGMAC_LPIIE | XGMAC_PMTIE | XGMAC_TSIE) | ||
#define XGMAC_Qx_TX_FLOW_CTRL(x) (0x00000070 + (x) * 4) | ||
#define XGMAC_PT GENMASK(31, 16) | ||
#define XGMAC_PT_SHIFT 16 | ||
#define XGMAC_TFE BIT(1) | ||
#define XGMAC_RX_FLOW_CTRL 0x00000090 | ||
#define XGMAC_RFE BIT(0) | ||
#define XGMAC_PMT 0x000000c0 | ||
#define XGMAC_GLBLUCAST BIT(9) | ||
#define XGMAC_RWKPKTEN BIT(2) | ||
#define XGMAC_MGKPKTEN BIT(1) | ||
#define XGMAC_PWRDWN BIT(0) | ||
#define XGMAC_HW_FEATURE0 0x0000011c | ||
#define XGMAC_HWFEAT_SAVLANINS BIT(27) | ||
#define XGMAC_HWFEAT_RXCOESEL BIT(16) | ||
#define XGMAC_HWFEAT_TXCOESEL BIT(14) | ||
#define XGMAC_HWFEAT_TSSEL BIT(12) | ||
#define XGMAC_HWFEAT_AVSEL BIT(11) | ||
#define XGMAC_HWFEAT_RAVSEL BIT(10) | ||
#define XGMAC_HWFEAT_ARPOFFSEL BIT(9) | ||
#define XGMAC_HWFEAT_MGKSEL BIT(7) | ||
#define XGMAC_HWFEAT_RWKSEL BIT(6) | ||
#define XGMAC_HWFEAT_GMIISEL BIT(1) | ||
#define XGMAC_HW_FEATURE1 0x00000120 | ||
#define XGMAC_HWFEAT_TSOEN BIT(18) | ||
#define XGMAC_HWFEAT_TXFIFOSIZE GENMASK(10, 6) | ||
#define XGMAC_HWFEAT_RXFIFOSIZE GENMASK(4, 0) | ||
#define XGMAC_HW_FEATURE2 0x00000124 | ||
#define XGMAC_HWFEAT_PPSOUTNUM GENMASK(26, 24) | ||
#define XGMAC_HWFEAT_TXCHCNT GENMASK(21, 18) | ||
#define XGMAC_HWFEAT_RXCHCNT GENMASK(15, 12) | ||
#define XGMAC_HWFEAT_TXQCNT GENMASK(9, 6) | ||
#define XGMAC_HWFEAT_RXQCNT GENMASK(3, 0) | ||
#define XGMAC_MDIO_ADDR 0x00000200 | ||
#define XGMAC_MDIO_DATA 0x00000204 | ||
#define XGMAC_MDIO_C22P 0x00000220 | ||
#define XGMAC_ADDR0_HIGH 0x00000300 | ||
#define XGMAC_AE BIT(31) | ||
#define XGMAC_DCS GENMASK(19, 16) | ||
#define XGMAC_DCS_SHIFT 16 | ||
#define XGMAC_ADDR0_LOW 0x00000304 | ||
#define XGMAC_ARP_ADDR 0x00000c10 | ||
#define XGMAC_TIMESTAMP_STATUS 0x00000d20 | ||
#define XGMAC_TXTSC BIT(15) | ||
#define XGMAC_TXTIMESTAMP_NSEC 0x00000d30 | ||
#define XGMAC_TXTSSTSLO GENMASK(30, 0) | ||
#define XGMAC_TXTIMESTAMP_SEC 0x00000d34 | ||
|
||
/* MTL Registers */ | ||
#define XGMAC_MTL_OPMODE 0x00001000 | ||
#define XGMAC_ETSALG GENMASK(6, 5) | ||
#define XGMAC_WRR (0x0 << 5) | ||
#define XGMAC_WFQ (0x1 << 5) | ||
#define XGMAC_DWRR (0x2 << 5) | ||
#define XGMAC_RAA BIT(2) | ||
#define XGMAC_MTL_INT_STATUS 0x00001020 | ||
#define XGMAC_MTL_RXQ_DMA_MAP0 0x00001030 | ||
#define XGMAC_MTL_RXQ_DMA_MAP1 0x00001034 | ||
#define XGMAC_QxMDMACH(x) GENMASK((x) * 8 + 3, (x) * 8) | ||
#define XGMAC_QxMDMACH_SHIFT(x) ((x) * 8) | ||
#define XGMAC_MTL_TXQ_OPMODE(x) (0x00001100 + (0x80 * (x))) | ||
#define XGMAC_TQS GENMASK(25, 16) | ||
#define XGMAC_TQS_SHIFT 16 | ||
#define XGMAC_TTC GENMASK(6, 4) | ||
#define XGMAC_TTC_SHIFT 4 | ||
#define XGMAC_TXQEN GENMASK(3, 2) | ||
#define XGMAC_TXQEN_SHIFT 2 | ||
#define XGMAC_TSF BIT(1) | ||
#define XGMAC_MTL_RXQ_OPMODE(x) (0x00001140 + (0x80 * (x))) | ||
#define XGMAC_RQS GENMASK(25, 16) | ||
#define XGMAC_RQS_SHIFT 16 | ||
#define XGMAC_EHFC BIT(7) | ||
#define XGMAC_RSF BIT(5) | ||
#define XGMAC_RTC GENMASK(1, 0) | ||
#define XGMAC_RTC_SHIFT 0 | ||
#define XGMAC_MTL_QINTEN(x) (0x00001170 + (0x80 * (x))) | ||
#define XGMAC_RXOIE BIT(16) | ||
#define XGMAC_MTL_QINT_STATUS(x) (0x00001174 + (0x80 * (x))) | ||
#define XGMAC_RXOVFIS BIT(16) | ||
#define XGMAC_ABPSIS BIT(1) | ||
#define XGMAC_TXUNFIS BIT(0) | ||
|
||
#endif /* __STMMAC_DWXGMAC2_H__ */ |
Oops, something went wrong.