这是一个针对AM64x SoC的问题,它的主机模式操作可能会出现错误,导致USB设备无法正常工作。问题的根源在于在主机模式下,AM64x的控制器没有正确配置。解决方案如下:
在AM64x中,确保正确地配置USB主机控制器以使用最新的设备描述符
遵循IMX规范,使用BMRequest Type为0b01000000 的GET DESCRIPTOR命令来获取USB设备描述符
仔细阅读驱动程序,确定是否需要禁用UASP(USB Attached SCSI Protocol)。
确保网络低延迟和高带宽以获得最佳性能。
这是一个示例,显示了手动设置AM64x主机控制器的正确方式:
usb1: usb@fe980000 {
compatible = "ti,omap-usb-ama-companion";
reg = <0x0 0xfe980000 0x0 0x1000>;
interrupts = ;
ti,hwmods = "usb1ss";
dmas = <&cc-soc-fw-dma 0x202 0x0>,
<&cc-soc-fw-dma 0x201 0x0>;
dma-names = "rx", "tx";
ti,rx-bulk-pkt = <512>;
ti,tx-bulk-pkt = <512>;
clock-names = "fck";
clocks = <&k3_clks AM6_CLK_USB1>;
phys = <&usb_phy1>;
phy-names = "usb2-phy";
pinctrl-names = "default";
pinctrl-0 = <&usb1_host&usb1_power_ctrl>;
status = "okay";
};
在上述示例中,我们可以看到AM64x的USB主机控制器以及相关的配置选项