Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
Please login to access the resource
SUSE:SLE-15-SP2:Update
odp-thunderx
sync_mailbox_defs_with_linux_pf_drv.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File sync_mailbox_defs_with_linux_pf_drv.patch of Package odp-thunderx
diff -Nuar odp-thunderx.old/platform/linux-thunder/include/thunder/nicvf/nic_mbox.h odp-thunderx/platform/linux-thunder/include/thunder/nicvf/nic_mbox.h --- odp-thunderx.old/platform/linux-thunder/include/thunder/nicvf/nic_mbox.h 2018-03-16 13:59:41.700262595 +0100 +++ odp-thunderx/platform/linux-thunder/include/thunder/nicvf/nic_mbox.h 2018-03-16 14:01:45.604837317 +0100 @@ -81,16 +81,10 @@ #define NIC_MBOX_MSG_ALLOC_SQS 0x12 /* Allocate secondary Qset */ #define NIC_MBOX_MSG_LOOPBACK 0x16 /* Set interface in loopback */ #define NIC_MBOX_MSG_RESET_STAT_COUNTER 0x17 /* Reset statistics counters */ -#define NIC_MBOX_MSG_CFG_DONE 0x7E /* VF configuration done */ -#define NIC_MBOX_MSG_SHUTDOWN 0x7F /* VF is being shutdown */ -#define NIC_MBOX_MSG_RES_BIT 0x80 /* Mark for response message */ +#define NIC_MBOX_MSG_CFG_DONE 0xF0 /* VF configuration done */ +#define NIC_MBOX_MSG_SHUTDOWN 0xF1 /* VF is being shutdown */ #define NIC_MBOX_MSG_MAX 0x100 /* Maximum number of messages */ -#define NIC_MBOX_MSG_RSS_SIZE_RES_BIT \ - (NIC_MBOX_MSG_RSS_SIZE | NIC_MBOX_MSG_RES_BIT) -#define NIC_MBOX_MSG_ALLOC_SQS_RES_BIT \ - (NIC_MBOX_MSG_ALLOC_SQS | NIC_MBOX_MSG_RES_BIT) - /* Get vNIC VF configuration */ struct nic_cfg_msg { uint8_t msg; diff -Nuar odp-thunderx.old/platform/linux-thunder/thunder/nicvf/nic_mbox.c odp-thunderx/platform/linux-thunder/thunder/nicvf/nic_mbox.c --- odp-thunderx.old/platform/linux-thunder/thunder/nicvf/nic_mbox.c 2018-03-16 13:59:41.700262595 +0100 +++ odp-thunderx/platform/linux-thunder/thunder/nicvf/nic_mbox.c 2018-03-16 14:03:27.785309994 +0100 @@ -100,13 +100,13 @@ case NIC_MBOX_MSG_READY: case NIC_MBOX_MSG_ACK: case NIC_MBOX_MSG_NACK: - case NIC_MBOX_MSG_RSS_SIZE | NIC_MBOX_MSG_RES_BIT: + case NIC_MBOX_MSG_RSS_SIZE: #ifdef VNIC_MULTI_QSET_SUPPORT - case NIC_MBOX_MSG_ALLOC_SQS | NIC_MBOX_MSG_RES_BIT: + case NIC_MBOX_MSG_ALLOC_SQS: #endif case NIC_MBOX_MSG_BGX_LINK_CHANGE: DBGV3("VF Mbox msg received msg_id=0x%x %s\n", - msg, msg_names[msg & (~NIC_MBOX_MSG_RES_BIT)]); + msg, msg_names[msg]); /* overwrite the message buffer so we won't receive it again */ nicvf_vf_reg_write(qset, NIC_VF_PF_MAILBOX_0_1, NIC_MBOX_MSG_INVALID); @@ -124,8 +124,7 @@ default: /* in other cases it means message was invalid or not received */ - DBG("Unknown Mbox msg received msg_id=0x%x\n", - msg & (~NIC_MBOX_MSG_RES_BIT)); + DBG("Unknown Mbox msg received msg_id=0x%x\n", msg); ret = -1; break; } @@ -173,7 +172,7 @@ int i; DBG("Sending msg to PF msg=0x%02x %s\n", mbx->msg.msg, - msg_names[mbx->msg.msg & (~NIC_MBOX_MSG_RES_BIT)]); + msg_names[mbx->msg.msg]); mbx_addr = NIC_VF_PF_MAILBOX_0_1; mbx_ptr = (uint64_t *)mbx; @@ -201,14 +200,16 @@ /* because of BUG in PF<->VF mbox design, some message transactions from * VF-> PF can be overwrited by asynchronius PF->VF messages. Therefore - * in case of missing response, we need to try again */ + * in case of missing response, we have to try again */ for(try = 0; try < 3 ; try++) { nicvf_mbox_send_msg_to_pf_raw(qset, mbx); ret = nicvf_mbox_recv_response(qset, res); if (!ret) break; /* Success */ - ERR("Missing response! Retrying MBX transaction ... %zu\n", try+1); + DBG("Missing response! Retrying MBX transaction ... %zu\n", try+1); } + if (ret) + ERR("Missing response 3 times in row. PF not responding?\n"); return ret; } @@ -297,7 +298,7 @@ mbx.rss_size.vf_id = qset->vf_id; if (nicvf_mbox_send_msg_to_pf(qset, &mbx, &res) || - res.msg.msg != (NIC_MBOX_MSG_RSS_SIZE | NIC_MBOX_MSG_RES_BIT)) + res.msg.msg != (NIC_MBOX_MSG_RSS_SIZE)) return -1; return res.rss_size.ind_tbl_size; @@ -467,7 +468,7 @@ mbx.msg.msg = NIC_MBOX_MSG_RQ_BP_CFG; mbx.rq.qs_num = qset->vf_id; mbx.rq.rq_num = qset->qset_idx; - mbx.rq.cfg = (1ULL << 63) | (1ULL << 62) | (0xff << 16) | (0xff << 8) | (qset->vf_id << 0); + mbx.rq.cfg = (1ULL << 63) | (1ULL << 62) | (qset->vf_id << 0); if (nicvf_mbox_send_msg_to_pf(qset, &mbx, &res) || res.msg.msg != NIC_MBOX_MSG_ACK) return -1; @@ -495,12 +496,12 @@ } if (nicvf_mbox_send_msg_to_pf(&nic->qset[0], &mbx, &res) || - res.msg.msg != (NIC_MBOX_MSG_ALLOC_SQS | NIC_MBOX_MSG_RES_BIT)) { + res.msg.msg != (NIC_MBOX_MSG_ALLOC_SQS)) { ERR("Invalid or missing response for alloc SQS\n"); return -1; } - ERR("SQS alloc response received qs_count=%"PRIu8"\n", + NFO("SQS alloc response received qs_count=%"PRIu8"\n", res.sqs_alloc.qs_count); if (res.sqs_alloc.qs_count != nic->qset_cnt - 1) { @@ -541,4 +542,3 @@ union nic_mbx mbx = { .msg.msg = NIC_MBOX_MSG_CFG_DONE, }; nicvf_mbox_send_async_msg_to_pf(qset, &mbx); } -
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor