From: Artur Rojek <contact@artur-rojek.eu>
To: Andrew Lunn <andrew@lunn.ch>
Cc: Rob Landley <rob@landley.net>, Jeff Dionne <jeff@coresemi.io>,
John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>,
Geert Uytterhoeven <geert+renesas@glider.be>,
Andrew Lunn <andrew+netdev@lunn.ch>,
"David S . Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
netdev@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 3/3] net: j2: Introduce J-Core EMAC
Date: Sat, 16 Aug 2025 01:25:36 +0200 [thread overview]
Message-ID: <7a4154eef1cd243e30953d3423e97ab1@artur-rojek.eu> (raw)
In-Reply-To: <fc6ed96e-2bab-4f2f-9479-32a895b9b1b2@lunn.ch>
On 2025-08-16 00:38, Andrew Lunn wrote:
> On Fri, Aug 15, 2025 at 11:14:08PM +0200, Artur Rojek wrote:
>> On 2025-08-15 22:52, Artur Rojek wrote:
>> > On 2025-08-15 22:16, Andrew Lunn wrote:
>> >
>> > Hi Andrew,
>> > thanks for the review!
>> >
>> > > > +static irqreturn_t jcore_emac_irq(int irq, void *data)
>> > > > +{
>> > > > + struct jcore_emac *priv = data;
>> > > > + struct net_device *ndev = priv->ndev;
>> > > > + struct sk_buff *skb;
>> > > > + struct {
>> > > > + int packets;
>> > > > + int bytes;
>> > > > + int dropped;
>> > > > + int crc_errors;
>> > > > + } stats = {};
>> > > > + unsigned int status, pkt_len, i;
>> > >
>> > > netdev uses 'reverse christmas tree' for local variables. They should
>> > > be sorted longest to shortest. This sometimes means you need to move
>> > > assignments into the body of the function, in this case, ndev.
>>
>> Should I move the struct stats members into stand alone variables as
>> well? Or is below sorting acceptable with regards to stats vs skb:
>
> I would pull the structure definition out of the function. Then just
> create one instance of the structure on the stack.
Makes sense, thanks.
>
>> > > What support is there for MDIO? Normally the MAC driver would not be
>> > > setting the carrier status, phylink or phylib would do that.
>> >
>> > From what I can tell, none. This is a very simple FPGA RTL
>> > implementation of a MAC, and looking at the VHDL, I don't see any MDIO
>> > registers.
>>
>> > Moreover, the MDIO pin on the PHY IC on my dev board also
>> > appears unconnected.
>>
>> I spoke too soon on that one. It appears to be connected through a
>> trace
>> that goes under the IC. Nevertheless, I don't think MDIO support is in
>> the IP core design.
>
> MDIO is actually two pins. MDC and MDIO.
>
> It might be there is a second IP core which implements MDIO. There is
> no reason it needs to be tightly integrated into the MAC. But it does
> make the MAC driver slightly more complex. You then need a Linux MDIO
> bus driver for it, and the DT for the MAC would include a phy-handle
> property pointing to the PHY on the MDIO bus.
>
> Is there an Ethernet PHY on your board?
Yes, it's an IC+ IP101ALF 10/100 Ethernet PHY [1]. It does have both MDC
and MDIO pins connected, however I suspect that nothing really
configures it, and it simply runs on default register values (which
allow for valid operation in 100Mb/s mode, it seems). I doubt there is
another IP core to handle MDIO, as this SoC design is optimized for
minimal utilization of FPGA blocks. Does it make sense to you that a MAC
could run without any access to an MDIO bus?
If neither Rob L. or Jeff clarify on this topic, I'll hook up a logic
analyzer to the MDIO bus and see if anything (e.g. loader firmware)
touches it at any point.
Cheers,
Artur
[1] https://www.micros.com.pl/mediaserver/info-uiip101a.pdf
>
> Andrew
next prev parent reply other threads:[~2025-08-15 23:25 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-15 19:48 [PATCH 0/3] J2 Ethernet MAC driver Artur Rojek
2025-08-15 19:48 ` [PATCH 1/3] dt-bindings: vendor-prefixes: Document J-Core Artur Rojek
2025-08-16 8:18 ` Krzysztof Kozlowski
2025-08-16 8:22 ` Geert Uytterhoeven
2025-08-16 9:40 ` Krzysztof Kozlowski
2025-08-16 10:34 ` Artur Rojek
2025-08-16 9:40 ` Krzysztof Kozlowski
2025-08-15 19:48 ` [PATCH 2/3] dt-bindings: net: Add support for J-Core EMAC Artur Rojek
2025-08-16 8:19 ` Krzysztof Kozlowski
2025-08-16 12:06 ` Artur Rojek
2025-08-18 6:43 ` Geert Uytterhoeven
2025-08-18 8:07 ` Krzysztof Kozlowski
2025-08-18 8:21 ` D. Jeff Dionne
2025-08-18 9:58 ` Krzysztof Kozlowski
2025-08-18 10:57 ` Geert Uytterhoeven
2025-08-18 13:41 ` Krzysztof Kozlowski
2025-08-18 13:55 ` D. Jeff Dionne
2025-08-20 21:39 ` Rob Herring
2025-08-21 21:02 ` Rob Landley
2025-08-18 15:03 ` Rob Landley
2025-08-15 19:48 ` [PATCH 3/3] net: j2: Introduce " Artur Rojek
2025-08-15 20:16 ` Andrew Lunn
2025-08-15 20:52 ` Artur Rojek
2025-08-15 21:14 ` Artur Rojek
2025-08-15 22:38 ` Andrew Lunn
2025-08-15 23:25 ` Artur Rojek [this message]
2025-08-16 0:18 ` Andrew Lunn
2025-08-16 13:40 ` Artur Rojek
2025-08-16 15:04 ` Andrew Lunn
2025-08-17 12:04 ` Artur Rojek
2025-08-17 18:09 ` Rob Landley
2025-08-17 19:39 ` Andrew Lunn
2025-08-17 4:29 ` D. Jeff Dionne
2025-08-17 11:50 ` Artur Rojek
2025-08-17 16:04 ` Rob Landley
2025-08-17 16:08 ` Andrew Lunn
2025-08-15 23:26 ` Stephen Hemminger
2025-08-16 11:24 ` kernel test robot
2025-08-19 21:09 ` kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7a4154eef1cd243e30953d3423e97ab1@artur-rojek.eu \
--to=contact@artur-rojek.eu \
--cc=andrew+netdev@lunn.ch \
--cc=andrew@lunn.ch \
--cc=conor+dt@kernel.org \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=edumazet@google.com \
--cc=geert+renesas@glider.be \
--cc=glaubitz@physik.fu-berlin.de \
--cc=jeff@coresemi.io \
--cc=krzk+dt@kernel.org \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=rob@landley.net \
--cc=robh@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®