From patchwork Fri Aug 2 03:18:19 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jitendra Vegiraju X-Patchwork-Id: 13751054 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id C1E05C3DA64 for ; Fri, 2 Aug 2024 03:19:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: MIME-Version:Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner; bh=4HAn+V3gDIqRYjxYVGkFzkVFZiCrmwsifdbQcKEXuA0=; b=UwR4I8Kh4VbkLFmOuEfNrgtuXC Z8jI0odS0hONfA1wZckqZH3qWufraQA22AkGY9XCj0L5NHG33elxy1sdJseA32rGN0C+ZzyauUU/B J22lqPkO7gkzbdNQCHjuwDpS1vHS1zDde8/qZ9ZryPVFWXXOZ9H0fxy5WXpgkQeJIXPoyDkgsiKU7 QGDQKqmctQxj+Drt3t/mnJNRbfs+U23MbXB9haSjZA5r5pbF3UAvsHqWNbjkwMkSHVAdKGfWfDl+s +OMFalyDyhU7I5cE66LCll8rPdnOTXotxQX3xP7aEzcHQI7kuOez7FIY3JQegSto4qHI81aL9kPQq vv4x5MJw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sZipE-00000007Syr-0Se2; Fri, 02 Aug 2024 03:19:28 +0000 Received: from relay.smtp-ext.broadcom.com ([192.19.144.205]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sZioH-00000007Sos-1klr for linux-arm-kernel@lists.infradead.org; Fri, 02 Aug 2024 03:18:31 +0000 Received: from mail-lvn-it-01.lvn.broadcom.net (mail-lvn-it-01.lvn.broadcom.net [10.36.132.253]) by relay.smtp-ext.broadcom.com (Postfix) with ESMTP id 7D02FC0000EA; Thu, 1 Aug 2024 20:18:26 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com 7D02FC0000EA DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1722568706; bh=RHWM2CtWUWVpihcZvDeOFBZpR66cVXr5m/EFPtj1ocI=; h=From:To:Cc:Subject:Date:From; b=p5XI9A4tDoBDbHQDvwqF34I/x9A+ZZBWs+kpJh7RsS/14I9UtKeEkAngT+/RNnOyX zB77CnkwlJb7en35uxL7jbP1X1c35mvebKaDuN3W8KkYXiP4V5ESvn7XER7GVFbRXg kC8VH9skX73xMPz7J1Rjvux+b/3FMSVtHUUXGdr0= Received: from pcie-dev03.dhcp.broadcom.net (pcie-dev03.dhcp.broadcom.net [10.59.171.67]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail-lvn-it-01.lvn.broadcom.net (Postfix) with ESMTPSA id AF53118041CAC4; Thu, 1 Aug 2024 20:18:23 -0700 (PDT) From: jitendra.vegiraju@broadcom.com To: netdev@vger.kernel.org Cc: alexandre.torgue@foss.st.com, joabreu@synopsys.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, mcoquelin.stm32@gmail.com, jitendra.vegiraju@broadcom.com, bcm-kernel-feedback-list@broadcom.com, richardcochran@gmail.com, ast@kernel.org, daniel@iogearbox.net, hawk@kernel.org, john.fastabend@gmail.com, linux-kernel@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, bpf@vger.kernel.org, andrew@lunn.ch, linux@armlinux.org.uk, horms@kernel.org, florian.fainelli@broadcom.com Subject: [PATCH net-next v3 0/3] net: stmmac: Add PCI driver support for BCM8958x Date: Thu, 1 Aug 2024 20:18:19 -0700 Message-Id: <20240802031822.1862030-1-jitendra.vegiraju@broadcom.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240801_201829_649635_D6BC6438 X-CRM114-Status: GOOD ( 16.36 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Jitendra Vegiraju This patchset adds basic PCI ethernet device driver support for Broadcom BCM8958x Automotive Ethernet switch SoC devices. This SoC device has PCIe ethernet MAC attached to an integrated ethernet switch using XGMII interface. The PCIe ethernet controller is presented to the Linux host as PCI network device. The following block diagram gives an overview of the application. +=================================+ | Host CPU/Linux | +=================================+ || PCIe || +==========================================+ | +--------------+ | | | PCIE Endpoint| | | | Ethernet | | | | Controller | | | | DMA | | | +--------------+ | | | MAC | BCM8958X | | +--------------+ SoC | | || XGMII | | || | | +--------------+ | | | Ethernet | | | | switch | | | +--------------+ | | || || || || | +==========================================+ || || || || More external interfaces The MAC block on BCM8958x is based on Synopsis XGMAC 4.00a core. This driver uses common dwxgmac2 code where applicable. Driver functionality specific to this MAC is implemented in dwxgmac4.c. Management of integrated ethernet switch on this SoC is not handled by the PCIe interface. This SoC device has PCIe ethernet MAC directly attached to an integrated ethernet switch using XGMII interface. v2->v3: Addressed v2 comments from Andrew, Jakub, Russel and Simon. Based on suggestion by Russel and Andrew, added software node to create phylink in fixed-link mode. Moved dwxgmac4 specific functions to new files dwxgmac4.c and dwxgmac4.h in stmmac core module. Reorganized the code to use the existing glue logic support for xgmac in hwif.c and override ops functions for dwxgmac4 specific functions. The patch is split into three parts. Patch#1 Adds dma_ops for dwxgmac4 in stmmac core Patch#2 Hooks in the hardware interface handling for dwxgmac4 Patch#3 Adds PCI driver for BCM8958x device v1->v2: Minor fixes to address coding style issues. Sent v2 too soon by mistake, without waiting for review comments. Received feedback on this version. https://lore.kernel.org/netdev/20240511015924.41457-1-jitendra.vegiraju@broadcom.com/ v1: https://lore.kernel.org/netdev/20240510000331.154486-1-jitendra.vegiraju@broadcom.com/ Jitendra Vegiraju (3): Add basic dwxgmac4 support to stmmac core Integrate dwxgmac4 into stmmac hwif handling Add PCI driver support for BCM8958x MAINTAINERS | 8 + drivers/net/ethernet/stmicro/stmmac/Kconfig | 11 + drivers/net/ethernet/stmicro/stmmac/Makefile | 3 +- drivers/net/ethernet/stmicro/stmmac/common.h | 4 + .../net/ethernet/stmicro/stmmac/dwmac-brcm.c | 517 ++++++++++++++++++ .../ethernet/stmicro/stmmac/dwxgmac2_dma.c | 31 ++ .../net/ethernet/stmicro/stmmac/dwxgmac4.c | 142 +++++ .../net/ethernet/stmicro/stmmac/dwxgmac4.h | 84 +++ drivers/net/ethernet/stmicro/stmmac/hwif.c | 26 +- drivers/net/ethernet/stmicro/stmmac/hwif.h | 1 + 10 files changed, 825 insertions(+), 2 deletions(-) create mode 100644 drivers/net/ethernet/stmicro/stmmac/dwmac-brcm.c create mode 100644 drivers/net/ethernet/stmicro/stmmac/dwxgmac4.c create mode 100644 drivers/net/ethernet/stmicro/stmmac/dwxgmac4.h