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