mbox series

[net-next,v4,00/11] : Move Siena into a separate subdirectory

Message ID 165211018297.5289.9658523545298485394.stgit@palantir17.mph.net (mailing list archive)
Headers show
Series : Move Siena into a separate subdirectory | expand

Message

Martin Habets May 9, 2022, 3:31 p.m. UTC
The Siena NICs (SFN5000 and SFN6000 series) went EOL in November 2021.
Most of these adapters have been remove from our test labs, and testing
has been reduced to a minimum.

This patch series creates a separate kernel module for the Siena architecture,
analogous to what was done for Falcon some years ago.
This reduces our maintenance for the sfc.ko module, and allows us to
enhance the EF10 and EF100 drivers without the risk of breaking Siena NICs.

After this series further enhancements are needed to differentiate the
new kernel module from sfc.ko, and the Siena code can be removed from sfc.ko.
Thes will be posted as a small follow-up series.
The Siena module is not built by default, but can be enabled
using Kconfig option SFC_SIENA. This will create module sfc-siena.ko.

	Patches

Patches 1-3 establish the code base for the Siena driver.
Patches 4-10 ensure the allyesconfig build succeeds.
Patch 11 adds the basic Siena module.

I do not expect patch 1 through 3 to be reviewed, they are FYI only.
No checkpatch issues were resolved as part of these, but they
were fixed in the subsequent patches.

	Testing

Various build tests were done such as allyesconfig, W=1 and sparse.
The new sfc-siena.ko and sfc.ko modules were tested on a machine with both
these NICs in them, and several tests were run on both drivers.

Martin
---

v4:
- Patch 1 and 5 of v3 were applied. Removed these from this series.
- Rebase.

v3:
- Fix build errors after rebase.

v2:
- Split up patch that copies existing files.
- Only copy a subset of mcdi_pcol.h.
- Use --find-copies-harder as suggested by Benjamin Poirier.
- Merge several patches for the allyesconfig build into larger ones.

---

