mbox series

[net-next,0/9] net: ethernet: ti: ale: add static configuration

Message ID 20200904230924.9971-1-grygorii.strashko@ti.com
Headers show
Series net: ethernet: ti: ale: add static configuration | expand

Message

Grygorii Strashko Sept. 4, 2020, 11:09 p.m. UTC
Hi All,

As existing, as newly introduced CPSW ALE versions have differences in 
supported features and ALE table formats. Especially it's actual for the
recent AM65x/J721E/J7200 and future AM64x SoCs, which supports more
features like: auto-aging, classifiers, Link aggregation, additional HW
filtering, etc.

The existing ALE configuration interface is not practical in terms of 
adding new features and requires consumers to program a lot static
parameters. And any attempt to add new features will case endless adding
and maintaining different combination of flags and options. Because CPSW
ALE configuration is static and fixed for SoC (or set of SoC), It is
reasonable to add support for static ALE configurations inside ALE module.

This series introduces static ALE configuration table for different ALE 
variants and provides option for consumers to select required ALE
configuration by providing ALE const char *dev_id identifier (Patch 2).
And all existing driver have been switched to use new approach (Patches 3-6).

After this ALE HW auto-ageing feature can be enabled for AM65x CPSW ALE 
variant (Patch 7).

Finally, Patches 8-9 introduces tables to describe the ALE VLAN entries 
fields as the ALE VLAN entries are too much differ between different TI
CPSW ALE versions. So, handling them using flags, defines and get/set
functions are became over-complicated.

Patch 1 - is preparation patch

Grygorii Strashko (9):
  net: ethernet: ti: ale: add cpsw_ale_get_num_entries api
  net: ethernet: ti: ale: add static configuration
  net: ethernet: ti: cpsw: use dev_id for ale configuration
  net: netcp: ethss: use dev_id for ale configuration
  net: ethernet: ti: am65-cpsw: use dev_id for ale configuration
  net: ethernet: ti: ale: make usage of ale dev_id mandatory
  net: ethernet: ti: am65-cpsw: enable hw auto ageing
  net: ethernet: ti: ale: switch to use tables for vlan entry
    description
  net: ethernet: ti: ale: add support for multi port k3 cpsw versions

 drivers/net/ethernet/ti/am65-cpsw-ethtool.c |  10 +-
 drivers/net/ethernet/ti/am65-cpsw-nuss.c    |  16 +-
 drivers/net/ethernet/ti/am65-cpsw-nuss.h    |   1 +
 drivers/net/ethernet/ti/cpsw.c              |   6 -
 drivers/net/ethernet/ti/cpsw_ale.c          | 421 ++++++++++++++++----
 drivers/net/ethernet/ti/cpsw_ale.h          |   7 +
 drivers/net/ethernet/ti/cpsw_ethtool.c      |   3 +-
 drivers/net/ethernet/ti/cpsw_new.c          |   1 -
 drivers/net/ethernet/ti/cpsw_priv.c         |   2 +-
 drivers/net/ethernet/ti/cpsw_priv.h         |   2 -
 drivers/net/ethernet/ti/netcp_ethss.c       |  18 +-
 11 files changed, 388 insertions(+), 99 deletions(-)

-- 
2.17.1

Comments

Jakub Kicinski Sept. 5, 2020, 12:09 a.m. UTC | #1
On Sat, 5 Sep 2020 02:09:23 +0300 Grygorii Strashko wrote:
> The ALE VLAN entries are too much differ between different TI CPSW ALE

> versions. So, handling them using flags, defines and get/set functions

> became over-complicated.

> 

> This patch introduces tables to describe the ALE VLAN entries fields, which

> are different between TI CPSW ALE versions, and new get/set access

> functions. It also allows to detect incorrect access to not available ALL

> entry fields.


When building with W=1 C=1:

drivers/net/ethernet/ti/cpsw_ale.c:179:28: warning: symbol 'vlan_entry_cpsw' was not declared. Should it be static?
drivers/net/ethernet/ti/cpsw_ale.c:187:28: warning: symbol 'vlan_entry_nu' was not declared. Should it be static?
drivers/net/ethernet/ti/cpsw_ale.c:63: warning: Function parameter or member 'num_bits' not described in 'ale_entry_fld'
Jakub Kicinski Sept. 5, 2020, 12:10 a.m. UTC | #2
On Sat, 5 Sep 2020 02:09:24 +0300 Grygorii Strashko wrote:
> The TI J721E (CPSW9g) ALE version is similar, in general, to Sitara AM3/4/5
> CPSW ALE, but has more extended functions and different ALE VLAN entry
> format.
> 
> This patch adds support for for multi port TI J721E (CPSW9g) ALE variant.

and:

drivers/net/ethernet/ti/cpsw_ale.c:195:28: warning: symbol 'vlan_entry_k3_cpswxg' was not declared. Should it be static?
Grygorii Strashko Sept. 7, 2020, 2:33 p.m. UTC | #3
Hi Jakub,

On 05/09/2020 03:10, Jakub Kicinski wrote:
> On Sat, 5 Sep 2020 02:09:24 +0300 Grygorii Strashko wrote:
>> The TI J721E (CPSW9g) ALE version is similar, in general, to Sitara AM3/4/5
>> CPSW ALE, but has more extended functions and different ALE VLAN entry
>> format.
>>
>> This patch adds support for for multi port TI J721E (CPSW9g) ALE variant.
> 
> and:
> 
> drivers/net/ethernet/ti/cpsw_ale.c:195:28: warning: symbol 'vlan_entry_k3_cpswxg' was not declared. Should it be static?
> 

Thank you for your report, I've posted v2.
I've had to install latest sparse version (0.6.2) manually to make it work properly.