From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A5FDAC433C1 for ; Mon, 22 Mar 2021 16:29:28 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 6AC766198D for ; Mon, 22 Mar 2021 16:29:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231857AbhCVQ24 (ORCPT ); Mon, 22 Mar 2021 12:28:56 -0400 Received: from vps0.lunn.ch ([185.16.172.187]:40674 "EHLO vps0.lunn.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231882AbhCVQ2c (ORCPT ); Mon, 22 Mar 2021 12:28:32 -0400 Received: from andrew by vps0.lunn.ch with local (Exim 4.94) (envelope-from ) id 1lONPl-00CQnP-F3; Mon, 22 Mar 2021 17:28:25 +0100 Date: Mon, 22 Mar 2021 17:28:25 +0100 From: Andrew Lunn To: Stefan Chulski Cc: "kuba@kernel.org" , "netdev@vger.kernel.org" , "thomas.petazzoni@bootlin.com" , "davem@davemloft.net" , Nadav Haklai , Yan Markman , "linux-kernel@vger.kernel.org" , "linux@armlinux.org.uk" , "mw@semihalf.com" , "rmk+kernel@armlinux.org.uk" , "atenart@kernel.org" , "rabeeh@solid-run.com" Subject: Re: [EXT] Re: [V2 net-next] net: mvpp2: Add reserved port private flag configuration Message-ID: References: <1615481007-16735-1-git-send-email-stefanc@marvell.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Mar 22, 2021 at 03:59:43PM +0000, Stefan Chulski wrote: > > > > 2. CM3 code has very small footprint requirement, we cannot > > > implement the complete Serdes and PHY infrastructure that kernel > > > provides as part of CM3 application. Therefore I would like to > > > continue relying on kernel configuration for that. > > > > How can that work? How does Linux know when CM3 has up'ed the > > interface? > > CM3 won't use this interface till ethtool priv flag was set, it can be done by communication over CM3 SRAM memory. > > > How does CM3 know the status of the link? > > CM3 has access to MAC registers and can read port status bit. > > > How does CM3 set its > > flow control depending on what auto-neg determines, etc? > > Same as PPv2 Packet Processor RX and TX flow don't really care about auto-neg, flow control, etc. > CM3 can ignore it, all this stuff handled in MAC layer. CM3 just polling RX descriptor ring and using TX ring for transmit. > > > > > > 3. In some cases we need to dynamically switch the port "user" > > > between CM3 and kernel. So I would like to preserve this > > > functionality. > > > > And how do you synchronize between Linux and CM3 so you know how is > > using it and who cannot use it? > > > > Andrew > > I can add CM3 SRAM update into ethtool priv flag callback, so CM3 won't use port till it was reserved to CM3. I really think you need to step back here and look at the bigger picture. If linux should not use the interface, it should not exist. If it does not exist, you cannot use ethtool on it. What you might want to consider is adding remoteproc support between Linux on the main processor and whatever you have on the CM3. You can use RPMsg to send requests back and forth between Linux and the CM3. It can request that the shared parts of the packet processor are set up for it. Linux can tell it when the link comes up? It can request how the PHY auto-neg should be configured. Andrew