mbox series

[v4,00/14] introduces pfe network PMD

Message ID 20191010063234.32568-1-g.singh@nxp.com (mailing list archive)
Headers
Series introduces pfe network PMD |

Message

Gagandeep Singh Oct. 10, 2019, 6:32 a.m. UTC
  This series introduces pfe (packet forwarding engine)
network poll mode driver for NXP SoC ls1012a.

First patch of this series move OF library code from
dpaa bus to a common folder as PFE also uses the
same library for getting information from the device
tree.
This patch is included in this series so that
compilation by CI don't break.

V2 Change-log:
* fix compilation break for clang3.4 and gcc 4.8
* fix checkpatch errors

V3 Change-log:
* Release notes updated for PPFE PMD
* Experimental APIs list added in Makefile and meson
* Dynamic logging added
* PPFE documentation is updated for kernel module "pfe.ko"
  and parameter "intf" is mentioned.
* of.h and of.c are renamed to dpaa_of.h and dpaa_of.c
* enable PPFE compilation only in 'common_armv8a_linux'
* PFE_CDEV_ETH_COUNT updated 2, as only 2 eth devices supported.
* Comment updated for "pfe_us_cdev" device
* functions prototype updated
* intf params value check added during parsing and unwanted
  port id checks removed.
* unwanted dev->data memcpy removed.
* munmap and rte_eth_dev_release_port added in error case
* atoi replaced with strtol
* add static to global variable g_pfe

V4 Change-log:
* DPAA dependency removed by moving compat.h from
  bus/dpaa/include to common/dpaax
* Updated interface name to net_pfe in document
* Updated driver name to PFE from PPFE everywhere
  for consistency
* min_mtu and max_mtu added

Gagandeep Singh (13):
  net/pfe: introduce pfe net poll mode driver
  doc: add guide for pfe net PMD
  net/pfe: support dynamic logging
  net/pfe: add HW specific macros and operations
  net/pfe: add MAC and host interface initialisation
  net/pfe: add device start stop operations
  net/pfe: add queue setup and release operations
  net/pfe: add burst enqueue and dequeue operations
  net/pfe: add supported packet types and basic statistics
  net/pfe: add MTU and MAC address set operations
  net/pfe: add allmulticast and promiscuous
  net/pfe: add link status update
  doc: add NXP PFE PMD in release notes

