Showing results for 
Search instead for 
Did you mean: 
Registered: ‎12-03-2007

Locked Transactions

I am designing a PCIe based app using Xilinx PCIe BlockPlus.
I am not sure how to handle locked transactions.
I mean on my RX_engine if i get a TLP with type as locked,should i just ignore that..or report unsupported request or what..?
Not sure..Please suggets someone
0 Kudos
1 Reply
Xilinx Employee
Xilinx Employee
Registered: ‎08-07-2007

Re: Locked Transactions


If you receive a MemRdLk then you have to respond in some way becuase its a non-posted packet. If you don't respond, it will cause a completion timeout on the host which will hang some systems. If you don't support MemRdLk you should return a Completion Lock with status Unsupported Request. This needs to be returned using the cores configuraiton error port because in doing so you must set the UR bit in the device status register. The user does not have direct access to this register and by using the configuration error port it causes this bit to get set in the core.

Please see UG341 (Block Plus User's Guide) for more information on this port.

Also, note that there is a known issue regarding sending CplLock with UR packets with the core currently. Please see the release notes AR:

Also, you will seldom receive a memory read lock in most systems, but its good to cover all your basis.

0 Kudos