Hi Hui, just in case I tried again, but no it won't work if I put
"dtoverlay=dwc2" w/o dr_mode.  I remember dwc2 should be new code and
should be used, hence why I use that instead of dwc_otg.

Anyway, if we use "dtoverlay=dwc2" only, I guess the actual "dr_mode"
value may not be init properly in run time memory space, and thus it
didn't work.  Say using no "dr_mode", on my Pi 4B I can see g_cdc driver
loaded correctly, but then on the host side, my L470, it actually won't
work.  Something like this would appear:

----- pi4 -----
[    5.317371] udc-core: couldn't find an available UDC - added [g_cdc] to list 
of pending drivers
...
[    7.497909] g_cdc gadget: CDC Composite Gadget, version: King Kamehameha Day 
2008
[    7.497913] g_cdc gadget: g_cdc ready
[    7.497921] dwc2 fe980000.usb: bound driver g_cdc

----- L470 -----
[44740.491468] usb 1-3.1: new high-speed USB device number 18 using xhci_hcd
[44741.837984] usb 1-3.1: device descriptor read/64, error -71
[44757.718734] usb 1-3.1: device descriptor read/64, error -110
[44757.902877] usb 1-3.1: new high-speed USB device number 19 using xhci_hcd
[44763.350132] usb 1-3.1: device descriptor read/64, error -110
[44779.223840] usb 1-3.1: device descriptor read/64, error -110
[44779.329078] usb 1-3-port1: attempt power cycle
[44779.942228] usb 1-3.1: new high-speed USB device number 20 using xhci_hcd
[44785.366277] usb 1-3.1: device descriptor read/64, error -110
[44801.236885] usb 1-3.1: device descriptor read/64, error -110
[44801.423944] usb 1-3.1: new high-speed USB device number 21 using xhci_hcd
[44806.870008] usb 1-3.1: device descriptor read/64, error -110
[44822.743518] usb 1-3.1: device descriptor read/64, error -110
[44822.849333] usb 1-3-port1: unable to enumerate USB device

but if I use "dtoverlay=dwc2,dr_mode=peripheral" then no problem.  I
didn't test the Ethernet part yet as I don't have the network part
properly set up, so I tried g_cdc instead, bind console to ttyGS0 with
systemd and tried login from L470 to Pi via minicom, which was
successful.

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux-raspi2 in Ubuntu.
https://bugs.launchpad.net/bugs/1861070

Title:
  Raspberry Pi 4B: USB OTG is not working

Status in linux-raspi2 package in Ubuntu:
  New

Bug description:
  I am using Raspberry Pi 4B (4GB) and want to make use of the OTG
  functionality (g_ether).  I cross checked with Raspbian to make sure
  it is not a hardware issue.  Extract from dmesg of Ubuntu 19.10.1 with
  latest updates applied as of Jan 26th, 2020 via "apt-get update" and
  "apt-get full-upgrade":

  ...
  [    1.514262] dwc_otg: version 3.00a 10-AUG-2012 (platform bus)
  [    1.517365] dwc_otg: FIQ enabled
  [    1.517376] dwc_otg: NAK holdoff enabled
  [    1.517386] dwc_otg: FIQ split-transaction FSM enabled
  [    1.517399] Module dwc_common_port init
  ...
  [    6.358332] dwc2 fe980000.usb: fe980000.usb supply vusb_d not found, using 
dummy regulator
  [    6.358388] dwc2 fe980000.usb: fe980000.usb supply vusb_a not found, using 
dummy regulator
  [    6.358545] dwc2 fe980000.usb: Configuration mismatch. dr_mode forced to 
host
  [    6.409098] dwc2 fe980000.usb: DWC OTG Controller
  [    6.409399] dwc2 fe980000.usb: new USB bus registered, assigned bus number 
3
  [    6.409432] dwc2 fe980000.usb: irq 23, io mem 0xfe980000
  ...
  [  111.796714] udc-core: couldn't find an available UDC - added [g_ether] to 
list of pending drivers

  I think it is that "Configuration mismatch. dr_mode forced to host"
  log entry telling me that the port is acting as HOST mode instead of
  OTG mode.  I have try putting these in usercfg.txt

  "dtoverlay=dwc2"
  "dtoverlay=dwc2,dr_mode=otg"
  "dtoverlay=dwc2,dr_mode=peripheral"

  and it will give the same result, no OTG functionality.

  On the same hardware running Raspbian Buster, it initialise successfully.  
Corresponding dmesg:
  ...
  [    0.567531] dwc_otg: version 3.00a 10-AUG-2012 (platform bus)
  [    0.570391] dwc_otg: FIQ enabled
  [    0.570400] dwc_otg: NAK holdoff enabled
  [    0.570409] dwc_otg: FIQ split-transaction FSM enabled
  [    0.570421] Module dwc_common_port init
  ...
  [    2.507634] dwc2 fe980000.usb: fe980000.usb supply vusb_d not found, using 
dummy regulator
  [    2.511011] dwc2 fe980000.usb: Linked as a consumer to regulator.0
  [    2.514450] dwc2 fe980000.usb: fe980000.usb supply vusb_a not found, using 
dummy regulator
  [    2.731860] dwc2 fe980000.usb: dwc2_check_params: Invalid parameter lpm=1
  [    2.735511] dwc2 fe980000.usb: dwc2_check_params: Invalid parameter 
lpm_clock_gating=1
  [    2.735522] dwc2 fe980000.usb: dwc2_check_params: Invalid parameter besl=1
  [    2.735533] dwc2 fe980000.usb: dwc2_check_params: Invalid parameter 
hird_threshold_en=1
  [    2.735582] dwc2 fe980000.usb: EPs: 8, dedicated fifos, 4080 entries in 
SPRAM
  [    2.752511] dwc2 fe980000.usb: DWC OTG Controller
  [    2.752554] dwc2 fe980000.usb: new USB bus registered, assigned bus number 
3
  [    2.752601] dwc2 fe980000.usb: irq 36, io mem 0xfe980000
  ...
  [    2.848843] g_ether gadget: Ethernet Gadget, version: Memorial Day 2008
  [    2.851601] g_ether gadget: g_ether ready
  [    2.854580] dwc2 fe980000.usb: bound driver g_ether
  [    2.998525] dwc2 fe980000.usb: new device is high-speed
  [    3.075025] dwc2 fe980000.usb: new device is high-speed
  [    3.139338] dwc2 fe980000.usb: new address 10
  [    3.154010] g_ether gadget: high-speed config #1: CDC Ethernet (ECM)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux-raspi2/+bug/1861070/+subscriptions

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to