Subject: Re: DSA support for Marvell 88e6065 switch

From: Pavel Machek <[email-masked]>
Date: Thu, 22 Nov 2018 14:21:23 +0100

On Mon 2018-11-19 04:25:35, Andrew Lunn wrote:
> > If I wanted it to work, what do I need to do? AFAICT phy autoprobing
> > should just attach it as soon as it is compiled in?
> 
> Nope. It is a switch, not a PHY. Switches are never auto-probed
> because they are not guaranteed to have ID registers.
> 
> You need to use the legacy device tree binding. Look in
> Documentation/devicetree/bindings/net/dsa/dsa.txt, section Deprecated
> Binding. You can get more examples if you checkout old kernels. Or
> kirkwood-rd88f6281.dtsi, the dsa { } node which is disabled.

Thanks; I ported code from mv88e66xx in the meantime, and switch
appears to be detected.

But I'm running into problems with tagging code, and I guess I'd like
some help understanding.

tag_trailer: allocates new skb, then copies data around.

tag_qca: does dev->stats.tx_packets++, and reuses existing skb.

tag_brcm: reuses existing skb.

Is qca wrong in adjusting the statistics? Why does trailer allocate
new skb?

6065 seems to use 2-byte header between "SFD" and "Destination
address" in the ethernet frame. That's ... strange place to put
header, as addresses are now shifted. I need to put ethernet in
promisc mode (by running tcpdump) to get data moving.. and can not
figure out what to do in tag_...

Can I model it after tag_qca.c (simplified, because addresses will not
need to be memmoved) or is there some special consideration I am
missing?

Thanks,
								Pavel

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html