Re: Any example of USB gadget for DRD device mode on Intel Gemini Lake?

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

 



On Thu, Oct 22, 2020, at 4:51 PM, Dmitry N. Mikushin wrote:
> Hi Sid, alas no device in udc, what can I do?
> 
> marcusmae@m1k:~$ cat /sys/class/usb_role/intel_xhci_usb_sw-role-switch/role
> device
> marcusmae@m1k:~$ ls -l /sys/class/udc
> total 0

I don't have an exact answer, but the device in /sys/class/udc must be there
(as far as I am aware) if the kernel is properly communicating with the hardware.

On my ARM systems I've found that DRD seems to not work in general, and
I've had to set device mode operation via devicetree. On an Intel board I
assume this would be a UEFI/BIOS option.

If Intel is still providing support for the hardware you should try to contact
them. In the meantime, hopefully someone else can comment.

> 
> чт, 22 окт. 2020 г. в 23:26, Sid Spry <sid@xxxxxxx>:
> >
> > On Thu, Oct 22, 2020, at 4:06 PM, Dmitry N. Mikushin wrote:
> > > Yes, AFAIK PCI_DEVICE_ID_INTEL_GLK_XHCI is actually 0x31a8, and I do have it:
> > >
> > > 00:15.0 USB controller [0c03]: Intel Corporation Device [8086:31a8] (rev 03)
> > >
> > > Board is M1K.
> > > My kernel is 5.4.0-48-lowlatency with the following additional patch:
> > > https://lore.kernel.org/patchwork/patch/1037542/
> > > I have dwc3 as a kernel module.
> > > I'm not testing any gadget, I just have no idea what to test. Could
> > > you please suggest some sources on how I should map gadget onto my
> > > dwc3 port?
> > >
> > > Thanks & Kind Regards,
> > > - Dmitry.
> > >
> >
> > After you set the DRD switch to device do you see a device in /sys/class/udc?
> >
> > I will show you how to use configfs. You must enable USB gadget configfs. It
> > is easier to use in my opinion. The other gadget drivers simply need to be
> > loaded, but I am unsure how they work with newer DWC3 hardware. Most
> > of the code is written for android and android uses configfs.
> >
> > `modprobe libcomposite` then execute the following, using that name:
> >
> > #!/usr/bin/env bash
> > cd /sys/kernel/config/usb_gadget
> > if [[ -d "g0" ]]; then
> >         echo "" > g0/UDC
> >         rm -rf g0;
> > fi
> >
> > mkdir g0
> > cd g0
> >
> > echo "0x1d6b" > idVendor
> > echo "0x0104" > idProduct
> >
> > mkdir strings/0x409
> > echo "0000000000" > strings/0x409/serialnumber
> > echo "Your Company" > strings/0x409/manufacturer
> > echo "Your Device" > strings/0x409/product
> >
> > mkdir functions/ncm.usb0
> >
> > mkdir configs/c.1
> > ln -s functions/ncm.usb0 configs/c.1
> >
> > # List /sys/class/udc and take a name for this line:
> > echo "" > UDC
> >
> > This will set up a Ethernet NCM device. There are similar instructions
> > from the configfs author in a powerpoint. More device types are in the
> > documentation.
>




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

  Powered by Linux