alexPec 6 November 21, 2025 Posted November 21, 2025 · Report post Требуется провести инициализацию USB 2.0 в режиме USB-host в baremetal. Проверка - на отладке ZCU104 (USB phy - чип USB3320). Что требуется в результате: - включение питания на USB-А разъем - инициализация регистров USB-HOST - инициализация прерываний USB - регистрация функций событий USB (attach, detach, приема - передачи) - отправка стандартного запроса (например GET DEVICE DESCRIPTOR) и получение ответа от устройства. Устройство любое - скажем, флешка. От хоста не требуется проводить enumeration - никаких хабов не будет. Будет всегда только одно и то же устройство на шине USB. Как я вижу результат: запускаем программу, втыкаем любое устройство в ZCU104, программа в терминал выводит Device descriptor. USB Device пример от ксайлинкса проверял - все ок, но HOST как я понял, это совсем другое. У него даже набор регистров отдельный. Инициализацию от device не притянешь к инициализации Host. Как я понял, примера host драйвера в baremetal xilinx не предоставляет и найти его, по крайней мере для меня, оказалось проблемно. Находил только один платный, для Zynq7000, но хозяин драйвера сказал что в zynqMP ultrascale+ он не заработает - совсем другой контроллер USB. Может кто-то подскажет толковую документацию по алгоритму инициализации usb-host контроллера. Пока конкретного ничего не нашел, только в общем и целом - в TRM по Zynq Ultrascale programming guide для USB - как то там все очень бедно. Объем работ представляю очень смутно - поэтому лучше сообщите свои пожелания по стоимости в личку. Совсем счастье будет если у кого-то уже описанные задачи решены - сообщите стоимость Вашего решения (тоже в личку) Заранее благодарен! Quote Share this post Link to post Share on other sites More sharing options...
Stepanov 55 November 21, 2025 Posted November 21, 2025 · Report post UG1085 - Zynq UltraScale+ MPSoC Technical Reference Manual Глава 31: "USB Controller" UG1087 - Zynq UltraScale+ MPSoC Vivado Design Suite User Guide https://docs.amd.com/r/en-US/ug1087-zynq-ultrascale-registers/pmu_usb-USB3_REGS-Register Zynq UltraScale+ MPSoC: How to get a USB 2.0 standard interface working in PetaLinux https://adaptivesupport.amd.com/s/article/70625?language=en_US Местная тема Quote Share this post Link to post Share on other sites More sharing options...
mantech 142 November 22, 2025 Posted November 22, 2025 · Report post 9 часов назад, alexPec сказал: Требуется провести инициализацию USB 2.0 в режиме USB-host в baremetal. Проверка - на отладке ZCU104 (USB phy - чип USB3320). Ух ты, оказывается в суперпупермегацинке нет полноценного встроенного усб контроллера? Требуется внешний чип...Однако)) Quote Share this post Link to post Share on other sites More sharing options...
alexPec 6 November 22, 2025 Posted November 22, 2025 · Report post Вы откуда эти ссылки взяли? 9 часов назад, Stepanov сказал: UG1085 - Zynq UltraScale+ MPSoC Technical Reference Manual Ключевые разделы: Глава 14: "USB Controller" Раздел 31, не 14. Там общие сведение и Register summary. Детального описания каждого регистра нет. 9 часов назад, Stepanov сказал: UG1087 - Zynq UltraScale+ MPSoC Vivado Design Suite User Guide Применимо для: Конфигурации IP-ядер USB в Vivado Настройки тактирования и пинов Это про IP ядра, там ничего нет про PS USB контроллер 9 часов назад, Stepanov сказал: DS891 - Zynq UltraScale+ MPSoC Data Sheet Особенно важно: Таблица 38: "USB 2.0 OTG/Host Controller" Питание, частоты, требования к плате Нет там такой таблицы, последняя таблица 12: А про USB там только вот что: 9 часов назад, Stepanov сказал: AN1219 - Using the USB 2.0 Controller in Zynq UltraScale+ MPSoC Devices (Application Note) Это откуда? Ксайлинкс про такой документ судя по всему не слышал: 9 часов назад, Stepanov сказал: XAPP1306 - USB 3.0 and 2.0 Design on Zynq UltraScale+ MPSoC Это вообще не о том, вас обманули 🙂 9 часов назад, Stepanov сказал: TRM Appendix B: USB Protocol and Architecture В TRM только Appendix A, и он не про USB. Если есть конкретные ссылки на документы, в которых действительно есть то, что у Вас написано, то буду благодарен за них. Так что вопрос по-прежнему актуален. Новой информации пока никакой... 1 час назад, mantech сказал: Ух ты, оказывается в суперпупермегацинке нет полноценного встроенного усб контроллера? Требуется внешний чип...Однако)) Да и с внешним-то не все так просто видимо. Поди запусти еще на нем хост... Quote Share this post Link to post Share on other sites More sharing options...
makc 385 November 22, 2025 Posted November 22, 2025 · Report post 11 минут назад, alexPec сказал: Вы откуда эти ссылки взяли? ChatGPT вестимо. Уже не первый раз. 22 минуты назад, alexPec сказал: Если есть конкретные ссылки на документы, в которых действительно есть то, что у Вас написано, то буду благодарен за них. Так что вопрос по-прежнему актуален. Новой информации пока никакой... Хост-контроллер там xHCI, поэтому берите https://www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/extensible-host-controler-interface-usb-xhci.pdf и делайте по нему: VS 23 минуты назад, alexPec сказал: Да и с внешним-то не все так просто видимо. Поди запусти еще на нем хост... Поскольку xHCI сейчас везде, то в первом приближении трудности только в том, чтобы найти самый baremetal вариант и поменять в нём адреса регистров + перетащить из линуксового драйвера инициализацию низкоуровневых блоков самого кристалла. 1 Quote Share this post Link to post Share on other sites More sharing options...
Stepanov 55 November 22, 2025 Posted November 22, 2025 · Report post Да, промазал, надо будет перепроверять ссылки. Quote Share this post Link to post Share on other sites More sharing options...
alexPec 6 November 22, 2025 Posted November 22, 2025 · Report post 2 часа назад, makc сказал: Поскольку xHCI сейчас везде, то в первом приближении трудности только в том, чтобы найти самый baremetal вариант и поменять в нём адреса регистров + перетащить из линуксового драйвера инициализацию низкоуровневых блоков самого кристалла. Спасибо. Не знал про это. Покопаю в эту сторону. Но предложение про купить готовое решение не отменяется. Quote Share this post Link to post Share on other sites More sharing options...
mantech 142 November 22, 2025 Posted November 22, 2025 · Report post 3 часа назад, makc сказал: то в первом приближении трудности только в том, чтобы найти самый baremetal вариант Я его кстати где-то видел, как раз для цинка и брал что-то для аллвиннера, года 3 назад Quote Share this post Link to post Share on other sites More sharing options...
alexPec 6 November 22, 2025 Posted November 22, 2025 · Report post 1 час назад, mantech сказал: Я его кстати где-то видел, как раз для цинка и брал что-то для аллвиннера, года 3 назад А не вспомните где? В алвиннере тоже xHCI интеловский? Quote Share this post Link to post Share on other sites More sharing options...
mantech 142 November 22, 2025 Posted November 22, 2025 (edited) · Report post 2 часа назад, alexPec сказал: В алвиннере тоже xHCI интеловский? В аллвиннере да, OHCI\EHCI усб 2.0, усб 3.0 там нет. Это стандартный контроллер, он во многих чипах, рокчип, IMX6(7) от фриски, в NXPшных МК тоже и пр... Edited November 22, 2025 by mantech Quote Share this post Link to post Share on other sites More sharing options...
makc 385 November 22, 2025 Posted November 22, 2025 · Report post 3 часа назад, alexPec сказал: А не вспомните где? Посмотрите https://github.com/coreboot/seabios/blob/master/src/hw/usb-xhci.c Quote Share this post Link to post Share on other sites More sharing options...
alexPec 6 November 22, 2025 Posted November 22, 2025 · Report post 17 минут назад, makc сказал: Посмотрите https://github.com/coreboot/seabios/blob/master/src/hw/usb-xhci.c Спасибо! Похоже на правду. Quote Share this post Link to post Share on other sites More sharing options...
makc 385 November 22, 2025 Posted November 22, 2025 · Report post 2 часа назад, alexPec сказал: Спасибо! Похоже на правду. Больше того, это вполне неплохо работает на x86, а поскольку регистровый интерфейс специфицирован и унифицирован, то и на Цинке тоже будет работать. Quote Share this post Link to post Share on other sites More sharing options...
mnovikov2000 2 November 22, 2025 Posted November 22, 2025 · Report post 15 hours ago, mantech said: Ух ты, оказывается в суперпупермегацинке нет полноценного встроенного усб контроллера? Требуется внешний чип...Однако)) 480 мгц ногами дрыгать не такто просто внешний чип по большому счету это физика кстати и стм32 в hs егоже требуют Quote Share this post Link to post Share on other sites More sharing options...
mantech 142 November 23, 2025 Posted November 23, 2025 · Report post 8 часов назад, mnovikov2000 сказал: кстати и стм32 в hs егоже требуют Да да, тоже "гениальные" разработчики)))) Quote Share this post Link to post Share on other sites More sharing options...