ericN 3 21 октября, 2023 Опубликовано 21 октября, 2023 · Жалоба Доброго дня В процессоре есть четыре контроллера USB USB Core и двa phy. В Device Tree описываются все 4 ядра, два из них enable и подключены к usb_phy. В ядре линукса присутствуют соответствующие драйвера. Есть куча примеров подобных сборок. Теперь на плату поставили usb hub на 2 порта. USB2512. Как этот хаб добавляется в Linux? Нужно делать описание в Device Tree и добавлять специфичные для microchip USB2512 драйвера? Или ядро linux обнаружит на usb у себя USB2512 и автоматом добавить /dev/usb*? Не могу найти примеры сборки Linux с хабом на борту. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 63 21 октября, 2023 Опубликовано 21 октября, 2023 · Жалоба Если хаб не требует специальной инициализации (например, через i2c), то описывать и не нужно: чем хаб на плате отличается от подключенного снаружи? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jury093 2 21 октября, 2023 Опубликовано 21 октября, 2023 · Жалоба 6 часов назад, ericN сказал: Или ядро linux обнаружит на usb у себя USB2512 и автоматом добавить /dev/usb*? в конфиге ядра проверьте что отключена опция CONFIG_USB_OTG_DISABLE_EXTERNAL_HUB https://www.kernelconfig.io/config_usb_otg_disable_external_hub?q=&kernelversion=6.5.7&arch=arm Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ericN 3 25 октября, 2023 Опубликовано 25 октября, 2023 · Жалоба специальной инициализации по I2C не нужно. Подружил одно ядро usb host с портом usbphy. на нем вист hub USB2412 USB2402. dmesg такой Цитата [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 5.10.9 (user1@buildsrv) (Buildroot 2021.11-1127-g72ba04222a) 10.3.0, GNU ld (GNU Binutils) 2.36.1) #1 SMP PREEMPT Mon Oct 23 16:07:18 +05 2023 [ 0.000000] CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c5387d [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache [ 0.000000] OF: fdt: Machine model: Freescale i.MX6 Quad SABRE Smart Device Board [ 0.000000] Memory policy: Data cache writealloc [ 0.000000] Reserved memory: created CMA memory pool at 0x3c000000, size 320 MiB [ 0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool [ 0.308980] mxs_phy 20c9000.usbphy: supply phy-3p0 not found, using dummy regulator [ 0.317659] mxs_phy 20ca000.usbphy: supply phy-3p0 not found, using dummy regulator [ 2.289962] usbcore: registered new interface driver ipw [ 2.295326] usbserial: USB Serial support registered for IPWireless converter [ 2.302494] usbcore: registered new interface driver option [ 2.308160] usbserial: USB Serial support registered for GSM modem (1-port) [ 2.443165] usbcore: registered new interface driver usbhid [ 2.443169] usbhid: USB HID core driver [ 2.663131] usb_h1_vbus: supplied by SWBST [ 2.685519] imx_usb 2184200.usb: No over current polarity defined [ 2.758880] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10 [ 2.767180] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 2.774423] usb usb1: Product: EHCI Host Controller [ 2.779306] usb usb1: Manufacturer: Linux 5.10.9 ehci_hcd [ 2.784721] usb usb1: SerialNumber: ci_hdrc.0 [ 2.789682] hub 1-0:1.0: USB hub found [ 2.793498] hub 1-0:1.0: 1 port detected [ 3.803323] usb 1-1: new full-speed USB device number 2 using ci_hdrc [ 4.053353] usb 1-1: device no response, device descriptor read/64, error -71 [ 4.413361] usb 1-1: device no response, device descriptor read/64, error -71 [ 4.683365] usb 1-1: new full-speed USB device number 3 using ci_hdrc [ 4.933294] usb 1-1: device no response, device descriptor read/64, error -71 [ 5.313365] usb 1-1: device no response, device descriptor read/64, error -71 [ 5.513375] usb usb1-port1: attempt power cycle [ 6.163338] usb 1-1: new full-speed USB device number 4 using ci_hdrc [ 6.663342] usb 1-1: device not accepting address 4, error -71 [ 6.813364] usb 1-1: new full-speed USB device number 5 using ci_hdrc [ 7.313352] usb 1-1: device not accepting address 5, error -71 [ 7.319267] usb usb1-port1: unable to enumerate USB device при этом в девах так # ls /dev/bus/usb/ 001 # lsusb Bus 001 Device 001: ID 1d6b:0002 Погуглил idVendor=1d6b, idProduct=0002 - Цитата 0x1D6B 0x0002 The Linux Foundation 2.0 root hub в hub с обратной стороны два порта. на одном сидит gsm, на другом порт для внешних флешек. На выходе хаба для управления питанием внешних устройств почему-то 1,5В. Должно быть 0 для разрешения питания. "1" для запрета. Что по логу можете сказать? hub ядру не отвечает? или ядро пытается через хаб достучатсья до периферии и она не отвечает? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 63 25 октября, 2023 Опубликовано 25 октября, 2023 · Жалоба 27 minutes ago, ericN said: hub ядру не отвечает? Не отвечает. 28 minutes ago, ericN said: На выходе хаба для управления питанием внешних устройств почему-то 1,5В. Пожалуй, с этого и стоит начать. Питание в порядке? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ericN 3 25 октября, 2023 Опубликовано 25 октября, 2023 · Жалоба В 25.10.2023 в 15:25, aaarrr сказал: Питание в порядке? На VDDA33 подано 3,3В. На VDD18 есть 1,5В (вместо 1,8). по даташиту Цитата +1.8V core power. If the internal regulator is enabled, then VDD18 pin 27 must have a 4.7F (or greater) ±20% (ESR <0.1 capacitor to VSS Конденсаторы присутствуют. Пин REG_EN (запускающие внутренний источник 1.8) на 3,3 сидит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 63 25 октября, 2023 Опубликовано 25 октября, 2023 · Жалоба 4 minutes ago, ericN said: На VDDA33 подано 3,3В А на VDD33/VDD33CR? Наверное, лучше фрагмент схемы выложить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jury093 2 25 октября, 2023 Опубликовано 25 октября, 2023 · Жалоба 1 час назад, ericN сказал: Что по логу можете сказать? hub ядру не отвечает? или ядро пытается через хаб достучатсья до периферии и она не отвечает? по логу лучше смотреть командой dmesg | grep usb где д.б. строки подобные [ 1.928522] usb 2-1: new high-speed USB device number 2 using ci_hdrc и устройства на шине лучше смотреть командой lsusb до вашей периферии дело не дойдет, пока не поднимется upstream порт хаба, вот когда пройдет его энумерация, тогда ядро будет смотреть что подключено на его downstream портах (gsm там и прочие флешки) чтобы запустился usb хаб надо выполнить все условия из документации - правильное и своевременное питание, тактирования (от кварца или внешней частоты), сигнал reset и правильная комбинация на конфигурационных контактах (если они есть) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ericN 3 25 октября, 2023 Опубликовано 25 октября, 2023 (изменено) · Жалоба В 25.10.2023 в 16:17, Jury093 сказал: по логу лучше смотреть командой dmesg | grep usb я так смотрел, но такая команда не покажет строки такие как hub 1-0:1.0: 1 port detected В 25.10.2023 в 16:17, Jury093 сказал: чтобы запустился usb хаб надо выполнить все условия из документации - правильное и своевременное питание, тактирования (от кварца или внешней частоты), сигнал reset и правильная комбинация на конфигурационных контактах (если они есть) а как это сделать в linux? вопрос изночально был в этом. Если писать свой драйвер для hub, то все "правильные" танцы можно сделать в probe() и init(). Если уже всё украдено ядро linux это может автоматом (должен это сделать автоматом), то ни каких доп.дров писать не нужно. У меня пока не получается "автоматом" поднять хаб. На десктопной машине lsusd не показывает хаб как устройство. показывает только порт usb внутренний, как "0x1D6B 0x0002 The Linux Foundation 2.0 root hub". Если подключить флешку к хабу, то lsusd покажет дополнительно ещё одно устройство - флешку. В 25.10.2023 в 15:58, aaarrr сказал: А на VDD33/VDD33CR? VDD33 - такого пина. VDD33CR - на нем при включении питания 2.5В. Боковым зрением наблюдаю за выводом в кансоль. примерно на этапе Цитата [ 2.838823] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10 [ 2.847136] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 2.5 вольт превращаются в 1,5В. Кстати, на разрешении питания тоже при вкл 2.5, потом 1.5 схема вот. хаб USB2502. на ресете всегда 3.3 Изменено 25 октября, 2023 пользователем ericN Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 63 25 октября, 2023 Опубликовано 25 октября, 2023 · Жалоба 13 minutes ago, ericN said: на нем при включении питания 2.5В На нем должно быть 3.3 снаружи подано, если используется внутренний источник для ядра. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ericN 3 25 октября, 2023 Опубликовано 25 октября, 2023 · Жалоба В 25.10.2023 в 16:33, aaarrr сказал: На нем должно быть 3.3 снаружи подано, если используется внутренний источник для ядра. понятно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 63 25 октября, 2023 Опубликовано 25 октября, 2023 · Жалоба Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ericN 3 25 октября, 2023 Опубликовано 25 октября, 2023 · Жалоба Да, понятно. Спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ericN 3 26 октября, 2023 Опубликовано 26 октября, 2023 · Жалоба Что-то ещё не так. На ноге 14 хаба всегда 3,3В. Это управление питанием девайсов. Активно в нуле. Что-то должно быть в логе dmseg, при обнаружении хаба? Или там появиться лог только при обнаружении девайсов? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ericN 3 26 октября, 2023 Опубликовано 26 октября, 2023 (изменено) · Жалоба Пытаюсь прочитать dmesg. Цитата [ 0.310964] mxs_phy 20c9000.usbphy: supply phy-3p0 not found, using dummy regulator [ 0.319674] mxs_phy 20ca000.usbphy: supply phy-3p0 not found, using dummy regulator [ 0.831606] usbcore: registered new interface driver usbfs [ 0.831659] usbcore: registered new interface driver hub [ 0.831715] usbcore: registered new device driver usb [ 2.293419] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 2.299954] ehci-pci: EHCI PCI platform driver [ 2.304506] ehci-mxc: Freescale On-Chip EHCI Host driver [ 2.310004] usbcore: registered new interface driver ipw [ 2.315368] usbserial: USB Serial support registered for IPWireless converter [ 2.322535] usbcore: registered new interface driver option [ 2.328198] usbserial: USB Serial support registered for GSM modem (1-port) [ 2.523098] usbcore: registered new interface driver usbhid [ 2.523102] usbhid: USB HID core driver [ 2.742964] usb_h1_vbus: supplied by SWBST [ 2.765334] imx_usb 2184200.usb: No over current polarity defined [ 2.775413] ci_hdrc ci_hdrc.0: EHCI Host Controller [ 2.782265] ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1 [ 2.833268] ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00 [ 2.838864] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10 [ 2.847164] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 2.854406] usb usb1: Product: EHCI Host Controller [ 2.859291] usb usb1: Manufacturer: Linux 5.10.9 ehci_hcd [ 2.864704] usb usb1: SerialNumber: ci_hdrc.0 [ 2.869673] hub 1-0:1.0: USB hub found [ 2.873496] hub 1-0:1.0: 1 port detected [ 3.873298] usb 1-1: new full-speed USB device number 2 using ci_hdrc [ 4.123321] usb 1-1: device no response, device descriptor read/64, error -71 [ 4.483319] usb 1-1: device no response, device descriptor read/64, error -71 [ 4.753309] usb 1-1: new full-speed USB device number 3 using ci_hdrc [ 5.033304] usb 1-1: device no response, device descriptor read/64, error -71 [ 5.423345] usb 1-1: device no response, device descriptor read/64, error -71 [ 5.563408] usb usb1-port1: attempt power cycle [ 6.283309] usb 1-1: new full-speed USB device number 4 using ci_hdrc [ 6.783299] usb 1-1: device not accepting address 4, error -71 [ 6.933289] usb 1-1: new full-speed USB device number 5 using ci_hdrc [ 7.433358] usb 1-1: device not accepting address 5, error -71 [ 7.439275] usb usb1-port1: unable to enumerate USB device Читаю по строкам.... Цитата [ 0.310964] mxs_phy 20c9000.usbphy: supply phy-3p0 not found, using dummy regulator [ 0.319674] mxs_phy 20ca000.usbphy: supply phy-3p0 not found, using dummy regulator тут понятно, инициализируется два физических порта phyusb Цитата [ 2.293419] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 2.299954] ehci-pci: EHCI PCI platform driver [ 2.304506] ehci-mxc: Freescale On-Chip EHCI Host driver [ 2.310004] usbcore: registered new interface driver ipw [ 2.315368] usbserial: USB Serial support registered for IPWireless converter [ 2.322535] usbcore: registered new interface driver option [ 2.328198] usbserial: USB Serial support registered for GSM modem (1-port) тут не очень понятно. в конфиге линукс включен EHCI, IPW, GSM. На плае есть usb-модем с gsm/wifi. пока отложу этот лог. Цитата [ 2.523098] usbcore: registered new interface driver usbhid [ 2.523102] usbhid: USB HID core driver у меня нет usb-мышки/клавы/тача. возможно в конфиге линукса гдето по дефолту остался usb-hid. надо перепроверить и удалить. Цитата [ 2.742964] usb_h1_vbus: supplied by SWBST [ 2.765334] imx_usb 2184200.usb: No over current polarity defined на процессоре есть 4-ре ядра usb: usbotg/usbh1/usbh2/usbh3. я использую только usbh1. в дереве он описан так usbh1: usb@02184200 { compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; reg = <0x02184200 0x200>; interrupts = <0 40 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clks IMX6QDL_CLK_USBOH3>; fsl,usbphy = <&usbphy2>; fsl,usbmisc = <&usbmisc 1>; dr_mode = "host"; ahb-burst-config = <0x0>; tx-burst-size-dword = <0x10>; rx-burst-size-dword = <0x10>; vbus-supply = <®_usb_h1_vbus>; fsl,reset-gpio = <&gpio2 7 0>; status = "okay"; }; Как понимать "No over current polarity defined "? далее... Цитата [ 2.775413] ci_hdrc ci_hdrc.0: EHCI Host Controller [ 2.782265] ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1 [ 2.833268] ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00 Что такое "ci_hdrc"? Что такое "ci_hdrc.0"? Цитата [ 2.838864] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10 [ 2.847164] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 Вот тут что происходит? Что такое "usb"? Что такое "usb1"? "New USB device found" - найден новый USB девайс. Кем найден? Где найден? Это ядро usbh1 нашло порт usbphy? Или усбядро нашло мой хаб? Или линукс ядро нашло usb ядро? По пид/вид это девайс "Vendor ID - Linux Foundation", "Device ID - 2.0 root hub". Ясности больше не стало. hub - это сетевой концентратор. На моей плате только один hub - это USB2502. Это его линукс нашел? Но почему у него Vendor ID - "Linux Foundation", а не "Microchip"? Или это какието внутренние потраха процессора? hub (концнтратор) - на сколько я понимаю, это некой устройство, у которого с одной стороны одна дырка, с другой много. Или много "дырок" стекаются в одном месте. Тут у Linux Foundation что за хаб? Цитата [ 2.869673] hub 1-0:1.0: USB hub found [ 2.873496] hub 1-0:1.0: 1 port detected Вот тут что такое "hub 1-0:1.0"? Найден ещё один хаб. До этого найден device, который является hub, а тут просто нафден hub... блин... голова кругом... [ 3.873298] usb 1-1: new full-speed USB device number 2 using ci_hdrc //Что такое "usb1-1"? Что за "device number 2"? [ 4.123321] usb 1-1: device no response, device descriptor read/64, error -71 //девайс не отвечает... ну хорошо... [ 4.753309] usb 1-1: new full-speed USB device number 3 using ci_hdrc //Что за "device number 3"? [ 5.033304] usb 1-1: device no response, device descriptor read/64, error -71 [ 6.283309] usb 1-1: new full-speed USB device number 4 using ci_hdrc //Что за "device number 4"? [ 6.783299] usb 1-1: device not accepting address 4, error -71 //устройство не принимает адрес 4. а до этого адреса 2 и 3 принимало? что за устройство? Почему линукс адресуется к этому устройству с адресом 4? От куда линукс взял этот адрес? Что это? Как и где настраивается/регулируется? [ 6.933289] usb 1-1: new full-speed USB device number 5 using ci_hdrc [ 7.433358] usb 1-1: device not accepting address 5, error -71 [ 7.439275] usb usb1-port1: unable to enumerate USB device Вобщем лог полупонятный. Кто видет этот лог как 5 пальцев? Кто может пояснить что происходит? Ну или кто понимает хотябы частично то, что я не понимаю? Заранее благодарен. Изменено 26 октября, 2023 пользователем ericN поправил Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться