Loading arch/arm/configs/vendor/sa515m-perf_defconfig +1 −0 Original line number Diff line number Diff line Loading @@ -222,6 +222,7 @@ CONFIG_RMNET=y CONFIG_STMMAC_ETH=y # CONFIG_DWMAC_GENERIC is not set # CONFIG_DWMAC_IPQ806X is not set CONFIG_ETHQOS_IPA_OFFLOAD=y CONFIG_AT803X_PHY=y CONFIG_MICREL_PHY=y CONFIG_PPP=y Loading arch/arm/configs/vendor/sa515m_defconfig +1 −0 Original line number Diff line number Diff line Loading @@ -220,6 +220,7 @@ CONFIG_RMNET=y CONFIG_STMMAC_ETH=y # CONFIG_DWMAC_GENERIC is not set # CONFIG_DWMAC_IPQ806X is not set CONFIG_ETHQOS_IPA_OFFLOAD=y CONFIG_AT803X_PHY=y CONFIG_MICREL_PHY=y CONFIG_PPP=y Loading drivers/net/ethernet/stmicro/stmmac/Kconfig +10 −0 Original line number Diff line number Diff line Loading @@ -107,6 +107,16 @@ config DWMAC_QCOM_ETHQOS This selects the Qualcomm Technologies, Inc. ETHQOS glue layer support for the stmmac device driver. config ETHQOS_IPA_OFFLOAD bool "IPA ETHQOS offload support" depends on DWMAC_QCOM_ETHQOS && IPA3 default n help Support for the Qualcomm Technologies, Inc. ETH IPA offload support. This enables ethernet ipa offload for IP traffic to reduce the cpu load during E2E IP traffic. This is done by using HW accelaration path. config DWMAC_ROCKCHIP tristate "Rockchip dwmac support" default ARCH_ROCKCHIP Loading drivers/net/ethernet/stmicro/stmmac/Makefile +2 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ obj-$(CONFIG_DWMAC_OXNAS) += dwmac-oxnas.o obj-$(CONFIG_DWMAC_QCOM_ETHQOS) += dwmac-qcom-gpio.o obj-$(CONFIG_DWMAC_QCOM_ETHQOS) += dwmac-qcom-ethqos.o obj-$(CONFIG_DWMAC_QCOM_ETHQOS) += dwmac-qcom-pps.o obj-$(CONFIG_ETHQOS_IPA_OFFLOAD) += dwmac-qcom-ipa.o obj-$(CONFIG_DWMAC_ROCKCHIP) += dwmac-rk.o obj-$(CONFIG_DWMAC_SOCFPGA) += dwmac-altr-socfpga.o obj-$(CONFIG_DWMAC_STI) += dwmac-sti.o Loading @@ -28,6 +29,7 @@ stmmac-platform-objs:= stmmac_platform.o dwmac-altr-socfpga-objs := altr_tse_pcs.o dwmac-socfpga.o ccflags-$(CONFIG_PTP_1588_CLOCK)+=-DCONFIG_PTPSUPPORT_OBJ ccflags-$(CONFIG_ETHQOS_IPA_OFFLOAD)+=-DCONFIG_ETH_IPA_OFFLOAD obj-$(CONFIG_STMMAC_PCI) += stmmac-pci.o stmmac-pci-objs:= stmmac_pci.o drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c +28 −1 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ #include "stmmac_platform.h" #include "dwmac-qcom-ethqos.h" #include "stmmac_ptp.h" #include "dwmac-qcom-ipa-offload.h" static unsigned long tlmm_central_base_addr; bool phy_intr_en; Loading Loading @@ -838,6 +839,21 @@ static int ethqos_create_debugfs(struct qcom_ethqos *ethqos) return -ENOMEM; } static void ethqos_emac_mem_base(struct qcom_ethqos *ethqos) { struct resource *resource = NULL; int ret = 0; resource = platform_get_resource(ethqos->pdev, IORESOURCE_MEM, 0); if (!resource) { ETHQOSERR("get emac-base resource failed\n"); ret = -ENODEV; return; } ethqos->emac_mem_base = resource->start; ethqos->emac_mem_size = resource_size(resource); } static void emac_emb_smmu_exit(void) { if (emac_emb_smmu_ctx.valid) { Loading Loading @@ -1147,6 +1163,8 @@ static int qcom_ethqos_probe(struct platform_device *pdev) struct stmmac_resources stmmac_res; struct qcom_ethqos *ethqos; struct resource *res; struct net_device *ndev; struct stmmac_priv *priv; int ret; ipc_emac_log_ctxt = ipc_log_context_create(IPCLOG_STATE_PAGES, Loading Loading @@ -1228,7 +1246,7 @@ static int qcom_ethqos_probe(struct platform_device *pdev) ethqos->emac_ver = rgmii_readl(ethqos, EMAC_I0_EMAC_CORE_HW_VERSION_RGOFFADDR); ethqos->ioaddr = (&stmmac_res)->addr; ethqos_update_rgmii_tx_drv_strength(ethqos); ret = stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res); Loading Loading @@ -1259,8 +1277,17 @@ static int qcom_ethqos_probe(struct platform_device *pdev) qcom_ethqos_qmp_mailbox_work); queue_work(system_wq, ðqos->qmp_mailbox_work); } ethqos_emac_mem_base(ethqos); pethqos = ethqos; ethqos_create_debugfs(ethqos); ndev = dev_get_drvdata(ðqos->pdev->dev); priv = netdev_priv(ndev); #ifdef CONFIG_ETH_IPA_OFFLOAD ethqos->ipa_enabled = true; priv->rx_queue[IPA_DMA_RX_CH].skip_sw = true; priv->tx_queue[IPA_DMA_TX_CH].skip_sw = true; #endif return ret; err_clk: Loading Loading
arch/arm/configs/vendor/sa515m-perf_defconfig +1 −0 Original line number Diff line number Diff line Loading @@ -222,6 +222,7 @@ CONFIG_RMNET=y CONFIG_STMMAC_ETH=y # CONFIG_DWMAC_GENERIC is not set # CONFIG_DWMAC_IPQ806X is not set CONFIG_ETHQOS_IPA_OFFLOAD=y CONFIG_AT803X_PHY=y CONFIG_MICREL_PHY=y CONFIG_PPP=y Loading
arch/arm/configs/vendor/sa515m_defconfig +1 −0 Original line number Diff line number Diff line Loading @@ -220,6 +220,7 @@ CONFIG_RMNET=y CONFIG_STMMAC_ETH=y # CONFIG_DWMAC_GENERIC is not set # CONFIG_DWMAC_IPQ806X is not set CONFIG_ETHQOS_IPA_OFFLOAD=y CONFIG_AT803X_PHY=y CONFIG_MICREL_PHY=y CONFIG_PPP=y Loading
drivers/net/ethernet/stmicro/stmmac/Kconfig +10 −0 Original line number Diff line number Diff line Loading @@ -107,6 +107,16 @@ config DWMAC_QCOM_ETHQOS This selects the Qualcomm Technologies, Inc. ETHQOS glue layer support for the stmmac device driver. config ETHQOS_IPA_OFFLOAD bool "IPA ETHQOS offload support" depends on DWMAC_QCOM_ETHQOS && IPA3 default n help Support for the Qualcomm Technologies, Inc. ETH IPA offload support. This enables ethernet ipa offload for IP traffic to reduce the cpu load during E2E IP traffic. This is done by using HW accelaration path. config DWMAC_ROCKCHIP tristate "Rockchip dwmac support" default ARCH_ROCKCHIP Loading
drivers/net/ethernet/stmicro/stmmac/Makefile +2 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ obj-$(CONFIG_DWMAC_OXNAS) += dwmac-oxnas.o obj-$(CONFIG_DWMAC_QCOM_ETHQOS) += dwmac-qcom-gpio.o obj-$(CONFIG_DWMAC_QCOM_ETHQOS) += dwmac-qcom-ethqos.o obj-$(CONFIG_DWMAC_QCOM_ETHQOS) += dwmac-qcom-pps.o obj-$(CONFIG_ETHQOS_IPA_OFFLOAD) += dwmac-qcom-ipa.o obj-$(CONFIG_DWMAC_ROCKCHIP) += dwmac-rk.o obj-$(CONFIG_DWMAC_SOCFPGA) += dwmac-altr-socfpga.o obj-$(CONFIG_DWMAC_STI) += dwmac-sti.o Loading @@ -28,6 +29,7 @@ stmmac-platform-objs:= stmmac_platform.o dwmac-altr-socfpga-objs := altr_tse_pcs.o dwmac-socfpga.o ccflags-$(CONFIG_PTP_1588_CLOCK)+=-DCONFIG_PTPSUPPORT_OBJ ccflags-$(CONFIG_ETHQOS_IPA_OFFLOAD)+=-DCONFIG_ETH_IPA_OFFLOAD obj-$(CONFIG_STMMAC_PCI) += stmmac-pci.o stmmac-pci-objs:= stmmac_pci.o
drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c +28 −1 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ #include "stmmac_platform.h" #include "dwmac-qcom-ethqos.h" #include "stmmac_ptp.h" #include "dwmac-qcom-ipa-offload.h" static unsigned long tlmm_central_base_addr; bool phy_intr_en; Loading Loading @@ -838,6 +839,21 @@ static int ethqos_create_debugfs(struct qcom_ethqos *ethqos) return -ENOMEM; } static void ethqos_emac_mem_base(struct qcom_ethqos *ethqos) { struct resource *resource = NULL; int ret = 0; resource = platform_get_resource(ethqos->pdev, IORESOURCE_MEM, 0); if (!resource) { ETHQOSERR("get emac-base resource failed\n"); ret = -ENODEV; return; } ethqos->emac_mem_base = resource->start; ethqos->emac_mem_size = resource_size(resource); } static void emac_emb_smmu_exit(void) { if (emac_emb_smmu_ctx.valid) { Loading Loading @@ -1147,6 +1163,8 @@ static int qcom_ethqos_probe(struct platform_device *pdev) struct stmmac_resources stmmac_res; struct qcom_ethqos *ethqos; struct resource *res; struct net_device *ndev; struct stmmac_priv *priv; int ret; ipc_emac_log_ctxt = ipc_log_context_create(IPCLOG_STATE_PAGES, Loading Loading @@ -1228,7 +1246,7 @@ static int qcom_ethqos_probe(struct platform_device *pdev) ethqos->emac_ver = rgmii_readl(ethqos, EMAC_I0_EMAC_CORE_HW_VERSION_RGOFFADDR); ethqos->ioaddr = (&stmmac_res)->addr; ethqos_update_rgmii_tx_drv_strength(ethqos); ret = stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res); Loading Loading @@ -1259,8 +1277,17 @@ static int qcom_ethqos_probe(struct platform_device *pdev) qcom_ethqos_qmp_mailbox_work); queue_work(system_wq, ðqos->qmp_mailbox_work); } ethqos_emac_mem_base(ethqos); pethqos = ethqos; ethqos_create_debugfs(ethqos); ndev = dev_get_drvdata(ðqos->pdev->dev); priv = netdev_priv(ndev); #ifdef CONFIG_ETH_IPA_OFFLOAD ethqos->ipa_enabled = true; priv->rx_queue[IPA_DMA_RX_CH].skip_sw = true; priv->tx_queue[IPA_DMA_TX_CH].skip_sw = true; #endif return ret; err_clk: Loading