Martin Habets (11):
      sfc: Move Siena specific files
      sfc: Copy shared files needed for Siena (part 1)
      sfc: Copy shared files needed for Siena (part 2)
      sfc/siena: Remove build references to missing functionality
      sfc/siena: Rename functions in efx headers to avoid conflicts with sfc
      sfc/siena: Rename RX/TX functions to avoid conflicts with sfc
      sfc/siena: Rename peripheral functions to avoid conflicts with sfc
      sfc/siena: Rename functions in mcdi headers to avoid conflicts with sfc
      sfc/siena: Rename functions in nic_common.h to avoid conflicts with sfc
      sfc/siena: Inline functions in sriov.h to avoid conflicts with sfc
      sfc: Add a basic Siena module


 drivers/net/ethernet/sfc/Kconfig                  |    1 
 drivers/net/ethernet/sfc/Makefile                 |    1 
 drivers/net/ethernet/sfc/siena/Kconfig            |   12 
 drivers/net/ethernet/sfc/siena/Makefile           |   11 
 drivers/net/ethernet/sfc/siena/bitfield.h         |    0 
 drivers/net/ethernet/sfc/siena/efx.c              | 1309 ++++++++++++
 drivers/net/ethernet/sfc/siena/efx.h              |  218 ++
 drivers/net/ethernet/sfc/siena/efx_channels.c     | 1376 +++++++++++++
 drivers/net/ethernet/sfc/siena/efx_channels.h     |   45 
 drivers/net/ethernet/sfc/siena/efx_common.c       | 1408 +++++++++++++
 drivers/net/ethernet/sfc/siena/efx_common.h       |  118 +
 drivers/net/ethernet/sfc/siena/enum.h             |  176 ++
 drivers/net/ethernet/sfc/siena/ethtool.c          |  282 +++
 drivers/net/ethernet/sfc/siena/ethtool_common.c   | 1340 ++++++++++++
 drivers/net/ethernet/sfc/siena/ethtool_common.h   |   60 +
 drivers/net/ethernet/sfc/siena/farch.c            |   58 -
 drivers/net/ethernet/sfc/siena/farch_regs.h       |    0 
 drivers/net/ethernet/sfc/siena/filter.h           |    0 
 drivers/net/ethernet/sfc/siena/io.h               |    0 
 drivers/net/ethernet/sfc/siena/mcdi.c             | 2259 +++++++++++++++++++++
 drivers/net/ethernet/sfc/siena/mcdi.h             |  386 ++++
 drivers/net/ethernet/sfc/siena/mcdi_mon.c         |  531 +++++
 drivers/net/ethernet/sfc/siena/mcdi_port.c        |  110 +
 drivers/net/ethernet/sfc/siena/mcdi_port.h        |   17 
 drivers/net/ethernet/sfc/siena/mcdi_port_common.c | 1282 ++++++++++++
 drivers/net/ethernet/sfc/siena/mcdi_port_common.h |   58 +
 drivers/net/ethernet/sfc/siena/mtd.c              |  124 +
 drivers/net/ethernet/sfc/siena/net_driver.h       | 1715 ++++++++++++++++
 drivers/net/ethernet/sfc/siena/nic.c              |  530 +++++
 drivers/net/ethernet/sfc/siena/nic.h              |  206 ++
 drivers/net/ethernet/sfc/siena/nic_common.h       |  251 ++
 drivers/net/ethernet/sfc/siena/ptp.c              | 2200 ++++++++++++++++++++
 drivers/net/ethernet/sfc/siena/ptp.h              |   45 
 drivers/net/ethernet/sfc/siena/rx.c               |  400 ++++
 drivers/net/ethernet/sfc/siena/rx_common.c        | 1094 ++++++++++
 drivers/net/ethernet/sfc/siena/rx_common.h        |  110 +
 drivers/net/ethernet/sfc/siena/selftest.c         |  807 ++++++++
 drivers/net/ethernet/sfc/siena/selftest.h         |   52 
 drivers/net/ethernet/sfc/siena/siena.c            |  158 +
 drivers/net/ethernet/sfc/siena/siena_sriov.c      |   35 
 drivers/net/ethernet/sfc/siena/siena_sriov.h      |    0 
 drivers/net/ethernet/sfc/siena/sriov.h            |   83 +
 drivers/net/ethernet/sfc/siena/tx.c               |  399 ++++
 drivers/net/ethernet/sfc/siena/tx.h               |   40 
 drivers/net/ethernet/sfc/siena/tx_common.c        |  448 ++++
 drivers/net/ethernet/sfc/siena/tx_common.h        |   39 
 drivers/net/ethernet/sfc/siena/vfdi.h             |    0 
 drivers/net/ethernet/sfc/siena/workarounds.h      |   28 
 48 files changed, 19700 insertions(+), 122 deletions(-)
 create mode 100644 drivers/net/ethernet/sfc/siena/Kconfig
 create mode 100644 drivers/net/ethernet/sfc/siena/Makefile
 copy drivers/net/ethernet/sfc/{bitfield.h => siena/bitfield.h} (100%)
 create mode 100644 drivers/net/ethernet/sfc/siena/efx.c
 create mode 100644 drivers/net/ethernet/sfc/siena/efx.h
 create mode 100644 drivers/net/ethernet/sfc/siena/efx_channels.c
 create mode 100644 drivers/net/ethernet/sfc/siena/efx_channels.h
 create mode 100644 drivers/net/ethernet/sfc/siena/efx_common.c
 create mode 100644 drivers/net/ethernet/sfc/siena/efx_common.h
 create mode 100644 drivers/net/ethernet/sfc/siena/enum.h
 create mode 100644 drivers/net/ethernet/sfc/siena/ethtool.c
 create mode 100644 drivers/net/ethernet/sfc/siena/ethtool_common.c
 create mode 100644 drivers/net/ethernet/sfc/siena/ethtool_common.h
 rename drivers/net/ethernet/sfc/{farch.c => siena/farch.c} (98%)
 copy drivers/net/ethernet/sfc/{farch_regs.h => siena/farch_regs.h} (100%)
 copy drivers/net/ethernet/sfc/{filter.h => siena/filter.h} (100%)
 copy drivers/net/ethernet/sfc/{io.h => siena/io.h} (100%)
 create mode 100644 drivers/net/ethernet/sfc/siena/mcdi.c
 create mode 100644 drivers/net/ethernet/sfc/siena/mcdi.h
 create mode 100644 drivers/net/ethernet/sfc/siena/mcdi_mon.c
 create mode 100644 drivers/net/ethernet/sfc/siena/mcdi_port.c
 create mode 100644 drivers/net/ethernet/sfc/siena/mcdi_port.h
 create mode 100644 drivers/net/ethernet/sfc/siena/mcdi_port_common.c
 create mode 100644 drivers/net/ethernet/sfc/siena/mcdi_port_common.h
 create mode 100644 drivers/net/ethernet/sfc/siena/mtd.c
 create mode 100644 drivers/net/ethernet/sfc/siena/net_driver.h
 create mode 100644 drivers/net/ethernet/sfc/siena/nic.c
 create mode 100644 drivers/net/ethernet/sfc/siena/nic.h
 create mode 100644 drivers/net/ethernet/sfc/siena/nic_common.h
 create mode 100644 drivers/net/ethernet/sfc/siena/ptp.c
 create mode 100644 drivers/net/ethernet/sfc/siena/ptp.h
 create mode 100644 drivers/net/ethernet/sfc/siena/rx.c
 create mode 100644 drivers/net/ethernet/sfc/siena/rx_common.c
 create mode 100644 drivers/net/ethernet/sfc/siena/rx_common.h
 create mode 100644 drivers/net/ethernet/sfc/siena/selftest.c
 create mode 100644 drivers/net/ethernet/sfc/siena/selftest.h
 rename drivers/net/ethernet/sfc/{siena.c => siena/siena.c} (89%)
 rename drivers/net/ethernet/sfc/{siena_sriov.c => siena/siena_sriov.c} (98%)
 rename drivers/net/ethernet/sfc/{siena_sriov.h => siena/siena_sriov.h} (100%)
 create mode 100644 drivers/net/ethernet/sfc/siena/sriov.h
 create mode 100644 drivers/net/ethernet/sfc/siena/tx.c
 create mode 100644 drivers/net/ethernet/sfc/siena/tx.h
 create mode 100644 drivers/net/ethernet/sfc/siena/tx_common.c
 create mode 100644 drivers/net/ethernet/sfc/siena/tx_common.h
 copy drivers/net/ethernet/sfc/{vfdi.h => siena/vfdi.h} (100%)
 create mode 100644 drivers/net/ethernet/sfc/siena/workarounds.h