Hemant Agrawal (1):
  common/dpaax: moving OF lib code from dpaa bus

 MAINTAINERS                                   |    7 +
 config/common_armv8a_linux                    |    5 +
 config/common_base                            |    5 +
 doc/guides/nics/features/pfe.ini              |   17 +
 doc/guides/nics/index.rst                     |    1 +
 doc/guides/nics/pfe.rst                       |  180 +++
 doc/guides/rel_notes/release_19_11.rst        |    5 +
 drivers/bus/dpaa/Makefile                     |    2 +-
 drivers/bus/dpaa/base/fman/fman.c             |    2 +-
 drivers/bus/dpaa/base/fman/netcfg_layer.c     |    2 +-
 drivers/bus/dpaa/base/qbman/dpaa_sys.h        |    3 +-
 drivers/bus/dpaa/base/qbman/qman.c            |    2 +
 drivers/bus/dpaa/dpaa_bus.c                   |    2 +-
 drivers/bus/dpaa/include/fman.h               |    1 +
 drivers/bus/dpaa/include/fsl_usd.h            |    1 +
 drivers/bus/dpaa/meson.build                  |    1 -
 drivers/bus/dpaa/rte_dpaa_bus.h               |    2 +-
 drivers/bus/fslmc/Makefile                    |    1 +
 drivers/common/dpaax/Makefile                 |   10 +-
 .../dpaa/include => common/dpaax}/compat.h    |    3 -
 .../dpaa/include => common/dpaax}/dpaa_list.h |    0
 .../base/fman/of.c => common/dpaax/dpaa_of.c} |   63 +-
 .../include/of.h => common/dpaax/dpaa_of.h}   |   27 +-
 drivers/common/dpaax/dpaax_logs.h             |   10 +
 drivers/common/dpaax/meson.build              |    5 +-
 .../common/dpaax/rte_common_dpaax_version.map |   18 +
 drivers/crypto/caam_jr/Makefile               |    2 +
 drivers/crypto/caam_jr/caam_jr.c              |    2 +-
 drivers/crypto/dpaa2_sec/Makefile             |    2 +-
 drivers/crypto/dpaa_sec/Makefile              |    1 +
 drivers/crypto/dpaa_sec/dpaa_sec.c            |    2 +-
 drivers/event/dpaa/Makefile                   |    1 +
 drivers/event/dpaa2/Makefile                  |    1 +
 drivers/mempool/dpaa/Makefile                 |    1 +
 drivers/mempool/dpaa2/Makefile                |    1 +
 drivers/net/Makefile                          |    1 +
 drivers/net/dpaa/Makefile                     |    1 +
 drivers/net/dpaa/dpaa_ethdev.h                |    2 +-
 drivers/net/dpaa/dpaa_rxtx.c                  |    2 +-
 drivers/net/dpaa2/Makefile                    |    1 +
 drivers/net/meson.build                       |    1 +
 drivers/net/pfe/Makefile                      |   37 +
 drivers/net/pfe/base/cbus.h                   |   66 +
 drivers/net/pfe/base/cbus/bmu.h               |   41 +
 drivers/net/pfe/base/cbus/class_csr.h         |  277 ++++
 drivers/net/pfe/base/cbus/emac_mtip.h         |  231 ++++
 drivers/net/pfe/base/cbus/gpi.h               |   77 ++
 drivers/net/pfe/base/cbus/hif.h               |   86 ++
 drivers/net/pfe/base/cbus/hif_nocpy.h         |   36 +
 drivers/net/pfe/base/cbus/tmu_csr.h           |  154 +++
 drivers/net/pfe/base/cbus/util_csr.h          |   47 +
 drivers/net/pfe/base/pfe.h                    |  422 ++++++
 drivers/net/pfe/meson.build                   |   19 +
 drivers/net/pfe/pfe_eth.h                     |   76 ++
 drivers/net/pfe/pfe_ethdev.c                  | 1192 +++++++++++++++++
 drivers/net/pfe/pfe_hal.c                     |  629 +++++++++
 drivers/net/pfe/pfe_hif.c                     |  868 ++++++++++++
 drivers/net/pfe/pfe_hif.h                     |  156 +++
 drivers/net/pfe/pfe_hif_lib.c                 |  576 ++++++++
 drivers/net/pfe/pfe_hif_lib.h                 |  181 +++
 drivers/net/pfe/pfe_logs.h                    |   31 +
 drivers/net/pfe/pfe_mod.h                     |   64 +
 drivers/net/pfe/rte_pmd_pfe_version.map       |    4 +
 drivers/raw/dpaa2_cmdif/Makefile              |    1 +
 drivers/raw/dpaa2_qdma/Makefile               |    1 +
 mk/rte.app.mk                                 |    1 +
 66 files changed, 5613 insertions(+), 56 deletions(-)
 create mode 100644 doc/guides/nics/features/pfe.ini
 create mode 100644 doc/guides/nics/pfe.rst
 rename drivers/{bus/dpaa/include => common/dpaax}/compat.h (99%)
 rename drivers/{bus/dpaa/include => common/dpaax}/dpaa_list.h (100%)
 rename drivers/{bus/dpaa/base/fman/of.c => common/dpaax/dpaa_of.c} (88%)
 rename drivers/{bus/dpaa/include/of.h => common/dpaax/dpaa_of.h} (86%)
 create mode 100644 drivers/net/pfe/Makefile
 create mode 100644 drivers/net/pfe/base/cbus.h
 create mode 100644 drivers/net/pfe/base/cbus/bmu.h
 create mode 100644 drivers/net/pfe/base/cbus/class_csr.h
 create mode 100644 drivers/net/pfe/base/cbus/emac_mtip.h
 create mode 100644 drivers/net/pfe/base/cbus/gpi.h
 create mode 100644 drivers/net/pfe/base/cbus/hif.h
 create mode 100644 drivers/net/pfe/base/cbus/hif_nocpy.h
 create mode 100644 drivers/net/pfe/base/cbus/tmu_csr.h
 create mode 100644 drivers/net/pfe/base/cbus/util_csr.h
 create mode 100644 drivers/net/pfe/base/pfe.h
 create mode 100644 drivers/net/pfe/meson.build
 create mode 100644 drivers/net/pfe/pfe_eth.h
 create mode 100644 drivers/net/pfe/pfe_ethdev.c
 create mode 100644 drivers/net/pfe/pfe_hal.c
 create mode 100644 drivers/net/pfe/pfe_hif.c
 create mode 100644 drivers/net/pfe/pfe_hif.h
 create mode 100644 drivers/net/pfe/pfe_hif_lib.c
 create mode 100644 drivers/net/pfe/pfe_hif_lib.h
 create mode 100644 drivers/net/pfe/pfe_logs.h
 create mode 100644 drivers/net/pfe/pfe_mod.h
 create mode 100644 drivers/net/pfe/rte_pmd_pfe_version.map
  

