Received: by 2002:a6b:500f:0:0:0:0:0 with SMTP id e15csp3701246iob; Sat, 7 May 2022 12:25:14 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx3FzQ+Pn1ZBZpT80k2PytZOpPiF21/aveTPNRbnDkaKiAak3dOK54uXRn+Nwl0S2PbRmun X-Received: by 2002:a17:906:dc93:b0:6f4:6a93:f227 with SMTP id cs19-20020a170906dc9300b006f46a93f227mr8275044ejc.661.1651951514495; Sat, 07 May 2022 12:25:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1651951514; cv=none; d=google.com; s=arc-20160816; b=OLIzYE05y660/SUFC5Y/4rqdSlT4bHl4G5lEF/AVzyaFsKUaB/3+xXKvkDSf4A0GkX pBWJBQdS/cd97Y1r1GeMMYG6JO1GpQzULJcaby7jbfzwOr0jkN6ZeyBGFBhQzrukrKIo g/hc60apxr08kpB6hy3dnp+u/Pm4JlcPmuUt524AGmRySr9KFlhRVtqy08+XnnZr2CAz 3lBVBPozMdPd6Xiem8svd1MI+pLQFW7zonkNCNBlyiPpDPTG+LjDWt4oMqKK1NfPq/5N ySuUzlU6sfqt+CTvJA/OK7+UUouq/rncgVWfSX7shfN5Q6SruBiUB56tWh0z0PDsRiOH 3FHg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:message-id:date:subject:cc:to:from :dkim-signature; bh=4j1xMzQOmlht80z6F07pIV3L6cGhnmTTb4Ja+LRnZBw=; b=dHC10/bsQneQmUPdQyjDUG9y8FertrGHomfo4+Ikl/MqQcPOdrmb0r6XhvnmB1CfR9 ENXkBcMnohZLVHNP2NMCsYF8HSRU8yDfb7E3mxenn0K/pOV6ClW+HhbMhHEe6RzzwiC7 AWQ8ClmQo790e+pi9IOsanQ04xcZLszNosKSlopUSzh0fWadgKzTMkXiTZ9GpgKgxfJ9 oygj1E0K9g8PjA9USuTeZZGcTwRJLe/AjlVtKq9G0OUbWOQs8pOQOpxJYqB07x8X/kM0 /wEiPA97nFkV+GmH65d9f9EN2mI79QqB/hy4QvatoLMqZXe+yf+43byCFUEB7VF/PjfS DEaQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=vKNmglau; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id gn8-20020a1709070d0800b006f35fd3ab4fsi10573940ejc.324.2022.05.07.12.24.49; Sat, 07 May 2022 12:25:14 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=vKNmglau; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1389108AbiEFF2p (ORCPT + 99 others); Fri, 6 May 2022 01:28:45 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33146 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1389093AbiEFF2m (ORCPT ); Fri, 6 May 2022 01:28:42 -0400 Received: from lelv0142.ext.ti.com (lelv0142.ext.ti.com [198.47.23.249]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C7C2C5DA64; Thu, 5 May 2022 22:24:59 -0700 (PDT) Received: from fllv0034.itg.ti.com ([10.64.40.246]) by lelv0142.ext.ti.com (8.15.2/8.15.2) with ESMTP id 2465OatZ049321; Fri, 6 May 2022 00:24:36 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1651814676; bh=4j1xMzQOmlht80z6F07pIV3L6cGhnmTTb4Ja+LRnZBw=; h=From:To:CC:Subject:Date; b=vKNmglauJKXzLk03BsjVhgwBqEm+7Pa5jhrM/7S6lykPGljyhXrNMGY9hLdJaqGAE hl810/olrqdH4c7md74IWlh9nzxqHMI37mlvKY5N9Ad9F5WuZYK58JYrw+PZPZcyHb YuxhWbo4jjjjvpKbDOXZ2CPB4DnzIUYG4vbgxAc4= Received: from DLEE114.ent.ti.com (dlee114.ent.ti.com [157.170.170.25]) by fllv0034.itg.ti.com (8.15.2/8.15.2) with ESMTPS id 2465OZBW003996 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Fri, 6 May 2022 00:24:36 -0500 Received: from DLEE101.ent.ti.com (157.170.170.31) by DLEE114.ent.ti.com (157.170.170.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2308.14; Fri, 6 May 2022 00:24:35 -0500 Received: from lelv0326.itg.ti.com (10.180.67.84) by DLEE101.ent.ti.com (157.170.170.31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2308.14 via Frontend Transport; Fri, 6 May 2022 00:24:35 -0500 Received: from localhost (ileax41-snat.itg.ti.com [10.172.224.153]) by lelv0326.itg.ti.com (8.15.2/8.15.2) with ESMTP id 2465OY8F009958; Fri, 6 May 2022 00:24:34 -0500 From: Puranjay Mohan To: CC: , , , , , , , , , , , , , , , , Subject: [PATCH 0/2] Introduce ICSSG based ethernet Driver Date: Fri, 6 May 2022 10:54:31 +0530 Message-ID: <20220506052433.28087-1-p-mohan@ti.com> X-Mailer: git-send-email 2.17.1 MIME-Version: 1.0 Content-Type: text/plain X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The Programmable Real-time Unit and Industrial Communication Subsystem Gigabit (PRU_ICSSG) is a low-latency microcontroller subsystem in the TI SoCs. This subsystem is provided for the use cases like implementation of custom peripheral interfaces, offloading of tasks from the other processor cores of the SoC, etc. The subsystem includes many accelerators for data processing like multiplier and multiplier-accumulator. It also has peripherals like UART, MII/RGMII, MDIO, etc. Every ICSSG core includes two 32-bit load/store RISC CPU cores called PRUs. The above features allow it to be used for implementing custom firmware based peripherals like ethernet. This series adds the YAML documentation and the driver with basic EMAC support for TI AM654 Silicon Rev 2 SoC with the PRU_ICSSG Sub-system. running dual-EMAC firmware. This currently supports basic EMAC with 1Gbps and 100Mbps link. 10M and half-duplex modes are not yet supported because they require the support of an IEP, which will be added later. Advanced features like switch-dev and timestamping will be added later. This series depends on two patch series that are not yet merged, one in the remoteproc tree and another in the soc tree. the first one is titled Introduce PRU remoteproc consumer API and the second one is titled Introduce PRU platform consumer API. Both of these are required for this driver. To explain this dependency and to get reviews, I had earlier posted all three of these as an RFC[1], this can be seen for understanding the dependencies. I then posted the remoteproc[2] and soc[3] series seperately to their respective trees. [1] https://lore.kernel.org/all/20220406094358.7895-1-p-mohan@ti.com/ [2] https://patchwork.kernel.org/project/linux-remoteproc/cover/20220418104118.12878-1-p-mohan@ti.com/ [3] https://patchwork.kernel.org/project/linux-remoteproc/cover/20220418123004.9332-1-p-mohan@ti.com/ Thanks and Regards, Puranjay Mohan Puranjay Mohan (1): dt-bindings: net: Add ICSSG Ethernet Driver bindings Roger Quadros (1): net: ti: icssg-prueth: Add ICSSG ethernet driver .../bindings/net/ti,icssg-prueth.yaml | 174 ++ drivers/net/ethernet/ti/Kconfig | 15 + drivers/net/ethernet/ti/Makefile | 3 + drivers/net/ethernet/ti/icssg_classifier.c | 375 ++++ drivers/net/ethernet/ti/icssg_config.c | 443 ++++ drivers/net/ethernet/ti/icssg_config.h | 200 ++ drivers/net/ethernet/ti/icssg_ethtool.c | 301 +++ drivers/net/ethernet/ti/icssg_mii_cfg.c | 104 + drivers/net/ethernet/ti/icssg_mii_rt.h | 151 ++ drivers/net/ethernet/ti/icssg_prueth.c | 1891 +++++++++++++++++ drivers/net/ethernet/ti/icssg_prueth.h | 247 +++ drivers/net/ethernet/ti/icssg_switch_map.h | 183 ++ include/linux/pruss.h | 1 + 13 files changed, 4088 insertions(+) create mode 100644 Documentation/devicetree/bindings/net/ti,icssg-prueth.yaml create mode 100644 drivers/net/ethernet/ti/icssg_classifier.c create mode 100644 drivers/net/ethernet/ti/icssg_config.c create mode 100644 drivers/net/ethernet/ti/icssg_config.h create mode 100644 drivers/net/ethernet/ti/icssg_ethtool.c create mode 100644 drivers/net/ethernet/ti/icssg_mii_cfg.c create mode 100644 drivers/net/ethernet/ti/icssg_mii_rt.h create mode 100644 drivers/net/ethernet/ti/icssg_prueth.c create mode 100644 drivers/net/ethernet/ti/icssg_prueth.h create mode 100644 drivers/net/ethernet/ti/icssg_switch_map.h -- 2.17.1