Re: [PATCH net-next 0/2] Initial driver for Synopsys DWC XLGMAC

From: Jie Deng
Date: Thu Dec 08 2016 - 23:48:06 EST




On 2016/12/8 23:59, Alexandre Torgue wrote:
> Hi
>
> On 12/07/2016 04:57 AM, Jie Deng wrote:
>> This series provides the support for 25/40/50/100 GbE
>> devices using Synopsys DWC Enterprise Ethernet (XLGMAC).
>
> Can you explain which GMAC are you targeted ?
>
> A driver which support some Synopsys GMAC IP already exists. It support GMAC
> 3.5, 3.7, 4.0, 4.10 versions. You can find it in:
> drivers/net/ethernet/stmicro/stmmac/. When I look at all files your gonna to
> create, it looks like to ones in stmmac driver so maybe you could easily add
> your IP inside stmmac driver.
>
> Note that an other driver is existing for synopsys GMAC 4.0 IP. it is located
> in drivers/net/ethernet/synopsys/dwc_eth_qos.c and coming from AXIS guys. A
> task is ongoing to only have stmmac driver so it should be harmful to create a
> new one.
>
> Regards
> Alex
>
I didn't target any version of GMAC IP. GMAC IP (QoS IP) currently has two
drivers in mainline
drivers/net/ethernet/synopsys/dwc_eth_qos.c
drivers/net/ethernet/stmicro/stmmac/

XGMAC IP: drivers/net/ethernet/amd/xgbe

XLGMAC IP: no driver in mainline at present

For more info about Synopsys Ethernet IP, Please check:
http://www.synopsys.com/IP/InterfaceIP/Ethernet/Pages/default.aspx

I think it should be better to integrate above drivers into
drivers/net/ethernet/synopsys/. This helps to reuse codes and makes maintenance
easier. I prefer to choose AMD XGBE as a basis. This driver integrated Synopsys
internal driver and had most features supported. What do you think about this ?
>
>
>
>>
>> The first patch adds support for Synopsys XLGMII.
>> The second patch provides the initial driver for Synopsys XLGMAC
>>
>> The driver has three layers by refactoring AMD XGBE.
>>
>> dwc-eth-xxx.x
>> The DWC ethernet core layer (DWC ECL). This layer contains codes
>> can be shared by different DWC series ethernet cores
>>
>> dwc-xxx.x (e.g. dwc-xlgmac.c)
>> The DWC MAC HW adapter layer (DWC MHAL). This layer contains
>> special support for a specific MAC. e.g. currently, XLGMAC.
>>
>> xxx-xxx-pci.c xxx-xxx-plat.c (e.g. dwc-xlgmac-pci.c)
>> The glue adapter layer (GAL). Vendors who adopt Synopsys Etherent
>> cores can develop a glue driver for their platform.
>>
>> Jie Deng (2):
>> net: phy: add extension of phy-mode for XLGMII
>> net: ethernet: Initial driver for Synopsys DWC XLGMAC
>>
>> Documentation/devicetree/bindings/net/ethernet.txt | 1 +
>> MAINTAINERS | 6 +
>> drivers/net/ethernet/synopsys/Kconfig | 2 +
>> drivers/net/ethernet/synopsys/Makefile | 1 +
>> drivers/net/ethernet/synopsys/dwc/Kconfig | 37 +
>> drivers/net/ethernet/synopsys/dwc/Makefile | 9 +
>> drivers/net/ethernet/synopsys/dwc/dwc-eth-dcb.c | 228 ++
>> .../net/ethernet/synopsys/dwc/dwc-eth-debugfs.c | 328 +++
>> drivers/net/ethernet/synopsys/dwc/dwc-eth-desc.c | 715 +++++
>> .../net/ethernet/synopsys/dwc/dwc-eth-ethtool.c | 567 ++++
>> drivers/net/ethernet/synopsys/dwc/dwc-eth-hw.c | 3098 ++++++++++++++++++++
>> drivers/net/ethernet/synopsys/dwc/dwc-eth-mdio.c | 252 ++
>> drivers/net/ethernet/synopsys/dwc/dwc-eth-net.c | 2319 +++++++++++++++
>> drivers/net/ethernet/synopsys/dwc/dwc-eth-ptp.c | 216 ++
>> drivers/net/ethernet/synopsys/dwc/dwc-eth-regacc.h | 1115 +++++++
>> drivers/net/ethernet/synopsys/dwc/dwc-eth.h | 738 +++++
>> drivers/net/ethernet/synopsys/dwc/dwc-xlgmac-pci.c | 538 ++++
>> drivers/net/ethernet/synopsys/dwc/dwc-xlgmac.c | 135 +
>> drivers/net/ethernet/synopsys/dwc/dwc-xlgmac.h | 85 +
>> include/linux/phy.h | 3 +
>> 20 files changed, 10393 insertions(+)
>> create mode 100644 drivers/net/ethernet/synopsys/dwc/Kconfig
>> create mode 100644 drivers/net/ethernet/synopsys/dwc/Makefile
>> create mode 100644 drivers/net/ethernet/synopsys/dwc/dwc-eth-dcb.c
>> create mode 100644 drivers/net/ethernet/synopsys/dwc/dwc-eth-debugfs.c
>> create mode 100644 drivers/net/ethernet/synopsys/dwc/dwc-eth-desc.c
>> create mode 100644 drivers/net/ethernet/synopsys/dwc/dwc-eth-ethtool.c
>> create mode 100644 drivers/net/ethernet/synopsys/dwc/dwc-eth-hw.c
>> create mode 100644 drivers/net/ethernet/synopsys/dwc/dwc-eth-mdio.c
>> create mode 100644 drivers/net/ethernet/synopsys/dwc/dwc-eth-net.c
>> create mode 100644 drivers/net/ethernet/synopsys/dwc/dwc-eth-ptp.c
>> create mode 100644 drivers/net/ethernet/synopsys/dwc/dwc-eth-regacc.h
>> create mode 100644 drivers/net/ethernet/synopsys/dwc/dwc-eth.h
>> create mode 100644 drivers/net/ethernet/synopsys/dwc/dwc-xlgmac-pci.c
>> create mode 100644 drivers/net/ethernet/synopsys/dwc/dwc-xlgmac.c
>> create mode 100644 drivers/net/ethernet/synopsys/dwc/dwc-xlgmac.h
>>