Re: Oops with dwc3 in device mode and functionfs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 3 Jan 2017 18:18:02 +0100, Vincent Pelletier
<plr.vincent@xxxxxxxxx> wrote:
> Sadly, this fix alone is not enough to get a functional device. I did
> not investigate much yet, and need to get some sleep.

I investigated more.

The next issue is that often (>9 times out of 10) the dwc3 fails to
respond to the SET_CONFIGURATION standard request. As a result, only
EP0 works.

Host-side, syslog contains a -110 (ETIMEDOUT) error. Re-triggering a
SET_CONFIGURATION causes the same timeout to happen again.

Device-side, functionfs does trigger the "ENABLE" event.

Altogether, ep0 does work (vendor-specific requests from host do get
received by the program on device which listens to events on ep0 file).
Host (comprehensibly) refuses to emit requests to endpoints which are
not considered as configured, so I cannot test this part.

Plugging my USB protocol analyser, I see corrupted USB PIDs. Here is a
capture, starting at the beginning od the last GET_DESCRIPTOR
transaction before the SET_CONFIGURATION one:

001:23.273'515"383n SETUP   @054.00 DATA0     8B ACK
                    000 80 06 03 03 09 04 ff 00                          ........
001:23.273'518"000n IN      @054.00 NAK
001:23.273'539"966n IN      @054.00 NAK
001:23.273'582"983n IN      @054.00 NAK
001:23.273'604"666n IN      @054.00 DATA1    34B ACK
                    000 22 03 46 00 5a 00 45 00  44 00 34 00 34 00 33 00 ..F.Z.E.D.4.4.3.
                    010 44 00 30 00 31 00 54 00  34 00 32 00 35 00 30 00 D.0.1.T.4.2.5.0.
                    020 31 00                                            1.
001:23.273'607"666n OUT     @054.00 DATA1     0B NAK
001:23.273'628"966n PING    @054.00 NAK
001:23.273'649"650n PING    @054.00 NAK
001:23.273'683"966n PING    @054.00 ACK
001:23.273'685"300n OUT     @054.00 DATA1     0B ACK
001:23.274'459"183n (bad pid) 0xf0 0x36 0xf8
001:23.275'036"750n (bad pid) 0x03 0x00 0x00 0x00 0x96 0x52 0x68 0xfa
001:23.275'037"266n SETUP   @054.00 DATA0     8B ACK
                    000 00 09 01 00 00 00 00 00                          ........
001:23.275'039"750n IN      @054.00 NAK
001:23.275'067"183n IN      @054.00 NAK
001:23.275'110"183n IN      @054.00 NAK
001:23.275'131"866n IN      @054.00 NAK
001:23.275'153"183n IN      @054.00 NAK
001:23.275'196"200n IN      @054.00 NAK
001:23.275'217"883n IN      @054.00 NAK
001:23.275'239"200n IN      @054.00 NAK
001:23.275'260"883n IN      @054.00 NAK
001:23.275'287"300n IN      @054.00 NAK
001:23.275'308"900n IN      @054.00 NAK
001:23.275'329"900n IN      @054.00 NAK
001:23.275'356"216n IN      @054.00 NAK
001:23.275'377"900n IN      @054.00 NAK
001:23.275'399"216n IN      @054.00 NAK
001:23.275'442"233n IN      @054.00 NAK
001:23.275'463"916n IN      @054.00 NAK
001:23.275'485"233n IN      @054.00 NAK
001:23.275'506"916n IN      @054.00 NAK
001:23.275'528"233n IN      @054.00 NAK
001:23.275'571"250n IN      @054.00 NAK
001:23.275'592"933n IN      @054.00 NAK
001:23.275'614"250n IN      @054.00 NAK
001:23.275'635"933n IN      @054.00 NAK
001:23.275'662"350n IN      @054.00 NAK
001:23.275'683"950n IN      @054.00 NAK
001:23.275'706"266n IN      @054.00 NAK
001:23.275'727"950n IN      @054.00 NAK
001:23.275'749"266n IN      @054.00 NAK
001:23.275'770"950n IN      @054.00 NAK
001:23.275'811"200n (bad pid) 0xf0 0x36 0xf8
001:23.275'792"266n IN      @054.00 NAK     (incomplete transaction)
001:23.278'811"983n HS idle

The format being:
timestamp token_type "@"device"."endpoint data_type bytes"B" handshake_type
  data_stage_hexdump

Strangely, when plugging the device on a hub seems to improve the
situation. Sadly, my protocol analyser gets confused when plugged
between that hub and the device, and fails to capture anything (it
likely fails to detect the chirp handshake).

There seems to be another issue (or is it just a consequence of this
one ?) where it may become completely silent, unable to join the bus
when udc identifier is writted to UDC file.

Regards,
-- 
Vincent Pelletier
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux