* [PATCH net-next v3 00/10] Support ICSSG-based Ethernet on AM65x SR1.0 devices
@ 2024-02-21 15:24 Diogo Ivo
2024-02-21 15:24 ` [PATCH net-next v3 01/10] dt-bindings: net: Add support for AM65x SR1.0 in ICSSG Diogo Ivo
0 siblings, 1 reply; 4+ messages in thread
From: Diogo Ivo @ 2024-02-21 15:24 UTC (permalink / raw)
To: danishanwar, rogerq, davem, edumazet, kuba, pabeni, andrew,
dan.carpenter, jacob.e.keller, robh, robh+dt,
krzysztof.kozlowski+dt, conor+dt, vigneshr, wsa+renesas,
hkallweit1, arnd, vladimir.oltean, linux-arm-kernel, netdev,
devicetree
Cc: Diogo Ivo, jan.kiszka
Hello,
This series extends the current ICSSG-based Ethernet driver to support
AM65x Silicon Revision 1.0 devices.
Notable differences between the Silicon Revisions are that there is
no TX core in SR1.0 with this being handled by the firmware, requiring
extra DMA channels to manage communication with the firmware (with the
firmware being different as well) and in the packet classifier.
The motivation behind it is that a significant number of Siemens
devices containing SR1.0 silicon have been deployed in the field
and need to be supported and updated to newer kernel versions
without losing functionality.
This series is based on TI's 5.10 SDK [1].
The second version of this patch series can be found in [2].
The main changes in this version are the introduction of a separate
driver for SR1.0 with its own Kconfig symbol and the refactoring of
functions that can be shared across Silicon Revisions into a common
location. A more detailed description of the changes can be found
in each commit's message.
Importantly, in its current form the driver has two problems:
- Setting the link to 100Mbit/s and half duplex results in slower than
expected speeds. We have identified that this comes from
icssg_rgmii_get_fullduplex() misreporting a full duplex connection
and thus we send the wrong command to the firmware.
- When using 3 TX channels we observe a timeout on TX queue 0. We have
made no real progress on this front in identifying the root cause.
For both of these topics help from someone more familiar with the hardware
would be greatly appreciated so that we can support these features rather
than disable them in the final driver version.
[1]: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/?h=ti-linux-5.10.y
[2]: https://lore.kernel.org/netdev/20240117161602.153233-1-diogo.ivo@siemens.com/
Diogo Ivo (10):
dt-bindings: net: Add support for AM65x SR1.0 in ICSSG
eth: Move IPv4/IPv6 multicast address bases to their own symbols
net: ti: icssg-prueth: Move common functions into a separate file
net: ti: icssg-prueth: Add SR1.0-specific configuration bits
net: ti: icssg-prueth: Add SR1.0-specific description bits
net: ti: icssg-prueth: Adjust IPG configuration for SR1.0
net: ti: icssg-prueth: Adjust the number of TX channels for SR1.0
net: ti: icssg-prueth: Add functions to configure SR1.0 packet
classifier
net: ti: icssg-prueth: Modify common functions for SR1.0
net: ti: icssg-prueth: Add ICSSG Ethernet driver for AM65x SR1.0
platforms
.../bindings/net/ti,icssg-prueth.yaml | 35 +-
drivers/net/ethernet/ti/Kconfig | 15 +
drivers/net/ethernet/ti/Makefile | 9 +
.../net/ethernet/ti/icssg/icssg_classifier.c | 113 +-
drivers/net/ethernet/ti/icssg/icssg_common.c | 1222 +++++++++++++++++
drivers/net/ethernet/ti/icssg/icssg_config.c | 14 +-
drivers/net/ethernet/ti/icssg/icssg_config.h | 56 +
drivers/net/ethernet/ti/icssg/icssg_ethtool.c | 10 +
drivers/net/ethernet/ti/icssg/icssg_prueth.c | 1189 +---------------
drivers/net/ethernet/ti/icssg/icssg_prueth.h | 77 +-
.../net/ethernet/ti/icssg/icssg_prueth_sr1.c | 1173 ++++++++++++++++
include/linux/etherdevice.h | 12 +-
12 files changed, 2716 insertions(+), 1209 deletions(-)
create mode 100644 drivers/net/ethernet/ti/icssg/icssg_common.c
create mode 100644 drivers/net/ethernet/ti/icssg/icssg_prueth_sr1.c
--
2.43.2
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH net-next v3 01/10] dt-bindings: net: Add support for AM65x SR1.0 in ICSSG
2024-02-21 15:24 [PATCH net-next v3 00/10] Support ICSSG-based Ethernet on AM65x SR1.0 devices Diogo Ivo
@ 2024-02-21 15:24 ` Diogo Ivo
2024-02-22 17:57 ` Conor Dooley
2024-02-26 16:48 ` Roger Quadros
0 siblings, 2 replies; 4+ messages in thread
From: Diogo Ivo @ 2024-02-21 15:24 UTC (permalink / raw)
To: danishanwar, rogerq, davem, edumazet, kuba, pabeni, robh+dt,
krzysztof.kozlowski+dt, conor+dt, linux-arm-kernel, netdev,
devicetree
Cc: Diogo Ivo, jan.kiszka
Silicon Revision 1.0 of the AM65x came with a slightly different ICSSG
support: Only 2 PRUs per slice are available and instead 2 additional
DMA channels are used for management purposes. We have no restrictions
on specified PRUs, but the DMA channels need to be adjusted.
Co-developed-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Diogo Ivo <diogo.ivo@siemens.com>
---
Changes in v3:
- Fixed dt_binding_check error by moving allOf
Changes in v2:
- Removed explicit reference to SR2.0
- Moved sr1 to the SoC name
- Expand dma-names list and adjust min/maxItems depending on SR1.0/2.0
.../bindings/net/ti,icssg-prueth.yaml | 35 +++++++++++++++----
1 file changed, 29 insertions(+), 6 deletions(-)
diff --git a/Documentation/devicetree/bindings/net/ti,icssg-prueth.yaml b/Documentation/devicetree/bindings/net/ti,icssg-prueth.yaml
index 229c8f32019f..e253fa786092 100644
--- a/Documentation/devicetree/bindings/net/ti,icssg-prueth.yaml
+++ b/Documentation/devicetree/bindings/net/ti,icssg-prueth.yaml
@@ -13,14 +13,12 @@ description:
Ethernet based on the Programmable Real-Time Unit and Industrial
Communication Subsystem.
-allOf:
- - $ref: /schemas/remoteproc/ti,pru-consumer.yaml#
-
properties:
compatible:
enum:
- - ti,am642-icssg-prueth # for AM64x SoC family
- - ti,am654-icssg-prueth # for AM65x SoC family
+ - ti,am642-icssg-prueth # for AM64x SoC family
+ - ti,am654-icssg-prueth # for AM65x SoC family
+ - ti,am654-sr1-icssg-prueth # for AM65x SoC family, SR1.0
sram:
$ref: /schemas/types.yaml#/definitions/phandle
@@ -28,9 +26,11 @@ properties:
phandle to MSMC SRAM node
dmas:
- maxItems: 10
+ minItems: 10
+ maxItems: 12
dma-names:
+ minItems: 10
items:
- const: tx0-0
- const: tx0-1
@@ -42,6 +42,8 @@ properties:
- const: tx1-3
- const: rx0
- const: rx1
+ - const: rxmgm0
+ - const: rxmgm1
ti,mii-g-rt:
$ref: /schemas/types.yaml#/definitions/phandle
@@ -132,6 +134,27 @@ required:
- interrupts
- interrupt-names
+allOf:
+ - $ref: /schemas/remoteproc/ti,pru-consumer.yaml#
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: ti,am654-sr1-icssg-prueth
+ then:
+ properties:
+ dmas:
+ minItems: 12
+ dma-names:
+ minItems: 12
+ else:
+ properties:
+ dmas:
+ maxItems: 10
+ dma-names:
+ maxItems: 10
+
unevaluatedProperties: false
examples:
--
2.43.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH net-next v3 01/10] dt-bindings: net: Add support for AM65x SR1.0 in ICSSG
2024-02-21 15:24 ` [PATCH net-next v3 01/10] dt-bindings: net: Add support for AM65x SR1.0 in ICSSG Diogo Ivo
@ 2024-02-22 17:57 ` Conor Dooley
2024-02-26 16:48 ` Roger Quadros
1 sibling, 0 replies; 4+ messages in thread
From: Conor Dooley @ 2024-02-22 17:57 UTC (permalink / raw)
To: Diogo Ivo
Cc: danishanwar, rogerq, davem, edumazet, kuba, pabeni, robh+dt,
krzysztof.kozlowski+dt, conor+dt, linux-arm-kernel, netdev,
devicetree, jan.kiszka
[-- Attachment #1: Type: text/plain, Size: 588 bytes --]
On Wed, Feb 21, 2024 at 03:24:07PM +0000, Diogo Ivo wrote:
> Silicon Revision 1.0 of the AM65x came with a slightly different ICSSG
> support: Only 2 PRUs per slice are available and instead 2 additional
> DMA channels are used for management purposes. We have no restrictions
> on specified PRUs, but the DMA channels need to be adjusted.
>
> Co-developed-by: Jan Kiszka <jan.kiszka@siemens.com>
> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
> Signed-off-by: Diogo Ivo <diogo.ivo@siemens.com>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Cheers,
Conor.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH net-next v3 01/10] dt-bindings: net: Add support for AM65x SR1.0 in ICSSG
2024-02-21 15:24 ` [PATCH net-next v3 01/10] dt-bindings: net: Add support for AM65x SR1.0 in ICSSG Diogo Ivo
2024-02-22 17:57 ` Conor Dooley
@ 2024-02-26 16:48 ` Roger Quadros
1 sibling, 0 replies; 4+ messages in thread
From: Roger Quadros @ 2024-02-26 16:48 UTC (permalink / raw)
To: Diogo Ivo, danishanwar, davem, edumazet, kuba, pabeni, robh+dt,
krzysztof.kozlowski+dt, conor+dt, linux-arm-kernel, netdev,
devicetree
Cc: jan.kiszka
On 21/02/2024 17:24, Diogo Ivo wrote:
> Silicon Revision 1.0 of the AM65x came with a slightly different ICSSG
> support: Only 2 PRUs per slice are available and instead 2 additional
> DMA channels are used for management purposes. We have no restrictions
> on specified PRUs, but the DMA channels need to be adjusted.
>
> Co-developed-by: Jan Kiszka <jan.kiszka@siemens.com>
> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
> Signed-off-by: Diogo Ivo <diogo.ivo@siemens.com>
Reviewed-by: Roger Quadros <rogerq@kernel.org>
--
cheers,
-roger
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-02-26 16:48 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-21 15:24 [PATCH net-next v3 00/10] Support ICSSG-based Ethernet on AM65x SR1.0 devices Diogo Ivo
2024-02-21 15:24 ` [PATCH net-next v3 01/10] dt-bindings: net: Add support for AM65x SR1.0 in ICSSG Diogo Ivo
2024-02-22 17:57 ` Conor Dooley
2024-02-26 16:48 ` Roger Quadros
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).