[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <524ea592-02d6-4a1d-899a-feaa7fd11914@ti.com>
Date: Thu, 11 Jan 2024 15:16:27 +0530
From: Siddharth Vadapalli <s-vadapalli@...com>
To: Sanjuán García, Jorge
<Jorge.SanjuanGarcia@...gon.com>,
"andrew@...n.ch" <andrew@...n.ch>,
"davem@...emloft.net" <davem@...emloft.net>,
"edumazet@...gle.com"
<edumazet@...gle.com>,
"kuba@...nel.org" <kuba@...nel.org>,
"pabeni@...hat.com" <pabeni@...hat.com>
CC: "netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
<s-vadapalli@...com>
Subject: Re: [PATCH net v2 1/1] net: ethernet: ti: am65-cpsw: Fix max mtu to
fit ethernet frames
On 05/01/24 14:25, Sanjuán García, Jorge wrote:
> The value of AM65_CPSW_MAX_PACKET_SIZE represents the maximum length
> of a received frame. This value is written to the register
> AM65_CPSW_PORT_REG_RX_MAXLEN.
>
> The maximum MTU configured on the network device should then leave
> some room for the ethernet headers and frame check. Otherwise, if
> the network interface is configured to its maximum mtu possible,
> the frames will be larger than AM65_CPSW_MAX_PACKET_SIZE and will
> get dropped as oversized.
>
> The switch supports ethernet frame sizes between 64 and 2024 bytes
> (including VLAN) as stated in the technical reference manual, so
> define AM65_CPSW_MAX_PACKET_SIZE with that maximum size.
>
> Fixes: 93a76530316a ("net: ethernet: ti: introduce am65x/j721e gigabit eth
> subsystem driver")
> Signed-off-by: Jorge Sanjuan Garcia <jorge.sanjuangarcia@...gon.com>
Reviewed-by: Siddharth Vadapalli <s-vadapalli@...com>
> ---
> drivers/net/ethernet/ti/am65-cpsw-nuss.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/ethernet/ti/am65-cpsw-nuss.c
> b/drivers/net/ethernet/ti/am65-cpsw-nuss.c
> index 7651f90f51f2..3c7854537cb5 100644
> --- a/drivers/net/ethernet/ti/am65-cpsw-nuss.c
> +++ b/drivers/net/ethernet/ti/am65-cpsw-nuss.c
> @@ -56,7 +56,7 @@
> #define AM65_CPSW_MAX_PORTS 8
>
> #define AM65_CPSW_MIN_PACKET_SIZE VLAN_ETH_ZLEN
> -#define AM65_CPSW_MAX_PACKET_SIZE (VLAN_ETH_FRAME_LEN + ETH_FCS_LEN)
> +#define AM65_CPSW_MAX_PACKET_SIZE 2024
>
> #define AM65_CPSW_REG_CTL 0x004
> #define AM65_CPSW_REG_STAT_PORT_EN 0x014
> @@ -2196,7 +2196,8 @@ am65_cpsw_nuss_init_port_ndev(struct am65_cpsw_common
> *common, u32 port_idx)
> eth_hw_addr_set(port->ndev, port->slave.mac_addr);
>
> port->ndev->min_mtu = AM65_CPSW_MIN_PACKET_SIZE;
> - port->ndev->max_mtu = AM65_CPSW_MAX_PACKET_SIZE;
> + port->ndev->max_mtu = AM65_CPSW_MAX_PACKET_SIZE -
> + (VLAN_ETH_HLEN + ETH_FCS_LEN);
> port->ndev->hw_features = NETIF_F_SG |
> NETIF_F_RXCSUM |
> NETIF_F_HW_CSUM |
..
--
Regards,
Siddharth.
Powered by blists - more mailing lists