Comments

Thomas Monjalon Oct. 10, 2019, 7:11 a.m. UTC | #1
10/10/2019 08:32, Gagandeep Singh:
> Gagandeep Singh (13):
>   net/pfe: introduce pfe net poll mode driver
>   doc: add guide for pfe net PMD
>   net/pfe: support dynamic logging
>   net/pfe: add HW specific macros and operations
>   net/pfe: add MAC and host interface initialisation
>   net/pfe: add device start stop operations
>   net/pfe: add queue setup and release operations
>   net/pfe: add burst enqueue and dequeue operations
>   net/pfe: add supported packet types and basic statistics
>   net/pfe: add MTU and MAC address set operations
>   net/pfe: add allmulticast and promiscuous
>   net/pfe: add link status update
>   doc: add NXP PFE PMD in release notes

Patches introducing the doc and release notes can be squashed in the patch introducing the driver.
  
Ferruh Yigit Oct. 10, 2019, 5:01 p.m. UTC | #2
On 10/10/2019 8:11 AM, Thomas Monjalon wrote:
> 10/10/2019 08:32, Gagandeep Singh:
>> Gagandeep Singh (13):
>>   net/pfe: introduce pfe net poll mode driver
>>   doc: add guide for pfe net PMD
>>   net/pfe: support dynamic logging
>>   net/pfe: add HW specific macros and operations
>>   net/pfe: add MAC and host interface initialisation
>>   net/pfe: add device start stop operations
>>   net/pfe: add queue setup and release operations
>>   net/pfe: add burst enqueue and dequeue operations
>>   net/pfe: add supported packet types and basic statistics
>>   net/pfe: add MTU and MAC address set operations
>>   net/pfe: add allmulticast and promiscuous
>>   net/pfe: add link status update
>>   doc: add NXP PFE PMD in release notes
> 
> Patches introducing the doc and release notes can be squashed in the patch introducing the driver.
> 

+1, I will do while merging.
  
