[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20210401175610.44431-1-snelson@pensando.io>
Date: Thu, 1 Apr 2021 10:55:58 -0700
From: Shannon Nelson <snelson@...sando.io>
To: netdev@...r.kernel.org, davem@...emloft.net, kuba@...nel.org
Cc: drivers@...sando.io, Shannon Nelson <snelson@...sando.io>
Subject: [PATCH net-next 00/12] ionic: add PTP and hw clock support
This patchset adds support for accessing the DSC hardware clock and
for offloading PTP timestamping.
Tx packet timestamping happens through a separate Tx queue set up with
expanded completion descriptors that can report the timestamp.
Rx timestamping can happen either on all queues, or on a separate
timestamping queue when specific filtering is requested. Again, the
timestamps are reported with the expanded completion descriptors.
The timestamping offload ability is advertised but not enabled until an
OS service asks for it. At that time the driver's queues are reconfigured
to use the different completion descriptors and the private processing
queues as needed.
Reading the raw clock value comes through a new pair of values in the
device info registers in BAR0. These high and low values are interpreted
with help from new clock mask, mult, and shift values in the device
identity information.
First we add the ability to detect new queue features, then the handling
of the new descriptor sizes. After adding the new interface structures,
we start adding the support code, saving the advertising to the stack
for last.
Shannon Nelson (12):
ionic: add new queue features to interface
ionic: add handling of larger descriptors
ionic: add hw timestamp structs to interface
ionic: split adminq post and wait calls
ionic: add hw timestamp support files
ionic: link in the new hw timestamp code
ionic: add rx filtering for hw timestamp steering
ionic: set up hw timestamp queues
ionic: add and enable tx and rx timestamp handling
ionic: add ethtool support for PTP
ionic: ethtool ptp stats
ionic: advertise support for hardware timestamps
drivers/net/ethernet/pensando/ionic/Makefile | 1 +
drivers/net/ethernet/pensando/ionic/ionic.h | 6 +
.../net/ethernet/pensando/ionic/ionic_dev.c | 2 +
.../net/ethernet/pensando/ionic/ionic_dev.h | 3 +
.../ethernet/pensando/ionic/ionic_ethtool.c | 93 +++
.../net/ethernet/pensando/ionic/ionic_if.h | 214 ++++++-
.../net/ethernet/pensando/ionic/ionic_lif.c | 439 ++++++++++++-
.../net/ethernet/pensando/ionic/ionic_lif.h | 75 +++
.../net/ethernet/pensando/ionic/ionic_main.c | 17 +-
.../net/ethernet/pensando/ionic/ionic_phc.c | 589 ++++++++++++++++++
.../ethernet/pensando/ionic/ionic_rx_filter.c | 21 +
.../ethernet/pensando/ionic/ionic_rx_filter.h | 1 +
.../net/ethernet/pensando/ionic/ionic_stats.c | 38 +-
.../net/ethernet/pensando/ionic/ionic_txrx.c | 138 +++-
.../net/ethernet/pensando/ionic/ionic_txrx.h | 3 +
15 files changed, 1565 insertions(+), 75 deletions(-)
create mode 100644 drivers/net/ethernet/pensando/ionic/ionic_phc.c
--
2.17.1
Powered by blists - more mailing lists