From: Roger Quadros <rogerq@kernel.org>
To: Siddharth Vadapalli <s-vadapalli@ti.com>, Andrew Lunn <andrew@lunn.ch>
Cc: Jiri Pirko <jiri@resnulli.us>,
davem@davemloft.net, edumazet@google.com, kuba@kernel.org,
pabeni@redhat.com, vladimir.oltean@nxp.com, hkallweit1@gmail.com,
dan.carpenter@linaro.org, horms@kernel.org,
yuehaibing@huawei.com, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, srk@ti.com,
Pekka Varis <p-varis@ti.com>
Subject: Re: [PATCH net-next] net: ethernet: ti: am65-cpsw: Add priv-flag for Switch VLAN Aware mode
Date: Thu, 29 Feb 2024 12:52:07 +0200 [thread overview]
Message-ID: <0106ce78-c83f-4552-a234-1bf7a33f1ed1@kernel.org> (raw)
In-Reply-To: <0004e3d5-0f62-49dc-b51f-5a302006c303@ti.com>
On 29/02/2024 11:27, Siddharth Vadapalli wrote:
> On Wed, Feb 28, 2024 at 02:36:55PM +0100, Andrew Lunn wrote:
>>> What if there is no kernel behavior associated with it? How can it be mimicked
>>> then?
>>
>> Simple. Implement the feature in software in the kernel for
>> everybody. Then offload it to your hardware.
>>
>> Your hardware is an accelerator. You use it to accelerate what linux
>> can already do. If Linux does not have the feature your accelerator
>> has, that accelerator feature goes unused.
>
> Is it acceptable to have a macro in the Ethernet Driver to conditionally
> disable/enable the feature (via setting the corresponding bit in the
> register)?
>
> The current implementation is:
>
> /* Control register */
> writel(AM65_CPSW_CTL_P0_ENABLE | AM65_CPSW_CTL_P0_TX_CRC_REMOVE |
> AM65_CPSW_CTL_VLAN_AWARE | AM65_CPSW_CTL_P0_RX_PAD,
> common->cpsw_base + AM65_CPSW_REG_CTL);
>
> which sets the "AM65_CPSW_CTL_VLAN_AWARE" bit by default.
>
> Could it be changed to:
>
> #define TI_K3_CPSW_VLAN_AWARE 1
>
> ....
>
> /* Control register */
> val = AM65_CPSW_CTL_P0_ENABLE | AM65_CPSW_CTL_P0_TX_CRC_REMOVE |
> AM65_CPSW_CTL_P0_RX_PAD;
>
> #ifdef TI_K3_CPSW_VLAN_AWARE
> val |= AM65_CPSW_CTL_VLAN_AWARE;
> #endif
>
> writel(val, common->cpsw_base + AM65_CPSW_REG_CTL);
>
> Since no additional configuration is necessary to disable/enable the
> functionality except clearing/setting a bit in a register, I am unsure of
> the implementation for the offloading part being suggested. Please let me
> know if the above implementation is an acceptable alternative.
This doesn't really solve the problem as it leaves the question open as to
who will set TI_K3_CPSW_VLAN_AWARE. And the configuration is then fixed at build.
Can you please explain in which scenario the default case does not work for you?
Why would end user want to disable VLAN_AWARE mode?
TRM states
"Transmit packets are NOT modified during switch egress when the VLAN_AWARE bit in the
CPSW_CONTROL_REG register is cleared to 0h. This means that the switch is not in VLAN-aware mode."
The same problem would also apply to cpsw.c and cpsw_new.c correct?
A bit later the driver does this
/* switch to vlan unaware mode */
cpsw_ale_control_set(common->ale, HOST_PORT_NUM, ALE_VLAN_AWARE, 1);
cpsw_ale_control_set(common->ale, HOST_PORT_NUM,
ALE_PORT_STATE, ALE_PORT_STATE_FORWARD);
The comment says vlan unaware but code is setting ALE_VLAN_AWARE to 1.
Is the comment wrong?
--
cheers,
-roger
next prev parent reply other threads:[~2024-02-29 10:52 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-27 8:28 [PATCH net-next] net: ethernet: ti: am65-cpsw: Add priv-flag for Switch VLAN Aware mode Siddharth Vadapalli
2024-02-27 12:39 ` Jiri Pirko
2024-02-28 7:06 ` Siddharth Vadapalli
2024-02-28 8:23 ` Jiri Pirko
2024-02-28 10:04 ` Siddharth Vadapalli
2024-02-28 13:27 ` Jiri Pirko
2024-02-28 13:36 ` Andrew Lunn
2024-02-29 9:27 ` Siddharth Vadapalli
2024-02-29 10:52 ` Roger Quadros [this message]
2024-02-29 11:07 ` Siddharth Vadapalli
2024-02-29 15:33 ` Andrew Lunn
2024-06-13 13:09 ` Sverdlin, Alexander
2024-06-13 13:14 ` Sverdlin, Alexander
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=0106ce78-c83f-4552-a234-1bf7a33f1ed1@kernel.org \
--to=rogerq@kernel.org \
--cc=andrew@lunn.ch \
--cc=dan.carpenter@linaro.org \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=hkallweit1@gmail.com \
--cc=horms@kernel.org \
--cc=jiri@resnulli.us \
--cc=kuba@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=p-varis@ti.com \
--cc=pabeni@redhat.com \
--cc=s-vadapalli@ti.com \
--cc=srk@ti.com \
--cc=vladimir.oltean@nxp.com \
--cc=yuehaibing@huawei.com \
/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