From: René Mayrhofer <r...@mayrhofer.eu.org>

This change is required to make the GBit switch work on my Mikrotik Routerboard 
RB2011UiAS-RM, and I assume that the other RB2011 variants are exactly the same 
in terms of the switch. I have tested the board without and with the patch and 
confirm that the GBit ports are not supported at all (i.e. no communication 
works) with the current version in trunk and that everything works with the 
patch applied. The test box has been running for a few days with the patch 
applied, and does not show any performance problems in a test setting. I have 
not used it with LEDE in production so far, but with a previous turnk version 
of OpenWRT for many years - with the same patch applied. I therefore have good 
indication that it is stable.

For the record, the switch chip on my test box is identified as
        switch0: Atheros AR8327 rev. 4 switch registered on ag71xx-mdio.0

The value 0x6f000000 has been taken from the table at 
https://wiki.openwrt.org/toh/mikrotik/rb2011uias with the previous discussion 
thread still online at 
https://lists.openwrt.org/pipermail/openwrt-devel/2014-December/029949.html.
One definite improvement from the older OpenWRT trunk version I have been 
running in production and current LEDE trunk is that the SFP interface can be 
kept in the default configuration without excessive kernel messages about it 
constantly going up and down. I have not yet tested an actual SFP module, 
though.

Performance seems to be reasonable. Routing between two GBit ports on that 
switch separated by different VLANs with the default firewall ruleset (and one 
additional rule two allow traffic between the VLANs), but without NAT, iperf3 
results are:
        [ ID] Interval           Transfer     Bandwidth       Retr
        [  4]   0.00-10.00  sec   508 MBytes   426 Mbits/sec  102             
sender
        [  4]   0.00-10.00  sec   506 MBytes   425 Mbits/sec                  
receiver
With a connection going through NAT (also 2 ports on the same GBit switch, same 
ruleset, but NAT active), routing performance drops to around 250 MBit/s.
(Note that RouterOS achieves beyond 900 MBit/s on the same hardware with the 
default rule set and the FastTrack rule active even for NAT, see 
https://wiki.mikrotik.com/index.php?title=Manual:IP/Fasttrack and 
http://www.mikrotik.com/download/share/FastTrack.pdf).

Summarizing, I strongly recommend to apply this patch in trunk, so that the 
GBit switch chip rev. 4 can be supported upstream in the next LEDE release 
(hopefully soon).

Signed-off-by: René Mayrhofer <r...@mayrhofer.eu.org>
---
 target/linux/ar71xx/files/arch/mips/ath79/mach-rb2011.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-rb2011.c 
b/target/linux/ar71xx/files/arch/mips/ath79/mach-rb2011.c
index 0db359c..6e49839 100644
--- a/target/linux/ar71xx/files/arch/mips/ath79/mach-rb2011.c
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-rb2011.c
@@ -270,6 +270,7 @@ static int __init rb2011_setup(u32 flags)
        rb2011_nand_init();
 
        ath79_setup_ar934x_eth_cfg(AR934X_ETH_CFG_RGMII_GMAC0 |
+                                  AR934X_ETH_CFG_RXD_DELAY |
                                   AR934X_ETH_CFG_SW_ONLY_MODE);
 
        ath79_register_mdio(1, 0x0);
@@ -283,7 +284,7 @@ static int __init rb2011_setup(u32 flags)
        ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RGMII;
        ath79_eth0_data.phy_mask = BIT(0);
        ath79_eth0_data.mii_bus_dev = &ath79_mdio0_device.dev;
-       ath79_eth0_pll_data.pll_1000 = 0x06000000;
+       ath79_eth0_pll_data.pll_1000 = 0x6f000000;
 
        ath79_register_eth(0);
 
-- 
2.7.4


_______________________________________________
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev

Reply via email to