mbox series

[v11,0/5] drivers/net: add NXP ENETFEC driver

Message ID 20211115071940.12942-1-apeksha.gupta@nxp.com (mailing list archive)
Headers
Series drivers/net: add NXP ENETFEC driver |

Message

Apeksha Gupta Nov. 15, 2021, 7:19 a.m. UTC
  This patch series introduce the enetfec driver, ENETFEC (Fast Ethernet
Controller) is a network poll mode driver for the inbuilt NIC found in
the NXP i.MX 8M Mini SoC.

An overview of the enetfec driver with probe and remove are in patch 1.
Patch 2 design UIO interface so that user space directly communicate with
a UIO based hardware device. UIO interface mmap the Control and Status
Registers (CSR) & BD memory in DPDK which is allocated in kernel and this
gives access to non-cacheble memory for BD.

Patch 3 adds the RX/TX queue configuration setup operations.
Patch 4 adds enqueue and dequeue support. Also adds some basic features
like promiscuous enable, basic stats.
Patch 5 adds checksum and VLAN features.

Apeksha Gupta (5):
  net/enetfec: introduce NXP ENETFEC driver
  net/enetfec: add UIO support
  net/enetfec: support queue configuration
  net/enetfec: add Rx/Tx support
  net/enetfec: add features

 MAINTAINERS                            |   7 +
 doc/guides/nics/enetfec.rst            | 137 +++++
 doc/guides/nics/features/enetfec.ini   |  14 +
 doc/guides/nics/index.rst              |   1 +
 doc/guides/rel_notes/release_21_11.rst |   5 +
 drivers/net/enetfec/enet_ethdev.c      | 701 +++++++++++++++++++++++++
 drivers/net/enetfec/enet_ethdev.h      | 153 ++++++
 drivers/net/enetfec/enet_pmd_logs.h    |  31 ++
 drivers/net/enetfec/enet_regs.h        | 116 ++++
 drivers/net/enetfec/enet_rxtx.c        | 273 ++++++++++
 drivers/net/enetfec/enet_uio.c         | 284 ++++++++++
 drivers/net/enetfec/enet_uio.h         |  64 +++
 drivers/net/enetfec/meson.build        |  13 +
 drivers/net/enetfec/version.map        |   3 +
 drivers/net/meson.build                |   1 +
 15 files changed, 1803 insertions(+)
 create mode 100644 doc/guides/nics/enetfec.rst
 create mode 100644 doc/guides/nics/features/enetfec.ini
 create mode 100644 drivers/net/enetfec/enet_ethdev.c
 create mode 100644 drivers/net/enetfec/enet_ethdev.h
 create mode 100644 drivers/net/enetfec/enet_pmd_logs.h
 create mode 100644 drivers/net/enetfec/enet_regs.h
 create mode 100644 drivers/net/enetfec/enet_rxtx.c
 create mode 100644 drivers/net/enetfec/enet_uio.c
 create mode 100644 drivers/net/enetfec/enet_uio.h
 create mode 100644 drivers/net/enetfec/meson.build
 create mode 100644 drivers/net/enetfec/version.map
  

Comments

Ferruh Yigit Nov. 15, 2021, 9:44 a.m. UTC | #1
On 11/15/2021 7:19 AM, Apeksha Gupta wrote:
> This patch series introduce the enetfec driver, ENETFEC (Fast Ethernet
> Controller) is a network poll mode driver for the inbuilt NIC found in
> the NXP i.MX 8M Mini SoC.
> 
> An overview of the enetfec driver with probe and remove are in patch 1.
> Patch 2 design UIO interface so that user space directly communicate with
> a UIO based hardware device. UIO interface mmap the Control and Status
> Registers (CSR) & BD memory in DPDK which is allocated in kernel and this
> gives access to non-cacheble memory for BD.
> 
> Patch 3 adds the RX/TX queue configuration setup operations.
> Patch 4 adds enqueue and dequeue support. Also adds some basic features
> like promiscuous enable, basic stats.
> Patch 5 adds checksum and VLAN features.
> 
> Apeksha Gupta (5):
>    net/enetfec: introduce NXP ENETFEC driver
>    net/enetfec: add UIO support
>    net/enetfec: support queue configuration
>    net/enetfec: add Rx/Tx support
>    net/enetfec: add features
> 

