mbox series

[v8,net-next,00/12] Add Support for Marvell OcteonTX2

Message ID 20201028145015.19212-1-schalla@marvell.com (mailing list archive)
Headers show
Series Add Support for Marvell OcteonTX2 | expand

Message

Srujana Challa Oct. 28, 2020, 2:50 p.m. UTC
This series introduces crypto(CPT) drivers(PF & VF) for Marvell OcteonTX2
CN96XX Soc.

OcteonTX2 SOC's resource virtualization unit (RVU) supports multiple
physical and virtual functions. Each of the PF/VF's functionality is
determined by what kind of resources are attached to it. When the CPT
block is attached to a VF, it can function as a security device.
The following document provides an overview of the hardware and
different drivers for the OcteonTX2 SOC: 
https://www.kernel.org/doc/Documentation/networking/device_drivers/marvell/octeontx2.rst

The CPT PF driver is responsible for:
- Forwarding messages to/from VFs from/to admin function(AF),
- Enabling/disabling VFs,
- Loading/unloading microcode (creation/deletion of engine groups).

The CPT VF driver works as a crypto offload device.

This patch series includes:
- Patch to update existing Marvell sources to support the CPT driver.
- Patch that adds mailbox messages to the admin function (AF) driver,
to configure CPT HW registers.
- CPT PF driver patches that include AF<=>PF<=>VF mailbox communication,
sriov_configure, and firmware load to the acceleration engines.
- CPT VF driver patches that include VF<=>PF mailbox communication and
crypto offload support through the kernel cryptographic API.

This series is tested with CRYPTO_EXTRA_TESTS enabled and
CRYPTO_DISABLE_TESTS disabled.

Changes since v7:
 * Removed writable entries in debugfs.
 * Dropped IPsec support.
Changes since v6:
 * Removed driver version.
Changes since v4:
 * Rebased the patches onto net-next tree with base
   'commit bc081a693a56 ("Merge branch 'Offload-tc-vlan-mangle-to-mscc_ocelot-switch'")' 
Changes since v3:
 * Splitup the patches into smaller patches with more informartion.
Changes since v2:
 * Fixed C=1 warnings.
 * Added code to exit CPT VF driver gracefully.
 * Moved OcteonTx2 asm code to a header file under include/linux/soc/
Changes since v1:
 * Moved Makefile changes from patch4 to patch2 and patch3.

