Jump to content
    

PCIe endpoint на Zynq 7015

Всем привет!  Есть кастомная плата на Xilinx Zyqn 7015 c интерфейсом PCIe и запущенным Линуксом на ней. Задача - воткнуть эту плату в обычный PC, так чтобы она определилась в системе, ну и для последующего обмена данными. Для этого в процессорную систему было добавлено ядро PCIe и сконфигурировано как endpoint. Далее, был cгенерирован общий файл .dts, в котором имеется описание устройства PCIe. На этом успешные действия закончились) Уже на этапе генерации .dtb стали появляться варнинги, а при попытке запуска линукса с созданным .dtb, вываливаются ошибки при парсинге devicetree. Искал в гугле пример devicetree для endpoint, но именно для Xilinx ничего путного не нашел. Насколько я понял, devicetree был сгенерирован для Root Port и в нем надо что-то добавить/удалить/изменить, но вот что? Может кто нибудь помочь разобраться в теме? Скриншоты devicetree, dtb и лога загрузи линукса в приложении

devtree.thumb.png.a02c9e12241a4ce82878ffa237d05d9e.pngdtb.thumb.png.9c7357c2c1c2e17aabed21a771995f57.pngputty.png.a8bfe619b310cbc545ec4709e50efd95.png

Share this post


Link to post
Share on other sites

device tree чем генерирован? В нем address-cells=3, а reg явно формата address-cells=1.  То же и к прерываниям относится, и номера прерываний странные - с 1 по 4. 

petalinux, например, device-tree правильно делает обычно.

Share this post


Link to post
Share on other sites

22 часа назад, Dvorkin сказал:

device tree чем генерирован? В нем address-cells=3, а reg явно формата address-cells=1.  То же и к прерываниям относится, и номера прерываний странные - с 1 по 4. 

petalinux, например, device-tree правильно делает обычно.

C petalinux не работал. Линуксовое ядро и u-boot, собирал вручную. Исходники для devicetree била сгенерированы с помощью .tcl скрипта:

hsi::open_hw_design *.xsa
hsi::set_repo_path E:/Xilinx/device-tree-xlnx
hsi::create_sw_design device-tree -os device_tree -proc ps7_cortexa9_0
hsi::generate_target -dir dt/

Edited by ddkarp

Share this post


Link to post
Share on other sites

2 hours ago, ddkarp said:

Исходники для devicetree била сгенерированы с помощью .tcl скрипта:

hsi::open_hw_design *.xsa
hsi::set_repo_path E:/Xilinx/device-tree-xlnx
hsi::create_sw_design device-tree -os device_tree -proc ps7_cortexa9_0
hsi::generate_target -dir dt/

 

Так я не делал, ничего сказать не могу. Xilinx SDK генерил не совсем правильно dt, а с деревом от petalinux проблем никогда не было.

Share this post


Link to post
Share on other sites

2 hours ago, Dvorkin said:

Так я не делал, ничего сказать не могу. Xilinx SDK генерил не совсем правильно dt, а с деревом от petalinux проблем никогда не было.

pcie блок там вроде же в pl. При чём тут dev tree?

Share this post


Link to post
Share on other sites

On 11/9/2022 at 3:58 PM, dmitry-tomsk said:

pcie блок там вроде же в pl. При чём тут dev tree?

В device tree описываются устройства, которые обслуживают драйвера ОС. И неважно, где эти устройства, ведь у каждого есть адрес и прочие ресурсы. 

Share this post


Link to post
Share on other sites

2 hours ago, Dvorkin said:

В device tree описываются устройства, которые обслуживают драйвера ОС. И неважно, где эти устройства, ведь у каждого есть адрес и прочие ресурсы. 

у pcie в pl нет ни адреса, ни ресуров. К нему мост или xdma нужно сначала прикрутить

Share this post


Link to post
Share on other sites

36 minutes ago, dmitry-tomsk said:

у pcie в pl нет ни адреса, ни ресуров. К нему мост или xdma нужно сначала прикрутить

Да, в Zynq нет ресурсов, а драйвер на компе должен же знать.

Share this post


Link to post
Share on other sites

У меня в PL реализовано ядро PCIe, со своими адресами и настроено оно как endpoint. На сколько я понимаю в devicetree ядро прописалось, но с настройками для rootcomplex. При загрузке, ядро линукса выдает ошибки и говорит что не может распарсить PCIe.

Снимок экрана от 2022-11-14 10-59-01.jpg

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...