[PATCH net-next v4 00/10] Support ICSSG-based Ethernet on AM65x SR1.0 devices

MD Danish Anwar danishanwar at ti.com
Tue Mar 12 04:36:45 PDT 2024


Hi Diogo,

On 05/03/24 5:10 pm, Diogo Ivo wrote:
> 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 third version of this patch series can be found in [2].
> 
> Detailed descriptions of the changes in this series can be found in
> each commit's message.
> 
> However, 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/20240221152421.112324-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  |   79 +-
>  .../net/ethernet/ti/icssg/icssg_prueth_sr1.c  | 1171 ++++++++++++++++
>  include/linux/etherdevice.h                   |   12 +-
>  12 files changed, 2715 insertions(+), 1210 deletions(-)
>  create mode 100644 drivers/net/ethernet/ti/icssg/icssg_common.c
>  create mode 100644 drivers/net/ethernet/ti/icssg/icssg_prueth_sr1.c
> 

This series doesn't break any existing functionality of ICSSG driver on
AM654x SR2.0. The series looks ok to me.

For this series,
Reviewed-by: MD Danish Anwar <danishanwar at ti.com>

-- 
Thanks and Regards,
Danish



More information about the linux-arm-kernel mailing list