Srujana Challa (12):
  octeontx2-pf: move lmt flush to include/linux/soc
  octeontx2-af: add mailbox interface for CPT
  octeontx2-af: add debugfs entries for CPT block
  drivers: crypto: add Marvell OcteonTX2 CPT PF driver
  crypto: octeontx2: add mailbox communication with AF
  crypto: octeontx2: enable SR-IOV and mailbox communication with VF
  crypto: octeontx2: load microcode and create engine groups
  crypto: octeontx2: add LF framework
  crypto: octeontx2: add support to get engine capabilities
  crypto: octeontx2: add virtual function driver support
  crypto: octeontx2: add support to process the crypto request
  crypto: octeontx2: register with linux crypto framework

 MAINTAINERS                                   |    2 +
 drivers/crypto/marvell/Kconfig                |   14 +
 drivers/crypto/marvell/Makefile               |    1 +
 drivers/crypto/marvell/octeontx2/Makefile     |   10 +
 .../marvell/octeontx2/otx2_cpt_common.h       |  123 ++
 .../marvell/octeontx2/otx2_cpt_hw_types.h     |  464 +++++
 .../marvell/octeontx2/otx2_cpt_mbox_common.c  |  202 ++
 .../marvell/octeontx2/otx2_cpt_reqmgr.h       |  197 ++
 drivers/crypto/marvell/octeontx2/otx2_cptlf.c |  426 +++++
 drivers/crypto/marvell/octeontx2/otx2_cptlf.h |  351 ++++
 drivers/crypto/marvell/octeontx2/otx2_cptpf.h |   52 +
 .../marvell/octeontx2/otx2_cptpf_main.c       |  570 ++++++
 .../marvell/octeontx2/otx2_cptpf_mbox.c       |  331 ++++
 .../marvell/octeontx2/otx2_cptpf_ucode.c      | 1533 +++++++++++++++
 .../marvell/octeontx2/otx2_cptpf_ucode.h      |  162 ++
 drivers/crypto/marvell/octeontx2/otx2_cptvf.h |   28 +
 .../marvell/octeontx2/otx2_cptvf_algs.c       | 1665 +++++++++++++++++
 .../marvell/octeontx2/otx2_cptvf_algs.h       |  170 ++
 .../marvell/octeontx2/otx2_cptvf_main.c       |  401 ++++
 .../marvell/octeontx2/otx2_cptvf_mbox.c       |  139 ++
 .../marvell/octeontx2/otx2_cptvf_reqmgr.c     |  539 ++++++
 .../ethernet/marvell/octeontx2/af/Makefile    |    3 +-
 .../net/ethernet/marvell/octeontx2/af/mbox.h  |   33 +
 .../net/ethernet/marvell/octeontx2/af/rvu.c   |    2 +-
 .../net/ethernet/marvell/octeontx2/af/rvu.h   |    2 +
 .../ethernet/marvell/octeontx2/af/rvu_cpt.c   |  229 +++
 .../marvell/octeontx2/af/rvu_debugfs.c        |  304 +++
 .../ethernet/marvell/octeontx2/af/rvu_reg.h   |   63 +-
 .../marvell/octeontx2/nic/otx2_common.h       |   13 +-
 include/linux/soc/marvell/octeontx2/asm.h     |   29 +
 30 files changed, 8038 insertions(+), 20 deletions(-)
 create mode 100644 drivers/crypto/marvell/octeontx2/Makefile
 create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cpt_common.h
 create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cpt_hw_types.h
 create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cpt_mbox_common.c
 create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cpt_reqmgr.h
 create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptlf.c
 create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptlf.h
 create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptpf.h
 create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptpf_main.c
 create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptpf_mbox.c
 create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptpf_ucode.c
 create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptpf_ucode.h
 create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptvf.h
 create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptvf_algs.c
 create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptvf_algs.h
 create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptvf_main.c
 create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptvf_mbox.c
 create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptvf_reqmgr.c
 create mode 100644 drivers/net/ethernet/marvell/octeontx2/af/rvu_cpt.c
 create mode 100644 include/linux/soc/marvell/octeontx2/asm.h

Comments

