Здравствуйте.
Имею такую систему:
с одной стороны CycloneII (EP2C35F672C6) + PX1011A-EL1 (PCIE x1)
с другой A8N-E (NVidia4) + WinXP SP3 32bit
Одиночные записи в девайсину по указанному адресу производятся через DeviceIoControl из приложения. В драйвере имею такое:
Код
#define WRITE_REGISTER_ULONG64(Register, Value) (*(volatile ULONG64 *)(Register) = (Value))
В результате на сигналтабе вижу такую картину (пишу по адресу хDA002000 значение x0506070801020304):
Первый трансфер
Втрой трансфер
Как видно, первый трансфер вполне вписывается в общую картину, описанную в "ug_pci_express.pdf", а вот второй трансфер логически вроде бы правильный, но как то не согласуется с "ug_pci_express.pdf" (там где "A. Transaction Layer Packet (TLP) Header Formats") - в смысле в первом есть 1DW reserved (выше адреса - биты [63:32] для "iv_rx_st_data0"), согласно документа, а вот во втором этот самый 1DW reserved выброшен, и данные цепляются сразу (при чём и BE из корки выставляется специфически

).
Так вот, имею вопрос - это багофича альтеровцев (аки любимых всеми нами индусоФФ), или же это я где то недочитал про то, что формат пакетов выходящих из PCIE корки альтеры может отличаться от описанного в "ug_pci_express.pdf", там где "A. Transaction Layer Packet (TLP) Header Formats"?