netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH next 00/11] ice: Introduce ETH56G PHY model for E825C products
@ 2024-05-28 23:03 Jacob Keller
  2024-05-28 23:03 ` [PATCH next 01/11] ice: Introduce ice_ptp_hw struct Jacob Keller
                   ` (11 more replies)
  0 siblings, 12 replies; 17+ messages in thread
From: Jacob Keller @ 2024-05-28 23:03 UTC (permalink / raw)
  To: David Miller, Jakub Kicinski, netdev
  Cc: Jacob Keller, Jiri Pirko, Karol Kolacinski, Przemek Kitszel,
	Arkadiusz Kubalewski, Pucha Himasekhar Reddy, Sergey Temerkhanov,
	Michal Michalik, Grzegorz Nitka, Prathisna Padmasanan,
	Pawel Kaminski, Mateusz Polchlopek

E825C products have a different PHY model than E822, E823 and E810 products.
This PHY is ETH56G and its support is necessary to have functional PTP stack
for E825C products.

This series refactors the ice driver to add support for the new PHY model.

Karol introduces the ice_ptp_hw structure. This is used to replace some
hard-coded values relating to the PHY quad and port numbers, as well as to
hold the phy_model type.

Jacob refactors the driver code that converts between the ice_ptp_tmr_cmd
enumeration and hardware register values to better re-use logic and reduce
duplication when introducing another PHY type.

Sergey introduces functions to help enable and disable the Tx timestamp
interrupts. This makes the ice_ptp.c code more generic and encapsulates the
PHY specifics into ice_ptp_hw.c

Karol introduces helper functions to clear the valid bits for Tx and Rx
timestamps. This enables informing hardware to discard stale timestamps
after performing clock operations.

Sergey moves the Clock Generation Unit (CGU) logic out of the E822 specific
area of the ice_ptp_hw.c file as it will be re-used for other device PHY
models.

Jacob introduces a helper function for obtaining the base increment values,
moving this logic out of ice_ptp.c and into the ice_ptp_hw.c file to better
encapsulate hardware differences.

Sergey builds on these refactors to introduce the new ETH56G PHY model used
by the E825C products. This includes introducing the required helpers,
constants, and PHY model checks.

Karol simplifies the CGU logic by using anonymous structures, dropping an
unnecessary ".field" name for accessing the CGU data.

Michal Michalik updates the CGU logic to support the E825C hardware,
ensuring that the clock generation is configured properly.

Grzegorz Nitka adds support to read the NAC topology data from the device.
This is in preparation for supporting devices which combine two NACs
together, connecting all ports to the same clock source. This enables the
driver to determine if its operating on such a device, or if its operating
on the standard 1-NAC configuration.

Grzsecgorz Nitka adjusts the PTP initialization to prepare for the 2x50G
E825C devices, introducing special mapping for the PHY ports to prepare for
support of the 2-NAC devices.

With this, the ice driver is capable of handling PTP for the single-NAC
E825C devices. Complete support for the 2-NAC devices requirs some work on
how the ports connect to the clock owner. During review of this work, it
was pointed out that our existing use of auxiliary bus is disliked, and
Jiri requested that we change it. We are currently working on developing a
replacement solution for the auxiliary bus implementation and have dropped
the relevant changes out of this series. A future series will refactor the
port to clock connection, at which time we will finish the support for
2-NAC E825C devices.

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
---
Grzegorz Nitka (2):
      ice: Add NAC Topology device capability parser
      ice: Adjust PTP init for 2x50G E825C devices

Jacob Keller (2):
      ice: Introduce helper to get tmr_cmd_reg values
      ice: Introduce ice_get_base_incval() helper

Karol Kolacinski (3):
      ice: Introduce ice_ptp_hw struct
      ice: Add PHY OFFSET_READY register clearing
      ice: Change CGU regs struct to anonymous

Michal Michalik (1):
      ice: Add support for E825-C TS PLL handling

Sergey Temerkhanov (3):
      ice: Implement Tx interrupt enablement functions
      ice: Move CGU block
      ice: Introduce ETH56G PHY model for E825C products

 drivers/net/ethernet/intel/ice/ice_adminq_cmd.h |    1 +
 drivers/net/ethernet/intel/ice/ice_cgu_regs.h   |   77 +-
 drivers/net/ethernet/intel/ice/ice_common.c     |   74 +-
 drivers/net/ethernet/intel/ice/ice_common.h     |    2 +
 drivers/net/ethernet/intel/ice/ice_hw_autogen.h |    4 +
 drivers/net/ethernet/intel/ice/ice_ptp.c        |  208 +-
 drivers/net/ethernet/intel/ice/ice_ptp.h        |    1 +
 drivers/net/ethernet/intel/ice/ice_ptp_consts.h |  402 +++
 drivers/net/ethernet/intel/ice/ice_ptp_hw.c     | 3256 +++++++++++++++++++----
 drivers/net/ethernet/intel/ice/ice_ptp_hw.h     |  295 +-
 drivers/net/ethernet/intel/ice/ice_sbq_cmd.h    |   10 +-
 drivers/net/ethernet/intel/ice/ice_type.h       |   58 +-
 12 files changed, 3754 insertions(+), 634 deletions(-)
---
base-commit: 4b3529edbb8ff069d762c6947e055e10c1748170
change-id: 20240528-next-2024-05-28-ptp-refactors-49c37676fb59

Best regards,
-- 
Jacob Keller <jacob.e.keller@intel.com>


^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2024-06-04 22:08 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-28 23:03 [PATCH next 00/11] ice: Introduce ETH56G PHY model for E825C products Jacob Keller
2024-05-28 23:03 ` [PATCH next 01/11] ice: Introduce ice_ptp_hw struct Jacob Keller
2024-05-28 23:03 ` [PATCH next 02/11] ice: Introduce helper to get tmr_cmd_reg values Jacob Keller
2024-05-28 23:03 ` [PATCH next 03/11] ice: Implement Tx interrupt enablement functions Jacob Keller
2024-05-28 23:03 ` [PATCH next 04/11] ice: Add PHY OFFSET_READY register clearing Jacob Keller
2024-05-28 23:03 ` [PATCH next 05/11] ice: Move CGU block Jacob Keller
2024-05-28 23:03 ` [PATCH next 06/11] ice: Introduce ice_get_base_incval() helper Jacob Keller
2024-05-28 23:03 ` [PATCH next 07/11] ice: Introduce ETH56G PHY model for E825C products Jacob Keller
2024-06-01 10:35   ` Simon Horman
2024-06-03 19:47     ` Jacob Keller
2024-06-04  9:28       ` Simon Horman
2024-06-04 22:08         ` Jacob Keller
2024-05-28 23:03 ` [PATCH next 08/11] ice: Change CGU regs struct to anonymous Jacob Keller
2024-05-28 23:03 ` [PATCH next 09/11] ice: Add support for E825-C TS PLL handling Jacob Keller
2024-05-28 23:04 ` [PATCH next 10/11] ice: Add NAC Topology device capability parser Jacob Keller
2024-05-28 23:04 ` [PATCH next 11/11] ice: Adjust PTP init for 2x50G E825C devices Jacob Keller
2024-06-01 23:10 ` [PATCH next 00/11] ice: Introduce ETH56G PHY model for E825C products patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).