Willem de Bruijn Oct. 31, 2020, 7:28 p.m. UTC | #1
On Wed, Oct 28, 2020 at 6:50 PM Srujana Challa <schalla@marvell.com> wrote:
>
> This series introduces crypto(CPT) drivers(PF & VF) for Marvell OcteonTX2
> CN96XX Soc.
>
> OcteonTX2 SOC's resource virtualization unit (RVU) supports multiple
> physical and virtual functions. Each of the PF/VF's functionality is
> determined by what kind of resources are attached to it. When the CPT
> block is attached to a VF, it can function as a security device.
> The following document provides an overview of the hardware and
> different drivers for the OcteonTX2 SOC:
> https://www.kernel.org/doc/Documentation/networking/device_drivers/marvell/octeontx2.rst
>
> The CPT PF driver is responsible for:
> - Forwarding messages to/from VFs from/to admin function(AF),
> - Enabling/disabling VFs,
> - Loading/unloading microcode (creation/deletion of engine groups).
>
> The CPT VF driver works as a crypto offload device.
>
> This patch series includes:
> - Patch to update existing Marvell sources to support the CPT driver.
> - Patch that adds mailbox messages to the admin function (AF) driver,
> to configure CPT HW registers.
> - CPT PF driver patches that include AF<=>PF<=>VF mailbox communication,
> sriov_configure, and firmware load to the acceleration engines.
> - CPT VF driver patches that include VF<=>PF mailbox communication and
> crypto offload support through the kernel cryptographic API.
>
> This series is tested with CRYPTO_EXTRA_TESTS enabled and
> CRYPTO_DISABLE_TESTS disabled.
>
> Changes since v7:
>  * Removed writable entries in debugfs.
>  * Dropped IPsec support.
> Changes since v6:
>  * Removed driver version.
> Changes since v4:
>  * Rebased the patches onto net-next tree with base
>    'commit bc081a693a56 ("Merge branch 'Offload-tc-vlan-mangle-to-mscc_ocelot-switch'")'
> Changes since v3:
>  * Splitup the patches into smaller patches with more informartion.
> Changes since v2:
>  * Fixed C=1 warnings.
>  * Added code to exit CPT VF driver gracefully.
>  * Moved OcteonTx2 asm code to a header file under include/linux/soc/
> Changes since v1:
>  * Moved Makefile changes from patch4 to patch2 and patch3.
>
> Srujana Challa (12):
>   octeontx2-pf: move lmt flush to include/linux/soc
>   octeontx2-af: add mailbox interface for CPT
>   octeontx2-af: add debugfs entries for CPT block
>   drivers: crypto: add Marvell OcteonTX2 CPT PF driver
>   crypto: octeontx2: add mailbox communication with AF
>   crypto: octeontx2: enable SR-IOV and mailbox communication with VF
>   crypto: octeontx2: load microcode and create engine groups
>   crypto: octeontx2: add LF framework
>   crypto: octeontx2: add support to get engine capabilities
>   crypto: octeontx2: add virtual function driver support
>   crypto: octeontx2: add support to process the crypto request
>   crypto: octeontx2: register with linux crypto framework
>
>  MAINTAINERS                                   |    2 +
>  drivers/crypto/marvell/Kconfig                |   14 +
>  drivers/crypto/marvell/Makefile               |    1 +
>  drivers/crypto/marvell/octeontx2/Makefile     |   10 +
>  .../marvell/octeontx2/otx2_cpt_common.h       |  123 ++
>  .../marvell/octeontx2/otx2_cpt_hw_types.h     |  464 +++++
>  .../marvell/octeontx2/otx2_cpt_mbox_common.c  |  202 ++
>  .../marvell/octeontx2/otx2_cpt_reqmgr.h       |  197 ++
>  drivers/crypto/marvell/octeontx2/otx2_cptlf.c |  426 +++++
>  drivers/crypto/marvell/octeontx2/otx2_cptlf.h |  351 ++++
>  drivers/crypto/marvell/octeontx2/otx2_cptpf.h |   52 +
>  .../marvell/octeontx2/otx2_cptpf_main.c       |  570 ++++++
>  .../marvell/octeontx2/otx2_cptpf_mbox.c       |  331 ++++
>  .../marvell/octeontx2/otx2_cptpf_ucode.c      | 1533 +++++++++++++++
>  .../marvell/octeontx2/otx2_cptpf_ucode.h      |  162 ++
>  drivers/crypto/marvell/octeontx2/otx2_cptvf.h |   28 +
>  .../marvell/octeontx2/otx2_cptvf_algs.c       | 1665 +++++++++++++++++
>  .../marvell/octeontx2/otx2_cptvf_algs.h       |  170 ++
>  .../marvell/octeontx2/otx2_cptvf_main.c       |  401 ++++
>  .../marvell/octeontx2/otx2_cptvf_mbox.c       |  139 ++
>  .../marvell/octeontx2/otx2_cptvf_reqmgr.c     |  539 ++++++
>  .../ethernet/marvell/octeontx2/af/Makefile    |    3 +-
>  .../net/ethernet/marvell/octeontx2/af/mbox.h  |   33 +
>  .../net/ethernet/marvell/octeontx2/af/rvu.c   |    2 +-
>  .../net/ethernet/marvell/octeontx2/af/rvu.h   |    2 +
>  .../ethernet/marvell/octeontx2/af/rvu_cpt.c   |  229 +++
>  .../marvell/octeontx2/af/rvu_debugfs.c        |  304 +++
>  .../ethernet/marvell/octeontx2/af/rvu_reg.h   |   63 +-
>  .../marvell/octeontx2/nic/otx2_common.h       |   13 +-
>  include/linux/soc/marvell/octeontx2/asm.h     |   29 +
>  30 files changed, 8038 insertions(+), 20 deletions(-)
>  create mode 100644 drivers/crypto/marvell/octeontx2/Makefile
>  create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cpt_common.h
>  create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cpt_hw_types.h
>  create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cpt_mbox_common.c
>  create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cpt_reqmgr.h
>  create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptlf.c
>  create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptlf.h
>  create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptpf.h
>  create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptpf_main.c
>  create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptpf_mbox.c
>  create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptpf_ucode.c
>  create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptpf_ucode.h
>  create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptvf.h
>  create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptvf_algs.c
>  create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptvf_algs.h
>  create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptvf_main.c
>  create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptvf_mbox.c
>  create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptvf_reqmgr.c
>  create mode 100644 drivers/net/ethernet/marvell/octeontx2/af/rvu_cpt.c
>  create mode 100644 include/linux/soc/marvell/octeontx2/asm.h