Ferruh Yigit Oct. 10, 2019, 5:47 p.m. UTC | #3
On 10/10/2019 7:32 AM, Gagandeep Singh wrote:
> This series introduces pfe (packet forwarding engine)
> network poll mode driver for NXP SoC ls1012a.
> 
> First patch of this series move OF library code from
> dpaa bus to a common folder as PFE also uses the
> same library for getting information from the device
> tree.
> This patch is included in this series so that
> compilation by CI don't break.
> 
> V2 Change-log:
> * fix compilation break for clang3.4 and gcc 4.8
> * fix checkpatch errors
> 
> V3 Change-log:
> * Release notes updated for PPFE PMD
> * Experimental APIs list added in Makefile and meson
> * Dynamic logging added
> * PPFE documentation is updated for kernel module "pfe.ko"
>   and parameter "intf" is mentioned.
> * of.h and of.c are renamed to dpaa_of.h and dpaa_of.c
> * enable PPFE compilation only in 'common_armv8a_linux'
> * PFE_CDEV_ETH_COUNT updated 2, as only 2 eth devices supported.
> * Comment updated for "pfe_us_cdev" device
> * functions prototype updated
> * intf params value check added during parsing and unwanted
>   port id checks removed.
> * unwanted dev->data memcpy removed.
> * munmap and rte_eth_dev_release_port added in error case
> * atoi replaced with strtol
> * add static to global variable g_pfe
> 
> V4 Change-log:
> * DPAA dependency removed by moving compat.h from
>   bus/dpaa/include to common/dpaax
> * Updated interface name to net_pfe in document
> * Updated driver name to PFE from PPFE everywhere
>   for consistency
> * min_mtu and max_mtu added
> 
> Gagandeep Singh (13):
>   net/pfe: introduce pfe net poll mode driver
>   doc: add guide for pfe net PMD
>   net/pfe: support dynamic logging
>   net/pfe: add HW specific macros and operations
>   net/pfe: add MAC and host interface initialisation
>   net/pfe: add device start stop operations
>   net/pfe: add queue setup and release operations
>   net/pfe: add burst enqueue and dequeue operations
>   net/pfe: add supported packet types and basic statistics
>   net/pfe: add MTU and MAC address set operations
>   net/pfe: add allmulticast and promiscuous
>   net/pfe: add link status update
>   doc: add NXP PFE PMD in release notes
> 
> Hemant Agrawal (1):
>   common/dpaax: moving OF lib code from dpaa bus

Series applied to dpdk-next-net/master, thanks.

Please add web patch to announce the new PMD.
  
Thomas Monjalon Oct. 25, 2019, 7:59 a.m. UTC | #4
10/10/2019 19:47, Ferruh Yigit:
> On 10/10/2019 7:32 AM, Gagandeep Singh wrote:
> > Gagandeep Singh (13):
> >   net/pfe: introduce pfe net poll mode driver
> >   doc: add guide for pfe net PMD
> >   net/pfe: support dynamic logging
> >   net/pfe: add HW specific macros and operations
> >   net/pfe: add MAC and host interface initialisation
> >   net/pfe: add device start stop operations
> >   net/pfe: add queue setup and release operations
> >   net/pfe: add burst enqueue and dequeue operations
> >   net/pfe: add supported packet types and basic statistics
> >   net/pfe: add MTU and MAC address set operations
> >   net/pfe: add allmulticast and promiscuous
> >   net/pfe: add link status update
> >   doc: add NXP PFE PMD in release notes
> > 
> > Hemant Agrawal (1):
> >   common/dpaax: moving OF lib code from dpaa bus
> 
> Series applied to dpdk-next-net/master, thanks.

While rebasing on top of master, I had to do some changes
to the meson files in following commits:
	common/dpaax: moving OF lib code from dpaa bus
	net/pfe: add MAC and host interface initialisation

--- a/drivers/common/dpaax/meson.build
+++ b/drivers/common/dpaax/meson.build
+if cc.has_argument('-Wno-pointer-arith')
+       cflags += '-Wno-pointer-arith'
+ endif
--- a/drivers/crypto/caam_jr/meson.build
+++ b/drivers/crypto/caam_jr/meson.build
 includes += include_directories('../../bus/dpaa/include/')
+includes += include_directories('../../common/dpaax/')
 includes += include_directories('../../common/dpaax/caamflib/')
--- a/drivers/crypto/dpaa_sec/meson.build
+++ b/drivers/crypto/dpaa_sec/meson.build
 includes += include_directories('../../bus/dpaa/include')
+includes += include_directories('../../common/dpaax')
 includes += include_directories('../../common/dpaax/caamflib/')
--- a/drivers/net/pfe/meson.build
+++ b/drivers/net/pfe/meson.build
+if cc.has_argument('-Wno-pointer-arith')
+       cflags += '-Wno-pointer-arith'
+endif

2 notes:
- You should fix your pointer arithmetics instead of disabling warnings
- Having 3 compat.h files in fslmc and dpaax is an horror for includes