[OpenWrt-Devel] [RFC 0/9] Using the mainline mtk-eth-soc driver for MT7621

John Crispin john at phrozen.org
Mon Oct 15 07:01:19 EDT 2018


On 15/10/2018 12:24, Bjørn Mork wrote:
> This is NOT READY for merge.
>
> ( This code can also be found in a github branch, in case you find that
>    easier to review:
>     https://github.com/bmork/LEDE/tree/mt7621-with-mainline-eth-driver )
>
>
> Hoping for some early feedback in case what I am doing here is
> completely out of the question. Which it very well might be...
>
> The primary questions are:
>   - Is it OK to rename the out-of-tree ramips ethernet directory to
>     avoid conflict with the mainline mediatek ethernet drivers?
>   - Is it OK to let the MT7621 use the mainline driver, while the rest
>     of the ramips target still use the out-of-tree
>   - If OK, is the method I use here fine, or is there some better way
>     to create a split of this type?
>
> My final goal is supporting MT7621 devices where the second ethernet
> gmac is connected to something else than the internal switch.  I have
> one such device, the ZyXEL WAP6805, with a Quantenna 5G module
> connected by RGMII to the MT7621.  Patches for this device is included
> primarily as an example of how the per-device driver change is done.
>
> Using the mainline driver also means converting to DSA, similar to the
> mediatek target.  So this also serves as an example of how that change
> can be done (The recent discussion about DSA configration was the
> trigger that made me submit this unfinished work now).  Note that this
> is for new devices only. Support for migrating existing configs to DSA
> is not (yet) part of this work.
>
>
> The first two patches in the series can be safely ignored by anyone
> not specifically interested in the ZyXEL WAP6805.  They only add basic
> support for this device.
>
> The 3rd patch renames the out-of-tree driver directory from "mediatek"
> to "ramips" to enable this driver to co-exist with the mainline
> driver.
>
> Patch 4 imports all OpenWRT patches from the mediatek target, on the
> assumption that the drivers for these two tagets should be kept in
> sync.
>
> Patch 5 has all the necessary magic to acually enable MT7621 support
> in the mainline driver.  Please note how few these changes really are.
>
> Patch 6 works around an issue where the ethernet devices would lock up
> due to a sofirq busy loop. I'll admit that I don't full understand the
> issue, or why it should affect this driver and not the out-of-tree
> version.  But I wonder of this is really the issue seen by a number of
> people reporting lockups and driver resets with MT7621?
>
> Patch 7 modifies the mt7621.dtsi to be compatible with the mainline
> driver, while keeping compatibility with the out-of-tree driver.
>
> Patch 8 adds the mainline driver configuration as a virtual package,
> enabling per-device switching from out-of-tree to mainline driver.
>
> Patch 9 shows how the changes necessary to switch the WAP6805 device
> to the mainline driver. This serves as documentation of the
> process. Most of the patch concerns adding DSA support to the DTS.


have you seen my staging tree ? 
https://git.openwrt.org/?p=openwrt/staging/blogic.git;a=shortlog;h=refs/heads/mt7621_dsa

i dont see the clk stuff in this series. do you have a "add mt7621 
support to the driver" patch ? i am failing to see that, maybe i am just 
blind...

sorry my patch is stuff needing annotation and a split up

     John




>
> Bjørn Mork (9):
>    wap6805: add Mitrastar uImage tool
>    wap6805: add board definition and DTS
>    ramips: rename out-of-tree net driver to "ralink"
>    mt7621: import mtk_eth_soc and mt7530 patches from the mediatek target
>    mt7621: enable mainline driver
>    mt7621: fix softirq loop
>    mt7621: update dtsi
>    mt7621 dsa: add virtual DSA kernel package
>    wap6805: use mtk-eth-soc driver with DSA
>
>   include/image-commands.mk                          |  10 +
>   .../linux/ramips/base-files/etc/board.d/02_network |   3 +
>   .../ramips/base-files/etc/board.d/03_gpio_switches |   3 +
>   target/linux/ramips/base-files/lib/ramips.sh       |   3 +
>   .../ramips/base-files/lib/upgrade/platform.sh      |   6 +-
>   target/linux/ramips/dts/WAP6805.dts                | 201 +++++
>   target/linux/ramips/dts/mt7621.dtsi                |   5 +-
>   .../drivers/net/ethernet/mediatek/Kconfig          |  70 --
>   .../drivers/net/ethernet/mediatek/Makefile         |  22 -
>   .../files-4.14/drivers/net/ethernet/ralink/Kconfig |  70 ++
>   .../drivers/net/ethernet/ralink/Makefile           |  22 +
>   .../net/ethernet/{mediatek => ralink}/esw_rt3050.c |   0
>   .../net/ethernet/{mediatek => ralink}/esw_rt3050.h |   2 +-
>   .../net/ethernet/{mediatek => ralink}/ethtool.c    |   0
>   .../net/ethernet/{mediatek => ralink}/ethtool.h    |   0
>   .../net/ethernet/{mediatek => ralink}/gsw_mt7620.c |   0
>   .../net/ethernet/{mediatek => ralink}/gsw_mt7620.h |   0
>   .../net/ethernet/{mediatek => ralink}/gsw_mt7621.c |   0
>   .../net/ethernet/{mediatek => ralink}/mdio.c       |   2 +-
>   .../net/ethernet/{mediatek => ralink}/mdio.h       |   2 +-
>   .../ethernet/{mediatek => ralink}/mdio_mt7620.c    |   0
>   .../ethernet/{mediatek => ralink}/mdio_rt2880.c    |   0
>   .../ethernet/{mediatek => ralink}/mdio_rt2880.h    |   0
>   .../net/ethernet/{mediatek => ralink}/mt7530.c     |   0
>   .../net/ethernet/{mediatek => ralink}/mt7530.h     |   0
>   .../ethernet/{mediatek => ralink}/mtk_debugfs.c    |   0
>   .../ethernet/{mediatek => ralink}/mtk_eth_soc.c    |  12 +-
>   .../ethernet/{mediatek => ralink}/mtk_eth_soc.h    |   0
>   .../ethernet/{mediatek => ralink}/mtk_offload.c    |   6 +-
>   .../ethernet/{mediatek => ralink}/mtk_offload.h    |   0
>   .../net/ethernet/{mediatek => ralink}/soc_mt7620.c |   0
>   .../net/ethernet/{mediatek => ralink}/soc_mt7621.c |   0
>   .../net/ethernet/{mediatek => ralink}/soc_rt2880.c |   0
>   .../net/ethernet/{mediatek => ralink}/soc_rt3050.c |   0
>   .../net/ethernet/{mediatek => ralink}/soc_rt3883.c |   0
>   target/linux/ramips/image/mt7621.mk                |  25 +-
>   target/linux/ramips/modules.mk                     |  26 +
>   target/linux/ramips/mt7620/config-4.14             |  14 +-
>   target/linux/ramips/mt7621/config-4.14             |  13 +-
>   target/linux/ramips/mt76x8/config-4.14             |  10 +-
>   .../0027-net-next-mediatek-fix-DQL-support.patch   |  92 ++
>   ...iatek-add-support-for-GMAC2-wired-to-ext-.patch |  26 +
>   .../ramips/patches-4.14/0033-dsa-multi-cpu.patch   | 268 ++++++
>   ...5-net-mediatek-disable-RX-VLan-offloading.patch |  47 +
>   ...diatek-honour-special-tag-bit-inside-RX-D.patch |  50 ++
>   ...diatek-enable-special-tag-indication-for-.patch |  41 +
>   ...a-mediatek-tell-GDMA-when-we-are-turning-.patch |  43 +
>   .../0046-net-mediatek-add-irq-delay.patch          |  21 +
>   .../0051-net-mediatek-increase-tx_timeout.patch    |  21 +
>   .../ramips/patches-4.14/0062-mdio-atomic.patch     |  14 +
>   .../ramips/patches-4.14/0063-atomic-sleep.patch    |  46 +
>   ...k-remove-superfluous-pin-setup-for-MT7622.patch | 102 +++
>   .../ramips/patches-4.14/2200-mt7621-eth-dsa.patch  | 121 +++
>   .../2201-mt7621-eth-fix-napi-int.patch             |  22 +
>   .../patches-4.14/700-add-net-ethernet-ralink.patch |  20 +
>   target/linux/ramips/rt288x/config-4.14             |  10 +-
>   target/linux/ramips/rt305x/config-4.14             |   8 +-
>   target/linux/ramips/rt3883/config-4.14             |  10 +-
>   tools/firmware-utils/Makefile                      |   1 +
>   tools/firmware-utils/src/mkmitrastar.c             | 958 +++++++++++++++++++++
>   60 files changed, 2307 insertions(+), 141 deletions(-)
>   create mode 100644 target/linux/ramips/dts/WAP6805.dts
>   delete mode 100644 target/linux/ramips/files-4.14/drivers/net/ethernet/mediatek/Kconfig
>   delete mode 100644 target/linux/ramips/files-4.14/drivers/net/ethernet/mediatek/Makefile
>   create mode 100644 target/linux/ramips/files-4.14/drivers/net/ethernet/ralink/Kconfig
>   create mode 100644 target/linux/ramips/files-4.14/drivers/net/ethernet/ralink/Makefile
>   rename target/linux/ramips/files-4.14/drivers/net/ethernet/{mediatek => ralink}/esw_rt3050.c (100%)
>   rename target/linux/ramips/files-4.14/drivers/net/ethernet/{mediatek => ralink}/esw_rt3050.h (95%)
>   rename target/linux/ramips/files-4.14/drivers/net/ethernet/{mediatek => ralink}/ethtool.c (100%)
>   rename target/linux/ramips/files-4.14/drivers/net/ethernet/{mediatek => ralink}/ethtool.h (100%)
>   rename target/linux/ramips/files-4.14/drivers/net/ethernet/{mediatek => ralink}/gsw_mt7620.c (100%)
>   rename target/linux/ramips/files-4.14/drivers/net/ethernet/{mediatek => ralink}/gsw_mt7620.h (100%)
>   rename target/linux/ramips/files-4.14/drivers/net/ethernet/{mediatek => ralink}/gsw_mt7621.c (100%)
>   rename target/linux/ramips/files-4.14/drivers/net/ethernet/{mediatek => ralink}/mdio.c (98%)
>   rename target/linux/ramips/files-4.14/drivers/net/ethernet/{mediatek => ralink}/mdio.h (96%)
>   rename target/linux/ramips/files-4.14/drivers/net/ethernet/{mediatek => ralink}/mdio_mt7620.c (100%)
>   rename target/linux/ramips/files-4.14/drivers/net/ethernet/{mediatek => ralink}/mdio_rt2880.c (100%)
>   rename target/linux/ramips/files-4.14/drivers/net/ethernet/{mediatek => ralink}/mdio_rt2880.h (100%)
>   rename target/linux/ramips/files-4.14/drivers/net/ethernet/{mediatek => ralink}/mt7530.c (100%)
>   rename target/linux/ramips/files-4.14/drivers/net/ethernet/{mediatek => ralink}/mt7530.h (100%)
>   rename target/linux/ramips/files-4.14/drivers/net/ethernet/{mediatek => ralink}/mtk_debugfs.c (100%)
>   rename target/linux/ramips/files-4.14/drivers/net/ethernet/{mediatek => ralink}/mtk_eth_soc.c (99%)
>   rename target/linux/ramips/files-4.14/drivers/net/ethernet/{mediatek => ralink}/mtk_eth_soc.h (100%)
>   rename target/linux/ramips/files-4.14/drivers/net/ethernet/{mediatek => ralink}/mtk_offload.c (99%)
>   rename target/linux/ramips/files-4.14/drivers/net/ethernet/{mediatek => ralink}/mtk_offload.h (100%)
>   rename target/linux/ramips/files-4.14/drivers/net/ethernet/{mediatek => ralink}/soc_mt7620.c (100%)
>   rename target/linux/ramips/files-4.14/drivers/net/ethernet/{mediatek => ralink}/soc_mt7621.c (100%)
>   rename target/linux/ramips/files-4.14/drivers/net/ethernet/{mediatek => ralink}/soc_rt2880.c (100%)
>   rename target/linux/ramips/files-4.14/drivers/net/ethernet/{mediatek => ralink}/soc_rt3050.c (100%)
>   rename target/linux/ramips/files-4.14/drivers/net/ethernet/{mediatek => ralink}/soc_rt3883.c (100%)
>   create mode 100644 target/linux/ramips/patches-4.14/0027-net-next-mediatek-fix-DQL-support.patch
>   create mode 100644 target/linux/ramips/patches-4.14/0032-net-dsa-mediatek-add-support-for-GMAC2-wired-to-ext-.patch
>   create mode 100644 target/linux/ramips/patches-4.14/0033-dsa-multi-cpu.patch
>   create mode 100644 target/linux/ramips/patches-4.14/0035-net-mediatek-disable-RX-VLan-offloading.patch
>   create mode 100644 target/linux/ramips/patches-4.14/0042-net-next-mediatek-honour-special-tag-bit-inside-RX-D.patch
>   create mode 100644 target/linux/ramips/patches-4.14/0043-net-next-mediatek-enable-special-tag-indication-for-.patch
>   create mode 100644 target/linux/ramips/patches-4.14/0044-net-next-dsa-mediatek-tell-GDMA-when-we-are-turning-.patch
>   create mode 100644 target/linux/ramips/patches-4.14/0046-net-mediatek-add-irq-delay.patch
>   create mode 100644 target/linux/ramips/patches-4.14/0051-net-mediatek-increase-tx_timeout.patch
>   create mode 100644 target/linux/ramips/patches-4.14/0062-mdio-atomic.patch
>   create mode 100644 target/linux/ramips/patches-4.14/0063-atomic-sleep.patch
>   create mode 100644 target/linux/ramips/patches-4.14/0175-net-mediatek-remove-superfluous-pin-setup-for-MT7622.patch
>   create mode 100644 target/linux/ramips/patches-4.14/2200-mt7621-eth-dsa.patch
>   create mode 100644 target/linux/ramips/patches-4.14/2201-mt7621-eth-fix-napi-int.patch
>   create mode 100644 target/linux/ramips/patches-4.14/700-add-net-ethernet-ralink.patch
>   create mode 100644 tools/firmware-utils/src/mkmitrastar.c
>

_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


More information about the openwrt-devel mailing list