This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/AM3357:USB VBUS 问题

Guru**** 2550550 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/606577/linux-am3357-usb-vbus-issue

器件型号:AM3357

工具/软件:Linux

您好、先生、

我们基于 AM335x 评估板的定制板在 USB0上具有 OTG、在 USB1上具有射频模块。 USB1工作正常。

USB0有问题。 我们已通过电源开关提供5V 电压。

我们遵循此原理图  、可以在电源开关的输入端看到5V 电压、但我们无法在 USB0_VBUS 端看到。

当我这么做时、

root@AM335x-EVM:~μ s# lsusb                                                        
总线001器件001:ID 1d6b:0002 Linux Foundation                               
总线002设备002:ID 1e2d:0061                                                
总线002设备001:ID 1d6b:0002 Linux Foundation

root@AM335x-EVM:/# cat /proc/interrupts                                         
          CPU0                                                                 
 16:     19172     INTC 68级别    gp_timer                                
 19:         1     INTC 78电平    wkup_m3_txev                            
 20:       487     INTC 12电平    490000.EDMA_ccint                     
 22:         0     INTC 14级别    490000.EDMA_cerrint                  
 26:         0     INTC 96电平    44e07000.GPIO                           
 33:         0 44e07000.GPIO  6 Edge     48060000.MMC CD                    
 59:         0     INTC 98电平    4804c000.GPIO                           
 92:         0     INTC 32电平    481ac000.GPIO                           
125:         0     INTC 62电平    481ae000.GPIO                           
158:       566     INTC 72级    44e09000.serial                         
160:       824     INTC 70 Level    44e0b000.i2c                            
161:         0     INTC 71电平    4802a000.i2c                            
162:        11     INTC 64级    mmc1                                    
163:        13     INTC 29级    mmc0                                    
165:         0     INTC 77电平    wkup_m3                                 
171:         0     INTC 75电平    rtc0                                    
172:         0     INTC 76电平    rtc0                                    
174:         0     INTC 41电平    4a100000以太网                       
175:         0     INTC 42级别    4a100000以太网                       
177:         0     INTC  4级    48080000.elm                            
179:         0     INTC 16级    TI-AM335x-TSC、TI-AM335x-ADC            
180:         0     INTC 100电平    GPMC                                    
181:        12     INTC 109 Level    53100000.sham                           
183:         0     INTC 111级    48310010.rng                            
188:         0     INTC 18级    musb-hdrc.0.auto                        
189:       125     INTC 19级    musb-hdrc.1.auto                        
190:         2     个 INTC 17级    47400000 DMA 控制器                 
错误:         0       

root@AM335x-EVM://# cat /proc/driver

在这里、我没有得到 musb-hdrc.0和 musb-hdrc.1

主席先生,请说明我是否需要从软件中执行任何操作,或者我们是否需要更改硬件中的任何内容。

我使用的是 tisdk 03.03.00.04

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    检查您的设计是否符合以下指南: processors.wiki.ti.com/.../AM335x_Schematic_Checklist
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、先生、

    是的、我们的设计就是这样编译的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、先生、

    是的、我们的原理图就是这样编译的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Sachin T C M2"]

    我们能够在电源开关的输入端看到5V 电压、但我们无法在 USB0_VBUS 上看到。

    [/报价]

    请发布 Sub0端口的原理图。

    您是否为 usb0端口加载了 USB 小工具驱动程序? 您连接到 usb0端口的设备是什么?

    [引用用户="Sachin T C M2"]

    root@AM335x-EVM://# cat /proc/driver

    在这里、我没有得到 musb-hdrc.0和 musb-hdrc.1

    [/报价]

    这些节点仅存在于旧的 v3.2内核中、而不存在于较新的内核中、例如 tisdk 03.03.00.04中的内核。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、先生、

    感谢你的答复。

    这是我们的 usb0原理图、

    在 USB0上,我们有 USB micro 端口,我们通过 OTG 电缆连接了存储设备。

    我没有为 usb0端口加载任何 USB 小工具驱动程序、您能简单介绍一下这一点吗?

    这就是我通过 OTG 电缆进行 dmesg 连接存储设备时得到的结果

    root@AM335x-EVM:~# dmesg | grep USB
    [10.590850]  AM335x-phy-driver 47401300.usb-phy:用于消费者复位的 GPIO 查找
    [10.590888]  AM335x-phy-driver 47401300.usb-phy:、使用器件树进行 GPIO 查找
    [10.590911]  of _get_named_gpio_FLAGS:无法解析节点'/ocp/usb@47400000/USB-phy@47401300[0]的'set-GPIO'属性
    [10.590926]  of_get_named_gpio_FLAGS:无法解析节点'/ocp/usb@47400000/USB-phy@47401300[0]的'resset-GPIO'属性
    [10.590939]  使用查找表进行 GPIO 查找的 AM335x-phy-driver 47401300.usb-phy:
    [10.590955]  AM335x-phy-driver 47401300.usb-phy:查找 GPIO 复位失败
    [10.590970]  AM335x-phy-driver 47401300.usb-phy:用于消费类 VBUS 检测的 GPIO 查找
    [10.590982]  AM335x-phy-driver 47401300.usb-phy:、使用器件树进行 GPIO 查找
    [10.590996]  of _get_named_gpio_FLAGS:无法解析节点'/ocp/usb@47400000/USB-phy@47401300[0]的'VBUS-detect-GPIO'属性
    [10.591009]  of _get_named_gpio_FLAGS:无法解析节点'/ocp/usb@47400000/USB-phy@47401300[0]的'VBUS-detect-GPIO'属性
    [10.591021]  使用查找表进行 GPIO 查找的 AM335x-phy-driver 47401300.usb-phy:
    [10.591035]  AM335x-phy-driver 47401300.usb-phy:查找 GPIO VBUS-Detect 失败
    [10.591129]  使用虚拟稳压器未找到47401300.usb-phy 电源 VCC
    [10.713483]  AM335x-phy-driver 47401b00.usb-phy:用于消费者复位的 GPIO 查找
    [10.713522]  AM335x-phy-driver 47401b00.usb-phy:、使用器件树进行 GPIO 查找
    [10.713543]  of _get_named_gpio_FLAGS:无法解析节点'/ocp/usb@47400000/USB-phy@47401b00[0]的'set-GPIO'属性
    [10.713558]  of _get_named_gpio_FLAGS:无法解析节点'/ocp/usb@47400000/USB-phy@47401b00[0]的'resset-GPIO'属性
    [10.713572]  AM335x-phy-driver 47401b00.usb-phy:、使用查找表进行 GPIO 查找
    [10.713587]  AM335x-phy-driver 47401b00.usb-phy:查找 GPIO 复位失败
    [10.713602]  AM335x-phy-driver 47401b00.usb-phy:用于消费类 VBUS 检测的 GPIO 查找
    [10.713614]  AM335x-phy-driver 47401b00.usb-phy:、使用器件树进行 GPIO 查找
    [10.713628]  of_get_named_gpio_FLAGS:无法解析节点'/ocp/usb@47400000/USB-phy@47401b00[0]的'VBUS-detect-GPIO'属性
    [10.713641]  of_get_named_gpio_FLAGS:无法解析节点'/ocp/usb@47400000/USB-phy@47401b00[0]的'VBUS-detect-GPIO'属性
    [10.713654]  AM335x-phy-driver 47401b00.usb-phy:、使用查找表进行 GPIO 查找
    [10.713667]  AM335x-phy-driver 47401b00.usb-phy:查找 GPIO VBUS-Detect 失败
    [10.713758]  47401b00.usb-phy 电源 VCC 未找到、使用虚拟稳压器
    [19.470784]  usbcore:注册的新接口驱动程序 usbfs
    [19.476441]  usbcore:注册的新接口驱动程序集线器
    [19.610612]  usbcore:注册的新设备驱动程序 USB
    [19.845402]  musb-hdrc:ConfigData=0xde (UTMI-8、dyn FIFO、大容量组合、大容量分离、HB-ISO Rx、 HB-ISO Tx、SoftConn)
    [19.845437]  musb-hdrc:MHDRC RTL 版本2.0
    [19.845449]  musb-hdrc:设置 fifo_mode 4.
    [19.845475]  musb-hdrc:28/31最大 EP、16384/16384内存
    [19.845671]  musb-hdrc musb-hdrc.0.auto: MUSB HDRC 主机驱动程序
    [19.889467]  musb-hdrc musb-hdrc.0.auto:新 USB 总线已注册、分配总线编号1
    [20.018126]  musb-hdrc:ConfigData=0xde (UTMI-8、dyn FIFO、大容量组合、大容量分离、HB-ISO Rx、 HB-ISO Tx、SoftConn)
    [20.018159]  musb-hdrc:MHDRC RTL 版本2.0
    [20.018172]  musb-hdrc:设置 fifo_mode 4.
    [20.018194]  musb-hdrc:28/31最大 EP、16384/16384存储器
    [20.018356]  MUSB HDRC musb-hdrc.1.auto:主机驱动程序
    [20.081780]  musb-hdrc musb-hdrc.1.auto:新 USB 总线已注册、分配的总线编号2
    [21.319388]  USB 2-1:使用 musb-hdrc 的新型高速 USB 器件编号2
    [21.939934]  CDC_ETHERE 2-1:1.10 usb0:register 'CDC_ETHER' at usb-musb-hdrc.1.auto-1、CDC Ethernet Device、DE:AD:be:ef:00:00
    [22.010210]  CDC_ETHERe 2-1:1.12 USB1:寄存器'CDC_ETH'、位于 usb-musb-hdrc.1.auto-1、CDC 以太网器件、DE:AD:BE:ef:00:01
    [22.022924]  usbcore:注册的新接口驱动程序 CDC_ACM
    [22.072319]  usbcore:注册的新接口驱动程序 CDC_ether
    [22.500018]  CDC_Ether 2-1:1.12 USB1:CDC:意外通知01!
    [22.650006]  CDC_Ether 2-1:1.10 usb0:CDC:意外通知01!

    谢谢你。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Sachin T C M2"]

    我没有为 usb0端口加载任何 USB 小工具驱动程序、您能简单介绍一下这一点吗?

    [/报价]

    由于这是一个 OTG 端口、所以一定要将它用作 USB 小工具、因此必须加载 USB 小工具驱动程序才能将 usb0端口用于外设模式。 OTG 端口还需要小工具驱动程序才能在主机模式下工作。 现在、如果您希望 usb0端口枚举拇指驱动器、您仍然必须首先加载小工具驱动程序。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好,先生

    我已经尝试插入模块、但我得到了这个

    root@AM335x-EVM:~ insmod g_mass_storage.ko                                     
    insmod:错误:无法加载模块 g_mass 存储.ko:无此类文件或 directoy

    在此之后、我阅读了以下链接、


    我了解到、默认情况下、一个小工具将被内置、另一个我们有插入的小工具、因为这是默认配置、我没有进行任何更改、但仍然没有 g_mamal_storage.ko。

    这是我 的 dmesg 日志、

    root@AM335x-EVM:~# dmesg | grep USB
    [10.611625]  用于消费类复位的 AM335x-phy-driver 47401300.usb-phy: GPIO 查找
    [10.611661]  AM335x-phy-driver 47401300.usb-phy:、使用器件树进行 GPIO 查找
    [10.611684]  of_get_named_gpio_FLAGS:无法解析节点'/ocp/us 的'resset-gpio'属性
    [10.611699]  of_get_named_gpio_FLAGS:无法解析节点'/ocp/usb 的'resset-gpio'属性
    [10.611712]  使用查找表进行 GPIO 查找的 AM335x-phy-driver 47401300.usb-phy:
    [10.611728]  AM335x-phy-driver 47401300.usb-phy:查找 GPIO 复位失败
    [10.611743]  用于消费类 VBUS 检测的 AM335x-phy-driver 47401300.usb-phy: GPIO 查找
    [10.611756]  AM335x-phy-driver 47401300.usb-phy:、使用器件树进行 GPIO 查找
    [10.611770]  of_get_named_gpio_FLAGS:无法解析节点"/"的'VBUS-DETect-GPIO'属性
    [10.611784]  of_get_named_gpio_FLAGS:无法解析节点'/o'的'VBUS-detect-GPIO'属性
    [10.611797]  使用查找表进行 GPIO 查找的 AM335x-phy-driver 47401300.usb-phy:
    [10.611811]  AM335x-phy-driver 47401300.usb-phy:查找 GPIO VBUS-Detect 失败
    [10.611903]  47401300.usb-phy 电源 VCC 未找到、正在使用虚拟稳压器
    [10.697308]  AM335x-phy-driver 47401b00.usb-phy:用于消费者复位的 GPIO 查找
    [10.697346]  AM335x-phy-driver 47401b00.usb-phy:、使用器件树进行 GPIO 查找
    [10.697370]  of_get_named_gpio_FLAGS:无法解析节点'/ocp/us 的'resset-gpio'属性
    [10.697385]  of_get_named_gpio_FLAGS:无法解析节点'/ocp/usb 的'resset-gpio'属性
    [10.697391]  AM335x-phy-driver 47401b00.usb-phy:、使用查找表进行 GPIO 查找
    [10.697415]  AM335x-phy-driver 47401b00.usb-phy:查找 GPIO 复位失败
    [10.697430]  AM335x-phy-driver 47401b00.usb-phy:用于消费类 VBUS 检测的 GPIO 查找
    [10.697442]  AM335x-phy-driver 47401b00.usb-phy:、使用器件树进行 GPIO 查找
    [10.697456]  of _get_named_gpio_FLAGS:无法解析节点"/"的'VBUS-DETECT GPIO'属性
    [10.697470]  of_get_named_gpio_FLAGS:无法解析节点'/o'的'VBUS-detect-GPIO'属性
    [10.697483]  AM335x-phy-driver 47401b00.usb-phy:、使用查找表进行 GPIO 查找
    [10.697496]  AM335x-phy-driver 47401b00.usb-phy:查找 GPIO VBUS-Detect 失败
    [10.697588]  47401b00.usb-phy 电源 VCC 未找到、使用虚拟稳压器
    [19.291387]  usbcore:注册的新接口驱动程序 usbfs
    [19.297033]  usbcore:注册的新接口驱动程序集线器
    [19.427373]  usbcore:注册的新设备驱动程序 USB
    [19.619100]  musb-hdrc:ConfigData=0xde (UTMI-8、dyn FIFO、大容量组合、大容量分离、HB-I)
    [19.619136]  musb-hdrc:MHDRC RTL 版本2.0
    [19.619149]  musb-hdrc:设置 fifo_mode 4.
    [19.619174]  musb-hdrc:28/31最大 EP、16384/16384存储器
    [19.649554]  musb-hdrc musb-hdrc.0.auto: MUSB HDRC 主机驱动程序
    [19.655388]  musb-hdrc musb-hdrc.0.auto:新 USB 总线已注册、分配的总线编号1
    [19.778371]  musb-hdrc:ConfigData=0xde (UTMI-8、dyn FIFO、大容量组合、大容量分离、HB-I)
    [19.778404]  musb-hdrc:MHDRC RTL 版本2.0
    [19.778417]  musb-hdrc:设置 fifo_mode 4.
    [19.778440]  musb-hdrc:28/31最大 EP、16384/16384存储器
    [19.778608]  musb-hdrc musb-hdrc.1.auto: MUSB HDRC 主机驱动程序
    [19.821381]  musb-hdrc musb-hdrc.1.auto:新 USB 总线已注册、分配的总线编号2
    [21.069409]  USB 2-1:使用 musb-hdrc 的新型高速 USB 器件编号2
    [21.697439]  CDC_Ether 2-1:1.10 usb0:寄存器'CDC_Ethe'、位于 usb-musb-hdrc.1.auto-1、CDC 0
    [21.767165]  CDC_Ether 2-1:1.12 USB1:寄存器'CDC_Ethe'、位于 usb-musb-hdrc.1.auto-1、CDC 1
    [21.831802]  usbcore:注册的新接口驱动程序 CDC_Ether
    [21.853647]  usbcore:注册的新接口驱动程序 CDC_ACM
    [22.292707]  CDC_Ether 2-1:1.10 usb0:CDC:意外通知01!
    [22.409946]  CDC_Ether 2-1:1.12 USB1:CDC:意外通知01!
    [22.423822]  CDC_Ether 2-1:1.12 USB1:kevent 12可能已被丢弃

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Bin、

    我尝试插入模块
    root@AM335x-EVM:/lib/modules/4.4.41-gf9f6f0db2d/kernel/drivers/usb/gadget/legacy insmod g_mass_storage.ko
    [2148.928847] g_mass 存储:未知符号 FSG_common_set_ops (错误0)
    [2148.93573] g_mass 存储:未知符号 FSG_common_set_sysfs (错误0)
    [2148.948474] g_mass 存储:未知符号 USB_GET_function_instance (错误0)
    [2148.963262] g_mass 存储:未知符号 USB_STRING_IDS_TAB (错误0)
    [2148.970099] g_mass 存储:未知符号 USB_GET_FUNCTION (错误0)
    [2148.976474] g_mass 存储:未知符号 USB_compose_unregister (错误0)
    [2148.989610] g_mass 存储:未知符号 USB_Put 函数(错误0)
    [2148.996017] g_mass 存储:未知符号 FSG_common_create_LUNs (错误0)
    [2149.016801] g_mass 存储:未知符号 USB_add_function (错误0)
    [2149.023444] g_mass 存储:未知符号 USB_compose_probe (错误0)
    [2149.035408] g_mass 存储:未知符号 USB_compose_overwrite_options (错误0)
    [2149.05154] g_mall_storage:未知符号 USB_OTG_descriptor_alloc (错误0)
    [2149.058642] g_mass 存储:未知符号 USB_PLOT_FUNC功能性 实例(错误0)
    [2149.071545] g_mass 存储:未知符号 FSG_common_set_cdev (错误0)
    [2149.078226] g_mass 存储:未知符号 FSG_common_free 缓冲区(错误0)
    [2149.096238] g_mass 存储:未知符号 USB_OTG_descriptor_init (错误0)
    [2149.103516] g_mass 存储:未知符号 FSG_common_remove_LUNs (错误0)
    [2149.115645] g_mass 存储:未知符号 USB_add_config (错误0)
    [2149.129000] g_mass 存储:未知符号 FSG_common_set_inquiration_string (错误0)
    [2149.141198] g_mass 存储:未知符号 FSG_common_set_num_pum_buffers (错误0)
    [2149.148467] g_mass 存储:未知符号 FSG_CONFIG_FROM _params (错误0)
    insmod:错误:无法插入模块 g_mass 存储库:模块中的未知符号

    您能告诉我这里缺少什么吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Sachin T C M2"]
    我尝试插入模块
    root@AM335x-EVM:/lib/modules/4.4.41-gf9f6f0db2d/kernel/drivers/usb/gadget/legacy insmod g_mass_storage.ko
    [2148.928847] g_mass 存储:未知符号 FSG_common_set_ops (错误0)

    您能告诉我这里缺少什么吗?

    [/报价]
    USB 小工具驱动程序取决于其他可能未加载的内核模块、它将导致此类缺少符号错误。 请改用'modprobe g_mall_storage file=mode'<backend-storage> 命令、它将加载所有相关模块。 另请注意、您需要传递'file=..." 加载 g_mass 存储小工具驱动程序时的参数。