Спасибо за доклад! Очень ценная информация, тоже сейчас озадачен проблемой приёма completion tlp в своём собственном SGDMA контроллере. А почему Вы выбрали такие огромные буферы для completion (4 кБ)? Пока не встречал материнок, которые бы выдавали больше 128 байт MAX_READ_SIZE. Да и со стороны корок xilinx ограничение 512 байт. В теории root complex может разбивать ответ на read request на несколько частей и отправлять несколько completion. Интересует вопрос, может ли root complex поменять местами эти completion? Не пробовали для такого случая отлеживать lower address в заголовке TLP completion, чтобы проверить порядок прихода?
|