Commit 99781449 authored by Hariprasad Kelam's avatar Hariprasad Kelam Committed by David S. Miller

Octeontx2-af: Fetch MAC channel info from firmware

Packet ingress and egress MAC/serdes channel numbers are configurable
on CN10K series of silicons. These channel numbers inturn used while
installing MCAM rules to match ingress/egress port. Fetch these channel
numbers from firmware at driver init time.
Signed-off-by: default avatarHariprasad Kelam <hkelam@marvell.com>
Signed-off-by: default avatarSunil Kovvuri Goutham <sgoutham@marvell.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent b53e8464
...@@ -443,6 +443,13 @@ struct mbox_wq_info { ...@@ -443,6 +443,13 @@ struct mbox_wq_info {
struct workqueue_struct *mbox_wq; struct workqueue_struct *mbox_wq;
}; };
struct channel_fwdata {
struct sdp_node_info info;
u8 valid;
#define RVU_CHANL_INFO_RESERVED 379
u8 reserved[RVU_CHANL_INFO_RESERVED];
};
struct rvu_fwdata { struct rvu_fwdata {
#define RVU_FWDATA_HEADER_MAGIC 0xCFDA /* Custom Firmware Data*/ #define RVU_FWDATA_HEADER_MAGIC 0xCFDA /* Custom Firmware Data*/
#define RVU_FWDATA_VERSION 0x0001 #define RVU_FWDATA_VERSION 0x0001
...@@ -461,7 +468,8 @@ struct rvu_fwdata { ...@@ -461,7 +468,8 @@ struct rvu_fwdata {
u64 msixtr_base; u64 msixtr_base;
u32 ptp_ext_clk_rate; u32 ptp_ext_clk_rate;
u32 ptp_ext_tstamp; u32 ptp_ext_tstamp;
#define FWDATA_RESERVED_MEM 1022 struct channel_fwdata channel_data;
#define FWDATA_RESERVED_MEM 1014
u64 reserved[FWDATA_RESERVED_MEM]; u64 reserved[FWDATA_RESERVED_MEM];
#define CGX_MAX 9 #define CGX_MAX 9
#define CGX_LMACS_MAX 4 #define CGX_LMACS_MAX 4
......
...@@ -56,6 +56,14 @@ int rvu_sdp_init(struct rvu *rvu) ...@@ -56,6 +56,14 @@ int rvu_sdp_init(struct rvu *rvu)
struct rvu_pfvf *pfvf; struct rvu_pfvf *pfvf;
u32 i = 0; u32 i = 0;
if (rvu->fwdata->channel_data.valid) {
sdp_pf_num[0] = 0;
pfvf = &rvu->pf[sdp_pf_num[0]];
pfvf->sdp_info = &rvu->fwdata->channel_data.info;
return 0;
}
while ((i < MAX_SDP) && (pdev = pci_get_device(PCI_VENDOR_ID_CAVIUM, while ((i < MAX_SDP) && (pdev = pci_get_device(PCI_VENDOR_ID_CAVIUM,
PCI_DEVID_OTX2_SDP_PF, PCI_DEVID_OTX2_SDP_PF,
pdev)) != NULL) { pdev)) != NULL) {
......
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