[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