Hi Apeksha,

It would help if you can keep a changelog between versions, in the cover
letter, for future.

Also, there is a meson file warning, fyi:

$ ./devtools/check-meson.py
Error: Missing trailing "," in list at drivers/net/enetfec/meson.build:12
  
Ferruh Yigit Nov. 15, 2021, 3:05 p.m. UTC | #2
On 11/15/2021 7:19 AM, Apeksha Gupta wrote:
> This patch series introduce the enetfec driver, ENETFEC (Fast Ethernet
> Controller) is a network poll mode driver for the inbuilt NIC found in
> the NXP i.MX 8M Mini SoC.
> 
> An overview of the enetfec driver with probe and remove are in patch 1.
> Patch 2 design UIO interface so that user space directly communicate with
> a UIO based hardware device. UIO interface mmap the Control and Status
> Registers (CSR) & BD memory in DPDK which is allocated in kernel and this
> gives access to non-cacheble memory for BD.
> 
> Patch 3 adds the RX/TX queue configuration setup operations.
> Patch 4 adds enqueue and dequeue support. Also adds some basic features
> like promiscuous enable, basic stats.
> Patch 5 adds checksum and VLAN features.
> 
> Apeksha Gupta (5):
>    net/enetfec: introduce NXP ENETFEC driver
>    net/enetfec: add UIO support
>    net/enetfec: support queue configuration
>    net/enetfec: add Rx/Tx support
>    net/enetfec: add features
> 

For series:
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>

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


meson warning fixed, unnecessary headers removed while merging.
Ignoring the gcc12 build error for now, please remember to visit it later.
  
Ferruh Yigit Nov. 25, 2021, 4:52 p.m. UTC | #3
On 11/15/2021 3:05 PM, Ferruh Yigit wrote:
> On 11/15/2021 7:19 AM, Apeksha Gupta wrote:
>> This patch series introduce the enetfec driver, ENETFEC (Fast Ethernet
>> Controller) is a network poll mode driver for the inbuilt NIC found in
>> the NXP i.MX 8M Mini SoC.
>>
>> An overview of the enetfec driver with probe and remove are in patch 1.
>> Patch 2 design UIO interface so that user space directly communicate with
>> a UIO based hardware device. UIO interface mmap the Control and Status
>> Registers (CSR) & BD memory in DPDK which is allocated in kernel and this
>> gives access to non-cacheble memory for BD.
>>
>> Patch 3 adds the RX/TX queue configuration setup operations.
>> Patch 4 adds enqueue and dequeue support. Also adds some basic features
>> like promiscuous enable, basic stats.
>> Patch 5 adds checksum and VLAN features.
>>
>> Apeksha Gupta (5):
>>    net/enetfec: introduce NXP ENETFEC driver
>>    net/enetfec: add UIO support
>>    net/enetfec: support queue configuration
>>    net/enetfec: add Rx/Tx support
>>    net/enetfec: add features
>>
> 
> For series:
> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
> 
> Series applied to dpdk-next-net/main, thanks.
> 
> 
> meson warning fixed, unnecessary headers removed while merging.
> Ignoring the gcc12 build error for now, please remember to visit it later.
> 

Hi Apeksha, Hemant,

Is it possible to send a test report for this new PMD [1]?

Since this is a new PMD, and only vendor can test it, it will be good to
record what features tested on which platform and what is the result.
Otherwise we are completely blind on the status of this new piece of code.

Some sample test results to help you:
http://inbox.dpdk.org/dev/f5980c76-d456-03fc-e1b7-cb5f24c658c9@linux.vnet.ibm.com/
http://inbox.dpdk.org/dev/CAH-L+nOyuL4HdZVmT6GLr370vo9PV8QptCKeHUsupVUpNZ8SPw@mail.gmail.com/
http://inbox.dpdk.org/dev/CAMp7Qk=ROf4ptrWuaWdCV8GnYr1jR3ADAcGHxbNkHYSHzVUtEg@mail.gmail.com/
http://inbox.dpdk.org/dev/b2c7ed47d95a4d09b41308a826bfe0e5@intel.com/


And if possible a tested platform patch would be great,
something like following,
https://patches.dpdk.org/project/dpdk/patch/20211119181833.121383-1-yanx.xia@intel.com/

[1]
http://core.dpdk.org/testing/#release-validation