For netdrv review. I don't have a lot of detailed feedback. Overall it
looks sensible to me.

It is obviously a big beast of a patchset. Looking at previous review
comments, the documentation is now a lot better, which helps follow
the thread.

The point about parsing tar files remains open. In general error-prone
parsing is better left to userspace. In practice this is not a lot of
code, nor terribly complex.

The other point is that some files are very close to their oncteontx
counterparts. With minor cleanups, such as using in-place cpu_to_be64s
swap. Those cleanups probably make sense to the older device, too. One
option would be to apply them there first, then copy the files and use
coccinelle for mass renaming. But frankly that is a lot of extra work
to arrive at the same state. I just used --color-words=. --no-index to
perform an iterative review, which works well enough.
Jakub Kicinski Oct. 31, 2020, 9 p.m. UTC | #2
On Sat, 31 Oct 2020 15:28:59 -0400 Willem de Bruijn wrote:
> The point about parsing tar files remains open. In general error-prone
> parsing is better left to userspace.

The tar files have to go. Srujana said they have 3 files to load, 
just load them individually.
Srujana Challa Nov. 2, 2020, 7:52 a.m. UTC | #3
> Subject: Re: [PATCH v8,net-next,00/12] Add Support for Marvell OcteonTX2
> 
> On Sat, 31 Oct 2020 15:28:59 -0400 Willem de Bruijn wrote:
> > The point about parsing tar files remains open. In general error-prone
> > parsing is better left to userspace.
> 
> The tar files have to go. Srujana said they have 3 files to load,
> just load them individually.

