ddkarp 0 October 19, 2022 Posted October 19, 2022 · Report post Всем привет! Есть кастомная плата на Xilinx Zyqn 7015 c интерфейсом PCIe и запущенным Линуксом на ней. Задача - воткнуть эту плату в обычный PC, так чтобы она определилась в системе, ну и для последующего обмена данными. Для этого в процессорную систему было добавлено ядро PCIe и сконфигурировано как endpoint. Далее, был cгенерирован общий файл .dts, в котором имеется описание устройства PCIe. На этом успешные действия закончились) Уже на этапе генерации .dtb стали появляться варнинги, а при попытке запуска линукса с созданным .dtb, вываливаются ошибки при парсинге devicetree. Искал в гугле пример devicetree для endpoint, но именно для Xilinx ничего путного не нашел. Насколько я понял, devicetree был сгенерирован для Root Port и в нем надо что-то добавить/удалить/изменить, но вот что? Может кто нибудь помочь разобраться в теме? Скриншоты devicetree, dtb и лога загрузи линукса в приложении Quote Share this post Link to post Share on other sites More sharing options...
Dvorkin 0 November 8, 2022 Posted November 8, 2022 · Report post device tree чем генерирован? В нем address-cells=3, а reg явно формата address-cells=1. То же и к прерываниям относится, и номера прерываний странные - с 1 по 4. petalinux, например, device-tree правильно делает обычно. Quote Share this post Link to post Share on other sites More sharing options...
ddkarp 0 November 9, 2022 Posted November 9, 2022 (edited) · Report post 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 November 9, 2022 by ddkarp Quote Share this post Link to post Share on other sites More sharing options...
Dvorkin 0 November 9, 2022 Posted November 9, 2022 · Report post 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 проблем никогда не было. Quote Share this post Link to post Share on other sites More sharing options...
dmitry-tomsk 0 November 9, 2022 Posted November 9, 2022 · Report post 2 hours ago, Dvorkin said: Так я не делал, ничего сказать не могу. Xilinx SDK генерил не совсем правильно dt, а с деревом от petalinux проблем никогда не было. pcie блок там вроде же в pl. При чём тут dev tree? Quote Share this post Link to post Share on other sites More sharing options...
Dvorkin 0 November 11, 2022 Posted November 11, 2022 · Report post On 11/9/2022 at 3:58 PM, dmitry-tomsk said: pcie блок там вроде же в pl. При чём тут dev tree? В device tree описываются устройства, которые обслуживают драйвера ОС. И неважно, где эти устройства, ведь у каждого есть адрес и прочие ресурсы. Quote Share this post Link to post Share on other sites More sharing options...
dmitry-tomsk 0 November 11, 2022 Posted November 11, 2022 · Report post 2 hours ago, Dvorkin said: В device tree описываются устройства, которые обслуживают драйвера ОС. И неважно, где эти устройства, ведь у каждого есть адрес и прочие ресурсы. у pcie в pl нет ни адреса, ни ресуров. К нему мост или xdma нужно сначала прикрутить Quote Share this post Link to post Share on other sites More sharing options...
Dvorkin 0 November 11, 2022 Posted November 11, 2022 · Report post 36 minutes ago, dmitry-tomsk said: у pcie в pl нет ни адреса, ни ресуров. К нему мост или xdma нужно сначала прикрутить Да, в Zynq нет ресурсов, а драйвер на компе должен же знать. Quote Share this post Link to post Share on other sites More sharing options...
ddkarp 0 November 14, 2022 Posted November 14, 2022 · Report post У меня в PL реализовано ядро PCIe, со своими адресами и настроено оно как endpoint. На сколько я понимаю в devicetree ядро прописалось, но с настройками для rootcomplex. При загрузке, ядро линукса выдает ошибки и говорит что не может распарсить PCIe. Quote Share this post Link to post Share on other sites More sharing options...