Do you find the following errors also? We found this issue in P2020.
RIO: Port-Write message from 00:s:0002
RIO: 00:s:0002 Implementation Specific Port errors 0x20
RIO_PW: SP1_ERR_STS_CSR=0xe0000311
RIO_PW: Device Extraction on [00:s:0002]-P1
RIO_PW: RIO_EM_P1_ERR_DETECT=0x80000004
If yes, then you need the following changes. Hope it helps in your case.
There are some issues in FSL Linux sRIO driver, without the following modification you may not able to get Ethernet over RapidIO work if Port2 is used. Please check the following 2 items in your Linux code
- 1) rio_mport_send_doorbell() in drivers/rapidio/rio-access.c, mport->index should be used instead of mport->id
-res = mport->ops->dsend(mport, mport->id, destid, data);
+res = mport->ops->dsend(mport, mport->index, destid, data);
- 2) rionet_queue_tx_msg() in drivers/net/rionet.c, the 3rd parameter should be changed to “1” if Port2 is used. The 3rd parameter means which mbox should be used. There is no limitation in hardware which mbox can be used, but in FSL’s driver mbox0 is for port1 and mbox1 is for port2.
-rio_add_outb_message(rnet->mport, rdev, 0, skb->data, skb->len);
+rio_add_outb_message(rnet->mport, rdev, 1, skb->data, skb->len);