so what is the state of this with ubuntu server 20.20 ?

I added “dtoverlay=dwc2,dr_mode=peripheral“ to
/boot/firmware/usercfg.txt but also never seeing the USB-C ethernet show
up when connected to my Ubuntu 18.04 laptop. Then again I might be
missing the equivalent of “modules-load=dwc2” as noted at
https://www.hardill.me.uk/wordpress/2019/11/02/pi4-usb-c-gadget/

Note when connecting to my iPad Pro the pi never even boots, I suspect
because it is not in the low power mode which apparently the steps from
the above article configure in rasbian.

-- 
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-raspi package in Ubuntu:
  Invalid
Status in linux-raspi2 package in Ubuntu:
  Triaged
Status in linux-raspi2 source package in Eoan:
  Fix Released
Status in linux-raspi source package in Focal:
  Fix Committed

Bug description:
  [Impact]
  On the RPI4B board, the usb-c power port could also work as a USB
  OTG mode, but we set the dwc2 driver to the host mode
  unconditionally, now set it to dual_role mode, then it could work
  in host/otg/peripheal mode.

  [Fix]
  Set USB_DWC2_DUAL_ROLE=y, USB_DWC2_HOST=n

  
  [Test Case]
  set the dtoverlay=dwc2,dr_mode=[otg|peripheral] in the config.txt,
  and isnmod the g_ether or g_cdc, on the host machine, we could see
  RPI4B work as a usb device.

  Because physical port limitation, could test dr_mode=host.

  [Regression Risk]
  Low, our eoan kernel choose dwc_otg driver for this port by default,
  very very few users will choose dwc2 driver, and the dwc2 driver is
  not enabled by default in our kernel.

  And bug reporter and I already tested that the peripheral mode works
  after this change.


  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-raspi/+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