Felipe, > okay, good. RUN/STOP bit is set. So it still doesn't work? The only thing I can > think of, is that VBUS_VALID bit in the Mux register isn't set properly. I'm not in > the office now, but I'll try to get you more info on that. > OK, I have no information about a VBUS_VALID bit or the "Mux" register. > In my SKL boards, however, that bit is always enabled. This means that > DWC3 works, but when I unplug cable, I don't see a disconnect interrupt > ;-) > > What you really need to make this work properly, is some way of sampling VBUS > level and, whenever it's above 4.4V, then set VBUS_VALID bit in > DRCFG0 register. This is the best way to have this always working. Ideally it > would be hidden by the BIOS, so you wouldn't have to care about it :-s I hooked up a scope to VBUS. It is 5 volts. I have no information about the DRCFG0 register. Any help here is greatly appreciated... Andy Purcell > -----Original Message----- > From: Felipe Balbi [mailto:felipe.balbi@xxxxxxxxxxxxxxx] > Sent: Tuesday, January 31, 2017 12:05 PM > To: PURCELL,ANDY (K-Loveland,ex1) <andy_purcell@xxxxxxxxxxxx>; linux- > usb@xxxxxxxxxxxxxxx > Subject: RE: linux USB dwc3 not working > > > Hi Andy, > > andy_purcell@xxxxxxxxxxxx writes: > > 00:14.1 USB controller: Intel Corporation Sunrise Point-H USB Device > > Controller (OTG) (rev 31) > > okay, this is dwc3. Good > > >> I need to ask you to try a newer kernel. Can you try v4.9.6 or v4.10-rc6? > >> > > > > I am now running Ubuntu 4.10.0-999-generic. > > Same results - USB device not working, test modes still not working. > > okay > > >> > Using a script, I set up the USB-device to be RNDIS, using functionfs. > >> > >> functionfs needs a userspace component, do you have that? Can you try > >> any other gadget driver like mass storage, for instance? Here's a > >> quick script for mass storage: > >> > >> #!/bin/sh > >> > >> dd if=/dev/zero of=/dev/shm/file bs=1M count=1024 > >> > >> mount -t configfs none /c > >> mkdir /c/usb_gadget/g1 > >> echo 0x18d1 > /c/usb_gadget/g1/idVendor echo 0xbeef > > >> /c/usb_gadget/g1/idProduct mkdir > >> /c/usb_gadget/g1/strings/0x409 echo 123456789012 > > >> /c/usb_gadget/g1/strings/0x409/serialnumber > >> echo "Intel Corporation" > > >> /c/usb_gadget/g1/strings/0x409/manufacturer > >> echo "Joule" > /c/usb_gadget/g1/strings/0x409/product > >> mkdir /c/usb_gadget/g1/functions/mass_storage.1 > >> mkdir /c/usb_gadget/g1/configs/b.1 > >> mkdir /c/usb_gadget/g1/configs/b.1/strings/0x409 > >> echo 500 > /c/usb_gadget/g1/configs/b.1/MaxPower > >> echo /dev/shm/file > > >> /c/usb_gadget/g1/functions/mass_storage.1/lun.0/file > >> ln -s /c/usb_gadget/g1/functions/mass_storage.1 > >> /c/usb_gadget/g1/configs/b.1/f1 echo dwc3.0.auto > > >> /c/usb_gadget/g1/UDC > >> > > > > I run this script, slightly modified, as you suggested. > > After running this script, I see these 2 lines added to the dmesg output: > > [ 93.096773] Mass Storage Function, version: 2009/09/11 > > [ 93.096777] LUN: removable file: (no medium) > > alright, mass storage loaded and available. > > >> > I connect a USB cable from my board to a USB-host. > >> > My USB analyzer shows nothing happens. No connection, no SETUP > >> > packets, nothing. > >> > >> right, I'm assuming you don't have userspace component for > >> functionfs, so - > >> >pullup() is never called. > >> > > > > What is the userspace component for functionfs, given that I am setting up > mass storage? > > How do I get it for Ubuntu 4.10.0-999-generic? > > now that you're using mass storage, you don't need anything else ;-) > > >> Can you also get the output of: > >> > >> grep DCTL regdump > > > > root@apub1:/sys/kernel/debug/dwc3.0.auto# grep DCTL regdump DCTL = > > 0x80f00000 > > okay, good. RUN/STOP bit is set. So it still doesn't work? The only thing I can > think of, is that VBUS_VALID bit in the Mux register isn't set properly. I'm not in > the office now, but I'll try to get you more info on that. > > In my SKL boards, however, that bit is always enabled. This means that > DWC3 works, but when I unplug cable, I don't see a disconnect interrupt > ;-) > > What you really need to make this work properly, is some way of sampling VBUS > level and, whenever it's above 4.4V, then set VBUS_VALID bit in > DRCFG0 register. This is the best way to have this always working. Ideally it > would be hidden by the BIOS, so you wouldn't have to care about it :-s > > -- > balbi -- 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