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: USB - Linux driver with USB HUB connectivity : AM3352 platform

Part Number: AM3352

Hi Harsha,

 As Cristy requested, Please post the query in e2e forum.

 

Harsha mentioned

  • In one of the port is USB Hub present in the Gateway device.
    • When connected to this port, the RNDIS is NOT working over this port.
    • However, when connected to another USB port (which is not a HUB), it works fine.

 

Since your device USB port (RNDIS) getting detected from another host, could you please share the device enumeration log when the same device trying to connect through USB HUB port?

USB OTG port as a device, is it self powered or powered from USB HUB?

Please also share your USB OTG schematic.

Thanks & Regards,

Dhinesh.

From: Kumar, Harsha
Sent: Friday, May 7, 2021 10:27 AM
To: Griffis, Brad <bgriffis@ti.com>
Cc: Aerram, Raghu <Raghavendra.Aerram@Carrier.com>; N, Anantha <anantha.n@carrier.com>; Mangiahgari, Phani Pavan Kumar <phanipavan.mangaiahgari@carrier.com>; Stoddard, Paul <Paul.Stoddard@Carrier.com>; Gogada, Sumanth <Sumanth.Gogada@Carrier.com>; Fatima, Fariya <Fariya.Fatima@Carrier.com>; Telesca, Paul <Paul.Telesca@carrier.com>; Cristy, Dan <d-cristy@ti.com>
Subject: RE: [External]RE: USB HUB connection to TI's AM335x platform

 

Hi Brad,

 

Thanks for the quick reply. I will start a thread in the forum as well on this.

 

However, please note we are using dual-mode USB controller in TI’s AM335x.

 

[Brad wrote]:

  • In summary, I think you’re saying that USB host mode is working fine, but when you try to operate as a RNDIS device, it’s not working properly. 
  • Is that correct?

 

  • No, the OTG dual-mode controller should either act as Slave or host dynamically depending on the configuration in DTS.
    • i.e. dr_mode-> OTG

 

However, we are connecting to another Gateway device to this port using USB TypeA->TypeB connector cable:

  • The Gateway device has multiple USB ports.
  • In one of the port is USB Hub present in the Gateway device.
    • When connected to this port, the RNDIS is NOT working over this port.
    • However, when connected to another USB port (which is not a HUB), it works fine.

 

Thanks,

 

Harsha.

From: Kumar, Harsha <harsha.kumar@carrier.com>
Sent: Thursday, May 06, 2021 11:41 AM
To: Griffis, Brad <bgriffis@ti.com>
Cc: Aerram, Raghu <Raghavendra.Aerram@Carrier.com>; N, Anantha <anantha.n@carrier.com>; Mangiahgari, Phani Pavan Kumar <phanipavan.mangaiahgari@carrier.com>; Stoddard, Paul <Paul.Stoddard@Carrier.com>; Gogada, Sumanth <Sumanth.Gogada@Carrier.com>; Fatima, Fariya <Fariya.Fatima@Carrier.com>; Telesca, Paul <Paul.Telesca@carrier.com>
Subject: [EXTERNAL] USB HUB connection to TI's AM335x platform

 

Hi,

 

Currently, we are using TI’s AM335x SoC processor for our product.

 

We needed information about the Dual-mode USB OTG Controller in AM335x platforms usage for our use case:

 

  • Configured USB0 in OTG mode (via DTS) for dual-mode OTG host controller
  • The controller (and Linux configuration and driver) functions correctly when a slave flash device is connected over USB
  • The controller functions correctly when configured as RNDIS network over USB connected to slave device.

 

However, when a USB HUB is connected on the other side , the controller does not function as expected _or_ no communication get established with the USB- hub.

 

Please let us know if we are missing something in the Linux configurations or driver module installation in our build? This would be helpful to proceed further on this.

 

The following drivers are installed on the controller: and DTS configured to be OTG in ‘dr_mode’ field of DTS.

 

  • configfs               28990  3 usb_f_rndis,libcomposite
  • crypto_engine           7162  1 omap_aes_driver
  • ecb                     1909  0
  • hmac                    2735  0
  • md5                     2219  0
  • musb_am335x             1426  0
  • musb_dsps               9670  0
  • musb_hdrc              86812  1 musb_dsps
  • omap_wdt                4634  0
  • phy_am335x              2372  1
  • phy_am335x_control      2873  1 phy_am335x
  • phy_generic             5372  1 phy_am335x
  • pinmux_helper           1738  0
  • pm33xx                  6433  0
  • pruss_soc_bus           4105  0
  • remoteproc             28109  2 wkup_m3_rproc,wkup_m3_ipc
  • rtc_omap                9662  1
  • rtc_pcf85263            9565  0
  • sch_fq_codel            8923  10
  • sha1_arm                3862  1 sha1_arm_neon
  • sha1_arm_neon           6261  0
  • sha1_generic            2864  0
  • sha256_generic         10178  0
  • ti_am335x_adc           6761  0
  • ti_am335x_tscadc        6162  1 ti_am335x_adc
  • ti_emif_sram            5587  1 pm33xx
  • udc_core               19322  4 musb_hdrc,u_ether,usb_f_rndis,libcomposite
  • usb_common              4737  6 phy_am335x,udc_core,musb_hdrc,libcomposite,musb_dsps,usbcore
  • usbcore               201089  1 musb_hdrc
  • virtio                  7614  1 remoteproc
  • virtio_ring            15236  1 remoteproc
  • wkup_m3_ipc             8112  1 pm33xx
  • wkup_m3_rproc           3650  1
  • wl12xx                 55232  0
  • xt_limit                1731  0
  • xt_state                1200  0

 

Thanks,

 

Harsha.

  • Hi Harsha,

    Which kernel version do you use?

    What is the RNDIS USB host when AM335x USB0 is the in device mode, is the Gateway device or another host which the Gateway device connects to?

    When AM335x USB0 connects to the hub port on the Gateway device, is it the hub downstream port or upstream port? Please draw a diagram to show the entire topology to help me understand how AM335x USB0 port is used.