From: Milena Olech <milena.olech@intel.com>
To: intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org, anthony.l.nguyen@intel.com,
przemyslaw.kitszel@intel.com,
Milena Olech <milena.olech@intel.com>
Subject: [Intel-wired-lan] [PATCH v10 iwl-next 00/11] idpf: add initial PTP support
Date: Tue, 8 Apr 2025 12:30:46 +0200 [thread overview]
Message-ID: <20250408103240.30287-2-milena.olech@intel.com> (raw)
This patch series introduces support for Precision Time Protocol (PTP) to
Intel(R) Infrastructure Data Path Function (IDPF) driver. PTP feature is
supported when the PTP capability is negotiated with the Control
Plane (CP). IDPF creates a PTP clock and sets a set of supported
functions.
During the PTP initialization, IDPF requests a set of PTP capabilities
and receives a writeback from the CP with the set of supported options.
These options are:
- get time of the PTP clock
- get cross timestamp
- set the time of the PTP clock
- adjust the PTP clock
- Tx timestamping
Each feature is considered to have direct access, where the operations
on PCIe BAR registers are allowed, or the mailbox access, where the
virtchnl messages are used to perform any PTP action. Mailbox access
means that PTP requests are sent to the CP through dedicated secondary
mailbox and the CP reads/writes/modifies desired resource - PTP Clock
or Tx timestamp registers.
Tx timestamp capabilities are negotiated only for vports that have
UPLINK_VPORT flag set by the CP. Capabilities provide information about
the number of available Tx timestamp latches, their indexes and size of
the Tx timestamp value. IDPF requests Tx timestamp by setting the
TSYN bit and the requested timestamp index in the context descriptor for
the PTP packets. When the completion tag for that packet is received,
IDPF schedules a worker to read the Tx timestamp value.
v9 -> v10: create a separate patch for cross timestamping, change the
order, improve get device clock time latch mechanism
v8 -> v9: fix Rx filters upscaling, check if the link is up in
idpf_hwtstamp_get/set, fix typo
v7 -> v8: split Tx and Rx timestamping enablement, refactor
idpf_for_each_vport
v6 -> v7: remove section about Tx timestamp limitation from cover letter
since it has been fixed, change preparing flow descriptor method
v5 -> v6: change locking mechanism in get_ts_info, clean timestamp
fields when preparing flow descriptor, add Rx filter
v4 -> v5: fix spin unlock when Tx timestamp index is requested
v3 -> v4: change timestamp filters dependent on Tx timestamp cap,
rewrite function that extends Tx timestamp value, minor fixes
v2 -> v3: fix minor issues, revert idpf_for_each_vport changes,
extend idpf_ptp_set_rx_tstamp, split tstamp statistics
v1 -> v2: add stats for timestamping, use ndo_hwtamp_get/set,
fix minor spelling issues
Milena Olech (11):
idpf: change the method for mailbox workqueue allocation
idpf: add initial PTP support
virtchnl: add PTP virtchnl definitions
idpf: move virtchnl structures to the header file
idpf: negotiate PTP capabilities and get PTP clock
idpf: add mailbox access to read PTP clock time
idpf: add cross timestamping
idpf: add PTP clock configuration
idpf: add Tx timestamp capabilities negotiation
idpf: add Tx timestamp flows
idpf: add support for Rx timestamping
drivers/net/ethernet/intel/idpf/Kconfig | 1 +
drivers/net/ethernet/intel/idpf/Makefile | 3 +
drivers/net/ethernet/intel/idpf/idpf.h | 35 +
.../ethernet/intel/idpf/idpf_controlq_api.h | 3 +
drivers/net/ethernet/intel/idpf/idpf_dev.c | 14 +
.../net/ethernet/intel/idpf/idpf_ethtool.c | 75 +-
.../ethernet/intel/idpf/idpf_lan_pf_regs.h | 4 +
.../net/ethernet/intel/idpf/idpf_lan_txrx.h | 13 +-
drivers/net/ethernet/intel/idpf/idpf_lib.c | 47 +
drivers/net/ethernet/intel/idpf/idpf_main.c | 9 +-
drivers/net/ethernet/intel/idpf/idpf_ptp.c | 1005 +++++++++++++++++
drivers/net/ethernet/intel/idpf/idpf_ptp.h | 381 +++++++
drivers/net/ethernet/intel/idpf/idpf_txrx.c | 171 ++-
drivers/net/ethernet/intel/idpf/idpf_txrx.h | 18 +-
.../net/ethernet/intel/idpf/idpf_virtchnl.c | 160 ++-
.../net/ethernet/intel/idpf/idpf_virtchnl.h | 84 ++
.../ethernet/intel/idpf/idpf_virtchnl_ptp.c | 678 +++++++++++
drivers/net/ethernet/intel/idpf/virtchnl2.h | 314 ++++-
18 files changed, 2912 insertions(+), 103 deletions(-)
create mode 100644 drivers/net/ethernet/intel/idpf/idpf_ptp.c
create mode 100644 drivers/net/ethernet/intel/idpf/idpf_ptp.h
create mode 100644 drivers/net/ethernet/intel/idpf/idpf_virtchnl_ptp.c
base-commit: edf956e8bd7d4c7ac8a7643ed74a36227db1fa27
--
2.43.5
WARNING: multiple messages have this Message-ID (diff)
From: Milena Olech <milena.olech@intel.com>
To: intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org, anthony.l.nguyen@intel.com,
przemyslaw.kitszel@intel.com,
Milena Olech <milena.olech@intel.com>
Subject: [PATCH v10 iwl-next 00/11] idpf: add initial PTP support
Date: Tue, 8 Apr 2025 12:30:46 +0200 [thread overview]
Message-ID: <20250408103240.30287-2-milena.olech@intel.com> (raw)
This patch series introduces support for Precision Time Protocol (PTP) to
Intel(R) Infrastructure Data Path Function (IDPF) driver. PTP feature is
supported when the PTP capability is negotiated with the Control
Plane (CP). IDPF creates a PTP clock and sets a set of supported
functions.
During the PTP initialization, IDPF requests a set of PTP capabilities
and receives a writeback from the CP with the set of supported options.
These options are:
- get time of the PTP clock
- get cross timestamp
- set the time of the PTP clock
- adjust the PTP clock
- Tx timestamping
Each feature is considered to have direct access, where the operations
on PCIe BAR registers are allowed, or the mailbox access, where the
virtchnl messages are used to perform any PTP action. Mailbox access
means that PTP requests are sent to the CP through dedicated secondary
mailbox and the CP reads/writes/modifies desired resource - PTP Clock
or Tx timestamp registers.
Tx timestamp capabilities are negotiated only for vports that have
UPLINK_VPORT flag set by the CP. Capabilities provide information about
the number of available Tx timestamp latches, their indexes and size of
the Tx timestamp value. IDPF requests Tx timestamp by setting the
TSYN bit and the requested timestamp index in the context descriptor for
the PTP packets. When the completion tag for that packet is received,
IDPF schedules a worker to read the Tx timestamp value.
v9 -> v10: create a separate patch for cross timestamping, change the
order, improve get device clock time latch mechanism
v8 -> v9: fix Rx filters upscaling, check if the link is up in
idpf_hwtstamp_get/set, fix typo
v7 -> v8: split Tx and Rx timestamping enablement, refactor
idpf_for_each_vport
v6 -> v7: remove section about Tx timestamp limitation from cover letter
since it has been fixed, change preparing flow descriptor method
v5 -> v6: change locking mechanism in get_ts_info, clean timestamp
fields when preparing flow descriptor, add Rx filter
v4 -> v5: fix spin unlock when Tx timestamp index is requested
v3 -> v4: change timestamp filters dependent on Tx timestamp cap,
rewrite function that extends Tx timestamp value, minor fixes
v2 -> v3: fix minor issues, revert idpf_for_each_vport changes,
extend idpf_ptp_set_rx_tstamp, split tstamp statistics
v1 -> v2: add stats for timestamping, use ndo_hwtamp_get/set,
fix minor spelling issues
Milena Olech (11):
idpf: change the method for mailbox workqueue allocation
idpf: add initial PTP support
virtchnl: add PTP virtchnl definitions
idpf: move virtchnl structures to the header file
idpf: negotiate PTP capabilities and get PTP clock
idpf: add mailbox access to read PTP clock time
idpf: add cross timestamping
idpf: add PTP clock configuration
idpf: add Tx timestamp capabilities negotiation
idpf: add Tx timestamp flows
idpf: add support for Rx timestamping
drivers/net/ethernet/intel/idpf/Kconfig | 1 +
drivers/net/ethernet/intel/idpf/Makefile | 3 +
drivers/net/ethernet/intel/idpf/idpf.h | 35 +
.../ethernet/intel/idpf/idpf_controlq_api.h | 3 +
drivers/net/ethernet/intel/idpf/idpf_dev.c | 14 +
.../net/ethernet/intel/idpf/idpf_ethtool.c | 75 +-
.../ethernet/intel/idpf/idpf_lan_pf_regs.h | 4 +
.../net/ethernet/intel/idpf/idpf_lan_txrx.h | 13 +-
drivers/net/ethernet/intel/idpf/idpf_lib.c | 47 +
drivers/net/ethernet/intel/idpf/idpf_main.c | 9 +-
drivers/net/ethernet/intel/idpf/idpf_ptp.c | 1005 +++++++++++++++++
drivers/net/ethernet/intel/idpf/idpf_ptp.h | 381 +++++++
drivers/net/ethernet/intel/idpf/idpf_txrx.c | 171 ++-
drivers/net/ethernet/intel/idpf/idpf_txrx.h | 18 +-
.../net/ethernet/intel/idpf/idpf_virtchnl.c | 160 ++-
.../net/ethernet/intel/idpf/idpf_virtchnl.h | 84 ++
.../ethernet/intel/idpf/idpf_virtchnl_ptp.c | 678 +++++++++++
drivers/net/ethernet/intel/idpf/virtchnl2.h | 314 ++++-
18 files changed, 2912 insertions(+), 103 deletions(-)
create mode 100644 drivers/net/ethernet/intel/idpf/idpf_ptp.c
create mode 100644 drivers/net/ethernet/intel/idpf/idpf_ptp.h
create mode 100644 drivers/net/ethernet/intel/idpf/idpf_virtchnl_ptp.c
base-commit: edf956e8bd7d4c7ac8a7643ed74a36227db1fa27
--
2.43.5
next reply other threads:[~2025-04-08 10:36 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-08 10:30 Milena Olech [this message]
2025-04-08 10:30 ` [PATCH v10 iwl-next 00/11] idpf: add initial PTP support Milena Olech
2025-04-08 10:30 ` [Intel-wired-lan] [PATCH v10 iwl-next 01/11] idpf: change the method for mailbox workqueue allocation Milena Olech
2025-04-08 10:30 ` Milena Olech
2025-04-08 21:01 ` [Intel-wired-lan] " Jacob Keller
2025-04-08 10:30 ` [Intel-wired-lan] [PATCH v10 iwl-next 02/11] idpf: add initial PTP support Milena Olech
2025-04-08 10:30 ` Milena Olech
2025-04-08 21:02 ` [Intel-wired-lan] " Jacob Keller
2025-04-08 10:30 ` [Intel-wired-lan] [PATCH v10 iwl-next 03/11] virtchnl: add PTP virtchnl definitions Milena Olech
2025-04-08 10:30 ` Milena Olech
2025-04-08 21:12 ` [Intel-wired-lan] " Jacob Keller
2025-04-09 11:51 ` Olech, Milena
2025-04-09 11:51 ` Olech, Milena
2025-04-09 18:11 ` Jacob Keller
2025-04-10 13:18 ` Olech, Milena
2025-04-10 13:18 ` Olech, Milena
2025-04-08 10:30 ` [Intel-wired-lan] [PATCH v10 iwl-next 04/11] idpf: move virtchnl structures to the header file Milena Olech
2025-04-08 10:30 ` Milena Olech
2025-04-08 21:12 ` [Intel-wired-lan] " Jacob Keller
2025-04-08 10:30 ` [Intel-wired-lan] [PATCH v10 iwl-next 05/11] idpf: negotiate PTP capabilities and get PTP clock Milena Olech
2025-04-08 10:30 ` Milena Olech
2025-04-08 21:15 ` [Intel-wired-lan] " Jacob Keller
2025-04-09 12:55 ` Olech, Milena
2025-04-09 12:55 ` Olech, Milena
2025-04-09 18:14 ` Jacob Keller
2025-04-08 10:30 ` [Intel-wired-lan] [PATCH v10 iwl-next 06/11] idpf: add mailbox access to read PTP clock time Milena Olech
2025-04-08 10:30 ` Milena Olech
2025-04-08 21:16 ` [Intel-wired-lan] " Jacob Keller
2025-04-09 13:01 ` Olech, Milena
2025-04-09 13:01 ` Olech, Milena
2025-04-08 21:17 ` Jacob Keller
2025-04-08 10:31 ` [Intel-wired-lan] [PATCH v10 iwl-next 07/11] idpf: add cross timestamping Milena Olech
2025-04-08 10:31 ` Milena Olech
2025-04-08 21:18 ` [Intel-wired-lan] " Jacob Keller
2025-04-08 10:31 ` [Intel-wired-lan] [PATCH v10 iwl-next 08/11] idpf: add PTP clock configuration Milena Olech
2025-04-08 10:31 ` Milena Olech
2025-04-08 21:20 ` [Intel-wired-lan] " Jacob Keller
2025-04-08 10:31 ` [Intel-wired-lan] [PATCH v10 iwl-next 09/11] idpf: add Tx timestamp capabilities negotiation Milena Olech
2025-04-08 10:31 ` Milena Olech
2025-04-08 21:23 ` [Intel-wired-lan] " Jacob Keller
2025-04-09 14:04 ` Olech, Milena
2025-04-09 14:04 ` Olech, Milena
2025-04-09 18:08 ` Jacob Keller
2025-04-10 14:11 ` Olech, Milena
2025-04-10 14:11 ` Olech, Milena
2025-04-10 15:36 ` Keller, Jacob E
2025-04-10 15:36 ` Keller, Jacob E
2025-04-08 10:31 ` [Intel-wired-lan] [PATCH v10 iwl-next 10/11] idpf: add Tx timestamp flows Milena Olech
2025-04-08 10:31 ` Milena Olech
2025-04-08 21:31 ` [Intel-wired-lan] " Jacob Keller
2025-04-10 13:28 ` Olech, Milena
2025-04-10 13:28 ` Olech, Milena
2025-04-08 10:31 ` [Intel-wired-lan] [PATCH v10 iwl-next 11/11] idpf: add support for Rx timestamping Milena Olech
2025-04-08 10:31 ` Milena Olech
2025-04-08 21:31 ` [Intel-wired-lan] " Jacob Keller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250408103240.30287-2-milena.olech@intel.com \
--to=milena.olech@intel.com \
--cc=anthony.l.nguyen@intel.com \
--cc=intel-wired-lan@lists.osuosl.org \
--cc=netdev@vger.kernel.org \
--cc=przemyslaw.kitszel@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.