23

There's a lot of problems with USB stack on Rapsberry Pi and developers are working hard to fix as many of them as possible. They introduce some kernel modules options (like dwc_otg.fiq_fix_enable) that enables those fixes from time to time. Most of them are being enabled by default in recent kernels so you don't want to know them in order to use them. It's always good to know what you can disable when troubleshooting problems, though. And it's good to know that you don't need them in your cmdline.txt anymore when cleaning it up or reinstalling your SD card.

So what is the list of all such options that and what is their meaning?

4
  • 1
    I understand what you're doing, but this isn't a question (except in the title). Perhaps move most of this information to your self-answer.
    – Jivings
    Sep 16, 2012 at 11:41
  • 1
    Yes, self documenting. Is it better now? Sep 16, 2012 at 12:19
  • 1
    Looks good. Nice work
    – Jivings
    Sep 16, 2012 at 17:32
  • This is a very good topic, especially in this early phase of the RaspPi. Can you also provide details of how to enable these options for completeness?
    – Beeblebrox
    Jan 20, 2013 at 2:40

2 Answers 2

21
  • dwc_otg.speed -> 1 will limit USB speed to full speed 12Mbps (USB 1.1)
  • dwc_otg.lpm_enable -> 0 by default, it disalbes LPM support, never seen anyone with value 1 here but it's specified in default cmdline.txt
  • dwc_otg.fiq_fix_enable -> 1 (default now) give about 10% extra performance to ARM when USB is not busy by lowering the number of interrupts USB does
  • dwc_otg.microframe_schedule -> 1 (default now) This should fix the error when too many periodic endopoints are present
  • dwc_otg.nak_holdoff_enable -> 1 (default now) NAK holdoff schame, don't really know what it does

Are there any more?

3
  • dwc_otg.speed=1 seems to break a lot of keyboards. If you have a KB that doesn't break with this, please let me know here: raspberrypi.stackexchange.com/questions/4090/…
    – greggo
    Dec 24, 2012 at 17:26
  • 1
    dwc_otg.fiq_fsm_enable=0, see here.
    – CrazyCoder
    May 14, 2014 at 3:37
  • dwc_otg.nak_holdoff_enable=1 According to this it also reduces interrupts in certain cases.
    – Cerin
    Jan 20, 2018 at 3:33
5

This USB controller has several features that can be controlled by module parameters. I found this document detailing each parameter and options available.

http://www.cl.cam.ac.uk/~atm26/ephemeral/rpi/dwc_otg/doc/html/module%20parameters.html (archive, September 2015)

It seems obvious that you can cripple your device if you set some of these options. Fortunately, fixing it is a matter of remounting your SD card elsewhere and editing the cmdline.txt file.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.