Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp2479003pxv; Sun, 11 Jul 2021 15:14:13 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwOoVg63fWAaQBCOCPmPcN5AljD9ZOBUSWyUIzi2DeTXB5tiXnxoy0l49+YIwxOaxfhVMTh X-Received: by 2002:a02:a595:: with SMTP id b21mr6194789jam.122.1626041653695; Sun, 11 Jul 2021 15:14:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626041653; cv=none; d=google.com; s=arc-20160816; b=ASw3QpoO5VKGNzxMmyJOJmhgwJ4NE9/SLzgndU/XQ2veHYE6fA5EAZucIy+v/rIvRo 97XIycOu9l/3Ir+KvOQ5MpaUPewVvZdQkRnb8pLLwFWM/dCJaf+OYYP4ZSF8KlECylTC s++uSXlBzF/XxG//6dwq9IVUJ/tBPlr0IoNhl/Aw7D6tBSnNGIOGxTRBgDEwGjPuPuUk wsxRP3zKh6qnr5B53IpSHjfvP5I3a+91MuaTI1/jUfNMia4xx40KcVayrHQiiFQnMAxm E1vAslYrIisgrnsFhBndeqP8iyylVaFiC8DvXaRG1rRHu5zkK8B6Gs8ascQ1ZNDN6fwW d5Lg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date; bh=GWIsyzCxaF/QrfKEHyhcA97GuzG4PLgv4/9EIqdIxsY=; b=Ym3zdGZOg91FkX4ciKHsjOn5imFPVtvSIQCCxosz4VdyZaAoFXHlzfWajJ6P0AnOLn ac2ufWuKeejqTzV2C6bY672bAnQXnUD/RiVkhS3Z5dei6/XhYDiaopLvyXcqFdO68pe/ vSbZEAaDMh2bHYXFmw9OCbKxRpYF4z5vFfQD12Z0gSn/yPxorLbM8UnTrtu8ddT/nUMp a0nzCmCVDTwu4MAJFRc1EVafqWgdro0y0Tm0EJ0sMkA4MHlR7dbX1/qu14aJ/Vpz07Gf qgOe3NOPxnmdXrEyzka0GJoPjINjG1EsqvwlmhDRuq/ANXa6OfMWxpTj1lGJBn+Y6PG/ XTTw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id x14si16339930jat.20.2021.07.11.15.14.00; Sun, 11 Jul 2021 15:14:13 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230198AbhGKWQQ (ORCPT + 99 others); Sun, 11 Jul 2021 18:16:16 -0400 Received: from relay2-d.mail.gandi.net ([217.70.183.194]:61429 "EHLO relay2-d.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229544AbhGKWQQ (ORCPT ); Sun, 11 Jul 2021 18:16:16 -0400 Received: (Authenticated sender: alexandre.belloni@bootlin.com) by relay2-d.mail.gandi.net (Postfix) with ESMTPSA id 0C4BC40004; Sun, 11 Jul 2021 22:13:24 +0000 (UTC) Date: Mon, 12 Jul 2021 00:13:24 +0200 From: Alexandre Belloni To: Colin Foster Cc: Vladimir Oltean , andrew@lunn.ch, vivien.didelot@gmail.com, f.fainelli@gmail.com, davem@davemloft.net, kuba@kernel.org, robh+dt@kernel.org, claudiu.manoil@nxp.com, UNGLinuxDriver@microchip.com, linux@armlinux.org.uk, netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [RFC PATCH v2 net-next 7/8] net: dsa: ocelot: felix: add support for VSC75XX control over SPI Message-ID: References: <20210710192602.2186370-1-colin.foster@in-advantage.com> <20210710192602.2186370-8-colin.foster@in-advantage.com> <20210710205205.blitrpvdwmf4au7z@skbuf> <20210711170927.GG2219684@euler> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20210711170927.GG2219684@euler> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 11/07/2021 10:09:27-0700, Colin Foster wrote: > On Sat, Jul 10, 2021 at 11:52:05PM +0300, Vladimir Oltean wrote: > > On Sat, Jul 10, 2021 at 12:26:01PM -0700, Colin Foster wrote: > > > +static const struct felix_info ocelot_spi_info = { > > > + .target_io_res = vsc7512_target_io_res, > > > + .port_io_res = vsc7512_port_io_res, > > > + .regfields = vsc7512_regfields, > > > + .map = vsc7512_regmap, > > > + .ops = &vsc7512_ops, > > > + .stats_layout = vsc7512_stats_layout, > > > + .num_stats = ARRAY_SIZE(vsc7512_stats_layout), > > > + .vcap = vsc7512_vcap_props, > > > + .num_mact_rows = 1024, > > > + > > > + /* The 7512 and 7514 both have support for up to 10 ports. The 7511 and > > > + * 7513 have support for 4. Due to lack of hardware to test and > > > + * validate external phys, this is currently limited to 4 ports. > > > + * Expanding this to 10 for the 7512 and 7514 and defining the > > > + * appropriate phy-handle values in the device tree should be possible. > > > + */ > > > + .num_ports = 4, > > > > Ouch, this was probably not a good move. > > felix_setup() -> felix_init_structs sets ocelot->num_phys_ports based on > > this value. > > If you search for ocelot->num_phys_ports in ocelot and in felix, it is > > widely used to denote "the index of the CPU port module within the > > analyzer block", since the CPU port module's number is equal to the > > number of the last physical port + 1. If VSC7512 has 10 ports, then the > > CPU port module is port 10, and if you set num_ports to 4 you will cause > > the driver to misbehave. > > Yes, this is part of my concern with the CPU / NPI module mentioned > before. In my hardware, I'd have port 0 plugged to the external CPU. In > Ocelot it is the internal bus, and in Felix it is the NPI. In this SPI > design, does the driver lose significant functionality by not having > access to those ports? > From the switchdev driver perspective, the CPU port is special because it is the one allowing to send and receive frames to/from the exposed ethernet interfaces. However, the goal is definitively to use that as little as possible (especially since as implemented right now, throughput is about 20Mbps). I didn't have a look at the DSA implementation but I wouldn't expect the NPI port to be that special. > In my test setup (and our expected production) we'd have port 0 > connected to the external chip, and ports 1-3 exposed. Does Ocelot need > to be modified to allow a parameter for the CPU port? > DSA is what allows you to select which of the port is the port connected to the BBB (this is the CPU port in DSA parlance). This is what you see in the example in Documentation/devicetree/bindings/net/dsa/ocelot.txt -- Alexandre Belloni, co-owner and COO, Bootlin Embedded Linux and Kernel engineering https://bootlin.com