You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
René Mayrhofer e457d22261 Make GBit switch work on RB2011
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 <rene@mayrhofer.eu.org>
7 years ago
..
Kconfig.openwrt Revert "ar71xx: Add support for Teltonika RUT900" 7 years ago
Makefile Revert "ar71xx: Add support for Teltonika RUT900" 7 years ago
dev-ap9x-pci.c ar71xx: add correct named default wireless led by using platform leds 7 years ago
dev-ap9x-pci.h ar71xx: add correct named default wireless led by using platform leds 7 years ago
dev-dsa.c ar71xx: add v3.18 support 9 years ago
dev-dsa.h ar71xx: merge files-3.2 to files 12 years ago
dev-eth.c ar71xx: fix ethernet PLL configuration for QCA956x 7 years ago
dev-eth.h ar71xx: QCA956X: add missing register 7 years ago
dev-m25p80.c ar71xx: clean up spi controller related patches 8 years ago
dev-m25p80.h ar71xx: clean up spi controller related patches 8 years ago
dev-nfc.c ar71xx: ar934x_nfc: fix memory initialization bug 10 years ago
dev-nfc.h ar71xx: add ath79_nfc_set_ecc_mode helper 11 years ago
mach-a60.c ar71xx: add kernel support for the OpenMesh A40 board 7 years ago
mach-alfa-ap96.c ar71xx: clean up spi controller related patches 8 years ago
mach-alfa-ap120c.c ar71xx: cosmetic fix of alfa ap120c/ap96 ordering 8 years ago
mach-alfa-nx.c ar71xx: remove the built-in MTD maps of several boards 12 years ago
mach-all0258n.c ar71xx: remove the built-in MTD map of the ALL0258N 12 years ago
mach-all0315n.c ar71xx: all0315n: fix ethernet according to vendor info 12 years ago
mach-antminer-s1.c ar71xx: Bitmain Antminer S1/S3 set GPIO for USB Power 9 years ago
mach-antminer-s3.c ar71xx: Bitmain Antminer S1/S3 set GPIO for USB Power 9 years ago
mach-antrouter-r1.c V2 ar71xx : Add Support for the Bitmain Antrouter R1 8 years ago
mach-ap90q.c ar71xx: add support for YunCore CPE830 8 years ago
mach-ap96.c ar71xx: remove the built-in MTD map of the AP96 board 12 years ago
mach-ap132.c ar71xx: add kernel support for Atheros AP132 Reference Board 11 years ago
mach-ap143.c ar71xx: add support for ap143 9 years ago
mach-ap147.c ar71xx: Add support for AP147-010 reference board 9 years ago
mach-ap152.c ar71xx: fix ap152 support 8 years ago
mach-ap531b0.c ar71xx: add support for Rockeetech AP531B0 7 years ago
mach-archer-c7.c Revert "ar71xx: fix Archer C7 LED colour names" 7 years ago
mach-archer-c59-v1.c ar71xx: fix lan ports on archer C59 and C60 7 years ago
mach-archer-c60-v1.c ar71xx: fix lan ports on archer C59 and C60 7 years ago
mach-arduino-yun.c ar71xx: Arduino Yun board 'WLAN RST' button support 8 years ago
mach-aw-nr580.c ar71xx: merge files-3.2 to files 12 years ago
mach-bhr-4grv2.c ar71xx: add support for Buffalo BHR-4GRV2 8 years ago
mach-bhu-bxu2000n2-a.c ar71xx: add kernel support for BHU Networks BXU2000n-2 A1 board 11 years ago
mach-bsb.c ar71xx: Add support for Black Swift 9 years ago
mach-c55.c ar71xx: clean up spi controller related patches 8 years ago
mach-c60.c ar71xx: clean up spi controller related patches 8 years ago
mach-cap324.c ar71xx: Kernel board definition for PowerCloud CAP324 9 years ago
mach-cap4200ag.c ar71xx: add support for the Senao CAP4200AG board 12 years ago
mach-carambola2.c ar71xx: update Carambola2 platform data 10 years ago
mach-cf-e316n-v2.c ar71xx: add support for COMFAST CF-E380AC v1 and v2 8 years ago
mach-cpe510.c ar71xx: add support for TP-Link WBS210/510 7 years ago
mach-cpe870.c ar71xx: add support for YunCore CPE870 8 years ago
mach-cr3000.c ar71xx: Kernel board definition for PowerCloud CR3000 9 years ago
mach-cr5000.c ar71xx: Kernel board definition for PowerCloud CR5000 9 years ago
mach-dap-2695-a1.c ar71xx: add support for D-Link DAP-2695 rev. A1 8 years ago
mach-dgl-5500-a1.c add D-link DGL-5500 A1 support 10 years ago
mach-dhp-1565-a1.c ar71xx: Added support for D-link DHP-1565 rev. A1 10 years ago
mach-dir-505-a1.c ar71xx: dir-505: fix reset button gpio active_low value 9 years ago
mach-dir-600-a1.c ar71xx: Add support for D-Link EBR-2310 Rev. C 7 years ago
mach-dir-615-c1.c ar71xx: fix D-Link DIR-615 rev. C1 WLAN MAC address 9 years ago
mach-dir-615-i1.c ar71xx: add support for D-Link DIR-615 rev. Ix board 9 years ago
mach-dir-825-b1.c ar71xx: dir-825-b1: use ath79_parse_ascii_mac helper 11 years ago
mach-dir-825-c1.c ar71xx: fix WLAN 5 GHz LED init on dir-825-c1 11 years ago
mach-dir-869-a1.c ar71xx: add kernel support for D-Link DIR-869 A1 8 years ago
mach-dlan-hotspot.c ar71xx: add support for the devolo dLAN Hotspot 9 years ago
mach-dlan-pro-500-wp.c ar71xx: add support for the devolo dLAN pro 500 Wireless+ 9 years ago
mach-dlan-pro-1200-ac.c ar71xx: fix AR8337 switch initialization on dLAN pro 1200+ WiFi ac 8 years ago
mach-domywifi-dw33d.c ar71xx: Add support to DomyWifi DW33D 8 years ago
mach-dr344.c ar71xx: fix Wallys DR344 ethernet MAC addresses offsets 7 years ago
mach-dr531.c ar71xx: add support for Wallys DR531 8 years ago
mach-dragino2.c ar71xx: Fix LED definitions for the DRAGINO2 board 10 years ago
mach-e2100l.c ar71xx: Added missing support for Linksys E2100L 8 years ago
mach-eap120.c ar71xx: Add support to TP-Link EAP120 8 years ago
mach-eap300v2.c ar71xx: add kernel support for the EnGenius EAP300 v2 board 10 years ago
mach-eap7660d.c ar71xx: add ALL0305 board alias 12 years ago
mach-el-m150.c ar71xx: Fix the sys LEDs on the EasyLink M150 and mini 10 years ago
mach-el-mini.c ar71xx: Fix the sys LEDs on the EasyLink M150 and mini 10 years ago
mach-epg5000.c Revert "ar71xx: Allow to set the RXDV, RXD, TXD, TXE delays for QCA955x" 8 years ago
mach-esr900.c Revert "ar71xx: Allow to set the RXDV, RXD, TXD, TXE delays for QCA955x" 8 years ago
mach-esr1750.c Revert "ar71xx: Allow to set the RXDV, RXD, TXD, TXE delays for QCA955x" 8 years ago
mach-ew-dorin.c ar71xx: add status led found on ew-dorin boards 9 years ago
mach-f9k1115v2.c Revert "ar71xx: Allow to set the RXDV, RXD, TXD, TXE delays for QCA955x" 8 years ago
mach-gl-ar150.c ar71xx: fix LED names for GL Innovations boards 8 years ago
mach-gl-ar300.c ar71xx: fix LED names for GL Innovations boards 8 years ago
mach-gl-ar300m.c ar71xx: set status led for the gl-* boards 7 years ago
mach-gl-domino.c ar71xx: fix LED names for GL Innovations boards 8 years ago
mach-gl-inet.c ar71xx: fix LED names for GL Innovations boards 8 years ago
mach-gl-mifi.c ar71xx: set status led for the gl-* boards 7 years ago
mach-gs-minibox-v1.c ar71xx: Add Gainstrong MiniBox v1.0 support to trunk 9 years ago
mach-gs-oolite.c ar71xx: oolite: the buttons are not active_low 10 years ago
mach-hiveap-121.c ar71xx: add support for Aerohive AP-121 7 years ago
mach-hiwifi-hc6361.c ar71xx: add kernel support for HiWiFi HC6361. 10 years ago
mach-hornet-ub.c Fix (invert/revert) Hornet-UB WPS LED state 9 years ago
mach-ja76pf.c ar71xx: add support for the jjPlus JA76PF2 board 12 years ago
mach-jwap003.c ar71xx: merge files-3.2 to files 12 years ago
mach-jwap230.c ar71xx: add support for jjPlus JWAP230 8 years ago
mach-lima.c ar71xx: add support for 8devices Lima board 7 years ago
mach-mc-mac1200r.c ar71xx: Add support for MERCURY MAC1200R 9 years ago
mach-mr12.c ar71xx: add mac partition to the MR12/MR16 8 years ago
mach-mr16.c ar71xx: add mac partition to the MR12/MR16 8 years ago
mach-mr18.c Revert "ar71xx: Allow to set the RXDV, RXD, TXD, TXE delays for QCA955x" 8 years ago
mach-mr600.c ar71xx: Fix 2.4G WiFi LED of the OpenMesh MR600 board 10 years ago
mach-mr900.c ar71xx: Use private version of ath79_setup_qca955x_eth_cfg for MR900 8 years ago
mach-mr1750.c ar71xx: add kernel support for the OpenMesh MR1750v2 8 years ago
mach-mynet-n600.c ar71xx: my net n600: simplify LNA GPIO setup 11 years ago
mach-mynet-n750.c ar71xx: mynet-n750: define LEDs connected to the AR8327 switch 10 years ago
mach-mynet-rext.c ar71xx: fix 100/10mbps ethernet link issues on mynet range extender 9 years ago
mach-mzk-w04nu.c ar71xx: merge files-3.2 to files 12 years ago
mach-mzk-w300nh.c ar71xx: merge files-3.2 to files 12 years ago
mach-nbg460n.c ar71xx: remove __dev{init,exit} annotations from kernel files 11 years ago
mach-nbg6716.c Revert "ar71xx: Allow to set the RXDV, RXD, TXD, TXE delays for QCA955x" 8 years ago
mach-om2p.c ar71xx: add kernel support for the OpenMesh OM2Pv4/-HSv4 7 years ago
mach-om5p.c ar71xx: Increase RXD/RDV to 2 on OM5P-AN 9 years ago
mach-om5pac.c ar71xx: add kernel support for the OpenMesh OM5P-AC board 8 years ago
mach-om5pacv2.c ar71xx: fix build error 8 years ago
mach-omy-g1.c ar71xx: Add support for the OMYlink OMY-G1 8 years ago
mach-omy-x1.c ar71xx: Add support for the OMYlink OMY-X1 8 years ago
mach-onion-omega.c ar71xx: add support for Onion Omega 9 years ago
mach-pb42.c ar71xx: merge files-3.2 to files 12 years ago
mach-pqi-air-pen.c ar71xx: add support for PQI Air Pen 7 years ago
mach-qihoo-c301.c ar71xx: qihoo: define flash variable as static 9 years ago
mach-r602n.c ar71xx: add support for P&W R602N and CPE505N 7 years ago
mach-r6100.c Netgear R6100 support 10 years ago
mach-rambutan.c ar71xx: add support for 8devices Rambutan development board 7 years ago
mach-rb4xx.c ar71xx: fix build error 8 years ago
mach-rb91x.c ar71xx: clean up spi controller related patches 8 years ago
mach-rb95x.c ar71xx: convert mikrotik routerboard support to UBI 7 years ago
mach-rb750.c ar71xx: Detect USB port on Mikrotik RB750UP 7 years ago
mach-rb922.c ar71xx: convert mikrotik routerboard support to UBI 7 years ago
mach-rb2011.c Make GBit switch work on RB2011 7 years ago
mach-rbspi.c ar71xx: add support for MikroTik hAP ac 7 years ago
mach-rbsxtlite.c ar71xx: fix machine name for several devices 7 years ago
mach-re450.c ar71xx: add support for TP-Link RE450 8 years ago
mach-rw2458n.c ar71xx: rw2458n - Use eeprom (art) from wifi card 11 years ago
mach-sc300m.c ar71xx: add Abicom SC300M support 7 years ago
mach-sc450.c ar71xx: add Abicom SC450 support 7 years ago
mach-sc1750.c ar71xx: add Abicom SC1750 support 7 years ago
mach-smart-300.c add support for the NC-LINK SMART-300 10 years ago
mach-som9331.c ar71xx: add support for OpenEmbed SOM9331 8 years ago
mach-sr3200.c ar71xx: add support for YunCore SR3200 and XD3200 8 years ago
mach-tellstick-znet-lite.c ar71xx: add support for the Telldus TellStick ZNet Lite 8 years ago
mach-tew-632brp.c ar71xx: TEW632BRP has buttons 'active low', fix board config 11 years ago
mach-tew-673gru.c ar71xx: tew-673gru: use ath79_parse_ascii_mac helper 11 years ago
mach-tew-712br.c ar71xx: tew-712br: use ath79_parse_ascii_mac helper 11 years ago
mach-tew-732br.c ar71xx: add kernel support for the TEW-732BR board 11 years ago
mach-tew-823dru.c Revert "ar71xx: Allow to set the RXDV, RXD, TXD, TXE delays for QCA955x" 8 years ago
mach-tl-mr3x20.c ar71xx: use gpio_request_one instead of ath79_set_usb_power_gpio 12 years ago
mach-tl-mr11u.c ar71xx: improve kernel support for the TL-MR3040 v2 11 years ago
mach-tl-mr13u.c ar71xx: Fix LED polarity for the TP-LINK TL-MR13U. 9 years ago
mach-tl-mr3020.c ar71xx: disable PHY_SWAP and PHY_ADDR_SWAP bits on TL-WR703N/MR3020/MR3040/MR11U boards 12 years ago
mach-tl-wa701nd-v2.c ar71xx: add support for TL-WA701ND v2 9 years ago
mach-tl-wa801nd-v3.c ar71xx: fix LEDs and sysupgrade support for TL-WA801ND v3 8 years ago
mach-tl-wa830re-v2.c ar71xx: added support for TL-WA830RE V2 10 years ago
mach-tl-wa901nd-v2.c ar71xx: merge files-3.2 to files 12 years ago
mach-tl-wa901nd-v4.c ar71xx: add TP-Link TL-WA901ND-v4 support 8 years ago
mach-tl-wa901nd.c ar71xx: fix tl-wa901nd buttons code 11 years ago
mach-tl-wa7210n-v2.c ar71xx: TL-WA7210n v2 support 9 years ago
mach-tl-wax50re.c ar71xx: add support for TP-Link TL-WA850RE v2 7 years ago
mach-tl-wdr3320-v2.c ar71xx: add TP-LINK TL-WDR3320 v2 support 9 years ago
mach-tl-wdr3500.c ar71xx: fix ethernet LEDs on the TL-WDR3500 11 years ago
mach-tl-wdr4300.c ar71xx: fix TP-LINK TL-WDR3600/4300 RFKILL switch positions 9 years ago
mach-tl-wdr6500-v2.c ar71xx: register only the built-in switch MDIO bus, hook up eth0 to it, should hopefully fix regression reported in #21520 8 years ago
mach-tl-wpa8630.c ar71xx: fix machine name for several devices 7 years ago
mach-tl-wr703n.c ar71xx: fix typo in tl-wr710n mac setup (fixes #16469) 10 years ago
mach-tl-wr720n-v3.c ar71xx: add support for TL-WR720N-v4. 9 years ago
mach-tl-wr741nd-v4.c ar71xx: add support for WIFI button on tp-link tl-mr3220v2 11 years ago
mach-tl-wr741nd.c ar71xx: merge files-3.2 to files 12 years ago
mach-tl-wr802n-v2.c ar71xx: add support for TL-WR802N Version 2 7 years ago
mach-tl-wr802n.c ar71xx: add support for TP-Link WR802N v1 8 years ago
mach-tl-wr810n.c ar71xx: add TP-Link TL-WR810N support 8 years ago
mach-tl-wr841n-v8.c ar71xx: add support for the TP-LINK TL-WR941ND v5 9 years ago
mach-tl-wr841n-v9.c ar71xx: add support for TP-LINK TL-WR840N v2 and v3 7 years ago
mach-tl-wr841n.c ar71xx: merge files-3.2 to files 12 years ago
mach-tl-wr940n-v4.c ar71xx: add support for TP-LINK TL-WR940N v4 8 years ago
mach-tl-wr941nd-v6.c ar71xx: add support for TP-LINK TL-WR941ND v6 (international version) 9 years ago
mach-tl-wr941nd.c ar71xx: merge files-3.2 to files 12 years ago
mach-tl-wr1041n-v2.c generic: ar8216: rename cpuport_cfg to port0_cfg in ar8327_platform_data 12 years ago
mach-tl-wr1043nd-v2.c Revert "ar71xx: Allow to set the RXDV, RXD, TXD, TXE delays for QCA955x" 8 years ago
mach-tl-wr1043nd-v4.c ar71xx: add support for TP-LINK WR1043ND v4 8 years ago
mach-tl-wr1043nd.c ar71xx: init switch hw_reset on the TL-WR1043ND board 12 years ago
mach-tl-wr2543n.c ar71xx: fix ath9k default LED changes fallout 7 years ago
mach-tube2h.c ar71xx: Ext LNA patch for TUBE2H and HORNET-UB targets 9 years ago
mach-ubnt-unifiac.c ar71xx: add support for UniFi-AC-Mesh 7 years ago
mach-ubnt-xm.c ar71xx: set GPIO reset line for Ubiquiti NanoStation Loco XW 8 years ago
mach-ubnt.c ar71xx: merge files-3.2 to files 12 years ago
mach-weio.c ar71xx: Add WeIO Board Support 9 years ago
mach-whr-hp-g300n.c ar71xx: remove the built-in MTD maps of several boards 12 years ago
mach-wlae-ag300n.c ar71xx: Buffalo WLAE-AG300N initial support 12 years ago
mach-wlr8100.c Revert "ar71xx: Allow to set the RXDV, RXD, TXD, TXE delays for QCA955x" 8 years ago
mach-wndap360.c ar71xx: fix machine name for several devices 7 years ago
mach-wndr3700.c ar71xx: use netgear prefix for WNDR3700 LED names 11 years ago
mach-wndr4300.c ar71xx: WNDR4300: Fix switch HW controlled LEDs 7 years ago
mach-wnr2000-v3.c ar71xx: add correct named default wireless led by using platform leds 7 years ago
mach-wnr2000-v4.c ar71xx: do general formatting on wnr2000-v4 9 years ago
mach-wnr2000.c ar71xx: Add support for Netgear WNR2000v1 8 years ago
mach-wnr2200.c ar71xx: add correct named default wireless led by using platform leds 7 years ago
mach-wp543.c ar71xx: wp543: set active_low flag for the buttons 10 years ago
mach-wpe72.c ar71xx: compex wpe72 add space to include statement 9 years ago
mach-wpj342.c ar71xx: add support for Compex WPJ342 8 years ago
mach-wpj344.c ar71xx: fix ethernet on wpj344 board 8 years ago
mach-wpj531.c ar71xx: wpj531: fix GPIOs for LED 7 years ago
mach-wpj558.c Revert "ar71xx: Allow to set the RXDV, RXD, TXD, TXE delays for QCA955x" 8 years ago
mach-wpj563.c ar71xx: Compex WPJ563 support 7 years ago
mach-wrt160nl.c ar71xx: rename wrt160nl's trx partition parser 9 years ago
mach-wrt400n.c Revert "ar71xx: wrt400n: lift size limit on kernel and rootfs part" 7 years ago
mach-wrtnode2q.c ar71xx: add WRTnode2Q support 8 years ago
mach-wzr-450hp2.c Revert "ar71xx: Allow to set the RXDV, RXD, TXD, TXE delays for QCA955x" 8 years ago
mach-wzr-hp-ag300h.c treewide: replace nbd@openwrt.org with nbd@nbd.name 8 years ago
mach-wzr-hp-g300nh.c ar71xx: use uimage split for WZR-HP-G300NH 11 years ago
mach-wzr-hp-g300nh2.c ar71xx: fix ath9k default LED changes fallout 7 years ago
mach-wzr-hp-g450h.c ar71xx: fix ath9k default LED changes fallout 7 years ago
mach-z1.c ar71xx: add support for Cisco Meraki Z1 Cloud Managed Teleworker Gateway 8 years ago
mach-zbt-we1526.c ar71xx: add support for Zbtlink ZBT-WE1526 8 years ago
mach-zcn-1523h.c ar71xx: don't use the unknown LED on the ZCN-1523-5 board 12 years ago
machtypes.h Revert "ar71xx: Add support for Teltonika RUT900" 7 years ago
nvram.c ar71xx: allow ath79_nvram_parse_mac_addr parsing mac with quotes 10 years ago
nvram.h ar71xx: merge files-3.2 to files 12 years ago
pci-ath9k-fixup.c ar71xx: allow pci calibration fixup to work with ar9344 9 years ago
pci-ath9k-fixup.h ar71xx: merge files-3.2 to files 12 years ago
routerboot.c ar71xx: routerboot: export extended wlan data via sysfs 9 years ago
routerboot.h ar71xx: routerboot: add support for extended radio data 9 years ago