Hi Bjorn,

On 30/11/18 10:16 pm, Bjørn Mork wrote:
g...@kernel.org writes:

I have been working towards supporting the MT7530 switch as used in the
MediaTek MT7621 SoC. Unlike the MediaTek MT7623 the MT7621 is built around
a dual core MIPS CPU architecture. But underneath it is what appears to
be the same 7530 switch.

Great!  Good to see someone pushing this idea forward.

The following 3 patches are more of an RFC than anything. They allow
use of the mt7530 dsa driver on this device - though with some issues
still to resolve. The primary change required is to not use the 7623
specific clock and regulator setup - none of that applies when using
the 7621 (and maybe other devices?). The other change required is to
set the 7530 MFC register CPU port number and enable bit.

The unresolved issues I still have appear to be more related to the
MT7621 ethernet driver (drivers/staging/mt7621-eth/*). I am hoping
someone might have some ideas on these. I don't really have any good
documentation on the ethernet devices on the 7621, so I am kind of
working in the dark here.

No offense, but the mt7621-eth driver in staging is horrible.  What both
René and I have had some success with is adapting the mtk_eth_soc driver
already in drivers/net/ethernet/mediatek/.  Yes, I know this is supposed
to be for other SoCs, but the basic design is obviously the same.

Yes, that makes a lot of sense. I have only been working with the
linux mainline mt7621 staging driver so far for this mt7530 work.
(I started trying to make this work with linux 4.19).


I have had some success with a first hackish attemt based on OpenWrt.
You can find the early tree here, but note that my focus was basically
getting one specific MT7621 board up and running:
https://github.com/bmork/LEDE/tree/mt7621-with-mainline-eth-driver

Thats great, thanks for the pointer, I'll have a close look at that.


This patch has most of the necessary changes to enable that driver for
MT7621:
https://github.com/bmork/LEDE/commit/3293bc63f5461ca1eb0bbc4ed90145335e7e3404

Not a big deal, as you can see.  There is of course a reason I didn't
submit this here yet: It is by no means finished...  But it works. And I
have both GMACs working with this driver, which was my primary goal.

1. TX packets are not getting an IP header checksum via the normal
    off-loaded checksumming when in DSA mode. I have to switch off
    NETIF_F_IP_CSUM, so the software stack generates the checksum.
    That checksum offloading works ok when not using the 7530 DSA driver.

Hmm.  How do I test this?

For me every transmitted packet had the wrong IP header checksum.
Every packet I received at the other end of the wire (dumped with
tcpdump) showed up with wrong header checksum. I am guessing you didn't
see this behavior - you can't really miss it :-)


2. Maximal sized RX packets get silently dropped. So receive side packets
    that are large (perfect case is the all-but-last packets in a fragemented
    larger packet) appear to be dropped at the mt7621 ethernet MAC level.
    The 7530 MIB switch register counters show receive packets at the physical
    switch port side and at the CPU switch port - but I get no packets
    received or errors in the 7621 ethernet MAC. If I set the mtu of the
    server at the other end a little smaller (a few bytes is enough) then
    I get all the packets through. It seems like the DSA/VLAN tag bytes
    are causing a too large packet to get silently dropped somewhere.

Are you referring to the configured MTU size or some other maximal size?
If MTU, then I don't seem to have this issue with the driver from
drivers/net/ethernet/mediatek/.

I was referring to the mtu on the system at the other end of the wire.
For me that was my development PC (just a xubuntu 18.04, x86 machine).
If I reduced it there from the default mtu of 1500 I could get packets
to be received on the mt7621. The behavior was obvious to see with large
sent packets (something simple like ping -s 2000), the first fragment was
silently dropped bu the second fragment would get through.

Anyway, I will try out the changes you have for the 
drivers/net/ethernet/mediatek
driver, they sound very promising.

Thanks
Greg


Reply via email to