Перейти к содержанию
    

Altera PCI Express Compiler, QuartusIIv10.0sp1

Здравствуйте.

 

Имею такую систему:

с одной стороны 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):

Первый трансфер

post-25329-1324031011_thumb.png

Втрой трансфер

post-25329-1324031017_thumb.png

 

Как видно, первый трансфер вполне вписывается в общую картину, описанную в "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 из корки выставляется специфически B) ).

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В общем, в связи с тем что WinXP 32-bit не позволяет и писать и читать по 2DW за раз (максиумм чего добился - это запись 2DW, можно и больше было - WriteCombine, но мне не нужно было без чтения; сейчас имею запись/чтение из оси по 1DW), заделал обработку этих 2х случаев.

Однако всё же интересно - это я провтыкал, или это всё таки багофича?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В общем развязка была проста - это я провтыкал QWord/Non-QWord Alignment :smile3046:

..Qword alignment is a feature of the IP core that cannot be turned off..

(хилые в этом плане проще :biggrin: )

Но что было интересно, мне никто про это в симуляции не сказал, более того - в ней всё работало прекрасно :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...