mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Daniel Machon <daniel.machon@microchip.com>
To: Daniel Machon <daniel.machon@microchip.com>,
	<UNGLinuxDriver@microchip.com>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@kernel.org>,
	"Jakub Kicinski" <kuba@kernel.org>,
	Paolo Abeni <pabeni@redhat.com>,
	Steen Hegelund <Steen.Hegelund@microchip.com>,
	Richard Cochran <richardcochran@gmail.com>
Cc: <netdev@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>,
	Robert Marko <robert.marko@sartura.hr>
Subject: [PATCH net-next 0/3] net: sparx5: add TAS offload
Date: Tue, 6 Oct 2026 15:51:05 +0200	[thread overview]
Message-ID: <20261006-sparx5-tas-v1-0-5eef1126dfd5@microchip.com> (raw)

This series adds offload of the Time Aware Shaper (IEEE 802.1Qbv),
configured through tc-taprio, on Sparx5 and lan969x, which are both
served by the sparx5 driver.

In hardware, a TAS schedule is run by a TAS list, which steps through
gate control list (GCL) entries taken from a pool shared by all ports.
Sparx5 has 128 lists and 10000 GCL entries, lan969x has 60 lists and
3000 entries. An idle list is in the ADMIN state. Once started, it is
PENDING until its base time, then OPERATING. A stopped list is
TERMINATING until the end of its cycle, and then goes back to ADMIN.

The driver uses two lists per port, so a new schedule can be set up in
one list while the current one keeps running in the other. When the
new list reaches its base time, the hardware stops the old one.

The two chips differ in how a list addresses its entries: on Sparx5 a
list is a contiguous range addressed relative to its base, on lan969x
it is a linked list addressed by absolute pool index. The driver
handles both.

Frame preemption is not supported yet, and every queue uses the
default guard band of 1536 bytes. Making the guard band follow the MTU,
and taprio queueMaxSDU, are left for a follow-up.

Patch #1 adds the registers used by TAS.

Patch #2 moves the existing TAS link speed configuration to a new
sparx5_tas.c.

Patch #3 adds the taprio offload.

---
Daniel Machon (3):
      net: sparx5: Add registers used by TAS
      net: sparx5: Move TAS link speed configuration to sparx5_tas.c
      net: sparx5: Add TAS offload support

 drivers/net/ethernet/microchip/sparx5/Makefile     |   2 +-
 .../ethernet/microchip/sparx5/lan969x/lan969x.c    |   2 +
 .../microchip/sparx5/lan969x/lan969x_regs.c        |  10 +
 .../net/ethernet/microchip/sparx5/sparx5_main.c    |   2 +
 .../net/ethernet/microchip/sparx5/sparx5_main.h    |  28 +
 .../ethernet/microchip/sparx5/sparx5_main_regs.h   | 204 ++++++
 drivers/net/ethernet/microchip/sparx5/sparx5_qos.c |  53 +-
 drivers/net/ethernet/microchip/sparx5/sparx5_qos.h |   1 -
 .../net/ethernet/microchip/sparx5/sparx5_regs.c    |  10 +
 .../net/ethernet/microchip/sparx5/sparx5_regs.h    |  10 +
 drivers/net/ethernet/microchip/sparx5/sparx5_tas.c | 806 +++++++++++++++++++++
 drivers/net/ethernet/microchip/sparx5/sparx5_tc.c  |  17 +
 12 files changed, 1094 insertions(+), 51 deletions(-)
---
base-commit: a5e7d8e446af9803e37a3b6a4d416fb41178348f
change-id: 20261006-sparx5-tas-20de2210770d

Best regards,
-- 
Daniel Machon <daniel.machon@microchip.com>


             reply	other threads:[~2026-10-06 13:51 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-06 13:51 Daniel Machon [this message]
2026-10-06 13:51 ` [PATCH net-next 1/3] net: sparx5: Add registers used by TAS Daniel Machon
2026-10-06 13:51 ` [PATCH net-next 2/3] net: sparx5: Move TAS link speed configuration to sparx5_tas.c Daniel Machon
2026-10-06 13:51 ` [PATCH net-next 3/3] net: sparx5: Add TAS offload support Daniel Machon

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=20261006-sparx5-tas-v1-0-5eef1126dfd5@microchip.com \
    --to=daniel.machon@microchip.com \
    --cc=Steen.Hegelund@microchip.com \
    --cc=UNGLinuxDriver@microchip.com \
    --cc=andrew+netdev@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=edumazet@kernel.org \
    --cc=kuba@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=richardcochran@gmail.com \
    --cc=robert.marko@sartura.hr \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®