dwc2: gadget mode and timeout with GRSTCTL_CSFTRST
Subsystems (2)
Hi,
right now we're experiencing strange behaviour with a dwc2 on Rockchip's PX30 soc.
With a cable connected to the port, the configfs-snippet below seems to work and at least creates a acm device on the host. Though I'm told that a
picocom -b 115200 /dev/ttyACM
sometimes works ok but also sometimes returns -EBUSY or hangs. [But I guess that is a separate problem]
But if there is no cable connected when trying to do the configfs steps we end up with
dwc2_core_reset: HANG! Soft Reset timeout GRSTCTL GRSTCTL_CSFTRST
and no gadget gets configured.
So I guess to get a feeling for the issue, is this something to be expected, or at least a known issue, with maybe a fix flying around somewhere?
Or is this working on other dwc2 platforms correctly and is caused by some other part talking to the dwc2 doing strange things?
Thanks
Heiko
-------- 8< ---- configfs snippet ------ >8 -------- cd /configfs/usb_gadget
mkdir g1
cd g1
echo "0x1d6d" > idVendor
echo "0x0104" > idProduct
mkdir strings/0x409
echo "0123456789" > strings/0x409/serialnumber echo "Theobroma Systems" > strings/0x409/manufacturer echo "Cobra Debug Serial" > strings/0x409/product
# create config mkdir configs/c.1 mkdir configs/c.1/strings/0x409 echo "conf1" > configs/c.1/strings/0x409/configuration
# create function mkdir functions/acm.usb0 ln -s functions/acm.usb0 configs/c.1
# activate new config echo "" > UDC echo "ff300000.usb" > UDC
Hi Heiko,
Quoted 7 lines · Heiko Stuebner
Hi,
right now we're experiencing strange behaviour with a dwc2 on Rockchip's PX30 soc.
With a cable connected to the port, the configfs-snippet below seems to work and at least creates a acm device on the host. Though I'm told that a
Quoted 9 lines
picocom -b 115200 /dev/ttyACMsometimes works ok but also sometimes returns
-EBUSYor hangs. [But I guess that is a separate problem]But if there is no cable connected when trying to do the configfs steps we end up with
dwc2_core_reset: HANG! Soft Reset timeout GRSTCTLGRSTCTL_CSFTRST
and no gadget gets configured.
Which timeout value set to wait GRSTCTL cleared? Does this commit
applied: 6689f0f4bb14e "usb: dwc2: use a longer core rest timeout in dwc2_core_reset()"?
If yes, can you send debug log for above case.
Thanks,
Minas
Quoted 38 lines
So I guess to get a feeling for the issue, is this something to be expected, or at least a known issue, with maybe a fix flying around somewhere?
Or is this working on other dwc2 platforms correctly and is caused by some other part talking to the dwc2 doing strange things?
Thanks
Heiko-------- 8< ---- configfs snippet ------ >8 -------- cd /configfs/usb_gadget
mkdir g1
cd g1
echo "0x1d6d" > idVendor
echo "0x0104" > idProduct
mkdir strings/0x409
echo "0123456789" > strings/0x409/serialnumber echo "Theobroma Systems" > strings/0x409/manufacturer echo "Cobra Debug Serial" > strings/0x409/product# create config mkdir configs/c.1 mkdir configs/c.1/strings/0x409 echo "conf1" > configs/c.1/strings/0x409/configuration# create function mkdir functions/acm.usb0 ln -s functions/acm.usb0 configs/c.1# activate new config echo "" > UDC echo "ff300000.usb" > UDC