All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Voon, Weifeng" <weifeng.voon@intel.com>
To: "David S. Miller" <davem@davemloft.net>
Cc: "netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"Ong, Boon Leong" <boon.leong.ong@intel.com>,
	"Kweh, Hock Leong" <hock.leong.kweh@intel.com>,
	Florian Fainelli <f.fainelli@gmail.com>,
	Andrew Lunn <andrew@lunn.ch>,
	Maxime Coquelin <mcoquelin.stm32@gmail.com>,
	Giuseppe Cavallaro <peppe.cavallaro@st.com>,
	Jose Abreu <joabreu@synopsys.com>
Subject: RE: [PATCH 1/7] net: stmmac: add EHL SGMII 1Gbps platform data and PCI ID
Date: Thu, 25 Apr 2019 07:04:01 +0000	[thread overview]
Message-ID: <D6759987A7968C4889FDA6FA91D5CBC8146EF07B@PGSMSX103.gar.corp.intel.com> (raw)
In-Reply-To: <1556126241-2774-2-git-send-email-weifeng.voon@intel.com>

> Added EHL SGMII 1Gbps PCI ID. Different MII and speed will have different
> PCI ID.
> For EHL, default TX and RX FIFO size is set to 32KB. This is because the FIFO
> size advertised in the HW features is not the same as the HW
> implementation. The TX FIFO is shared among all all the TX queues and the
> RX FIFO is also shared among all the RX queues.
> 
> Signed-off-by: Weifeng Voon <weifeng.voon@intel.com>
> ---
>  drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c | 103
> +++++++++++++++++++++++
>  1 file changed, 103 insertions(+)
> 
> diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c
> b/drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c
> index d819e8e..b454a97 100644
> --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c
> +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c
> @@ -118,6 +118,107 @@ static int stmmac_default_data(struct pci_dev
> *pdev,
>  	.setup = stmmac_default_data,
>  };
> 
> +static int ehl_common_data(struct pci_dev *pdev,
> +			   struct plat_stmmacenet_data *plat) {
> +	int i;
> +
> +	plat->bus_id = 1;
> +	plat->phy_addr = 0;
> +	plat->clk_csr = 5;
> +	plat->has_gmac = 0;
> +	plat->has_gmac4 = 1;
> +	plat->force_sf_dma_mode = 0;
> +	plat->tso_en = 1;
> +
> +	plat->rx_queues_to_use = 8;
> +	plat->tx_queues_to_use = 8;
> +	plat->rx_sched_algorithm = MTL_RX_ALGORITHM_SP;
> +
> +	for (i = 0; i < plat->rx_queues_to_use; i++) {
> +		plat->rx_queues_cfg[i].mode_to_use = MTL_QUEUE_DCB;
> +		plat->rx_queues_cfg[i].chan = i;
> +
> +		/* Disable Priority config by default */
> +		plat->tx_queues_cfg[i].use_prio = false;
> +
> +		/* Disable RX queues routing by default */
> +		plat->rx_queues_cfg[i].pkt_route = 0x0;
> +	}
> +
> +	for (i = 0; i < plat->tx_queues_to_use; i++) {
> +		plat->tx_queues_cfg[i].mode_to_use = MTL_QUEUE_DCB;
> +
> +		/* Disable Priority config by default */
> +		plat->tx_queues_cfg[i].use_prio = false;
> +	}
> +
> +	plat->tx_sched_algorithm = MTL_TX_ALGORITHM_WRR;
> +	plat->tx_queues_cfg[0].weight = 0x09;
> +	plat->tx_queues_cfg[1].weight = 0x0A;
> +	plat->tx_queues_cfg[2].weight = 0x0B;
> +	plat->tx_queues_cfg[3].weight = 0x0C;
> +	plat->tx_queues_cfg[4].weight = 0x0D;
> +	plat->tx_queues_cfg[5].weight = 0x0E;
> +	plat->tx_queues_cfg[6].weight = 0x0F;
> +	plat->tx_queues_cfg[7].weight = 0x10;
> +
> +	plat->mdio_bus_data->phy_reset = NULL;
> +	plat->mdio_bus_data->phy_mask = 0;
> +
> +	plat->dma_cfg->pbl = 32;
> +	plat->dma_cfg->pblx8 = true;
> +	plat->dma_cfg->fixed_burst = 0;
> +	plat->dma_cfg->mixed_burst = 0;
> +	plat->dma_cfg->aal = 0;
> +
> +	plat->axi = devm_kzalloc(&pdev->dev, sizeof(*plat->axi),
> +				 GFP_KERNEL);
> +	if (!plat->axi)
> +		return -ENOMEM;
> +	plat->axi->axi_lpi_en = 0;
> +	plat->axi->axi_xit_frm = 0;
> +	plat->axi->axi_wr_osr_lmt = 0;
> +	plat->axi->axi_rd_osr_lmt = 2;
> +	plat->axi->axi_blen[0] = 4;
> +	plat->axi->axi_blen[1] = 8;
> +	plat->axi->axi_blen[2] = 16;
> +
> +	/* Set default value for multicast hash bins */
> +	plat->multicast_filter_bins = HASH_TABLE_SIZE;
> +
> +	/* Set default value for unicast filter entries */
> +	plat->unicast_filter_entries = 1;
> +
> +	/* Set the maxmtu to a default of JUMBO_LEN */
> +	plat->maxmtu = JUMBO_LEN;
> +
> +	plat->tx_fifo_size = 32768;
> +	plat->rx_fifo_size = 32768;
> +
> +	return 0;
> +}
> +
> +static int ehl_sgmii1g_data(struct pci_dev *pdev,
> +			    struct plat_stmmacenet_data *plat) {
> +	int ret;
> +
> +	/* Set common default data first */
> +	ret = ehl_common_data(pdev, plat);
> +
> +	if (ret)
> +		return ret;
> +
> +	plat->interface = PHY_INTERFACE_MODE_SGMII;
> +
> +	return 0;
> +}
> +
> +static struct stmmac_pci_info ehl_sgmii1g_pci_info = {
> +	.setup = ehl_sgmii1g_data,
> +};
> +
>  static const struct stmmac_pci_func_data galileo_stmmac_func_data[] = {
>  	{
>  		.func = 6,
> @@ -355,6 +456,7 @@ static int __maybe_unused
> stmmac_pci_resume(struct device *dev)
> 
>  #define STMMAC_QUARK_ID  0x0937
>  #define STMMAC_DEVICE_ID 0x1108
> +#define STMMAC_EHL_SGMII1G_ID   0x4b31
> 
>  #define STMMAC_DEVICE(vendor_id, dev_id, info)	{	\
>  	PCI_VDEVICE(vendor_id, dev_id),			\
> @@ -365,6 +467,7 @@ static int __maybe_unused
> stmmac_pci_resume(struct device *dev)
>  	STMMAC_DEVICE(STMMAC, STMMAC_DEVICE_ID,
> stmmac_pci_info),
>  	STMMAC_DEVICE(STMICRO, PCI_DEVICE_ID_STMICRO_MAC,
> stmmac_pci_info),
>  	STMMAC_DEVICE(INTEL, STMMAC_QUARK_ID, quark_pci_info),
> +	STMMAC_DEVICE(INTEL, STMMAC_EHL_SGMII1G_ID,
> ehl_sgmii1g_pci_info),
>  	{}
>  };
> 
> --
> 1.9.1

++ stmmac maintainers and c45 experts

  reply	other threads:[~2019-04-25  7:04 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-24 17:17 [PATCH 0/7] net: stmmac: enable EHL SGMII Weifeng Voon
2019-04-24  9:26 ` Jose Abreu
2019-04-24 13:48 ` Andrew Lunn
2019-04-25  7:27   ` Voon, Weifeng
2019-04-25 12:38     ` Andrew Lunn
2019-04-25 14:39       ` Ong, Boon Leong
2019-04-25 15:23         ` Andrew Lunn
2019-04-29  5:37           ` Ong, Boon Leong
2019-04-29 13:10             ` Andrew Lunn
2019-04-29 13:44               ` Jose Abreu
2019-04-24 17:17 ` [PATCH 1/7] net: stmmac: add EHL SGMII 1Gbps platform data and PCI ID Weifeng Voon
2019-04-25  7:04   ` Voon, Weifeng [this message]
2019-04-25 12:24     ` Andrew Lunn
2019-04-26  2:10       ` Voon, Weifeng
2019-04-24 17:17 ` [PATCH 2/7] net: stmmac: enable clause 45 mdio support Weifeng Voon
2019-04-24 13:18   ` Andrew Lunn
2019-04-25  7:12     ` Voon, Weifeng
2019-04-24 17:17 ` [PATCH 3/7] net: stmmac: dma channel control register need to be init first Weifeng Voon
2019-04-25  7:06   ` Voon, Weifeng
2019-04-29 10:25     ` Jose Abreu
2019-04-30  2:49       ` Voon, Weifeng
2019-04-24 17:17 ` [PATCH 4/7] net: stmmac: introducing support for DWC xPCS logics Weifeng Voon
2019-04-24 13:41   ` Andrew Lunn
2019-04-25  1:45     ` Ong, Boon Leong
2019-04-25  3:21       ` Andrew Lunn
2019-04-25  6:51         ` Ong, Boon Leong
2019-04-25 12:22           ` Andrew Lunn
2019-04-25  7:06   ` Voon, Weifeng
2019-04-29 13:23     ` Jose Abreu
2019-04-24 17:17 ` [PATCH 5/7] net: stmmac: add xpcs function hooks into main driver and ethtool Weifeng Voon
2019-04-25  7:07   ` Voon, Weifeng
2019-04-24 17:17 ` [PATCH 6/7] net: stmmac: add xPCS platform data for EHL Weifeng Voon
2019-04-25  7:08   ` Voon, Weifeng
2019-04-24 17:17 ` [PATCH 7/7] net: stmmac: add xPCS functions for device with DWMACv5.1 Weifeng Voon
2019-04-25  7:09   ` Voon, Weifeng
2019-04-25  7:00 ` [PATCH 0/7] net: stmmac: enable EHL SGMII Voon, Weifeng

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=D6759987A7968C4889FDA6FA91D5CBC8146EF07B@PGSMSX103.gar.corp.intel.com \
    --to=weifeng.voon@intel.com \
    --cc=andrew@lunn.ch \
    --cc=boon.leong.ong@intel.com \
    --cc=davem@davemloft.net \
    --cc=f.fainelli@gmail.com \
    --cc=hock.leong.kweh@intel.com \
    --cc=joabreu@synopsys.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mcoquelin.stm32@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=peppe.cavallaro@st.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.