Okay, I will do the changes and submit next version.
Srujana Challa Nov. 2, 2020, 9:34 a.m. UTC | #4
> On Wed, Oct 28, 2020 at 6:50 PM Srujana Challa <schalla@marvell.com> wrote:
> >
> > This series introduces crypto(CPT) drivers(PF & VF) for Marvell OcteonTX2
> > CN96XX Soc.
> >
> > OcteonTX2 SOC's resource virtualization unit (RVU) supports multiple
> > physical and virtual functions. Each of the PF/VF's functionality is
> > determined by what kind of resources are attached to it. When the CPT
> > block is attached to a VF, it can function as a security device.
> > The following document provides an overview of the hardware and
> > different drivers for the OcteonTX2 SOC:
> > https://urldefense.proofpoint.com/v2/url?u=https-
> 3A__www.kernel.org_doc_Documentation_networking_device-
> 5Fdrivers_marvell_octeontx2.rst&d=DwIBaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=Fj
> 4OoD5hcKFpANhTWdwQzjT1Jpf7veC5263T47JVpnc&m=NJ9fKbMEy2o3y4ca5r-
> kkUR9gadv3CZqF3CJSDvXpnM&s=ScxKfEYpF9bGu2bsz15tQSKhM58NJpMe2-
> 7sxjT_yiI&e=
> >
> > The CPT PF driver is responsible for:
> > - Forwarding messages to/from VFs from/to admin function(AF),
> > - Enabling/disabling VFs,
> > - Loading/unloading microcode (creation/deletion of engine groups).
> >
> > The CPT VF driver works as a crypto offload device.
> >
> > This patch series includes:
> > - Patch to update existing Marvell sources to support the CPT driver.
> > - Patch that adds mailbox messages to the admin function (AF) driver,
> > to configure CPT HW registers.
> > - CPT PF driver patches that include AF<=>PF<=>VF mailbox communication,
> > sriov_configure, and firmware load to the acceleration engines.
> > - CPT VF driver patches that include VF<=>PF mailbox communication and
> > crypto offload support through the kernel cryptographic API.
> >
> > This series is tested with CRYPTO_EXTRA_TESTS enabled and
> > CRYPTO_DISABLE_TESTS disabled.
> >
> > Changes since v7:
> >  * Removed writable entries in debugfs.
> >  * Dropped IPsec support.
> > Changes since v6:
> >  * Removed driver version.
> > Changes since v4:
> >  * Rebased the patches onto net-next tree with base
> >    'commit bc081a693a56 ("Merge branch 'Offload-tc-vlan-mangle-to-
> mscc_ocelot-switch'")'
> > Changes since v3:
> >  * Splitup the patches into smaller patches with more informartion.
> > Changes since v2:
> >  * Fixed C=1 warnings.
> >  * Added code to exit CPT VF driver gracefully.
> >  * Moved OcteonTx2 asm code to a header file under include/linux/soc/
> > Changes since v1:
> >  * Moved Makefile changes from patch4 to patch2 and patch3.
> >
> > Srujana Challa (12):
> >   octeontx2-pf: move lmt flush to include/linux/soc
> >   octeontx2-af: add mailbox interface for CPT
> >   octeontx2-af: add debugfs entries for CPT block
> >   drivers: crypto: add Marvell OcteonTX2 CPT PF driver
> >   crypto: octeontx2: add mailbox communication with AF
> >   crypto: octeontx2: enable SR-IOV and mailbox communication with VF
> >   crypto: octeontx2: load microcode and create engine groups
> >   crypto: octeontx2: add LF framework
> >   crypto: octeontx2: add support to get engine capabilities
> >   crypto: octeontx2: add virtual function driver support
> >   crypto: octeontx2: add support to process the crypto request
> >   crypto: octeontx2: register with linux crypto framework
> >
> >  MAINTAINERS                                   |    2 +
> >  drivers/crypto/marvell/Kconfig                |   14 +
> >  drivers/crypto/marvell/Makefile               |    1 +
> >  drivers/crypto/marvell/octeontx2/Makefile     |   10 +
> >  .../marvell/octeontx2/otx2_cpt_common.h       |  123 ++
> >  .../marvell/octeontx2/otx2_cpt_hw_types.h     |  464 +++++
> >  .../marvell/octeontx2/otx2_cpt_mbox_common.c  |  202 ++
> >  .../marvell/octeontx2/otx2_cpt_reqmgr.h       |  197 ++
> >  drivers/crypto/marvell/octeontx2/otx2_cptlf.c |  426 +++++
> >  drivers/crypto/marvell/octeontx2/otx2_cptlf.h |  351 ++++
> >  drivers/crypto/marvell/octeontx2/otx2_cptpf.h |   52 +
> >  .../marvell/octeontx2/otx2_cptpf_main.c       |  570 ++++++
> >  .../marvell/octeontx2/otx2_cptpf_mbox.c       |  331 ++++
> >  .../marvell/octeontx2/otx2_cptpf_ucode.c      | 1533 +++++++++++++++
> >  .../marvell/octeontx2/otx2_cptpf_ucode.h      |  162 ++
> >  drivers/crypto/marvell/octeontx2/otx2_cptvf.h |   28 +
> >  .../marvell/octeontx2/otx2_cptvf_algs.c       | 1665 +++++++++++++++++
> >  .../marvell/octeontx2/otx2_cptvf_algs.h       |  170 ++
> >  .../marvell/octeontx2/otx2_cptvf_main.c       |  401 ++++
> >  .../marvell/octeontx2/otx2_cptvf_mbox.c       |  139 ++
> >  .../marvell/octeontx2/otx2_cptvf_reqmgr.c     |  539 ++++++
> >  .../ethernet/marvell/octeontx2/af/Makefile    |    3 +-
> >  .../net/ethernet/marvell/octeontx2/af/mbox.h  |   33 +
> >  .../net/ethernet/marvell/octeontx2/af/rvu.c   |    2 +-
> >  .../net/ethernet/marvell/octeontx2/af/rvu.h   |    2 +
> >  .../ethernet/marvell/octeontx2/af/rvu_cpt.c   |  229 +++
> >  .../marvell/octeontx2/af/rvu_debugfs.c        |  304 +++
> >  .../ethernet/marvell/octeontx2/af/rvu_reg.h   |   63 +-
> >  .../marvell/octeontx2/nic/otx2_common.h       |   13 +-
> >  include/linux/soc/marvell/octeontx2/asm.h     |   29 +
> >  30 files changed, 8038 insertions(+), 20 deletions(-)
> >  create mode 100644 drivers/crypto/marvell/octeontx2/Makefile
> >  create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cpt_common.h
> >  create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cpt_hw_types.h
> >  create mode 100644
> drivers/crypto/marvell/octeontx2/otx2_cpt_mbox_common.c
> >  create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cpt_reqmgr.h
> >  create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptlf.c
> >  create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptlf.h
> >  create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptpf.h
> >  create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptpf_main.c
> >  create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptpf_mbox.c
> >  create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptpf_ucode.c
> >  create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptpf_ucode.h
> >  create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptvf.h
> >  create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptvf_algs.c
> >  create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptvf_algs.h
> >  create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptvf_main.c
> >  create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptvf_mbox.c
> >  create mode 100644 drivers/crypto/marvell/octeontx2/otx2_cptvf_reqmgr.c
> >  create mode 100644 drivers/net/ethernet/marvell/octeontx2/af/rvu_cpt.c
> >  create mode 100644 include/linux/soc/marvell/octeontx2/asm.h
> 
> For netdrv review. I don't have a lot of detailed feedback. Overall it
> looks sensible to me.
> 
> It is obviously a big beast of a patchset. Looking at previous review
> comments, the documentation is now a lot better, which helps follow
> the thread.
> 
> The point about parsing tar files remains open. In general error-prone
> parsing is better left to userspace. In practice this is not a lot of
> code, nor terribly complex.
> 
> The other point is that some files are very close to their oncteontx
> counterparts. With minor cleanups, such as using in-place cpu_to_be64s
> swap. Those cleanups probably make sense to the older device, too. One
> option would be to apply them there first, then copy the files and use
> coccinelle for mass renaming. But frankly that is a lot of extra work
> to arrive at the same state. I just used --color-words=. --no-index to
> perform an iterative review, which works well enough.

Thank you for the suggestion. The 2 devices have different capabilities and
our intent is to keep both the drivers separate without having a mutual code
dependency.
And our future hardware version will deviate even more, which reduces the
amount of common code.