From: Madalin Bucur <madalin.bucur@nxp.com> To: <netdev@vger.kernel.org> Cc: <linuxppc-dev@lists.ozlabs.org>, <linux-kernel@vger.kernel.org>, <davem@davemloft.net>, <oss@buserror.net>, <ppc@mindchasers.com>, <joe@perches.com>, <pebolle@tiscali.nl>, <joakim.tjernlund@transmode.se> Subject: [PATCH net-next v6 00/10] dpaa_eth: Add the QorIQ DPAA Ethernet driver Date: Wed, 2 Nov 2016 22:17:24 +0200 [thread overview] Message-ID: <1478117854-8952-1-git-send-email-madalin.bucur@nxp.com> (raw) This patch series adds the Ethernet driver for the Freescale QorIQ Data Path Acceleration Architecture (DPAA). This version includes changes following the feedback received on previous versions from Eric Dumazet, Bob Cochran, Joe Perches, Paul Bolle, Joakim Tjernlund, Scott Wood, David Miller - thank you. Together with the driver a managed version of alloc_percpu is provided that simplifies the release of per-CPU memory. The Freescale DPAA architecture consists in a series of hardware blocks that support the Ethernet connectivity. The Ethernet driver depends upon the following drivers that are currently in the Linux kernel: - Peripheral Access Memory Unit (PAMU) drivers/iommu/fsl_* - Frame Manager (FMan) added in v4.4 drivers/net/ethernet/freescale/fman - Queue Manager (QMan), Buffer Manager (BMan) added in v4.9-rc1 drivers/soc/fsl/qbman dpaa_eth interfaces mapping to FMan MACs: dpaa_eth /eth0\ ... /ethN\ driver | | | | ------------- ---- ----------- ---- ------------- -Ports / Tx Rx \ ... / Tx Rx \ FMan | | | | -MACs | MAC0 | | MACN | / dtsec0 \ ... / dtsecN \ (or tgec) / \ / \(or memac) --------- -------------- --- -------------- --------- FMan, FMan Port, FMan SP, FMan MURAM drivers --------------------------------------------------------- FMan HW blocks: MURAM, MACs, Ports, SP --------------------------------------------------------- dpaa_eth relation to QMan, FMan: ________________________________ dpaa_eth / eth0 \ driver / \ --------- -^- -^- -^- --- --------- QMan driver / \ / \ / \ \ / | BMan | |Rx | |Rx | |Tx | |Tx | | driver | --------- |Dfl| |Err| |Cnf| |FQs| | | QMan HW |FQ | |FQ | |FQ | | | | | / \ / \ / \ \ / | | --------- --- --- --- -v- --------- | FMan QMI | | | FMan HW FMan BMI | BMan HW | ----------------------- -------- where the acronyms used above (and in the code) are: DPAA = Data Path Acceleration Architecture FMan = DPAA Frame Manager QMan = DPAA Queue Manager BMan = DPAA Buffers Manager QMI = QMan interface in FMan BMI = BMan interface in FMan FMan SP = FMan Storage Profiles MURAM = Multi-user RAM in FMan FQ = QMan Frame Queue Rx Dfl FQ = default reception FQ Rx Err FQ = Rx error frames FQ Tx Cnf FQ = Tx confirmation FQ Tx FQs = transmission frame queues dtsec = datapath three speed Ethernet controller (10/100/1000 Mbps) tgec = ten gigabit Ethernet controller (10 Gbps) memac = multirate Ethernet MAC (10/100/1000/10000) Changes from v5: - adapt to the latest Q/BMan drivers API - use build_skb() on Rx path instead of buffer pool refill path - proper support for multiple buffer pools - align function, variable names, code cleanup - driver file structure cleanup Changes from v4: - addressed feedback from Scott Wood and Joe Perches - fixed spelling - fixed leak of uninitialized stack to userspace - fix prints - replace raw_cpu_ptr() with this_cpu_ptr() - remove _s from the end of structure names - remove underscores at start of functions, goto labels - remove likely in error paths - use container_of() instead of open casts - remove priv from the driver name - move return type on same line with function name - drop DPA_READ_SKB_PTR/DPA_WRITE_SKB_PTR Changes from v3: - removed bogus delay and comment in .ndo_stop implementation - addressed minor issues reported by David Miller Changes from v2: - removed debugfs, moved exports to ethtool statistics - removed congestion groups Kconfig params Changes from v1: - bpool level Kconfig options removed - print format using pr_fmt, cleaned up prints - __hot/__cold removed - gratuitous unlikely() removed - code style aligned, consistent spacing for declarations - comment formatting The changes are also available in the public git repository at git://git.freescale.com/ppc/upstream/linux.git on the branch dpaa_eth-next. Madalin Bucur (10): devres: add devm_alloc_percpu() dpaa_eth: add support for DPAA Ethernet dpaa_eth: add option to use one buffer pool set dpaa_eth: add ethtool functionality dpaa_eth: add ethtool statistics dpaa_eth: add sysfs exports dpaa_eth: add trace points arch/powerpc: Enable FSL_PAMU arch/powerpc: Enable FSL_FMAN arch/powerpc: Enable dpaa_eth Documentation/driver-model/devres.txt | 4 + arch/powerpc/configs/dpaa.config | 3 + drivers/base/devres.c | 66 + drivers/net/ethernet/freescale/Kconfig | 2 + drivers/net/ethernet/freescale/Makefile | 1 + drivers/net/ethernet/freescale/dpaa/Kconfig | 27 + drivers/net/ethernet/freescale/dpaa/Makefile | 12 + drivers/net/ethernet/freescale/dpaa/dpaa_eth.c | 2833 ++++++++++++++++++++ drivers/net/ethernet/freescale/dpaa/dpaa_eth.h | 185 ++ .../net/ethernet/freescale/dpaa/dpaa_eth_sysfs.c | 165 ++ .../net/ethernet/freescale/dpaa/dpaa_eth_trace.h | 141 + drivers/net/ethernet/freescale/dpaa/dpaa_ethtool.c | 417 +++ include/linux/device.h | 19 + 13 files changed, 3875 insertions(+) create mode 100644 drivers/net/ethernet/freescale/dpaa/Kconfig create mode 100644 drivers/net/ethernet/freescale/dpaa/Makefile create mode 100644 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c create mode 100644 drivers/net/ethernet/freescale/dpaa/dpaa_eth.h create mode 100644 drivers/net/ethernet/freescale/dpaa/dpaa_eth_sysfs.c create mode 100644 drivers/net/ethernet/freescale/dpaa/dpaa_eth_trace.h create mode 100644 drivers/net/ethernet/freescale/dpaa/dpaa_ethtool.c -- 2.1.0
WARNING: multiple messages have this Message-ID (diff)
From: Madalin Bucur <madalin.bucur@nxp.com> To: <netdev@vger.kernel.org> Cc: pebolle@tiscali.nl, joakim.tjernlund@transmode.se, linux-kernel@vger.kernel.org, ppc@mindchasers.com, oss@buserror.net, joe@perches.com, linuxppc-dev@lists.ozlabs.org, davem@davemloft.net Subject: [PATCH net-next v6 00/10] dpaa_eth: Add the QorIQ DPAA Ethernet driver Date: Wed, 2 Nov 2016 22:17:24 +0200 [thread overview] Message-ID: <1478117854-8952-1-git-send-email-madalin.bucur@nxp.com> (raw) This patch series adds the Ethernet driver for the Freescale QorIQ Data Path Acceleration Architecture (DPAA). This version includes changes following the feedback received on previous versions from Eric Dumazet, Bob Cochran, Joe Perches, Paul Bolle, Joakim Tjernlund, Scott Wood, David Miller - thank you. Together with the driver a managed version of alloc_percpu is provided that simplifies the release of per-CPU memory. The Freescale DPAA architecture consists in a series of hardware blocks that support the Ethernet connectivity. The Ethernet driver depends upon the following drivers that are currently in the Linux kernel: - Peripheral Access Memory Unit (PAMU) drivers/iommu/fsl_* - Frame Manager (FMan) added in v4.4 drivers/net/ethernet/freescale/fman - Queue Manager (QMan), Buffer Manager (BMan) added in v4.9-rc1 drivers/soc/fsl/qbman dpaa_eth interfaces mapping to FMan MACs: dpaa_eth /eth0\ ... /ethN\ driver | | | | ------------- ---- ----------- ---- ------------- -Ports / Tx Rx \ ... / Tx Rx \ FMan | | | | -MACs | MAC0 | | MACN | / dtsec0 \ ... / dtsecN \ (or tgec) / \ / \(or memac) --------- -------------- --- -------------- --------- FMan, FMan Port, FMan SP, FMan MURAM drivers --------------------------------------------------------- FMan HW blocks: MURAM, MACs, Ports, SP --------------------------------------------------------- dpaa_eth relation to QMan, FMan: ________________________________ dpaa_eth / eth0 \ driver / \ --------- -^- -^- -^- --- --------- QMan driver / \ / \ / \ \ / | BMan | |Rx | |Rx | |Tx | |Tx | | driver | --------- |Dfl| |Err| |Cnf| |FQs| | | QMan HW |FQ | |FQ | |FQ | | | | | / \ / \ / \ \ / | | --------- --- --- --- -v- --------- | FMan QMI | | | FMan HW FMan BMI | BMan HW | ----------------------- -------- where the acronyms used above (and in the code) are: DPAA = Data Path Acceleration Architecture FMan = DPAA Frame Manager QMan = DPAA Queue Manager BMan = DPAA Buffers Manager QMI = QMan interface in FMan BMI = BMan interface in FMan FMan SP = FMan Storage Profiles MURAM = Multi-user RAM in FMan FQ = QMan Frame Queue Rx Dfl FQ = default reception FQ Rx Err FQ = Rx error frames FQ Tx Cnf FQ = Tx confirmation FQ Tx FQs = transmission frame queues dtsec = datapath three speed Ethernet controller (10/100/1000 Mbps) tgec = ten gigabit Ethernet controller (10 Gbps) memac = multirate Ethernet MAC (10/100/1000/10000) Changes from v5: - adapt to the latest Q/BMan drivers API - use build_skb() on Rx path instead of buffer pool refill path - proper support for multiple buffer pools - align function, variable names, code cleanup - driver file structure cleanup Changes from v4: - addressed feedback from Scott Wood and Joe Perches - fixed spelling - fixed leak of uninitialized stack to userspace - fix prints - replace raw_cpu_ptr() with this_cpu_ptr() - remove _s from the end of structure names - remove underscores at start of functions, goto labels - remove likely in error paths - use container_of() instead of open casts - remove priv from the driver name - move return type on same line with function name - drop DPA_READ_SKB_PTR/DPA_WRITE_SKB_PTR Changes from v3: - removed bogus delay and comment in .ndo_stop implementation - addressed minor issues reported by David Miller Changes from v2: - removed debugfs, moved exports to ethtool statistics - removed congestion groups Kconfig params Changes from v1: - bpool level Kconfig options removed - print format using pr_fmt, cleaned up prints - __hot/__cold removed - gratuitous unlikely() removed - code style aligned, consistent spacing for declarations - comment formatting The changes are also available in the public git repository at git://git.freescale.com/ppc/upstream/linux.git on the branch dpaa_eth-next. Madalin Bucur (10): devres: add devm_alloc_percpu() dpaa_eth: add support for DPAA Ethernet dpaa_eth: add option to use one buffer pool set dpaa_eth: add ethtool functionality dpaa_eth: add ethtool statistics dpaa_eth: add sysfs exports dpaa_eth: add trace points arch/powerpc: Enable FSL_PAMU arch/powerpc: Enable FSL_FMAN arch/powerpc: Enable dpaa_eth Documentation/driver-model/devres.txt | 4 + arch/powerpc/configs/dpaa.config | 3 + drivers/base/devres.c | 66 + drivers/net/ethernet/freescale/Kconfig | 2 + drivers/net/ethernet/freescale/Makefile | 1 + drivers/net/ethernet/freescale/dpaa/Kconfig | 27 + drivers/net/ethernet/freescale/dpaa/Makefile | 12 + drivers/net/ethernet/freescale/dpaa/dpaa_eth.c | 2833 ++++++++++++++++++++ drivers/net/ethernet/freescale/dpaa/dpaa_eth.h | 185 ++ .../net/ethernet/freescale/dpaa/dpaa_eth_sysfs.c | 165 ++ .../net/ethernet/freescale/dpaa/dpaa_eth_trace.h | 141 + drivers/net/ethernet/freescale/dpaa/dpaa_ethtool.c | 417 +++ include/linux/device.h | 19 + 13 files changed, 3875 insertions(+) create mode 100644 drivers/net/ethernet/freescale/dpaa/Kconfig create mode 100644 drivers/net/ethernet/freescale/dpaa/Makefile create mode 100644 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c create mode 100644 drivers/net/ethernet/freescale/dpaa/dpaa_eth.h create mode 100644 drivers/net/ethernet/freescale/dpaa/dpaa_eth_sysfs.c create mode 100644 drivers/net/ethernet/freescale/dpaa/dpaa_eth_trace.h create mode 100644 drivers/net/ethernet/freescale/dpaa/dpaa_ethtool.c -- 2.1.0
next reply other threads:[~2016-11-02 20:34 UTC|newest] Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-11-02 20:17 Madalin Bucur [this message] 2016-11-02 20:17 ` [PATCH net-next v6 00/10] dpaa_eth: Add the QorIQ DPAA Ethernet driver Madalin Bucur 2016-11-02 20:17 ` [PATCH net-next v6 01/10] devres: add devm_alloc_percpu() Madalin Bucur 2016-11-02 20:17 ` Madalin Bucur 2016-11-02 20:17 ` [PATCH net-next v6 02/10] dpaa_eth: add support for DPAA Ethernet Madalin Bucur 2016-11-02 20:17 ` Madalin Bucur 2016-11-03 19:58 ` David Miller 2016-11-04 6:53 ` Coding Style: Reverse XMAS tree declarations ? (was Re: [PATCH net-next v6 02/10] dpaa_eth: add support for DPAA Ethernet) Joe Perches 2016-11-04 11:01 ` Lino Sanfilippo 2016-11-04 15:07 ` Coding Style: Reverse XMAS tree declarations ? David Miller 2016-11-04 17:44 ` Joe Perches 2016-11-04 20:06 ` Lino Sanfilippo 2016-11-07 11:00 ` David Laight 2016-11-07 11:00 ` David Laight 2016-11-04 17:05 ` Coding Style: Reverse XMAS tree declarations ? (was Re: [PATCH net-next v6 02/10] dpaa_eth: add support for DPAA Ethernet) Randy Dunlap 2016-11-04 19:48 ` David VomLehn 2016-11-07 8:05 ` Michael Ellerman 2016-11-07 8:05 ` Michael Ellerman 2016-11-07 15:43 ` [PATCH net-next v6 02/10] dpaa_eth: add support for DPAA Ethernet Madalin-Cristian Bucur 2016-11-07 15:43 ` Madalin-Cristian Bucur 2016-11-07 15:43 ` Madalin-Cristian Bucur 2016-11-07 15:55 ` David Miller 2016-11-07 16:32 ` Madalin-Cristian Bucur 2016-11-07 16:32 ` Madalin-Cristian Bucur 2016-11-07 16:32 ` Madalin-Cristian Bucur 2016-11-07 16:39 ` David Miller 2016-11-07 16:59 ` Madalin-Cristian Bucur 2016-11-07 16:59 ` Madalin-Cristian Bucur 2016-11-07 16:59 ` Madalin-Cristian Bucur 2016-11-09 17:16 ` Madalin-Cristian Bucur 2016-11-09 17:16 ` Madalin-Cristian Bucur 2016-11-09 17:18 ` David Miller 2016-11-07 16:25 ` Joakim Tjernlund 2016-11-07 16:25 ` Joakim Tjernlund 2016-11-02 20:17 ` [PATCH net-next v6 03/10] dpaa_eth: add option to use one buffer pool set Madalin Bucur 2016-11-02 20:17 ` Madalin Bucur 2016-11-02 20:17 ` [PATCH net-next v6 04/10] dpaa_eth: add ethtool functionality Madalin Bucur 2016-11-02 20:17 ` [PATCH net-next v6 05/10] dpaa_eth: add ethtool statistics Madalin Bucur 2016-11-02 20:17 ` [PATCH net-next v6 06/10] dpaa_eth: add sysfs exports Madalin Bucur 2016-11-02 20:17 ` [PATCH net-next v6 07/10] dpaa_eth: add trace points Madalin Bucur 2016-11-02 20:17 ` [PATCH net-next v6 08/10] arch/powerpc: Enable FSL_PAMU Madalin Bucur 2016-11-02 20:17 ` [PATCH net-next v6 09/10] arch/powerpc: Enable FSL_FMAN Madalin Bucur 2016-11-02 20:17 ` [PATCH net-next v6 10/10] arch/powerpc: Enable dpaa_eth Madalin Bucur
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1478117854-8952-1-git-send-email-madalin.bucur@nxp.com \ --to=madalin.bucur@nxp.com \ --cc=davem@davemloft.net \ --cc=joakim.tjernlund@transmode.se \ --cc=joe@perches.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linuxppc-dev@lists.ozlabs.org \ --cc=netdev@vger.kernel.org \ --cc=oss@buserror.net \ --cc=pebolle@tiscali.nl \ --cc=ppc@mindchasers.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.