[PATCH net-next v5 3/3] net: ti: icssg-prueth: Add support for ICSSG switch firmware

Andrew Lunn andrew at lunn.ch
Mon May 27 15:14:26 PDT 2024


On Mon, May 27, 2024 at 10:57:38AM +0530, MD Danish Anwar wrote:
> Add support for ICSSG switch firmware using existing Dual EMAC driver
> with switchdev.
> 
> Limitations:
> VLAN offloading is limited to 0-256 IDs.
> MDB/FDB static entries are limited to 511 entries and different FDBs can
> hash to same bucket and thus may not completely offloaded
> 
> Example assuming ETH1 and ETH2 as ICSSG2 interfaces:
> 
> Switch to ICSSG Switch mode:
>  ip link add name br0 type bridge
>  ip link set dev eth1 master br0
>  ip link set dev eth2 master br0
>  ip link set dev br0 up
>  bridge vlan add dev br0 vid 1 pvid untagged self
> 
> Going back to Dual EMAC mode:
> 
>  ip link set dev br0 down
>  ip link set dev eth1 nomaster
>  ip link set dev eth2 nomaster
>  ip link del name br0 type bridge
> 
> By default, Dual EMAC firmware is loaded, and can be changed to switch
> mode by above steps
> 
> Signed-off-by: MD Danish Anwar <danishanwar at ti.com>
>  static int prueth_emac_buffer_setup(struct prueth_emac *emac)
>  {
>  	struct icssg_buffer_pool_cfg __iomem *bpool_cfg;
> @@ -321,25 +401,63 @@ static void icssg_init_emac_mode(struct prueth *prueth)
>  	/* When the device is configured as a bridge and it is being brought
>  	 * back to the emac mode, the host mac address has to be set as 0.
>  	 */
> +	u32 addr = prueth->shram.pa + EMAC_ICSSG_SWITCH_DEFAULT_VLAN_TABLE_OFFSET;
> +	int i;
>  	u8 mac[ETH_ALEN] = { 0 };

nitpick: Reverse Christmas tree

Reviewed-by: Andrew Lunn <andrew at lunn.ch>

    Andrew



More information about the linux-arm-kernel mailing list