--
Martin Habets <habetsm.xilinx@gmail.com>

Comments

patchwork-bot+netdevbpf@kernel.org May 10, 2022, 12:30 a.m. UTC | #1
Hello:

This series was applied to bpf/bpf-next.git (master)
by Andrii Nakryiko <andrii@kernel.org>:

On Mon, 09 May 2022 16:31:06 +0100 you wrote:
> The Siena NICs (SFN5000 and SFN6000 series) went EOL in November 2021.
> Most of these adapters have been remove from our test labs, and testing
> has been reduced to a minimum.
> 
> This patch series creates a separate kernel module for the Siena architecture,
> analogous to what was done for Falcon some years ago.
> This reduces our maintenance for the sfc.ko module, and allows us to
> enhance the EF10 and EF100 drivers without the risk of breaking Siena NICs.
> 
> [...]

Here is the summary with links:
  - [net-next,v4,01/11] sfc: Move Siena specific files
    https://git.kernel.org/bpf/bpf-next/c/bfa92e0bdc8e
  - [net-next,v4,02/11] sfc: Copy shared files needed for Siena (part 1)
    https://git.kernel.org/bpf/bpf-next/c/bfa92e0bdc8e
  - [net-next,v4,03/11] sfc: Copy shared files needed for Siena (part 2)
    https://git.kernel.org/bpf/bpf-next/c/bfa92e0bdc8e
  - [net-next,v4,04/11] sfc/siena: Remove build references to missing functionality
    (no matching commit)
  - [net-next,v4,05/11] sfc/siena: Rename functions in efx headers to avoid conflicts with sfc
    (no matching commit)
  - [net-next,v4,06/11] sfc/siena: Rename RX/TX functions to avoid conflicts with sfc
    (no matching commit)
  - [net-next,v4,07/11] sfc/siena: Rename peripheral functions to avoid conflicts with sfc
    (no matching commit)
  - [net-next,v4,08/11] sfc/siena: Rename functions in mcdi headers to avoid conflicts with sfc
    (no matching commit)
  - [net-next,v4,09/11] sfc/siena: Rename functions in nic_common.h to avoid conflicts with sfc
    (no matching commit)
  - [net-next,v4,10/11] sfc/siena: Inline functions in sriov.h to avoid conflicts with sfc
    (no matching commit)
  - [net-next,v4,11/11] sfc: Add a basic Siena module
    (no matching commit)

You are awesome, thank you!
Martin Habets May 10, 2022, 8:06 a.m. UTC | #2
Hi Jakub,

I reposted as discussed. This time the BPF bot grabbed the first 3.
I have no clue how or why that happened.

The other ones are still in patchwork:
https://patchwork.kernel.org/project/netdevbpf/list/?series=639815

Martin

