[2/6] common/cnxk: provide port type from fwdata
Checks
Commit Message
From: Sunil Kumar Kori <skori@marvell.com>
Retrieves type of port from firmware data.
Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
Signed-off-by: Sunil Kumar Kori <skori@marvell.com>
---
drivers/common/cnxk/hw/nix.h | 12 ++++++++++++
drivers/common/cnxk/roc_mbox.h | 13 +++++++++++--
drivers/common/cnxk/roc_nix.h | 1 +
drivers/common/cnxk/roc_nix_mac.c | 1 +
4 files changed, 25 insertions(+), 2 deletions(-)
@@ -2751,4 +2751,16 @@ enum cgx_mode {
CGX_MODE_MAX /* = 51 */
};
+/* CGX Port types from kernel */
+enum cgx_port_type {
+ CGX_PORT_TP = 0x0,
+ CGX_PORT_AUI,
+ CGX_PORT_MII,
+ CGX_PORT_FIBRE,
+ CGX_PORT_BNC,
+ CGX_PORT_DA,
+ CGX_PORT_NONE = 0xef,
+ CGX_PORT_OTHER = 0xff,
+};
+
#endif /* __NIX_HW_H__ */
@@ -755,8 +755,17 @@ enum fec_type {
};
struct phy_s {
- uint64_t __io can_change_mod_type : 1;
- uint64_t __io mod_type : 1;
+ struct {
+ uint64_t __io can_change_mod_type : 1;
+ uint64_t __io mod_type : 1;
+ uint64_t __io has_fec_stats : 1;
+ } misc;
+ struct fec_stats_s {
+ uint32_t __io rsfec_corr_cws;
+ uint32_t __io rsfec_uncorr_cws;
+ uint32_t __io brfec_corr_blks;
+ uint32_t __io brfec_uncorr_blks;
+ } fec_stats;
};
struct cgx_lmac_fwdata_s {
@@ -507,6 +507,7 @@ struct roc_nix_link_info {
struct roc_nix_mac_fwdata {
uint64_t advertised_link_modes;
uint64_t supported_link_modes;
+ uint64_t port_type;
uint64_t supported_an;
};
@@ -436,6 +436,7 @@ roc_nix_mac_fwdata_get(struct roc_nix *roc_nix, struct roc_nix_mac_fwdata *data)
data->supported_link_modes = nix->supported_link_modes;
data->advertised_link_modes = nix->advertised_link_modes;
data->supported_an = fw_data->fwdata.supported_an;
+ data->port_type = fw_data->fwdata.port;
exit:
mbox_put(mbox);
return rc;