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.

[参考译文] AM3352:内核6.1的 USB 支持(AM335x SDK v9.3)

Guru**** 2480275 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1458355/am3352-usb-support-for-kernel-6-1-am335x-sdk-v9-3

器件型号:AM3352

工具与软件:

大家好、团队成员:

我正在将适用于 AM335x 的 SDK 从 v7.3更新为 v9.3。

我们已通过ttyUSB*内核 v5.4上的 USB 接口()配置并使用 LTE。 作为内核 v6.1更新的一部分、中的 USB 驱动程序及其节点似乎am33xx.dtsi已更改。

您能建议对我们现有的补丁进行哪些修改来启用内核 v6.1中的 USB 支持吗?

此致、
Pratik Pingate

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

    Pratik、您好!

    am33xx.dtsi 中的"usb"节点及其子节点没有太多变化。 因此、USB 的电路板 devicetree 配置在 SDK v7.3和 v9.3中应该几乎相同。

    如果 SDK9.3中的 USB 配置仍有问题、请告知我。

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

    刘斌、您好!

    我更改了基于旧版 SDK v7.3的 dtb 和驱动程序、但启动电路板后无法看到/dev/ttyUSB 节点。

    请参阅随附的 dtb 文件更改(快照)、该文件用于在 SDK v7.3中通过 USB 配置 LTE。 我在 SDK v9.3中进行了类似的更改、但无法看到/dev/ttyUSB 节点。 我还 在.config 文件中启用了 USB。

    CONFIG_USB=y
    CONFIG_USB_SUPPORT=y
    CONFIG_USB_NET_QMI_WWAN=y
    CONFIG_USB_NET_DRIVERS=y
    CONFIG_USB_SERIAL_WWAN=y
    CONFIG_USB_SERIAL_QUALCOMM=y

    此致、

    Pratik。

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

    Pratik、您好!

    请附加 SDK v9.3的内核 dmesg 日志。

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

    顺便说一下、usb0中的 GPIO0_23和 GPIO0_26用于什么?

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

    这些 GPIO 用于为 LTE 模块供电。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [21.074556] QCA7000探测开始
    [21.077786] qcaspi spi1.0:ver=0.2.7-i、clkspeed=8000000、burst_len=5000、可插拔=0
    [ 21.203258] QCA7000 mode=3、clkspeed=8000000、IRQ=54、Mac=00:01:87:08:21:54
    [ 21.210309] QCA7000读取签名值
    [ 21.289514] brcmfmac mmc2:0001:1:BRCM/brcmfmac43455-SDIO.ti、am335x-bone-black.bin 的直接固件加载失败、错误为-2
    [21.326343] QCA7000读取签名成功
    [ 21.330772]注册 QCA7000设备
    [ 21.403280] brcmfmac mmc2:0001:1:BRCM/BRCM/ brcmfmac43455-sdio.bin 的直接固件加载失败、出现错误-2[/报价]

    日志似乎显示 LTE 设备驱动程序初始化失败。

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

    上述驱动程序(brcmfmac)适用于 Wi-Fi 模块;我们尚未启动 Wi-Fi

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

    好的。

    电路板上的"lsusb"命令的输出是什么?

    LTE 设备是否连接到 USB0或 USB1端口? 它的 DRVVBUS 引脚是高电平还是低电平?  LTE 设备是可拆卸的还是永久安装在电路板上?

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

    根@AM335x-EVM:~# lsusb
    总线002设备001:ID 1d6b:0002 Linux Foundation 2.0根集线器
    总线001设备001:ID 1d6b:0002 Linux Foundation 2.0 root hub
    根@AM335x-EVM:~#

    LTE 设备连接在 USB0端口上。
    LTE 器件模块永久安装在电路板上。  

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

    由于您要从 SDK7.3迁移到9.3、因此我假设 LTE 设备可以与 SDK7.3正常配合使用、因此不存在硬件问题、这完全是 SDK9.3的软件问题、是否正确?

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

    是的、LTE 在 SDK v7.3中完全可以正常工作

    从 SDK v7.3附加 lsusb 命令输出

    ROOT@ST6E98FB438EE:~# lsusb
    总线001设备002:ID 2c7c:0306上海移远通信技术股份有限公司 EG06/EP06/EM06 LTE-A 调制解调器
    总线001设备001:ID 1d6b:0002 Linux Foundation 2.0 root hub
    ROOT@ST6E98FB438EE:~#

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    root@ST6E98FB438EE:~# lsusb
    总线001设备002:ID 2c7c:0306上海移远通信技术股份有限公司 EG06/EP06/EM06 LTE-A 调制解调器[/报价]

    我在内核日志中看不到 LTE 调制解调器枚举消息、但此消息表明调制解调器已由内核 USB 堆栈枚举。

    但如果您在文件系统中看不到/dev/ttyUSB *、则似乎缺少了与调制解调器相关的其他内容、但我不知道它是什么、它超出了我们的支持范围。

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

    我分享了输出表单 仅供参考。  

    LTE 分开、如何在 SDK v9.3中启动内核后获得/det/ttyUSB 节点、我只想添加在/dev/中 创建节点的 USB 支持

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

    Pratik、您好!

    通常、以下是在/dev/directory 中创建设备节点的方法、其中以 LTE 调制解调器为例:

    1.内核 USB 控制器/内核驱动程序堆栈检测到调制解调器并对其进行枚举、结果显示在"lsusb"命令的输出中;

    2.内核调制解调器(或任何其他内核应用/功能层)驱动程序初始化调制解调器,然后将 udev 事件发送到 Linux 用户空间;

    3. Linux 用户空间 udev 服务侦听 udev 事件、然后在/dev/下 创建相应的设备节点。

    我们现在已经知道第1步已正确完成、但第2步或第3步中似乎缺少某些内容、但这超出了我们的支持范围、该调制解调器不是 TI 器件。

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

    刘斌、您好!

    内核 USB 控制器/内核驱动程序堆栈检测到调制解调器并对其进行枚举、结果显示在"lsusb"命令的输出中;

    我认为内核 USB 控制器/内核驱动程序没有检测到调制解调器、因为 lsusb 命令没有显示任何连接到它的调制解调器。 请参阅突出显示的注释。  

     突破40 分

    根@AM335x-EVM:~# lsusb
    总线002设备001:ID 1d6b:0002 Linux Foundation 2.0根集线器
    总线001设备001:ID 1d6b:0002 Linux Foundation 2.0 root hub
    根@AM335x-EVM:~#

    LTE 设备连接在 USB0端口上。
    LTE 器件模块永久安装在电路板上。


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

    Pratik、您好!

    对不起、我的错了、

    [报价 userid="7730" url="~/support/processors-group/processors/f/processors-forum/1458355/am3352-usb-support-for-kernel-6-1-am335x-sdk-v9-3/5597358 #5597358"]
    ROOT@ST6E98FB438EE:~# lsusb
    总线001设备002:ID 2c7c:0306上海移远通信技术股份有限公司 EG06/EP06/EM06 LTE-A 调制解调器

    我在内核日志中看不到 LTE 调制解调器枚举消息、但此消息表明调制解调器已由内核 USB 堆栈枚举。

    [报价]

    不知为什么、我忘记了这个"lsusb"消息适用于 SDK7.3中的工作案例、并且认为这位于 SDK9.3中。

    在 Linux 引导期间、请使用示波器探测 USB0_DRVVBUS、USB0_VBUS、USB0_DP/DM 线路。 在 Linux 引导中的某个点(加载 MUSB 驱动程序时)、USB0_DRVVBUS 应从低电平变为高电平并保持高电平。 我想查看 USB0_DRVVBUS 从低电平到高电平以来的 USB0信号波形。