On Tue, May 10, 2022 at 12:30:13AM +0000, patchwork-bot+netdevbpf@kernel.org wrote:
> Hello:
> 
> This series was applied to bpf/bpf-next.git (master)
> by Andrii Nakryiko <andrii@kernel.org>:
> 
> On Mon, 09 May 2022 16:31:06 +0100 you wrote:
> > The Siena NICs (SFN5000 and SFN6000 series) went EOL in November 2021.
> > Most of these adapters have been remove from our test labs, and testing
> > has been reduced to a minimum.
> > 
> > This patch series creates a separate kernel module for the Siena architecture,
> > analogous to what was done for Falcon some years ago.
> > This reduces our maintenance for the sfc.ko module, and allows us to
> > enhance the EF10 and EF100 drivers without the risk of breaking Siena NICs.
> > 
> > [...]
> 
> Here is the summary with links:
>   - [net-next,v4,01/11] sfc: Move Siena specific files
>     https://git.kernel.org/bpf/bpf-next/c/bfa92e0bdc8e
>   - [net-next,v4,02/11] sfc: Copy shared files needed for Siena (part 1)
>     https://git.kernel.org/bpf/bpf-next/c/bfa92e0bdc8e
>   - [net-next,v4,03/11] sfc: Copy shared files needed for Siena (part 2)
>     https://git.kernel.org/bpf/bpf-next/c/bfa92e0bdc8e
>   - [net-next,v4,04/11] sfc/siena: Remove build references to missing functionality
>     (no matching commit)
>   - [net-next,v4,05/11] sfc/siena: Rename functions in efx headers to avoid conflicts with sfc
>     (no matching commit)
>   - [net-next,v4,06/11] sfc/siena: Rename RX/TX functions to avoid conflicts with sfc
>     (no matching commit)
>   - [net-next,v4,07/11] sfc/siena: Rename peripheral functions to avoid conflicts with sfc
>     (no matching commit)
>   - [net-next,v4,08/11] sfc/siena: Rename functions in mcdi headers to avoid conflicts with sfc
>     (no matching commit)
>   - [net-next,v4,09/11] sfc/siena: Rename functions in nic_common.h to avoid conflicts with sfc
>     (no matching commit)
>   - [net-next,v4,10/11] sfc/siena: Inline functions in sriov.h to avoid conflicts with sfc
>     (no matching commit)
>   - [net-next,v4,11/11] sfc: Add a basic Siena module
>     (no matching commit)
> 
> You are awesome, thank you!
> -- 
> Deet-doot-dot, I am a bot.
> https://korg.docs.kernel.org/patchwork/pwbot.html
patchwork-bot+netdevbpf@kernel.org May 11, 2022, 12:50 a.m. UTC | #3
Hello:

This series was applied to netdev/net-next.git (master)
by Jakub Kicinski <kuba@kernel.org>:

On Mon, 09 May 2022 16:31:06 +0100 you wrote:
> The Siena NICs (SFN5000 and SFN6000 series) went EOL in November 2021.
> Most of these adapters have been remove from our test labs, and testing
> has been reduced to a minimum.
> 
> This patch series creates a separate kernel module for the Siena architecture,
> analogous to what was done for Falcon some years ago.
> This reduces our maintenance for the sfc.ko module, and allows us to
> enhance the EF10 and EF100 drivers without the risk of breaking Siena NICs.
> 
> [...]

Here is the summary with links:
  - [net-next,v4,01/11] sfc: Move Siena specific files
    (no matching commit)
  - [net-next,v4,02/11] sfc: Copy shared files needed for Siena (part 1)
    (no matching commit)
  - [net-next,v4,03/11] sfc: Copy shared files needed for Siena (part 2)
    (no matching commit)
  - [net-next,v4,04/11] sfc/siena: Remove build references to missing functionality
    https://git.kernel.org/netdev/net-next/c/956f2d86cb37
  - [net-next,v4,05/11] sfc/siena: Rename functions in efx headers to avoid conflicts with sfc
    https://git.kernel.org/netdev/net-next/c/71ad88f66125
  - [net-next,v4,06/11] sfc/siena: Rename RX/TX functions to avoid conflicts with sfc
    https://git.kernel.org/netdev/net-next/c/7f9e4b2a61ba
  - [net-next,v4,07/11] sfc/siena: Rename peripheral functions to avoid conflicts with sfc
    https://git.kernel.org/netdev/net-next/c/95e96f7788d0
  - [net-next,v4,08/11] sfc/siena: Rename functions in mcdi headers to avoid conflicts with sfc
    https://git.kernel.org/netdev/net-next/c/4d49e5cd4b09
  - [net-next,v4,09/11] sfc/siena: Rename functions in nic_common.h to avoid conflicts with sfc
    https://git.kernel.org/netdev/net-next/c/c8443b698238
  - [net-next,v4,10/11] sfc/siena: Inline functions in sriov.h to avoid conflicts with sfc
    https://git.kernel.org/netdev/net-next/c/782f7130849f
  - [net-next,v4,11/11] sfc: Add a basic Siena module
    https://git.kernel.org/netdev/net-next/c/c5a13c319e10

You are awesome, thank you!