Thanks to all of you....
@alybruin: yes i did see that but thats only for Gen2 as i understand.
@Matthias Wächter: Thanks for sharing some great ideas....
Now i am planing for out of order completion.... I want to ask, is it possible that we get
split completions for read request with payload size <= maximum supported payload size...
Actually my idea is to split the DMA read request into n number of maximum supported TLP request with each request a separate TAG will be attached.... for example if 4KB of DMA read is to be performed and the maximum payload size is 128 Bytes... i will generate 32 read requests (128Bytes requested payload size) with separate TAG values.... so if the completion corresponding to each read request cannot split further... then using TAG i will catch the out of ordered completions. Once i get all the completions placed in the correct order in a buffer, task is done.
Please share your ideas about how we can handle out of ordered completions more efficiently...
Thanks