zero length read request

Comments and questions related to the "Down to the TLP" pages

zero length read request

Postby Guest » Thu Jun 05, 2014 5:08 am

This is a very good article by you. Thanks for this. I have a quick question regarding zero length read request. From my understanding, we have to set all byte enables to zero to send this kind of request. I think there is no register to configure these byte enables. Then how can I send a zero length read request from software ? Is this possible at all ?

Re: zero length read request

Postby support » Thu Jun 05, 2014 6:29 am


In any configuration I know of, the processor's PCIe bus bridge merely fulfills the processor's needs to read or write data from certain addresses. A zero-length request doesn't move any data, so there's no reason why the bridge would issue one. So no, I don't believe there's a way to produce a zero-length read request from the software.

But the question is why such a request would be needed. The only sane use is to make sure that a write request has arrived at the other end. But any read request to the same endpoint (on the same virtual channel, but everyone uses channel 0 only anyhow) will do the job.

For example, if you just wrote a value to a register at address X, and want to wait until it has reached the endpoint, read back the register at address X. When the completion arrives, you're fine to go on.

Posts: 760
Joined: Tue Apr 24, 2012 3:46 pm

Return to General PCIe