Commit e9cf8990 authored by Amit Cohen's avatar Amit Cohen Committed by David S. Miller

mlxsw: Add ubridge to config profile

The unified bridge model is enabled via the CONFIG_PROFILE command
during driver initialization. Add the definition of the relevant fields
to the command's payload in preparation for unified bridge enablement.
Signed-off-by: default avatarAmit Cohen <amcohen@nvidia.com>
Reviewed-by: default avatarPetr Machata <petrm@nvidia.com>
Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent bf73904f
...@@ -633,6 +633,12 @@ MLXSW_ITEM32(cmd_mbox, config_profile, ...@@ -633,6 +633,12 @@ MLXSW_ITEM32(cmd_mbox, config_profile,
*/ */
MLXSW_ITEM32(cmd_mbox, config_profile, set_ar_sec, 0x0C, 15, 1); MLXSW_ITEM32(cmd_mbox, config_profile, set_ar_sec, 0x0C, 15, 1);
/* cmd_mbox_config_set_ubridge
* Capability bit. Setting a bit to 1 configures the profile
* according to the mailbox contents.
*/
MLXSW_ITEM32(cmd_mbox, config_profile, set_ubridge, 0x0C, 22, 1);
/* cmd_mbox_config_set_kvd_linear_size /* cmd_mbox_config_set_kvd_linear_size
* Capability bit. Setting a bit to 1 configures the profile * Capability bit. Setting a bit to 1 configures the profile
* according to the mailbox contents. * according to the mailbox contents.
...@@ -792,6 +798,13 @@ MLXSW_ITEM32(cmd_mbox, config_profile, adaptive_routing_group_cap, 0x4C, 0, 16); ...@@ -792,6 +798,13 @@ MLXSW_ITEM32(cmd_mbox, config_profile, adaptive_routing_group_cap, 0x4C, 0, 16);
*/ */
MLXSW_ITEM32(cmd_mbox, config_profile, arn, 0x50, 31, 1); MLXSW_ITEM32(cmd_mbox, config_profile, arn, 0x50, 31, 1);
/* cmd_mbox_config_profile_ubridge
* Unified Bridge
* 0 - non unified bridge
* 1 - unified bridge
*/
MLXSW_ITEM32(cmd_mbox, config_profile, ubridge, 0x50, 4, 1);
/* cmd_mbox_config_kvd_linear_size /* cmd_mbox_config_kvd_linear_size
* KVD Linear Size * KVD Linear Size
* Valid for Spectrum only * Valid for Spectrum only
......
...@@ -295,6 +295,7 @@ struct mlxsw_config_profile { ...@@ -295,6 +295,7 @@ struct mlxsw_config_profile {
used_max_pkey:1, used_max_pkey:1,
used_ar_sec:1, used_ar_sec:1,
used_adaptive_routing_group_cap:1, used_adaptive_routing_group_cap:1,
used_ubridge:1,
used_kvd_sizes:1; used_kvd_sizes:1;
u8 max_vepa_channels; u8 max_vepa_channels;
u16 max_mid; u16 max_mid;
...@@ -314,6 +315,7 @@ struct mlxsw_config_profile { ...@@ -314,6 +315,7 @@ struct mlxsw_config_profile {
u8 ar_sec; u8 ar_sec;
u16 adaptive_routing_group_cap; u16 adaptive_routing_group_cap;
u8 arn; u8 arn;
u8 ubridge;
u32 kvd_linear_size; u32 kvd_linear_size;
u8 kvd_hash_single_parts; u8 kvd_hash_single_parts;
u8 kvd_hash_double_parts; u8 kvd_hash_double_parts;
......
...@@ -1235,6 +1235,11 @@ static int mlxsw_pci_config_profile(struct mlxsw_pci *mlxsw_pci, char *mbox, ...@@ -1235,6 +1235,11 @@ static int mlxsw_pci_config_profile(struct mlxsw_pci *mlxsw_pci, char *mbox,
mlxsw_cmd_mbox_config_profile_adaptive_routing_group_cap_set( mlxsw_cmd_mbox_config_profile_adaptive_routing_group_cap_set(
mbox, profile->adaptive_routing_group_cap); mbox, profile->adaptive_routing_group_cap);
} }
if (profile->used_ubridge) {
mlxsw_cmd_mbox_config_profile_set_ubridge_set(mbox, 1);
mlxsw_cmd_mbox_config_profile_ubridge_set(mbox,
profile->ubridge);
}
if (profile->used_kvd_sizes && MLXSW_RES_VALID(res, KVD_SIZE)) { if (profile->used_kvd_sizes && MLXSW_RES_VALID(res, KVD_SIZE)) {
err = mlxsw_pci_profile_get_kvd_sizes(mlxsw_pci, profile, res); err = mlxsw_pci_profile_get_kvd_sizes(mlxsw_pci, profile, res);
if (err) if (err)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment