User avatar
DavidS
Posts: 3800
Joined: Thu Dec 15, 2011 6:39 am
Location: USA
Contact: Website

USB Interrupts???

Mon Jan 14, 2013 12:23 am

Currently I am using the CSUD USB driver with some small modifications, and would like to optimize this a bit. I would like to be able to hook an inturupt for USB Events rather than polling in order to improve the responciveness of the rest of my Operating System. And I am kind of stuck until I can improve the USB Handling a bit. The trouble is that I can not seem to find any information on what if any interupts are gennerated by the USB controler.

I have searched the forums, looked through the wiki, looked through every document that I have found related to the RPi HW, all to no avail.

Thus I have the following quesions about the USB HW configuration.
  • 1:) Does the USB controller generate inturpts to the ARM? if so on what events?
    2:) Is it possible to use DMA with the USB on the RPi?
    3a:) Where do I find some documentation on these points?
    3b:) Else can any one give me a usable overview on the above?
RPi = Way for me to have fun and save power.
100% Off Grid.
Household TTL Electricity Usage = 1.4KW/h per day.
500W Solar System, produces 2.8KW/h per day average.

tufty
Posts: 1456
Joined: Sun Sep 11, 2011 2:32 pm

Re: USB Interrupts???

Mon Jan 14, 2013 1:48 pm

DavidS wrote:I have searched the forums, looked through the wiki, looked through every document that I have found related to the RPi HW, all to no avail.
That's not terribly surprising, the USB implementation is made by Synopsys, and they are not forthcoming with documentation. Some information /is/ available, but only by pulling apart various datasheets, which mainly don't include the modifications Broadcom made to the Synopsys IP

Luke Robertson's document is probably the most complete one out there. The Ralink 3050 datasheet contains lots of handy tidbits, too.
1:) Does the USB controller generate inturpts to the ARM? if so on what events?
Yes, it can / does. Lots and lots and lots of them.
2:) Is it possible to use DMA with the USB on the RPi?
It should be, if I've read properly. The Ralink documentation seems to imply it is.
3a:) Where do I find some documentation on these points?
Luke's document, and the Linux source.

User avatar
DavidS
Posts: 3800
Joined: Thu Dec 15, 2011 6:39 am
Location: USA
Contact: Website

Re: USB Interrupts???

Mon Jan 14, 2013 2:03 pm

Ouch. I whas trying to avoid the Linux Source.
I have only glanced at it, though as with most things Linux it seems as if the people that write it do not know how to reasonably comment there code.
RPi = Way for me to have fun and save power.
100% Off Grid.
Household TTL Electricity Usage = 1.4KW/h per day.
500W Solar System, produces 2.8KW/h per day average.

User avatar
DexOS
Posts: 876
Joined: Wed May 16, 2012 6:32 pm
Contact: Website

Re: USB Interrupts???

Mon Jan 14, 2013 2:40 pm

Batteries not included, Some assembly required.

User avatar
DavidS
Posts: 3800
Joined: Thu Dec 15, 2011 6:39 am
Location: USA
Contact: Website

Re: USB Interrupts???

Mon Jan 14, 2013 3:19 pm

Thank you I seem to have forgot one document. That should help.
RPi = Way for me to have fun and save power.
100% Off Grid.
Household TTL Electricity Usage = 1.4KW/h per day.
500W Solar System, produces 2.8KW/h per day average.

Return to “Bare metal, Assembly language”