Добрый день, встала задача разобраться с Bar Expansion в мегакорке PCI Express от Альтеры. Использую отладочную плату Stratix IV GX Development Kit.
Во-первых, в Qsys (и в SOPC) Bar Expansion не доступен для настройки, его просто нету как параметра у компонента pcie. Это же написано в user_guide на PCI Express от Альтеры. (Не спроста ли????)
Пошел другим путем. Сгенерил компонент PCIE бычным мегавизардом. Bar Expansion у него доступен. Устанавливаю ему Enable и 4КБт размер (По идеи в Bar Expansion как минимум младший бит должен стать 1 - enable).
Компилирую проект, загружаю. Под линуксом смотрю lspci и вижу, что у моей платы Bar Expansion disable и 4КБт размер. Почему disable - не понятно.
Ковыряю дальше. У компонента pcie есть интерфейс LMI, позволяющий достучаться до конфигурационного пространства.
Пытаюсь просмотреть его путем перекидывания информации из конфигурационного пространства в память, которую видно в In System Memory Content Editor.
В итоге: включаю комп, оставляю его на этапе выбора операционки. Смотрю, что в конф. пространстве.
device id - тот что я задал,
vendor id - тот что я задал,
Bar0 = 0x00000008,
Bar1 = 0x00000008,
...
Bar Expansion = 0x00000000 - Bar Expansion ПУСТОЙ.
Дальше загружаю линукс. Линукс выделает моим барам адреса в памяти:
device id - тот что я задал,
vendor id - тот что я задал,
Bar0 = 0xFC000008,
Bar1 = 0xFC004008,
...
Bar Expansion = 0x00000000 - Bar Expansion ПУСТОЙ.
С помощью lspci вижу, что адреса в барах, вычитанные LMI совпдают с теми, что выдает lspci.
А вот Bar Expansion, выдаваемый LMI, пустой, а lspci показывает, что ему все таки присовен адрес 0xFC960000, он disable и размер 4КБт. Почему так?
Есть у кого то успешный опыт работы с Altera PCIE Bar Expansion.
Может у них так баг какой?