From patchwork Sat May 18 12:42:06 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Siddharth Vadapalli X-Patchwork-Id: 13667635 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 18E8AC25B74 for ; Sat, 18 May 2024 12:43:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Date:Subject:CC :To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=yiIYjLCXS5PdnTVvf5pVYaDppO28qKcKNcFDrPBk3ZU=; b=ESVLL0IuaBfQL7 wdpDVds8N7f2njtpZC0eBZabc3gei9Txlz99HjHLicemjFGgM9pok7Qp6m4LfpjaQgUl0/EH32JQB eKSdQkrwlF3UU7x7Vw2vmeU7x4gUD7JTjIX40JvOU8hcHcA+c4P7hPqK+BjkB4iMRBzcshpxF3OBI rlYtG4mIRGk7B2P/ylUDZOW3BkadeZft2EYhoDv+xw/p9gKG8ciHgYO4xZHR96mdtvi04SbRZplSH jnWS5HdU+JDL4LVfYfh+mM5B9bw7NY1lgywTtg3YIbS8Z1IR90KHiZ9BnEfPgJPLKnQzgWs/V7gXO tebzhtXL+vvxNDyah9Rg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1s8JOm-0000000A4nc-0zgm; Sat, 18 May 2024 12:42:52 +0000 Received: from lelv0142.ext.ti.com ([198.47.23.249]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1s8JOi-0000000A4nA-3kIg for linux-arm-kernel@lists.infradead.org; Sat, 18 May 2024 12:42:50 +0000 Received: from lelv0265.itg.ti.com ([10.180.67.224]) by lelv0142.ext.ti.com (8.15.2/8.15.2) with ESMTP id 44ICgd1p017224; Sat, 18 May 2024 07:42:39 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1716036159; bh=GABHN3I8j/LnTKYeasLQZjr60IN5cf7RrpoPavx4GZY=; h=From:To:CC:Subject:Date; b=lHH0ivHSTfSogbPiCKihZq3+HPS92vqkHGJa2g4z4i9Iz64ktpAAW7PFxwzmYIb6r vX9uCTW49+xGWFm8cqPV6p9J9Vd33i2Ud4FaH8NMTq81ycKTOxo3zkqehwvRiz4UhV +3dLMDssnXS4CTlBXWRcNTje8eEtmyCCp8q2DZZ8= Received: from DLEE100.ent.ti.com (dlee100.ent.ti.com [157.170.170.30]) by lelv0265.itg.ti.com (8.15.2/8.15.2) with ESMTPS id 44ICgdFv003852 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Sat, 18 May 2024 07:42:39 -0500 Received: from DLEE111.ent.ti.com (157.170.170.22) by DLEE100.ent.ti.com (157.170.170.30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.23; Sat, 18 May 2024 07:42:39 -0500 Received: from lelvsmtp6.itg.ti.com (10.180.75.249) by DLEE111.ent.ti.com (157.170.170.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.23 via Frontend Transport; Sat, 18 May 2024 07:42:39 -0500 Received: from uda0492258.dhcp.ti.com (uda0492258.dhcp.ti.com [172.24.227.9]) by lelvsmtp6.itg.ti.com (8.15.2/8.15.2) with ESMTP id 44ICgY9G041511; Sat, 18 May 2024 07:42:35 -0500 From: Siddharth Vadapalli To: , , , , , , , CC: , , , , , , , Subject: [RFC PATCH net-next 00/28] Add CPSW Proxy Client driver Date: Sat, 18 May 2024 18:12:06 +0530 Message-ID: <20240518124234.2671651-1-s-vadapalli@ti.com> X-Mailer: git-send-email 2.40.1 MIME-Version: 1.0 X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240518_054249_104026_B3E60F8A X-CRM114-Status: GOOD ( 12.21 ) 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 Hello, This series introduces the CPSW Proxy Client driver to interface with Ethernet Switch Firmware (EthFw) running on a remote core on TI's K3 SoCs. Further details are in patch 01/28 which adds documentation for the driver and describes the intended use-case, design and execution of the driver. Please DO NOT MERGE this series. I will appreciate feedback on this series in the form of both documentation enhancements and code review. This series does not depend on other series and applies cleanly on the latest net-next commit: 4b377b4868ef kprobe/ftrace: fix build error due to bad function definition However, for purposes of functionality, device-tree changes are required in the form of a device-tree overlay in order to mark device-tree nodes as reserved for EthFw's use. I have tested this series on J721E EVM verifying: 1. Ping/Iperf 2. Interface Up-Down 3. Module Removal Linux Logs: https://gist.github.com/Siddharth-Vadapalli-at-TI/0972e74383cd1ec16e2f82c0d447f90b EthFw Logs corresponding to the Linux Logs shared above: https://gist.github.com/Siddharth-Vadapalli-at-TI/28743298daf113f90be9ceb26c46b16b Regards, Siddharth. Siddharth Vadapalli (28): docs: networking: ti: add driver doc for CPSW Proxy Client net: ethernet: ti: add RPMsg structures for Ethernet Switch Firmware net: ethernet: ti: introduce the CPSW Proxy Client net: ethernet: ti: cpsw-proxy-client: add support for creating requests net: ethernet: ti: cpsw-proxy-client: enable message exchange with EthFw net: ethernet: ti: cpsw-proxy-client: add helper to get virtual port info net: ethernet: ti: cpsw-proxy-client: add helper to attach virtual ports net: ethernet: ti: cpsw-proxy-client: add helpers to alloc/free resources net: ethernet: ti: cpsw-proxy-client: add helper to init TX DMA Channels net: ethernet: ti: cpsw-proxy-client: add helper to init RX DMA Channels net: ethernet: ti: cpsw-proxy-client: add NAPI TX polling function net: ethernet: ti: cpsw-proxy-client: add NAPI RX polling function net: ethernet: ti: cpsw-proxy-client: add helper to create netdevs net: ethernet: ti: cpsw-proxy-client: add and register dma irq handlers net: ethernet: ti: cpsw-proxy-client: add helpers to (de)register MAC net: ethernet: ti: cpsw-proxy-client: implement and register ndo_open net: ethernet: ti: cpsw-proxy-client: implement and register ndo_stop net: ethernet: ti: cpsw-proxy-client: implement and register ndo_start_xmit net: ethernet: ti: cpsw-proxy-client: implement and register ndo_get_stats64 net: ethernet: ti: cpsw-proxy-client: implement and register ndo_tx_timeout net: ethernet: ti: cpsw-proxy-client: register ndo_validate/ndo_set_mac_addr net: ethernet: ti: cpsw-proxy-client: implement .get_link ethtool op net: ethernet: ti: cpsw-proxy-client: add sw tx/rx irq coalescing net: ethernet: ti: cpsw-proxy-client: export coalescing support net: ethernet: ti: cpsw-proxy-client: add helpers to (de)register IPv4 net: ethernet: ti: cpsw-proxy-client: add ndo_set_rx_mode member net: ethernet: ti: cpsw-proxy-client: add helper to detach virtual ports net: ethernet: ti: cpsw-proxy-client: enable client driver functionality .../ethernet/ti/cpsw_proxy_client.rst | 182 ++ drivers/net/ethernet/ti/Kconfig | 14 + drivers/net/ethernet/ti/Makefile | 3 + drivers/net/ethernet/ti/cpsw-proxy-client.c | 2354 +++++++++++++++++ drivers/net/ethernet/ti/ethfw_abi.h | 370 +++ 5 files changed, 2923 insertions(+) create mode 100644 Documentation/networking/device_drivers/ethernet/ti/cpsw_proxy_client.rst create mode 100644 drivers/net/ethernet/ti/cpsw-proxy-client.c create mode 100644 drivers/net/ethernet/ti/ethfw_abi.h