Any timeout will have to be built in by you, and well documented, but then it MUST still be AXI compliant. So if you put in a read request, and it takes too long, you still need to know to handle the response that comes back "late". The AXI spec requires that all requests come back the order they were requested - regarless of turnaround time. This could be 1us, 1s, 1 week. The order MUST be maintained and they MUST conform to the original request. So if you request 100 words, it must respond with 100 words. Even if they are 100 words of read failed.
I have a system with a DDR connected via an AXI4 interconnect. The way I ususally lock it up is by sending AWLEN that does not match the number of words on the WDATA bus. If this happens its game over.
For me, I dont care about whether a write was successful or not as a retry is not possible. I simply throw the writes at the RAM and throw away the bresponses
As for reads, I simply wait for them to arrive. They are NEVER out of order. I have no timeout and I have never measured the turnaround. I cannot work with a timeout.
If you implemented a timeout, you would need to generate a "fake" failed request, but still handle the real response coming back from the ram.