Перейти к содержанию
    

Доброго дня

В процессоре есть четыре контроллера 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 с хабом на борту.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если хаб не требует специальной инициализации (например, через i2c), то описывать и не нужно: чем хаб на плате отличается от подключенного снаружи?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

специальной инициализации по 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 ядру не отвечает? или ядро пытается через хаб достучатсья до периферии и она не отвечает?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

27 minutes ago, ericN said:

hub ядру не отвечает?

Не отвечает.

 

28 minutes ago, ericN said:

На выходе хаба для управления питанием внешних устройств почему-то 1,5В.

Пожалуй, с этого и стоит начать. Питание в порядке?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 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.7F (or greater) ±20% (ESR <0.1
capacitor to VSS

Конденсаторы присутствуют. Пин REG_EN (запускающие внутренний источник 1.8) на 3,3 сидит. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 minutes ago, ericN said:

На VDDA33 подано 3,3В

А на VDD33/VDD33CR? Наверное, лучше фрагмент схемы выложить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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 и правильная комбинация на конфигурационных контактах (если они есть)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 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 

Изменено пользователем ericN

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

13 minutes ago, ericN said:

на нем при включении питания 2.5В

На нем должно быть 3.3 снаружи подано, если используется внутренний источник для ядра.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ysb.PNG

В 25.10.2023 в 16:33, aaarrr сказал:

На нем должно быть 3.3 снаружи подано, если используется внутренний источник для ядра.

понятно. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что-то ещё не так. На ноге 14 хаба всегда 3,3В. Это управление питанием девайсов. Активно в нуле. Что-то должно быть в логе dmseg, при обнаружении хаба? Или там появиться лог только при обнаружении девайсов?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пытаюсь прочитать 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 = <&reg_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 пальцев? Кто может пояснить что происходит? Ну или кто понимает хотябы частично то, что я не понимаю?

 

Заранее благодарен.

 

 

Изменено пользователем ericN
поправил

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...